In een vorige blog heeft mijn collega Bartjan uitgelegd hoe je gebruik kunt maken van de Outlook API van Microsoft om de gegevens over afspraken uit je agenda te kunnen ophalen (zie https://growteq.nl/2017/08/07/office365-afspraken-uit-agenda-ophalen/). In deze blog laat ik zien hoe je met behulp van de Updateconnector-functionaliteit de uren geautomatiseerd kunt registreren in AFAS. Hierbij maak ik gebruik van SQL Server Integration Services (SSIS).
Stap 1: App connector autoriseren
Allereerst moet de app connector in AFAS zelf geautoriseerd worden. In deze blog wordt hier niet verder op ingegaan. Hiervoor verwijs ik naar de uitgebreide documentatie van AFAS zelf, te vinden via de volgende link: https://static-kb.afas.nl/datafiles/help/2_9_7/SE/NL/index.htm#App_Apps_Custom_Auth.htm.
Bij het autoriseren van de App connector moet op het tabblad UpdateConnectoren de connector PtRealization worden geautoriseerd. Met behulp van deze connector kunnen urenregels worden ingestuurd.
Stap 2: Aanmaken Nieuw SSIS project
In deze blog maken we gebruik van Visual Studio 2015 – SQL Server Data Tools (SSDT). Deze versie is (gratis) te downloaden van de volgende website: https://docs.microsoft.com/en-us/sql/ssdt/download-sql-server-data-tools-ssdt
Kies in SSDT voor File -> New -> New Project. Kies als Template het Integration Services Project
Stap 3: Http connectie
In SSIS moet een nieuwe connectie manager worden aangemaakt. Maak een nieuwe HTTP Connection Manager aan.
Vul bij de Server URL de juiste url naar de wsdl in. De opbouw van de URL is als volgt:
AFAS lokaal:
https://[ProfiServerNaam] /profitservices/appconnectorget.asmx?wsdl
Voor AFAS Online
https://deelnemernummer.afasonlineconnector.nl/profitservices/appconnectorget.asmx?wsdl
Stap 4 Aanmaken wsdl bestand
Surf in een browser naar bovenstaande server url. Kopieer alle tekst op deze website en plak deze in een nieuw bestand in een teksteditor zoals Notepad.
Sla het bestand op met een extensie .wsdl.
Stap 5 Aanmaken variabele met de inputdata
De Updateconnector die we gebruiken, heeft de naam PtRealization. Deze connector heeft de volgende kolommen die kunnen worden ingestuurd:
<DaTi> = Datum
<VaIt> = Type Item (1: Werksoort.2: Artikel,6: Kosten)
<ItCd> = ItemCode
<Qu> = Aantal uur
<EmId> = Werknemer Code
<PrId> = Projectnummer
<Ds> = Omschrijving
De wijze waarop de gegevens naar de update connector moeten worden gestuurd heeft een specifieke opmaak. Maak een variabele aan met de naam varDataXML met als type string. Geef deze variabele de volgende waarde:
<PtRealization xmlns:xsi=\”http://www.w3.org/2001/XMLSchema-instance\”><Element><Fields Action=\”insert\”><DaTi>XXXX</DaTi><VaIt>XXXX</VaIt><ItCd>XXXX</ItCd><Qu>XXXX</Qu><EmId>XXXX</EmId><PrId>XXXX</PrId<Ds>XXXX</Ds></Fields></Element></PtRealization>
Vul op de plaats van de XXXX de juiste waardes per veld in. In deze variabele zijn de nu de waardes hard ingevoerd. Het is een koud kunstje om hier de waardes aan te koppelen die via de Outlook Rest API zijn opgehaald.
Stap 6 Aanmaken webservice task
Sleep in SSIS een nieuw Web Service Task naar de Control Flow. Selecteer op het tabblad General het in stap 3 aangemaakte wsdl bestand:
Ga naar het tabblad Input en vul de volgende gegevens in:
- Kies bij Service voor ‘ConnectorAppUpdate’
- Kies bij Method ‘Execute’, vervolgens verschijnt er een tabel.
- Vul bij token de volledige token in.
Let op dat dit inclusief alle tags moet worden ingevoerd. Dus in de volgende vorm:
<token><version>1</version><data>7748B1A4B5AF4A899588017DD71E55CBB60F8C504E2C16A17D1F9D9F42914C7C</data></token> - Vul bij connectorType de juiste connectornaam in: ‘PtRealization’
- Vink bij dataXML het vakje aan onder Variable en selecteer de aangemaakt variabale varDataXML
Op het tabblad Output moet nog een file connectie worden aangemaakt. Deze is benodigd voor de webservice task in SSDT, maar heeft voor de Updateconnector verder geen functie. De connectie kan dan ook naar een willekeurig bestand en locatie worden aangemaakt.
Het SSIS package kan nu worden gestart en de update connector registreert een urenregel in AFAS!
Conclusie
Met behulp van de updateconnector van AFAS kunnen eenvoudig uren geregistreerd worden. Deze functionaliteit is uitstekend te koppelen met gegevens vanuit je agenda middels de Outlook REST API.
Meer weten over onze oplossingen?
Onze consultants hebben veel ervaring binnen een grote verscheidenheid aan branches.
Eens verder brainstormen over de mogelijkheden voor jouw organisatie?
Maak kennis met onze specialist Arnoud van der Heiden.