/
Medewerkers synchroniseren tussen AFAS en Transplan

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.

image-20241127-141612.png

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:

image-20241128-120520.png

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

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

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

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

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:
filterfieldids=EmployeeId&filtervalues={0}&take={1}&skip={2}

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:
filterfieldids=Gewijzigd_op&filtervalues={0}&operatortypes=2&take={1}&skip={2}

ModifiedEmployeeConnector

De connectornaam om de gewijzigde medewerkers uit AFAS op te vragen.
Standaard is dat Transplan_Medewerker_stamgegevens

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

{ "ApiEndpoint": "https://98504.resttest.afas.online/ProfitRestServices/connectors/", "ApiToken": "<token><version>1</version><data></data></token>", "EmployeeOrgUnitConnector": "Transplan_EmployeeOrgUnits_", "FilterEmployeeIdExpression": "filterfieldids=EmployeeId&filtervalues={0}&take={1}&skip={2}", "FilterModifiedEmployeeExpression": "?filterfieldids=Gewijzigd_op&filtervalues={0}&operatortypes=2&take={1}&skip={2}", "ModifiedEmployeeConnector": "Transplan_Medewerker_stamgegevens", "ExcludedFunctionName": "Kantoor", "TakeItemsPerRequest": 100, "StatusIdNewEmployee": 2, "DefaultDepartmentIdNewEmployee": 1, "DefaultFunctionIdNewEmployee": 1, "DefaultEmployerIdNewEmployee": 1, "EmployerMappings": { "01": 1 }, "FunctionsMapping": { "Kantoor": 11, "Chauffeurs": 6 } }

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

#

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

#

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.

Related content

Standaard gedrag
Standaard gedrag
More like this
2.3 Medewerkers
2.3 Medewerkers
More like this
Releasenotes Transplan 2.21.6
Releasenotes Transplan 2.21.6
More like this
Medewerkers
More like this