“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:
- Post / INSERT: Je voegt nieuwe gegevens toe in Profit. Dit is hetzelfde als in een Profit-omgeving klikken op de knop ‘Nieuw’.
- Put / UPDATE: Je wijzigt gegevens die al in Profit staan. Dit is bijvoorbeeld het openen van een regel in Profit en hier iets in aanpassen.
- DELETE: Je verwijdert bestaande gegevens die al in Profit staan. In Profit is dit hetzelfde als het selecteren van een regel en op de knop ‘Verwijderen’ klikken.
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:
- Welke UpdateConnector wordt gebruikt?
- Om welke velden gaat het? Waar in Profit moeten deze worden geüpdatet?
- Test de invoer van de UpdateConnector zelf via AFAS Connect.
- Als je de gegevens die je wilt invoeren / updaten handmatig invoert in Profit, werkt het dan wel? Vul precies dezelfde informatie in als de connector doet. Mist er dan iets? (Bijvoorbeeld een verplicht veld dat ontbreekt, waardoor het niet opgeslagen kan worden).
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.