ECD Koppeling

Doel

Het doel van de ECD koppeling is het realiseren van een gegevensstroom tussen een ECD-systeem en Roosterplanning. Uitgangspunt is enkelvoudige administratie in de twee aparte systemen met als resultaat dat de systemen elkaar aanvullen en versterken.

Werking

  1. In basis is Roosterplanning verantwoordelijk voor de personeelsplanning.

    1. enkele dagen voor realisatie wordt het actuele rooster gedeeld met het ECD

    2. mutaties worden op ingestelde frequentie gedeeld met het ECD

  2. Het ECD zorgt voor de cliënt planning.

    1. routeplanning en koppelen van de medewerker aan de cliënt

    2. de medewerker administreert de gerealiseerde tijd

    3. het ECD maakt een exportbestand van de gerealiseerde uren en deelt deze met Roosterplanning

Visueel

Specificatie

Export uit het ECD

  • In onderstaande tabel zijn de aan te leveren velden per ECD aangeduid met een X.

  • Vanuit het ECD wordt een csv-bestand aangemaakt met per regel de aan te leveren velden, gescheiden door een ‘,’ (komma).

  • Per veld geldt het volgende formaat:

o   Personeelsnummer (verplicht)

o   AfspraakID (verplicht): het ID van de afspraak zoals deze in het ECD-systeem staat

o   Starttijd (verplicht): Begindatum en -tijd in de vorm YYYY-MM-DD hh:mm:ss

o   Eindtijd (verplicht): Einddatum en – tijd in de vorm YYYY-MM-DD hh:mm:ss

o   Opmerking (optioneel)

o   Dienstverbandvolgnummer (optioneel)

o   Inzetrooster (optioneel)

  • De eerste regel van het bestand bevat de aanduiding van de gebruikte kolommen in dezelfde volgorde waarin deze in de rest van het bestand staan, bijvoorbeeld: PERSONEELSNUMMER,DIENSTVERBANDVOLGNUMMER,INZETROOSTER,AFSPRAAKID,STARTTIJD,EINDTIJD,OPMERKING

  • De kolomnamen moeten exact overeenkomen (ongevoelig voor hoofdletters), opdat de koppeling weet welke velden er in welke volgorde in het uploadbestand zitten.

  • Als het Dienstverband volgnummer wordt aangeleverd, vult Roosterplanning dit aan op het Personeelsnummer.

  • Een voorbeeld van een ingevulde regel voor USER is: 10000,7276425,2021-01-21 01:05:00,2021-01-21 02:25:00

  • Alle afspraken krijgen in Roosterplanning één dienstcode.

  • Het verwijderen van afspraken dient altijd in beide systemen handmatig te gebeuren. Dit houdt in dat wanneer een afspraak in het ECD wordt verwijderd, gecheckt moet worden of deze afspraak al in Roosterplanning staat. Als dit het geval is, moet de afspraak ook uit Roosterplanning verwijderd worden.

  • Bovenstaande geldt ook voor het verwijderen van een medewerker uit een afspraak. Dit houdt in dat wanneer een afspraak in het ECD wordt verwijderd, gecheckt moet worden of deze afspraak al in Roosterplanning bij de medewerker staat. Als dit het geval is, moet de afspraak ook uit Roosterplanning verwijderd worden.

  • Het Afspraak ID is geen unieke waarde. Echter is het Afspraak ID in combinatie met het personeelsnummer wel altijd uniek.

Import in Roosterplanning

Alle regels in het bestand moeten in Roosterplanning altijd leiden tot een dienst met een bepaalde code, waarbij:

  • Alle afspraken met hetzelfde persoonsnummer en dezelfde begindatum in één dienst terechtkomen.

  • De begintijd en de eindtijd worden afgerond naar dichtstbijzijnde kwartier. Dus 17:35 wordt 17:30 en 15:42 wordt 15:45. Als dit leidt tot dezelfde begin- en eindtijd (bijvoorbeeld begintijd 12:25 en eindtijd 12:35 worden begintijd 12:30 en eindtijd 12:30) dan komt de afspraak niet in Roosterplanning (levert foutmelding op). 7,5 minuut wordt naar het dichtstbijzijnde kwartier naar boven afgerond.

  • Afspraken worden geweigerd als ze:

o   overlappen met andere afspraken van dezelfde medewerker (afspraken van dezelfde medewerker die overlappend in het ECD staan).

