“De Connector werkt opeens niet meer. Waar komt dit door en hoe lossen we dit op?”
Deze vraag komt met enige regelmaat binnen op de afdeling Support. Natuurlijk helpen we je graag om zo’n probleem zo snel mogelijk op te lossen. Tegelijkertijd moedigen wij je wel aan om eerst zelf onderzoek te doen naar het probleem en de oplossing te vinden. Wij willen dat jij begrijpt wat er mis ging. Maar hoe pak je dat aan? Wij helpen je graag op weg.
Als je het optelt, gebruikt je organisatie best wat tools en applicaties naast Profit. Dat kan gaan om een roosterprogramma of een sectorspecifieke applicatie. Het is de bedoeling dat deze software je werk makkelijker maakt. Daarom is het wel praktisch dat al deze applicaties dezelfde accurate en actuele gegevens gebruiken vanuit één bronsysteem (voor ons is dat natuurlijk Profit). Door externe applicaties met AFAS te verbinden via connectoren, zorg je ervoor dat gegevens altijd automatisch up-to-date zijn.
Over connectoren valt ontzettend veel te vertellen. Maar in de basis zijn er twee soorten connectoren: Update- en GetConnectoren. Een UpdateConnector stuurt gegevens naar Profit. Denk daarbij bijvoorbeeld aan uren die een medewerker heeft geboekt en die zijn vastgelegd in een extern roosterpakket. De gewerkte uren worden dan via een UpdateConnector naar Profit gestuurd. Zo wordt de medewerker op basis van die gewerkte uren verloond. Voor elk onderdeel in Profit heb je verschillende UpdateConnectoren.
Met UpdateConnectoren kun je drie handelingen uitvoeren:
Met GetConnectoren haal je gegevens uit Profit op. Denk hierbij bijvoorbeeld weer aan het externe roosterpakket. Om haalbare roosters te kunnen maken, heeft het roosterpakket wel bijvoorbeeld de verlof- en verzuimgegevens van medewerkers nodig. Die stuur je dan via een GetConnector vanuit Profit naar het externe pakket. Een GetConnector is niets anders dan wat je in Profit in een overzicht of weergave ziet. Je maakt deze connectoren zelf aan op basis van een bepaalde gegevensverzameling. In het geval van het roostervoorbeeld zou bijvoorbeeld de gegevensverzameling ‘Medewerker/aan- en afwezigheid’ een logische keuze zijn om de GetConnector op te baseren. Hierin kun je namelijk zowel het verlof als het verzuim van de medewerkers ophalen.
Omdat het applicatielandschap van organisaties heel divers kan zijn, bestaan er veel connectoren. De variatie is enorm en kan per afdeling of sector verschillen. Op HRM-vlak zien we koppelingen met planningsapplicaties. De functionaliteit van deze applicaties is vaak uitgebreider dan de standaardroosters binnen Profit bieden.
Binnen AFAS gebruiken we ook heel wat connectoren. Bijvoorbeeld voor hele praktische zaken, zoals het reserveren van de vergader- of trainingsruimtes en het monitoren van af- en aanwezigheid in ons Clubhuis. Door de koppeling met de Profit-agenda is het heel eenvoudig om direct een ruimte te reserveren wanneer je een afspraak hebt. Een ander voorbeeld is de connectie met iProtect, een platform voor toegangscontrole en beveiliging. Als een collega zich bij binnenkomst aanmeldt, wordt dit automatisch in Profit geregistreerd. Omdat we elke vijf minuten synchroniseren is deze informatie dan ook bekend bij de beveiliging. Afmelden gaat op dezelfde manier. Maar als iemand zich per ongeluk vergeet af te melden, wordt dit om 23:00 uur automatisch toch gedaan. Je krijgt dan via een workflow natuurlijk wel een mailtje of je voortaan beter wilt opletten.😉
Als alles goed gaat, heb je naar een connector geen omkijken. Dat wordt anders als hij opeens niet meer werkt. Hoe los je dat op? Op de afdeling Support krijgen we deze vraag met enige regelmaat binnen. Onze eerste reactie is te adviseren de foutmelding of het issue in de Help op te zoeken. In veel gevallen vind je dan zelf heel snel het juiste antwoord.
Lukt het je niet om in de Help het juiste antwoord te vinden, dan staan we bij Support klaar om het probleem samen verder te onderzoeken. Wat ons opvalt, is dat vragen over connectoren vaak niet verder gaan dan het feit dát de connector niet (meer) werkt. Wat er dan precies niet werkt, is in veel gevallen onduidelijk.
Het goede nieuws is: er zijn verschillende methoden om zelf zowel Update- als GetConnectoren te testen en de oorzaak van een probleem te achterhalen. We hebben een duidelijk stappenplan om zelf problemen met connectoren in kaart te brengen. Let wel: dit gaat specifiek over het oplossen van problemen met bestaande connectoren. Deze zijn in de basis dus goed ingericht en hebben al gefunctioneerd. Als je meer wilt weten over het inrichten van nieuwe connectoren kijkt onze afdeling Systemintegrators graag mee.
Als er iets misgaat in Profit weet je in ieder geval dat je een foutmelding krijgt. En hoewel deze soms nogal cryptisch zijn, is dit wel het vertrekpunt voor het vinden van de oplossing. Een klant meldt zich bijvoorbeeld bij Support met de vraag: ‘’Waarom geeft de connector de foutmelding ‘(500 Internal Server Error) No record with startdate before the given startdate’?’’. Zoals gezegd is het begrijpelijk dat je met een dergelijke foutmelding niet direct weet waar je moet beginnen. Maar geen paniek! Dat is niet nodig als je dit stappenplan doorloopt:
In dit geval ging het om de connector ‘KnEmployee’ (antwoord op vraag 1). Hiermee wilde de klant gegevens van een medewerker wijzigen, waaronder het rooster (antwoord op vraag 2).
De klant stuurde daarbij een XML-bestand met onder andere de volgende gegevens:
<AfasTimeTable>
<Element DaBg="2050-01-01">
<Fields Action="update">
<SeNo>84</SeNo>
<DvSn>1</DvSn>
<StPa>false</StPa>
</Fields>
</Element>
</AfasTimeTable>
Dit maakt nog niet meteen duidelijk wat er nu precies wordt ingeschoten in Profit. Log daarom in op connect.afas.nl (of maak eerst een account aan) om dit te testen. Voor de probleemanalyse is het een goed idee om dit met REST / JSON te testen, omdat deze invoer het meest lijkt op die van Profit.
Maakt de connector gebruik van JSON-bestanden? Dan kun je deze gemakkelijk direct invoeren via 'Upload JSON'. Je hoeft de velden dan niet zelf in te vullen, want deze worden automatisch in AFAS Connect gezet! In het geval van een XML bestand kun je ook werken met REST / JSON voor de test, zoals ook in dit voorbeeld. Wanneer je namelijk de velden zelf invult op AFAS Connect, dan verschijnt er automatisch een JSON voorbeeld. De veldnamen zijn in JSON en XML aan elkaar gelijk, dus dat kun je met elkaar vergelijken.
Je ziet hier ‘AFASTimeTable’ terugkomen, zoals deze ook in de XML te vinden is. Als je deze open klikt, zie je dezelfde velden als wanneer je bij een medewerker in Profit een rooster toevoegt of aanpast. Als je de velden begint in te vullen, wordt automatisch een JSON aangemaakt.
In de afbeelding is bij ‘Begindatum rooster’ de datum ingevuld die in de XML staat (01-01-2050). In de JSON die automatisch wordt aangemaakt, is dit het veld ‘DaBg’. Zo weet je dus dat je het juiste veld te pakken hebt, omdat dit overeenkomt met de XML. Als je alle velden hebt ingevoerd en op de knop ‘Execute’ hebt gedrukt, gaf AFAS Connect ook dezelfde melding ‘(500 Internal Server Error …)’. We weten dus dat er iets mis gaat bij de invoer en dat deze daarom niet wordt geaccepteerd door Profit (antwoord op vraag 3).
Dan de laatste stap (vraag 4): Voer de gegevens in Profit handmatig in. Bij het aanmaken van een roosterregel bij deze medewerker met als begindatum 01-01-2050, verscheen in Profit de melding: ‘Er is nog geen contract aanwezig of de ingevulde begindatum ligt vóór de begindatum van het eerste contract.’ Wat bleek: de medewerker had een contract met een einddatum in 2023, dus een rooster toevoegen voor het jaar 2050 (wat uiteraard sowieso al opvallend is), is niet mogelijk. Na het aanpassen van de begindatum van het rooster, werkte de UpdateConnector weer zonder fouten.
De uitleg over het oplossen van foutmeldingen bij GetConnectoren is korter. Uit ervaring weten we namelijk dat vrijwel al deze problemen zijn op te lossen met dit Help-artikel. Veel vragen rondom GetConnectoren gaan over problemen waarbij de ontvangende partij geen of minder data binnenkrijgt dan verwacht. Ook dit probleem kun je zelf onderzoeken en oplossen:
In dit artikel lees je dat de autorisatie in veel gevallen de oorzaak is. Ook hiervoor geldt: test dit via AFAS Connect! Geef jezelf precies dezelfde rechten als de ontvangende partij en kijk welke gegevens je ziet op Connect. Door vervolgens bijvoorbeeld steeds één filter te activeren, kun je eenvoudig nagaan welke filters nodig zijn om de relevante gegevens wel te kunnen zien.
Ga vooral zelf aan de slag en ontdek in een testomgeving precies hoe een connector werkt. Je zult ontdekken dat koppelingen makkelijker en logischer zijn dan je op voorhand denkt.
En als het dan toch niet helemaal goed gaat, volg dan in ieder geval twee stappen:
Als je er met deze stappen écht niet uitkomt, staan we bij Support of Systemintegrators natuurlijk altijd voor je klaar.
Wat kan je ermee? Bekijk dan de sessie ‘Verbind de wereld met AFAS’ van Viktor Linn, Applicatie- en Procesmanager.