Ga naar inhoud

Webservices

SOAP webservice operaties voor EasyFlex.

De webservice is onderverdeeld in de volgende categorieën:

Algemeen

De Easyflex webservices bieden een set van operaties aan waarmee informatie uit het Easyflex systeem kan worden opgevraagd en/of worden gewijzigd. De operaties zijn voornamelijk gericht op het raadplegen en bewerken van gegevens welke betrekking hebben op relaties en flexwerkers. De algemene gegevens en de gegevens over de uitzendorganisatie zelf zijn alleen te raadplegen. De Easyflex webservices kunnen geïmplementeerd worden binnen een website om op deze manier flexwerkers en relaties (gebruikers) toegang te verlenen tot de voor hen relevante gegevens. De intercedent realiseert dit door voor de betreffende flexwerker of relatie een gebruikersaccount aan te maken waarbij een gebruikersnaam en wachtwoord wordt gegenereerd. Met deze toegangsgegevens kan vervolgens worden ingelogd om gegevens op te vragen of te bewerken. Koppeling met webservices is niet mogelijk tussen Easyflex Lite en uw eigen website.

Webservice

Inloggen

Om er voor te zorgen dat een flexwerker of relatie alleen toegang heeft tot de voor hem/haar relevante gegevens, is het nodig dat zij inloggen met de aan hen persoonlijk toegekende gebruikersnaam en wachtwoord. Bij een aanroep naar de inlogoperatie (wm_inloggen_verify) worden de inloggegevens gecontroleerd en wordt bij een succesvolle inlogpoging een sessiecode afgegeven waarmee de gebruiker voor een bepaalde tijd toegang wordt verleend. Bij iedere aanroep (request) waarvoor een sessiecode vereist is wordt steeds een nieuwe sessiecode teruggemeld. Deze sessiecode dient dan weer gebruikt te worden bij een volgende aanroep. Alleen op deze manier blijft de gebruiker ingelogd. Uit veiligheidsoverwegingen dient er na een onderbreking opnieuw te worden ingelogd. Hierdoor wordt voorkomen dat gebruikers oneindig lang ingelogd blijven of dat gebruikers toegang kunnen krijgen tot de gegevens van een andere gebruiker.

De maximale periode van inactiviteit is afhankelijk van het accounttype:

Accounttype Maximale sessieduur
Flexwerker 10 minuten
Relatie en medewerker van een relatie 30 minuten

De ingelogde gebruiker kan zijn gebruikersnaam en wachtwoord zelf wijzigen met wm_inloggen_update. Voor het geval een gebruiker zijn inloggegevens is vergeten zijn de operaties wm_webuser_check en wm_webuser_update beschikbaar; deze werken zonder sessiecode en worden op werkmaatschappijniveau geautoriseerd.

Overzicht operaties

De Easyflex webservice-operaties zijn onderverdeeld in zes categorieën:

  1. Easyflex operaties Deze gegevens van algemene aard zijn door Easyflex samengesteld, zijn niet klant gebonden en zijn beschikbaar voor raadpleging. Het betreft functies, branches, vaardigheden, opleidingen en landen. Deze gegevens zijn hiërarchisch opgebouwd: per onderwerp kan een enkele waarde worden opgevraagd (ef_functies_read), kan er gezocht worden (ef_functies_search) en kan de boomstructuur naar boven en naar beneden worden doorlopen (ef_functies_parents en ef_functies_children).
  2. Werkmaatschappij Dit zijn klant gerelateerde gegevens welke kunnen worden opgevraagd. Voorbeelden hiervan zijn de bedrijfsnaam, locatiegegevens, bedrijfslogo (afbeelding), memo's en communicatiegegevens. Ook kan een zoekactie worden uitgevoerd op de beschikbare vacatures van de klant en kan op een vacature worden gereageerd. Daarnaast bevat deze categorie de operaties voor het inloggen en het beheren van de inloggegevens, het inschrijven van nieuwe kandidaten en het importeren van urenbestanden.
  3. Flexwerkers Voor flexwerkers is het mogelijk algemene gegevens in te zien zoals: persoonsgegevens, communicatiegegevens, opleidingen, werkervaringen, beschikbaarheid, verhinderdata, reserveringsstanden en de foto van de flexwerker. Loonspecificaties en jaaropgaven kunnen worden gedownload in PDF formaat.
  4. Relaties Voor relaties is het mogelijk hun bedrijfsgegevens zoals factuur- en meldadressen, kostenplaatsen, contactpersonen, communicatiegegevens e.d. te raadplegen. Ook de plaatsingen, de aanvragen en de vacatures van de relatie kunnen worden opgevraagd. Facturen kunnen worden gedownload in PDF formaat.
  5. Combinatie Dit zijn de operaties van het urenportaal (rf_*) die zowel voor een flexwerker als voor een relatie beschikbaar zijn. Hiermee kunnen urendeclaraties worden opgevraagd en ingevuld, kan een extra declaratie worden toegevoegd en kan een declaratie gereed worden gemeld of worden geaccordeerd. Omdat een declaratie gedeeld wordt door de flexwerker en de inlener, bepaalt het accounttype van de ingelogde gebruiker welke gegevens zichtbaar en wijzigbaar zijn: een flexwerker werkt met de _fw-velden, een relatie met de _rl-velden. Met rf_declaratie_settings kunnen de instellingen van het urenportaal worden opgevraagd, zodat een eigen portaal kan aansluiten op de in Easyflex vastgelegde werkwijze.
  6. Overig Relaties hebben de mogelijkheid extra gebruikers aan te maken zodat medewerkers van de relatie toegang kunnen krijgen tot de voor hen relevante gegevens. Met user_list, user_insert, user_update en user_delete kan de relatie deze gebruikers zelf beheren. Deze operaties kunnen alleen worden aangeroepen door een gebruiker met beheersrechten.