o   overlappen met een dienst met soort werk ‘Paraat', 'Oproep crisisdienst', 'Verschoven dienst', 'Slaapdienst' in Roosterplanning. Met de toestand van een dienst in Roosterplanning wordt géén rekening gehouden. Dus ook afspraken die overlappen met toestand verlof worden geweigerd (verlof op dezelfde dag mag wel, zolang er maar geen overlap is).

o   op een datum beginnen waarvan de urenverantwoording al geaccordeerd is. 

o   van een in Roosterplanning onbekende medewerker zijn.

o   van een medewerker zijn in Roosterplanning voor zijn datum in dienst of na zijn datum uit dienst.

o   van een medewerker zijn in Roosterplanning die in een rooster zit dat niet de bepaalde dienst heeft.

o   vallen op een datum buiten het gepubliceerde rooster.

o   horen bij een persoonsnummer niet uniek herleid kan worden naar een ingeplande medewerker (resource) in Roosterplanning.

o   in algemene zin conflicteren met de regels voor het inzetten van diensten in Roosterplanning.

  • Er wordt eerst gecontroleerd of het CSV bestand 100% aan het juiste format voldoet. Als dit niet het geval is, dan wordt het gehele bestand geweigerd.

  • Als er records binnenkomen met een Ecd ID dat al eerder verwerkt is in Roosterplanning, dan wordt deze opnieuw verwerkt mits deze a) afwijkend is van wat er aanvankelijk ge-upload was én b) er geen validatie fout optreedt 

  • Er is logging van fouten in Roosterplanning. Dit gebeurt op de volgende manier. Als je een upload doet, krijg je meteen een overzicht van de verwerkte afspraken. Per afspraak is duidelijk of de afspraak is ingezet (groen) of niet is verwerkt (rood). Als een afspraak niet is verwerkt geeft Roosterplanning een foutmelding.

Import in Roosterplanning - USER

Alle regels in het bestand moeten in Roosterplanning altijd leiden tot een dienst met een bepaalde code, waarbij:

  • Er geen opmerkingen worden geplaatst in de dienst.

Import in Roosterplanning - EVA

Alle regels in het bestand moeten in Roosterplanning altijd leiden tot een dienst met een bepaalde code, waarbij:

  • De inhoud van het veld ‘Opleiding’ wordt getoond als opmerking in de dienst.

  • Als er meerdere scholingen op één dag voorkomen voor één persoon, dan wordt hiervoor slechts één scholingsdienst aangemaakt. De onderliggende tijden van deze dienst komen overeen met de begin- en eindtijden van de scholingen. De inhoud van de ‘Opleiding’ velden worden samengevoegd tot één opmerking (comma-separated).

Implementatie

  • Bepaal de dienstcode die de ingelezen afspraken in Roosterplanning moeten krijgen.

  • Bepaal welke afspraken in het exportbestand worden opgenomen. (Bijvoorbeeld: “Alle geregistreerde afspraken van het type ‘Crisis buiten kantooruren’ worden in het exportbestand opgenomen.”)

  • Bepaal over welke periode het exportbestand afspraken aanlevert. (Bijvoorbeeld: “Het exportbestand bestaat uit afspraken die in de laatste 2 maanden hebben plaatsgevonden.”)

  • Bepaal wat er moet gebeuren met indirecte tijd en reistijd voor en na de afspraak. (Bijvoorbeeld: “Indirecte tijd en reistijd worden verrekend met de begin- en eindtijd van de afspraak. De begintijd wordt vervroegd met de indirecte tijd_voor en reistijd_voor. De indirecte tijd_na en reistijd_na worden bij de eindtijd opgeteld.”)

  • Bepaal de periode waarna en de frequentie waarmee het exportbestand uit het ECD wordt gehaald en in Roosterplanning wordt geüpload. Kies deze zodanig dat het overgrote deel van de afspraken ongewijzigd blijft.

Implementatie - USER

Onderstaande SQL wordt in USER uitgevoerd om het exportbestand te vormen:

Select meap_applicatienummer as Personeelsnummer,

agst_nummer as AfspraakID,
agme_vanaf - (agme_indirectetijd_voor + agme_reistijd_voor)/1440 as Begin,
agme_tm + (agme_indirectetijd_na + agme_reistijd_na)/1440 as Eind

from agenda_stam

inner join agenda_medewerker

on agme_agenda_stam = agst_nummer

inner join medewerker_instantie

on mwin_medewerker = agme_medewerker

left join medewerker_applicatie

on meap_medewerker_instantie = mwin_nummer and

meap_applicatie = 1

where add_months(agst_vanaf, 2) > sysdate and

                agst_activiteit = 11 and

agst_geregistreerd like 'J'