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

Elianne Burgers
4-feb-2020 8:30: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.

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!

De juiste gegevens uit AFAS ophalen

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:

  • Alleen bestanden waarvan de AFAS Workflow afgerond is.
  • Op de juiste klantsite (SharePoint sitecollectie)
  • update de metadata in SharePoint op basis van AFAS gegevens

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
De trigger met enkele variabelen

Autorisatie voor de AFAS GetConnector

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.

autorisatie afas getconnector

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.

kopiëren XML string token

De volledige XML string moet je omzetten naar Base64 en dat als token aan je Authorization Header toevoegen. Omzetten kan met PowerShell:

Omzetten 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.

invoeren waarde authorization key

HTTP request in Power Automate, inclusief filters

Het is nu gelukt om resultaten terug te krijgen via de GetConnector:

Resultaten 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’.

workflow status

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.

Controleren in Postman

Vervolgens kan dit worden gebruikt in de HTTP request in de Flow, deze ziet er dan als volgt uit:

HTTP request in de Flow

Tips

  • Gebruik Postman om snel te controleren of je de juiste gegevens uit de GetConnector kunt halen, zonder steeds de Flow opnieuw te moeten uitvoeren.
  • Zorg dat je tijdens het testen een filter zet op de GetConnector, zodat je niet te veel resultaten terugkrijgt en niet steeds lang hoeft te wachten op een test run van de Flow.
  • Vergeet in de Header value niet om te starten met ‘AfasToken’.
  • Wellicht een open deur, maar in deze blog zijn de URI van productie gebruikt, terwijl je voor test doeleinden eerst gebruik kunt maken van de testomgeving.
  • Voor meer informatie over de filtering en operatortypes van de AFAS GetConnector zie de documentatie van AFAS: https://help.afas.nl/help/NL/SE/App_Cnr_Rest_GET.htm

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!

Ook interessant voor jou

These Stories on Power Automate

Nog geen reacties

Voel je vrij om te reageren...