Datamodel

Hieronder treft u het datamodel aan met de objecten die met de verschillende operaties kunnen worden opgevraagd. Alle relaties zijn "1-op-1" relaties, tenzij deze zijn aangegeven met een *. In dat geval betreft het een "1-op-0-of-meer" relatie.

Datamodel

Sequence

Hieronder treft u als voorbeeld een sequencediagram aan van een gebruiker die inlogt en zijn persoonsgegevens teruggemeld krijgt.

Sequence webservice

  1. De gebruiker (in het voorbeeld een flexwerker) bezoekt de website. De website stuurt de inlogpagina terug omdat de gebruiker nog niet heeft ingelogd. Dit kan bijvoorbeeld gecontroleerd worden aan de hand van een cookie die opgeslagen wordt op de client.
  2. De inlogpagina wordt teruggestuurd. Hierin bevindt zich meestal een formulier met een aantal invoervelden voor de gebruikersnaam en het wachtwoord.
  3. De gebruiker heeft de gegevens ingevuld en probeert in te loggen door bijvoorbeeld op de knop te drukken waardoor het formulier met gebruikersnaam en wachtwoord verzonden wordt.
  4. De website ontvangt de gebruikersnaam en het wachtwoord en probeert in te loggen met deze gegevens. Hij roept de webservice-operatie 'wm_inloggen_verify' aan.
  5. De webservice heeft de inloggegevens gecontroleerd en correct bevonden. Er is een sessiecode afgegeven waarmee de ingelogde gebruiker toegang wordt verleend tot zijn gegevens.
  6. De sessiecode wordt opgeslagen op de website. Dit kan bijvoorbeeld met PHP in een sessievariabele, maar dit kan ook als cookie opgeslagen worden bij de gebruiker.
  7. De website laat na het inloggen standaard de persoonsgegevens zien van de ingelogde gebruiker. Hiervoor roept hij 'fw_persoonsgegevens' aan met de zojuist verkregen sessiecode.
  8. De webservice heeft de persoonsgegevens opgezocht en levert de data. Tevens is er een nieuwe sessiecode afgegeven.
  9. De oude sessiecode moet vervangen worden door de nieuwe sessiecode om te voorkomen dat de eindgebruiker automatisch wordt uitgelogd.
  10. Met de verkregen persoonsgegevens genereert de website een HTML pagina met bijvoorbeeld een tabel of een lijst van gegevens.
  11. De gegenereerde pagina wordt teruggemeld aan de eindgebruiker. Deze ziet nu zijn persoonlijke gegevens zoals deze in de database van Easyflex zijn vastgelegd.

Hieronder treft u als voorbeeld een sequencediagram aan van het verloop van een declaratie. Het betreft een declaratie die door de flexwerker en inlener digitaal aangeleverd moet worden. Als eerste vult de flexwerker zijn uren in, daarna de relatie. Dit is slechts een voorbeeld, de volgorde zou ook andersom kunnen. Het kan ook zo zijn dat de relatie of flexwerker de declaratie helemaal niet digitaal hoeft in te vullen. In dit geval zal de declaratie niet zichtbaar zijn voor de relatie / flexwerker. Zowel de flexwerker als de relatie gebruiken hiervoor dezelfde operaties uit de categorie Combinatie; het accounttype van de ingelogde gebruiker bepaalt welke velden van de declaratie worden bijgewerkt.

Sequence declaratie

  1. De flexwerker vult zijn gewerkte uren / kort verzuim / opgenomen feestdagen en eventuele vergoedingen in. (rf_declaratie_regels_update; de urenregels worden meegestuurd in rf_decl_uren en de vergoedingen in rf_decl_vergoedingen) Welke looncomponenten voor deze declaratie ingevuld mogen worden kan worden opgevraagd met rf_declaratie_looncomponent.
  2. De flexwerker meldt de declaratie gereed. (rf_declaratie_update; rf_decl_processtatus = akkoord) Omdat de flexwerker is ingelogd worden rf_decl_status_fw en rf_decl_gereed_fw bijgewerkt. De status van de declaratie is nu "wacht op accordering inlener". Zolang de flexwerker nog niet klaar is met invullen kan hij tussentijds opslaan met rf_decl_processtatus = bezig of gereed.
  3. De inlener bevraagt de uren die door de flexwerker zijn ingevuld. (rf_declaraties voor de declaraties zelf en rf_declaratie_regels voor de bijbehorende regels) De inlener kan deze uren als basis gebruiken voor zijn urendeclaratie.
  4. De inlener vult de uren in waarop de flexwerker heeft gewerkt. (rf_declaratie_regels_update; de inlener vult rf_decl_uur_aantal_rl in plaats van rf_decl_uur_aantal_fw)
  5. De inlener accordeert de declaratie. (rf_declaratie_update; rf_decl_processtatus = akkoord) Nu worden rf_decl_status_rl en rf_decl_gereed_rl bijgewerkt en wordt vastgelegd wanneer en door welke gebruiker er is geaccordeerd. De status van de declaratie is nu "In behandeling". Heeft de inlener zelf geen uren ingevuld, dan worden bij het accorderen automatisch de door de flexwerker opgegeven uren en vergoedingen overgenomen. Het is dus niet noodzakelijk dat beide partijen de uren invullen; de inlener kan volstaan met het geven van akkoord.

Of accordering is toegestaan en op welk niveau dat moet gebeuren (per declaratie, per periode of per periode en kostenplaats) is een instelling in Easyflex. Deze instelling is samen met de eventuele accorderingsdisclaimer op te vragen met rf_declaratie_settings.