Medewerkers synchroniseren tussen AFAS en Transplan
Er is een koppeling gemaakt tussen AFAS en Transplan om medewerkers te synchroniseren. Verder wordt de zogenoemde Organisatorische Eenheid (OE) van een medewerker bijgewerkt als de planafdeling van een medewerker in Transplan wijzigt.
De synchronisatie wordt gedaan in de AfasEmployeeSyncService.
De service verwerkt momenteel
Wijzigen planafdeling in Transplan om in AFAS de OE eenheid bij te werken.
Gewijzigde / nieuwe medewerker vanuit AFAS inlezen in Transplan.
Planafdeling gewijzigd in Transplan
Wanneer in Transplan (via stamdata) de planafdeling van een medewerker wordt gewijzigd, dan wordt een event opgegooid (EmployeeDepartmentChanged). Dit event wordt afgevangen in deze service.
Eerst worden gegevens verzameld van de medewerker uit Transplan. Als de functie van de medewerker niet uitgesloten is (zie paragraaf Uitgesloten functie) dan wordt m.b.v. de Externe referentie bepaald of de medewerker bekend is in AFAS.
Als de medewerker bekend is in AFAS, dan wordt de Organisatorische Eenheid (OE) bijgewerkt d.m.v. een request naar de API van AFAS. De OE eenheid is de code van de planafdeling.
Uitgesloten functie voor bijwerken Organisatorische Eenheid (OE)
Als een medewerker een functie heeft die uitgesloten is (via configuratie in te stellen, maar default Kantoor), dan wordt de OE eenheid niet bijgewerkt in AFAS. De klant moet dit dan handmatig doorvoeren in AFAS.
Standaard is de uitgesloten functienaam Kantoor, maar dit kan via configuratie aangepast worden. Zie paragraaf Medewerkers synchroniseren tussen AFAS en Transplan | Configuratie voor de verschillende configuratie mogelijkheden.
Gewijzigde / nieuwe medewerker vanuit AFAS inlezen in Transplan
In AFAS worden de gegevens van de verschillende medewerkers bijgehouden. M.b.v. deze service gaan wij periodiek (instelbaar via systeeminstelling AfasEmployeeSyncService.IntervalInMinutes) de gewijzigde medewerkers opvragen in AFAS. Met een timestamp (LastSynchronized uit tabel EmployeeConfigurations) wordt de API uitgevraagd.
Als een (gewijzigde) medewerker in Transplan al bestaat, dan wordt een update verstuurd naar stamdata. In stamdata wordt de betreffende medewerker bijgewerkt met de gewijzigde gegevens vanuit AFAS.
Als een medewerker nog niet bestaat in Transplan, dan wordt via stamdata een nieuwe medewerker toegevoegd in Transplan.
Bij een nieuwe medewerker moeten een aantal velden verplicht ingevuld worden. Dat zijn o.a. Planafdeling, functie en werkgever.
Bepaling planafdeling, functie en werkgever
Bij het toevoegen van de medewerker wordt in AFAS voor een medewerker opgevraagd welke Organisatorische Eenheid, Functie en Werkgever de medewerker is gekoppeld. Hiervoor wordt connector Transplan - Employee org units aangeroepen. Het resultaat ziet er als volgt uit:
Met behulp van OrgUnit wordt bepaald of er in Transplan een planafdeling bekend is met deze code. Als die er is, dan wordt deze planafdeling aan de nieuwe medewerker gekoppeld. Als de planafdeling niet bekend is, dan wordt teruggevallen op een default planafdeling uit de configuratie (zie hieronder).
Met behulp van veld Dienstbetrekking wordt bepaald of er een mapping (FunctionsMapping) in de configuratie aanwezig is. Als er geen mapping gevonden kan worden, dan wordt teruggevallen op de default functie uit de configuratie.
Met behulp van EmployerId wordt uit de configuratie bepaald welke werkgever er gekoppeld moet worden aan de medewerker. Mocht er in de configuratie geen waarde gevonden worden, dan wordt teruggevallen op de default employer uit de configuratie.
Bij het toevoegen worden een aantal standaard waarden ingevuld. Dat zijn de volgende:
Omschrijving | Waarde | Configuratie |
---|---|---|
Planafdeling ID | 1 | DefaultDepartmentIdNewEmployee |
Function ID | 1 | DefaultFunctionIdNewEmployer |
Werkgever ID | 1 | DefaultEmployerIdNewEmployee |
Bovenstaande zijn via configuratie aan te passen. Zie Medewerkers synchroniseren tussen AFAS en Transplan | Configuratie
AFAS connectoren
Om de OE eenheid en de medewerkers te synchroniseren moet het AFAS token rechten hebben op een aantal connectoren in AFAS. Hieronder een lijst met connectoren die beschikbaar moeten zijn.
Naam | Omschrijving |
---|---|
Transplan_Medewerker_stamgegevens (GetConnector) | Deze connector wordt gebruikt om de gewijzigde medewerkers op te halen uit AFAS en te synchroniseren in Transplan. |
Transplan - Employee org units (GetConnector) | Deze connector wordt gebruikt om de OE eenheid op te vragen waar een medewerker is aan gekoppeld. |
KnEmployee (UpdateConnector) | Deze connector wordt gebruikt om de OE eenheid in AFAS te wijzigen voor een medewerker als de planafdeling in Transplan wordt gewijzigd. |
Systeem instellingen
Voor deze service zijn de volgende systeeminstellingen geïntroduceerd:
Setting | Standaard waarde | Omschrijving |
---|---|---|
AfasEmployeeSyncService.Enabled | True | Deze instelling bepaald of de synchronisatie van medewerkers tussen AFAS en Transplan aan staat. |
AfasEmployeeSyncService.IntervalInMinutes | 5 | Hoe vaak wordt de synchronisatie tussen AFAS en Transplan uitgevoerd. De waarde is in minuten. |
Configuratie
Om de OE eenheid bij te werken en de synchronisatie van medewerker tussen AFAS en Transplan op te zetten zijn er verschillende configuratie mogelijkheden.
De configuratie van deze service is vastgelegd in tabel EmployeeSyncConfigurations. De volgende configuratie is in te stellen:
Naam | Omschrijving |
---|---|
ApiEndpoint | Het AFAS endpoint om aan te roepen. Zie Keepass. |
ApiToken | Het token om de requests naar de AFAS API uit te voeren. Zie Keepass voor het token. |
EmployeeOrgUnitConnector | De connectornaam om de OE eenheid bij te werken. Deze is standaard Transplan_EmployeeUnits_. |
FilterEmployeeIdExpression | Deze expressie wordt gebruikt om te filteren bij het ophalen van medewerker OE eenheid. Zie Medewerkers synchroniseren tussen AFAS en Transplan | Filter ophalen medewerker t.b.v. OE eenheid voor een korte uitleg over dit filter. Standaard: |
FilterModifiedEmployeeExpression | Deze expressie wordt gebruikt als filter om de gewijzigde medewerkers uit AFAS op te halen. Zie Medewerkers synchroniseren tussen AFAS en Transplan | Filter ophalen gewijzigde medewerkers uit AFAS voor een korte uitleg over dit filter. Standaard: |
ModifiedEmployeeConnector | De connectornaam om de gewijzigde medewerkers uit AFAS op te vragen. |
ExcludeFunctionName | Uitgesloten functienaam. Voor medewerkers met deze functie wordt de OE eenheid niet bijgewerkt. Standaard gevuld met Kantoor. |
TakeItemsPerRequest | Hoeveel items per request worden opgevraagd. Standaard is dat 100 items per keer. |
DefaultDepartmentIdNewEmployee | Standaard planafdeling ID voor nieuwe medewerkers. Standaard staat die op 1. |
DefaultFunctionIdNewEmployee | Standaard functie ID voor nieuwe medewerkers. Standaard staat die op 1. |
DefaultEmployerIdNewEmployee | Standaard werkgever ID voor nieuwe medewerkers. Standaard staat die op 1. |
EmployersMapping | Dit is een key-value configuratie met daarin de werkgever ID uit AFAS als key en de ID van de werkgever uit Transplan als Value. |
FunctionsMapping | Dit is een key-value configuratie met daarin de waarde Dienstbetrekking uit AFAS als Key en de ID van de functie uit Transplan als Value. |
Voorbeeld configuratie
Filter ophalen medewerker t.b.v. OE eenheid
Om de OE eenheid bij te werken wordt in AFAS de medewerker opgehaald. Om een medewerker op te halen wordt gebruik gemaakt van een filter. Standaard wordt gefilterd op veld EmployeeId in AFAS. De waarde in dit veld in AFAS komt overeen met de Externe referentie van de medewerker in Transplan.
We hebben dit filter instelbaar gemaakt, zodat er mogelijk ook op andere velden gefilterd kan worden. Het is niet waarschijnlijk dat dit gebeurt, maar het kan wel.
Het filter is als volgt opgebouwd:
filterfieldids=EmployeeId&filtervalues={0}&take={1}&skip={2}
# | Omschrijving |
---|---|
filterfieldids | Deze moet de veldnaam bevatten waarop gefilterd moet worden in AFAS. Het veld moet (uiteraard) bekend zijn in AFAS. Standaard is dit EmployeeId. |
filtervalues | De waarde om te filteren. In de service wordt de {0} ingevuld met de Externe referentie code van de medewerker uit Transplan. |
take | Geeft aan hoeveel items per request opgevraagd moet worden. |
skip | Geeft aan hoeveel records overgeslagen moeten worden. Als er meer dan bijv. 100 items opgevraagd worden, dan wordt bij de tweede keer de skip waarde ingevuld met 100 om de volgende 100 items op te halen. |
De waarde take en skip moeten altijd opgenomen worden in het filter.
Filter ophalen gewijzigde medewerkers uit AFAS
Om gewijzigde medewerkers uit AFAS op te halen moet gefilterd worden op een datum veld in AFAS. Omdat het nog niet helemaal zeker is of dit het juiste veld is, hebben we dit filter ook opgenomen in de configuratie.
Het filter is als volgt (standaard) opgebouwd:
filterfieldids=Gewijzigd_op&filtervalues={0}&operatortypes=2&take={1}&skip={2}
# | Omschrijving |
---|---|
filterfieldids | Deze moet de veldnaam bevatten waarop gefilterd moet worden in AFAS. Het veld moet (uiteraard) bekend zijn in AFAS. Standaard is dit Gewijzigd_op. |
filtervalues | De waarde om te filteren. In de service wordt de {0} ingevuld met de LastSynchronized datum/tijd waarde uit tabel EmployeeSyncConfigurations. |
take | Geeft aan hoeveel items per request opgevraagd moet worden. |
skip | Geeft aan hoeveel records overgeslagen moeten worden. Als er meer dan bijv. 100 items opgevraagd worden, dan wordt bij de tweede keer de skip waarde ingevuld met 100 om de volgende 100 items op te halen. |
De waarde take en skip moeten altijd opgenomen worden in het filter.