Inleiding
De Microsoft connector maakt het mogelijk om vanuit een proces met Microsoft services te integreren. Momenteel beperkt de connector zich tot het uploaden van bestanden naar SharePoint. De connector is beschikbaar vanaf platform versie v28.0.0.
Use case
Een door Skryv gegenereerde bijlage (bv. een gegenereerd PDF-document of een geüploade bijlage uit een dossier) automatisch archiveren in een SharePoint-omgeving van de klant, zodat deze niet enkel in Skryv maar ook in hun eigen documentbeheersysteem beschikbaar is.
Setup
Onboarding
Voor de communicatie met Microsoft services gebruikt de connector de Microsoft Graph API. Met de nodige credentials (app-registratie in Entra ID/Azure AD) wordt een GraphServiceClient opgebouwd, waarmee de connector bestanden naar SharePoint kan uploaden.
Dependency toevoegen in pom.xml bestand
Voeg de Microsoft maven dependency toe aan het juiste pom.xml bestand.
<dependency>
<groupId>com.skryv.connectors</groupId>
<artifactId>microsoft</artifactId>
<version>${skryv.version}</version>
</dependency>
Applicatie eigenschappen
Stel de volgende applicatie eigenschappen (application properties) in:
|
Eigenschap |
Default |
Beschrijving |
|---|---|---|
|
MicrosoftGraphConfiguration |
||
|
|
- |
Moet op |
|
MicrosoftAppRegistrationProperties |
||
|
|
- |
Client-id van de app-registratie in Entra ID/Azure AD. |
|
|
- |
Tenant-id van de app-registratie. |
|
|
- |
Client secret van de app-registratie. |
|
MicrosoftSharepointProperties |
||
|
|
- |
Id van de SharePoint-drive waarin geüpload wordt. Je kan deze opvragen via de Graph API Explorer: GET https://graph.microsoft.com/v1.0/sites/{site-id}/drives. |
De client-id/tenant-id/client-secret-eigenschappen worden gebruikt als authenticatie voor de Graph API (via een ClientSecretCredential). De drive-id-eigenschap bepaalt in welke SharePoint-drive de bestanden terechtkomen. De functie zelf spreekt enkel een pad/map binnen die vooraf ingestelde drive aan.
Services en functies
De Microsoft connector bestaat voorlopig uit één service met één beschikbare functie.
|
Functie |
Retourtype |
Info |
|---|---|---|
|
|
Uploadt een door Skryv beheerde bijlage naar een map binnen de ingestelde SharePoint-drive. |
Deze functie is, naast de workflow expressie, ook rechtstreeks aanroepbaar vanuit Java-code door MicrosoftCamundaConnector (bean microsoft) te injecteren in je klasse:
@RequiredArgsConstructor
public class MyOwnService {
private final MicrosoftCamundaConnector microsoft;
}
Upload bijlage naar SharePoint
Service om een door Skryv gegenereerde bijlage te uploaden naar SharePoint. De functie zal de bijlage attachmentId uploaden naar het pad path binnen de ingestelde SharePoint drive ID (zie applicatie eigenschappen). De bijlage wordt geüpload met naam fileName. Deze functie kan je ook aanspreken vanuit een specifieke Studio service taak template.
De upload gebeurt via de "simple upload"-methode van de Graph API en ondersteunt bestanden tot 250MB. Grotere bestanden worden niet ondersteund. Hiervoor zou een chunked/resumable upload-sessie nodig zijn, wat deze functie niet implementeert.
Workflow expressie
${microsoft.uploadAttachmentToSharepoint(attachmentId,path,fileName)}
De namen van de procesvariabelen in de workflow-expressie zijn vrij te kiezen. De volgorde van de argumenten is bepalend.
Java-code
microsoft.uploadAttachmentToSharepoint(attachmentId, path, fileName);
Input
|
Inputparameters |
Data type |
Verplicht |
Voorbeeld |
Uitleg |
|---|---|---|---|---|
|
|
String |
Ja |
‘00bbf608-9ea6-4fd9-a8dd-392ad069d553’ |
Id van de bijlage in Skryv. |
|
|
String |
Ja |
‘schadedossiers/2024’ |
Pad naar de bijlage binnen de ingestelde SharePoint drive ID. |
|
|
String |
Ja |
‘bijlage.pdf’ |
Naam van de bijlage zoals die in SharePoint te zien moet zijn. |
Output
Deze functie retourneert niets aan het proces (void). Het resultaat is dat de bijlage effectief wordt opgeladen naar de ingestelde SharePoint-locatie.
Error-handling
Deze connector zet fouten niet om naar een BpmnError. Elke fout hieronder resulteert in een onafgevangen exceptie en dus een Camunda-incident dat manuele tussenkomst vereist.
|
Situatie |
Exceptie |
|---|---|
|
De opgegeven |
|
|
|
|
|
De SharePoint drive-id ( |
|
Let op: als skryv.connectors.microsoft.enabled niet op true staat, bestaat de bean microsoft gewoon niet in de applicatie. Dit resulteert niet in een fout van de connector zelf, maar in een expressie-evaluatiefout van Camunda: de workflow-expressie ${microsoft.uploadAttachmentToSharepoint(...)} kan de bean microsoft niet vinden en de service task faalt op dat punt.