AFAS GetConnector en Microsoft Power Automate (Flow) - Deel 2

Elianne Burgers
19-feb-2020 8:23:00

Maakt je organisatie gebruik van zowel AFAS als Office365? Dan biedt Microsoft Power Automate (voorheen Flow) mogelijkheden om deze twee systemen met elkaar te laten samenwerken, zonder dat medewerkers hiervoor handmatige handelingen hoeven te doen.

In mijn vorige blog heb je kunnen lezen hoe je met Power Automate dossieritems uit AFAS op kunt halen. In deze blog beschrijf ik hoe je het bijbehorend bestand kunt ophalen en hoe je dat document met bijbehorende metadata kunt opslaan op de gewenste locatie in SharePoint.

Goed om van tevoren te weten: er wordt gebruik gemaakt van premium connectoren, waarvoor een aanvullende licentie nodig is!

Meerdere GetConnectors combineren

Resultaten van de GetConnector
Run de Flow met HTTP request (zoals beschreven in deel 1) eenmaal en kopieer de body van de output van de HTTP request.

output http request

Maak vervolgens een actie ‘Parse JSON’ aan, waarbij je het schema kunt genereren op basis van het voorbeeld door hierin de body van de output te plakken.

Parse JSON

Ontvangen resultaten gebruiken
Van de resultaten die via de GetConnector naar voren komen krijg ik het nummer van het Dossieritem en Relatienummer terug.

nummer dossieritem en relatienummer

Deze gegevens ga ik gebruiken om het bestand op te halen wat bij het Dossieritem hoort.

Op basis van Dossieritem het bestand ophalen
Het nummer van het Dossieritem heb ik als variabele ingesteld:

dossieritem variabele

Vanuit AFAS is het niet mogelijk om de gegevens van een dossieritem en de details van het bestand via één GetConnector op te halen, vandaar dat ik via een andere GetConnector de details ophaal (GUID en bestandsnaam) van het bestand dat hoort bij het Dossieritem.

via andere getconnector details ophalen

De output van deze HTTP request gebruik ik weer in een ‘Parse JSON’ actie. Vervolgens stel ik de GUID (unieke nummer) in en de bestandsnaam als variabele.

Parse JSON en GUID

Om de bestandsnaam te kunnen gebruiken in de HTTP request moet de spatie worden vervangen door ‘%20’.

De expressie die ik hierbij gebruik:

replace(variables('OrigineelBestandsnaam'),' ','%20')

Vervolgens kan ik het bestand ophalen via de fileconnector:

http get bestand in base64

De laatste stap

Stel vervolgens de File Content samen, deze is nodig om het bestand te kunnen maken in SharePoint. Dit doe je door de output weer op te nemen in een ‘Parse JSON’ actie en vervolgens een Compose actie:

compose

Alle voorbereidingen zijn nu getroffen om het bestand een plek te geven op SharePoint.

Het document opslaan op SharePoint

Om het document op de juiste locatie op te slaan voeg je de actie ‘Create file’ toe aan de Flow en voer je de waarden in waar het document moeten worden opgeslagen. De SharePoint locatie wordt dynamisch bepaald en zit daarom in een variabele. Voor de File Content gebruik je de output van de Compose actie.

create file

Bijwerken van de metadata
Naast dat het document wordt opgeslagen op de juiste locatie is het wenselijk dat de juiste metadata wordt aangevuld. In dit geval is dit een waarde uit de taxonomie en de titel die hetzelfde moet zijn als de bestandsnaam.

Het bepalen van de SharePoint site laat ik hier verder buiten beschouwing, wat enkel van belang is om te weten, is dat ik de SharePoint site dynamisch vaststel en dat dit niet voor elk dossieritem hetzelfde is. In Flow bestaat namelijk de actie ‘Update file properties’, aangezien de SharePoint site dynamisch wordt bepaald kan deze niet gebruikt worden. Om het toch mogelijk te maken om de metadata bij te werken kies voor de actie ‘Send an HTTP request to SharePoint’.

Als SharePoint site wordt dezelfde variabele als in de vorige stap gebruikt. Kies voor de POST method. Kies vervolgens voor de Uri om de update te kunnen uitvoeren, waarbij de GetByTitle dezelfde is als de Folder Path uit de vorige stap en je het ItemId kunt ophalen als dynamische content vanuit de vorige stap.

send an HTTP request to SharePoint

Vul in de Body de formValues in die je wilt bijwerken. Vul bij FieldName de kolomnaam in en bij een kolom van het type ‘Beheerde metagegevens’ voer je de FieldValue in, in het format: “<<Standaardlabel>>|<<unieke id>>”.

Voor Title wil ik dezelfde waarde gebruiken als de bestandsnaam, maar dan zonder de bestandsextensie ‘.pdf’. Hiervoor gebruik ik de volgende expressie:

replace(body('Create_file')?['Name'],'.pdf','')

De Flow is gereed om in gebruik te nemen!

Tips

  • Zorg dat de app connector in AFAS is ingesteld, anders functioneert de file connector niet.
  • Als je verbindt met de test omgeving van AFAS: dan kun je alleen de documenteigenschappen ophalen niet het document in base64 formaat, dit kan alleen in de productie omgeving.
  • Lukt het bij het ene bestand wel om deze op te halen en bij het andere niet, controleer dan eens in AFAS wat er bij het dossier staat ingesteld. Een dossieritem met het kenmerk ‘Vertrouwelijk’ kan niet via de fileconnector worden opgehaald!
  • Je kunt ervoor kiezen om de bestandsnaam vanuit AFAS over te nemen, maar je kunt er ook voor kiezen om te bestandsnaam aan te passen naar een gewenst format, bijvoorbeeld ‘type document – jaartal – sitenaam’.

Ook interessant voor jou

These Stories on Power Automate

Nog geen reacties

Voel je vrij om te reageren...