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.
Doel van deze eerste blog is om toe te lichten hoe je ervoor zorgt dat je de juiste dossieritems vanuit AFAS ophaalt. In mijn volgende 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!
Casus
In de casus die hier wordt behandeld was de situatie als volgt:
Bestanden vanuit AFAS moeten automatisch worden opgeslagen in SharePoint. Met de volgende wensen:
Trigger
Aangezien de Flow elke nacht moet worden uitgevoerd, wordt een geplande (scheduled) Flow gemaakt met als frequentie 1 keer per dag.
Variabelen
In de loop van de Flow zijn diverse variabelen nodig, welke ik aan het begin heb aangemaakt en later worden gebruikt, elke met als type String.
De trigger met enkele variabelen
Voorwaarde om de GetConnector te kunnen gebruiken, is dat deze is ingesteld in AFAS. Dit kun je instellen in AFAS via Algemeen -> Beheer -> App connector.
Bij gebruikerstokens kun je een token toevoegen voor een gebruiker die je nodig hebt voor de autorisatie.
Deze kun je ophalen door een token in AFAS te generen en de XML string te kopiëren.
De volledige XML string moet je omzetten naar Base64 en dat als token aan je Authorization Header toevoegen. Omzetten kan met PowerShell:
TIP: Het is aan te raden om gebruik te maken van Postman, hiermee kun je eenvoudig controleren wat je terug krijgt vanuit AFAS.
Voer een request uit met url: https://<deelnemersnummer>.rest.afas.online/ProfitRestServices/connectors/<naam-van-de-GetConnector>
Voer bij de Header de Authorization key in met de juiste waarde. Vergeet daarbij niet ‘AfasToken’ ervoor te zetten.
Het is nu gelukt om resultaten terug te krijgen via de GetConnector:
De GetConnector is in AFAS zo geconfigureerd dat de dossieritems van het afgelopen half jaar waarvan de Workflow_afgerond status ‘uit workflow’ is, worden doorgegeven. Aangezien deze Flow elke nacht zal draaien en ik alleen met de nieuw toegevoegde regels wat wil doen, stel ik een filter in op ‘Workflow_afgerond’. Waarbij de datum groter is dan 24 uur geleden en kleiner dan ‘nu’. Dit wordt bepaald op basis van de variabele (type String) ‘CurrentDateTime’ en de variabele (type String) ‘PastDateTime’.
De datum en tijd moeten in het juiste formaat worden gezet en de dubbele punt moet vervangen worden door ‘%3A’ om deze te kunnen gebruiken in de HTTP request richting AFAS.
De expression van CurrentDateTime:
replace(formatDateTime(convertFromUtc(utcNow(),'W. Europe Standard Time'),'yyyy-MM-ddTHH:mm'),':','%3A')
Naast de huidige datum/tijd bepaal ik ook de datum/tijd van 24 uur geleden door gebruik te maken van substractFromTime.
De expression van PastDateTime wordt dan als volgt:
replace(subtractFromTime(formatDateTime(convertFromUtc(utcNow(),'W. Europe Standard Time'),'yyyy-MM-ddTHH:mm'),1, 'Day','yyyy-MM-ddTHH:mm'), ':','%3A')
Ook hierbij test ik eerst in Postman of ik de gewenste resultaten terug krijg.
Vervolgens kan dit worden gebruikt in de HTTP request in de Flow, deze ziet er dan als volgt uit:
Nu worden de juiste dossieritems opgehaald in de Flow, wat je vervolgens kunt doen met de output, daarover schrijf ik mijn volgende blog. Stay tuned!
These Stories on Power Automate
Jong, dynamisch en enthousiast.
Veel kennis en ervaring in het brede vakgebied van ICT. Gespecialiseerd in SharePoint en Microsoft 365.