Opprett en egendefinert integrering for å synkronisere administrasjonssystemet for arbeidsstyrken med Skift
Oversikt
Integrer Skift, planlegg administrasjonsappen i Microsoft Teams, med systemet for administrasjon av arbeidsstyrken (WFM). Med denne integreringen kan arbeidsstyrken i frontlinjen vise og administrere tidsplanene direkte i Skift.
Denne artikkelen veileder deg gjennom hvordan du oppretter en kobling ved hjelp av Microsoft Graph-API-en for å legge til rette for denne integreringen.
Du kan konfigurere integreringen for enten en enveis datasynkronisering eller en toveis datasynkronisering.
Enveissynkronisering (WFM system til Skift): I dette oppsettet kan du planlegge at data i WFM-systemet synkroniseres til Skift. Koblingen leser dataene i WFM-systemet og skriver dem til Skift. Eventuelle endringer som er gjort i Skift av brukere, gjenspeiles imidlertid ikke i WFM systemet.
Toveis synkronisering (WFM system og skift): Dette oppsettet tillater en toveis synkronisering. Planlegg at data i WFM-systemet synkroniseres til Skift, og eventuelle endringer som gjøres i skift av brukere, synkroniseres tilbake til WFM-systemet. Koblingen validerer og godkjenner endringene brukerne gjør i Skift i henhold til forretningsregler som håndheves av WFM-systemet før endringene skrives til Skift.
Obs!
Hvis du bruker UKG Pro WFM, Blue Yonder WFM eller Reflexis WFM, kan du også bruke en administrert kobling til å integrere Skift med WFM systemet. Hvis du vil ha mer informasjon, kan du se Skift-koblinger.
Terminologi som brukes i denne artikkelen
Begrep | Beskrivelse |
---|---|
kobling | En app som synkroniserer tidsplandata mellom WFM-systemet og Skift. |
integrering av arbeidsstyrken | En enhet som definerer krypteringsmetoden for kommunikasjon, tilbakeringingsnettadressen for koblingen og Skift-enhetene som skal synkroniseres. |
Før du starter
Forutsetninger
- Bestem hvilke data du vil synkronisere i henhold til dine forretningsbehov.
- Forstå godkjennings- og godkjenningskonseptene i Microsofts identitetsplattform. Se grunnleggende om godkjenning og autorisasjon.
- Admin nødvendige roller:
- Minst en administrator for skyprogram for å registrere en app i Microsoft Entra administrasjonssenter
- Global administrator for å registrere integrering av arbeidsstyrken
Bli kjent med integreringsprosessen
Her er en oversikt over integreringstrinnene. Se gjennom denne informasjonen for å få en forståelse av den generelle prosessen, inkludert hvem som utfører hvert trinn.
Trinn | Enveissynkronisering | Toveis synkronisering | Hvem som utfører dette trinnet |
---|---|---|---|
1 | Opprett koblingen:
|
Opprett koblingen:
|
Developer |
2 | Registrere en app i Microsoft Entra administrasjonssenter | Registrere en app i Microsoft Entra administrasjonssenter | En konto som minst er administrator for skyprogram |
3 | Opprett team og tidsplaner for synkronisering | Opprett team og tidsplaner for synkronisering | Utvikler- eller Teams-administrator |
4 | Registrer deg og aktiver integrering av arbeidsstyrken: | Registrer deg og aktiver integrering av arbeidsstyrken: | Trinn 4a: Global administrator Trinn 4b: Utvikler |
Trinn 1: Opprett koblingen
Gjør følgende for å opprette koblingen:
- Trinn 1a: Synkroniser endringer gjort i Skift til WFM-systemet
- Trinn 1b: Synkronisere data fra WFM systemet til Skift
Trinn 1a: Synkroniser endringer gjort i Skift til WFM-systemet
Hvis du vil konfigurere koblingen til å motta og behandle forespørsler fra Skift, må du implementere følgende endepunkter:
Fastslå url-adressen og URL-adressene for endepunktet
Den grunnleggende URL-adressen (webhook) er {url}/v{apiVersion}
, der url og apiVersion er egenskapene du angir i workforceIntegration-objektet når du registrerer integreringen av arbeidsstyrken.
De relative banene til URL-adressene for endepunktet er som følger:
- /forbinde:
/connect
- /oppdatering:
/teams/{teamid}/update
- /lese:
/teams/{teamid}/read
Hvis for eksempel URL-adressen er https://contosoconnector.com/wfi
og apiVersion er 1
:
- Den grunnleggende URL-adressen er
https://contosoconnector/com/wfi/v1
. - /connect-endepunktet er
https://contosoconnector/wfi/v1/connect
. - /update-endepunktet er
https://contosoconnector/wfi/v1/teams/{teamid}/update
. - /read-endepunktet er
https://contosoconnector/wfi/v1/teams/{teamid}/read
.
Kryptering
Alle forespørsler krypteres ved hjelp av AES-256-CBC-HMAC-SHA256. Du angir den delte hemmelige nøkkelen når du registrerer integreringen av arbeidsstyrken. Svar som sendes tilbake til Skift, bør ikke krypteres.
Endepunktene
POST /connect
Skift kaller dette endepunktet for å teste tilkoblingen når du registrerer integreringen av arbeidsstyrken. Et vellykket svar returneres bare hvis dette endepunktet returnerer et HTTP-svar 200 OK
.
Eksempel
Anmodning
ConnectRequest
{
"tenantId": "a1s2s355-a2s3-j7h6-f4d3-k2h9j4mqpz",
"userId": "4fbc12d7-1234-56ef-8a90-bc123d45678f"
}
Svar
Returner HTTP 200 OK
POST /teams/{teamid}/update
Skift kaller dette endepunktet for å få godkjenning når en endring gjøres i en Shifts-enhet i en tidsplan som er aktivert for integrering av arbeidsstyrken. Hvis dette endepunktet godkjenner forespørselen, lagres endringen i Skift.
Siden WFM systemet er systemet for post, bør den først prøve å gjøre endringen i det WFM systemet når koblingen mottar en forespørsel til dette endepunktet. Hvis endringen er vellykket, returnerer du vellykket. Ellers returneres feil.
Skift kaller dette endepunktet for hver endring (inkludert endringer startet fra koblings-/WFM systemet). Hvis koblingen sendte en oppdatering til Skift ved hjelp av Graph API og la til toppteksten X-MS-WFMPassthrough: workforceIntegratonId
, vil forespørselen som kommer til dette endepunktet, ha samme topptekst, som lar deg identifisere og håndtere disse forespørslene på riktig måte. Du kan for eksempel returnere suksess uten å gjøre den samme endringen i det WFM systemet som det ville vært overflødig, og kan føre til at koblingen blir sittende fast i en uendelig løkke.
Diagrammet nedenfor viser flyten av data.
Obs!
Hvis du vil ha mer informasjon om forespørsels- og svarmodeller, kan du se WfiRequest i delen referanse for endepunkt i denne artikkelen.
Returner svarkode
Ethvert svar fra integreringen, inkludert en feil, må ha en HTTP-svarkode 200 OK
. Svarteksten må ha statusen og feilmeldingen som gjenspeiler riktig feiltilstand for delanrop. Ethvert svar fra integreringen annet enn 200 OK
det som behandles som en feil og returneres til anroperen (klient eller Microsoft Graph).
Hvis du vil konfigurere en enveissynkronisering, gjør du Skift skrivebeskyttet
For en enveissynkronisering må du skrivebeskytte Skift slik at brukere ikke kan gjøre endringer i Skift. Hvis du vil gjøre Skift skrivebeskyttet, returnerer du et mislykket svar for alle forespørsler fra Skift.
Hvis du for eksempel vil blokkere brukere fra å gjøre endringer i skift i tidsplanen, må dette endepunktet returnere et feilsvar når det mottar en forespørsel om en shift
enhet.
Eksempel
Anmodning
WfiRequestContainer
Følgende eksempel viser en forespørsel fra Skift som spør om et skift, hvis ID er SHFT_12345678-1234-1234-1234-1234567890ab og har egenskapene oppført i brødteksten, kan lagres i Skift. Denne forespørselen ble utløst når en bruker oppretter et skift i Skift.
{
"requests": [
{
"id": "SHFT_12345678-1234-1234-1234-1234567890ab",
"method": "POST",
"url": "/shifts/SHFT_12345678-1234-1234-1234-1234567890ab",
"headers": {
"X-MS-Transaction-ID": "1",
"X-MS-Expires": "2024-10-11T21:27:59.0134605Z"
},
"body": {
"draftShift": {
"activities": [],
"isActive": true,
"startDateTime": "2024-10-12T15:00:00.000Z",
"endDateTime": "2024-10-12T17:00:00.000Z",
"theme": "Blue"
},
"isStagedForDeletion": false,
"schedulingGroupId": "TAG_a3e0b3f1-4a5c-4c2e-8eeb-5b8c3d1e3f8b",
"userId": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"createdDateTime": "2024-10-11T21:27:28.762Z",
"lastModifiedDateTime": "2024-10-11T21:27:28.762Z",
"lastModifiedBy": {
"user": {
"id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"displayName": "Adele Vance"
}
},
"id": "SHFT_12345678-1234-1234-1234-1234567890ab"
}
}
]
}
Svar
WfiResponse
Vellykket: Returner HTTP 200 OK
Dette eksemplet viser svaret som returneres hvis endepunktet godkjente forespørselen. I dette scenarioet lagres skiftet i Skift, og brukeren kan se skiftet i tidsplanen.
{
"responses": [
{
"id": "SHFT_12345678-1234-1234-1234-1234567890ab",
"status": 200,
"body": {
"eTag": "3f4e5d6c-7a8b-9c0d-1e2f-3g4h5i6j7k8l",
"error": null,
"data": null
}
}
]
}
Feil: Returner HTTP 200 OK
Dette eksemplet viser svaret som returneres hvis endepunktet avviste forespørselen. I dette scenarioet får brukeren feilmeldingen «Kan ikke legge til skiftet» i Skift.
{
"responses": [
{
"id": "SHFT_12345678-1234-1234-1234-1234567890ab",
"status": 500,
"body": {
"error": {
"code": "500",
"message": “Could not add the shift”
},
"data": null
}
}
]
}
POST /teams/{teamid}/read
Dette endepunktet håndterer forespørsler fra Skift for å hente kvalifiserte årsaker til fri eller kvalifiserte skift for bytteforespørsler for en bruker.
Obs!
Fra og med oktober 2024 støttes dette endepunktet bare i betaversjonen av Microsoft Graph-API-en. Du må også angi verdier for egenskapen eligibilityFilteringEnabledEntities når du registrerer integreringen av arbeidsstyrken.
Diagrammet nedenfor viser flyten av data.
Returner svarkode
Ethvert svar fra integreringen, inkludert en feil, må ha en HTTP-svarkode 200 OK
. Svarteksten må inneholde statusen og feilmeldingen som gjenspeiler riktig feiltilstand for delanrop. Ethvert svar fra integreringen annet enn 200 OK
det som behandles som en feil og returneres til anroperen (klient eller Microsoft Graph).
Eksempel: TimeOffReason
Anmodning
Følgende eksempel viser en forespørsel fra Skift som spør hvilke årsaker til at en bruker (bruker-ID aa162a04-bec6-4b81-ba99-96caa7b2b24d) er kvalifisert for. Denne forespørselen ble utløst når brukeren ber om fri i Skift.
{
"requests": [
{
"id": "aa162a04-bec6-4b81-ba99-96caa7b2b24d",
"method": "GET",
"url": "/users/aa162a04-bec6-4b81-ba99-96caa7b2b24d/timeOffReasons?requestType=TimeOffReason"
}
]
}
Svar
Vellykket: Returner HTTP 200 OK
Følgende svar viser at de kvalifiserte fridag-ID-ene for brukeren er «TOR_29f4a110-ae53-458b-83d6-00c910fe2fbc» og «TOR_8c0e8d07-ac1a-48dc-b3af-7bc71a62ff7d». I dette scenarioet ser brukeren de tilsvarende årsakene til fri i Skift.
{
"responses": [
{
"id": "aa162a04-bec6-4b81-ba99-96caa7b2b24d",
"status": 200,
"body": {
"data": [
"TOR_29f4a110-ae53-458b-83d6-00c910fe2fbc",
"TOR_8c0e8d07-ac1a-48dc-b3af-7bc71a62ff7d"
],
"error": null
}
}
]
}
Feil: Returner HTTP 200 OK
I dette eksemplet returneres et feilsvar fordi koblingen ikke kan nå WFM systemet for å hente årsaker til fri for brukeren.
{
"responses": [
{
"id": "aa162a04-bec6-4b81-ba99-96caa7b2b24d",
"status": 503,
"body": {
"data": null,
"error": {
"code": "503",
"message": "Could not reach WFM"
}
}
}
]
}
Eksempel: SwapRequest
Anmodning
Følgende eksempel viser en forespørsel fra Skift som spør hvilke skift som er kvalifisert for et bytte med skiftet hvis ID er SHFT_5e2b51ac-dc47-4a66-83ea-1bbbf81ac029 mellom 2024-10-01T04:00:00.000000Z og 2024-11-01T03:59:59.9990000Z.
{
"requests": [
{
"id": "SHFT_5e2b51ac-dc47-4a66-83ea-1bbbf81ac029",
"method": "GET",
"url": "/shifts/SHFT_5e2b51ac-dc47-4a66-83ea-1bbbf81ac029/requestableShifts?requestType=SwapRequest&startTime=2024-10-01T04:00:00.0000000Z&endTime=2024-11-01T03:59:59.9990000Z"
}
]
}
Svar
Vellykket: Returner HTTP 200 OK
Følgende svar viser at skiftet kan byttes med skiftet hvis ID er SHFT_98e96e23-966b-43be-b90d-4697037b67af.
{
"responses": [
{
"id": "SHFT_5e2b51ac-dc47-4a66-83ea-1bbbf81ac029",
"status": 200,
"body": {
"data": ["SHFT_98e96e23-966b-43be-b90d-4697037b67af"],
"error": null,
}
}
]
}
Feil: Returner HTTP 200 OK
I dette eksemplet returneres et feilsvar fordi koblingen ikke kunne nå WFM-systemet for å hente kvalifiserte skift for en bytteforespørsel for brukeren.
{
"responses": [
{
"id": "SHFT_5e2b51ac-dc47-4a66-83ea-1bbbf81ac029",
"status": 503,
"body": {
"data": null,
"error": {
"code": "503",
"message": "could not reach WFM"
}
}
}
]
}
Trinn 1b: Synkronisere data fra WFM systemet til Skift
Bruk Skift-API-er i Microsoft Graph til å lese tidsplandata fra WFM-systemet og skrive dataene til Skift.
Hvis du for eksempel vil legge til et skift i Skift, bruker du API-en opprett skift .
Se Microsoft Graph API v1.0-referansen for Shifts-API-er, som er oppført under Skift-administrasjon.
Obs!
Toppteksten MS-APP-ACTS-AS
kreves i forespørsler og må inneholde ID-en (GUID) til brukeren appen din handler på vegne av. Vi anbefaler at du bruker bruker-ID-en til en teameier når du oppdaterer tidsplanen.
Diagrammet nedenfor viser flyten av data.
Første synkronisering
For den første synkroniseringen skal koblingen lese data i WFM-systemet og skrive dataene til Skift. Vi anbefaler at du synkroniserer to uker med fremtidige data.
Etter den første synkroniseringen
Etter den første synkroniseringen kan du velge å:
Oppdater skift synkront med endringer i WFM systemet: Send en oppdatering til Skift for hver endring som er gjort i WFM systemet.
Oppdater skift med endringer i WFM-systemet asynkront: Utfør en periodisk synkronisering ved å skrive alle endringer som oppstod i WFM-systemet innen en bestemt tidsramme (for eksempel 10 minutter) til Skift.
Alle skriveoperasjoner til Skift, inkludert skriveoperasjoner initiert av koblingen, utløser et kall til koblingens /update-endepunkt. Vi anbefaler at du inkluderer toppteksten
X-MS-WFMPassthrough: workforceIntegratonId
i alle skriveanrop, slik at koblingen kan identifisere og håndtere dem på riktig måte. Hvis for eksempel WFM-systemet startet endringen, må du godkjenne den uten å bruke en oppdatering på WFM-systemet.Obs!
Hvis du konfigurerer koblingen for en toveis synkronisering av data mellom WFM-systemet og Skift, utelater du endringer som er startet fra Skift i den periodiske synkroniseringen. Disse endringene er allerede skrevet i Skift.
Trinn 2: Registrere en app i Microsoft Entra administrasjonssenter
Følg disse trinnene for å registrere en app for koblingen i Microsofts identitetsplattform, konfigurere tillatelser for appen for å få tilgang til Microsoft Graph og få et tilgangstoken.
Logg deg på Microsoft Entra administrasjonssenter som minst en administrator for skyprogram.
Registrer appen. Hvis du vil ha en fremgangsmåte, kan du se Registrere et program med Microsofts identitetsplattform.
Tilordne schedule.ReadWrite.All-programtillatelsene til appen for bare apptilgang, og få et tilgangstoken.
Hvis du vil ha trinnvis veiledning, kan du se Få tilgang uten en bruker.
Tilgangstokenet bekrefter at appen er autorisert til å ringe Microsoft Graph ved hjelp av sin egen identitet ved hjelp av tillatelsen Schedule.ReadWrite.All . Den må inkluderes i godkjenningshodet for forespørsler.
Trinn 3: Opprett team og tidsplaner for synkronisering
Konfigurer teamene i Teams som du vil synkronisere. Du kan bruke eksisterende team eller opprette nye team.
Konfigurer team i Teams for å samsvare med teamene og plasseringene i WFM systemet. Sørg for at du legger til følgende personer i hvert team:
- Frontline-ledere som lageiere. Kontroller at du legger til brukeren i toppteksten
MS-APP-ACTS-AS
som teameier for hvert enkelt team. - Frontline arbeidere som teammedlemmer.
- Frontline-ledere som lageiere. Kontroller at du legger til brukeren i toppteksten
Opprett en tidsplan i Skift for hvert team. Hvis du vil ha mer informasjon, kan du se Opprette eller erstatte tidsplanen.
Legg til tidsplangrupper i tidsplanen for hvert team. Tidsplangrupper brukes til å gruppere ansatte basert på vanlige egenskaper i en gruppe. Tidsplangrupper kan for eksempel være avdelinger eller jobbtyper. Hvis du vil ha mer informasjon, kan du se planleggingsgruppens ressurstype.
Legg til ansatte i hver tidsplangruppe. Hvis du vil ha mer informasjon, kan du se Erstatt planleggingsgruppe.
Obs!
Du kan også bruke administrasjonssenteret for Teams til å konfigurere teamene og distribuere skift til teamene. Hvis du vil lære mer, kan du se:
Trinn 4: Registrere og aktivere integrering av arbeidsstyrken
En integrering av arbeidsstyrken definerer krypteringsinnstillingene for kommunikasjon mellom Skift og koblingen, nettadressen for tilbakeringinger fra Skift og enhetstypene som skal synkroniseres.
Følg disse trinnene for å registrere og aktivere integrering av arbeidsstyrken:
- Trinn 4a: Registrer integreringen av arbeidsstyrken
- Trinn 4b: Aktiver integrering av arbeidsstyrken for teamplanene dine
Trinn 4a: Registrere integrering av arbeidsstyrken i leieren
Du må være global administrator for å utføre dette trinnet.
Bruk API-en Create workforceIntegration til å registrere integreringen av arbeidsstyrken i leieren.
Her er et eksempel på en forespørsel.
POST https://graph.microsoft.com/v1.0/teamwork/workforceIntegrations/
{
"displayName": "Contoso integration",
"apiVersion": 1,
"encryption": {
"protocol": "sharedSecret",
"secret": "secret-value"
},
"isActive": true,
"url": "https://contosoconnector.com/wfi",
"supportedEntities": "Shift,SwapRequest,UserShiftPreferences,Openshift,OpenShiftRequest,OfferShiftRequest”,
}
Se tabellen nedenfor for mer informasjon. Hvis du vil ha mer informasjon, kan du se ressurstypen workforceIntegration.
Eiendom | Mer informasjon |
---|---|
apiVersion | API-versjon for url-adressen for tilbakeringing. Den grunnleggende URL-adressen består av url-egenskapen og denne egenskapen. |
Kryptering | Sett protokollen til sharedSecret . Den hemmelige verdien må inneholde nøyaktig 64 tegn. Bruk hemmeligheten til å dekryptere de krypterte JSON-nyttelastene som sendes til koblingens endepunkt fra Skift. Nyttelasten krypteres ved hjelp av AES-256-CBC-HMAC-SHA256. Appen skal trygt opprettholde denne hemmeligheten. For eksempel i et nøkkelhvelv. |
supportedEntities | Angi Skift-enhetene du vil at koblingen skal støtte for synkronisering. Skift kaller koblingens /update-endepunkt når noen av disse enhetene endres, slik at du kan godkjenne eller avvise endringen. Hvis du vil se listen over mulige verdier, kan du se ressurstypen workforceIntegration Notat Denne listen er en opplisting som kan utvikles. Du må bruke Prefer: include-unknown-enum-members forespørselshodet til å hente alle verdiene. |
eligibilityFilteringEnabledEntities |
Obs! Fra og med oktober 2024 støttes dette endepunktet bare i betaversjonen av Microsoft Graph-API-en. Angi Skift-enhetene du vil koble til, for å støtte filtrering av kvalifisering. Mulige verdier er:
Prefer: include-unknown-enum-members forespørselshodet til å hente alle verdiene. |
url-adresse | Nettadressen for integrering av arbeidsstyrken for tilbakeringinger fra Skift. Den grunnleggende URL-adressen består av denne egenskapen og apiVerson-egenskapen . |
Trinn 4b: Aktiver integrering av arbeidsstyrken for teamplanene dine
Aktiver integreringen av arbeidsstyrken på tidsplanene du vil administrere. Hvis du vil gjøre dette, kan du bruke API-en opprett eller erstatt tidsplan for å opprette eller oppdatere tidsplanen for teamene dine.
Her er et eksempel på en forespørsel.
POST https://graph.microsoft.com/v1.0/teams/{teamId}/schedule
{
enabled: true,
timezone: “America/New_York”,
workforceIntegrationIds: [ “workforceIntegrationId”]
}
- Angi workforceIntegrationId som ble generert da du registrerte integreringen av arbeidsstyrken.
- Du kan aktivere maksimalt én integrering av arbeidsstyrken etter en tidsplan. Hvis du inkluderer mer enn én workforceIntegrationId i forespørselen, brukes den første.
Feilsøking
Kobling
Når koblingen svarer på en forespørsel fra Skift, hva skjer hvis den returnerer en annen svarkode enn 200? Gjør det en forskjell hvis den returnerer en annen status enn 200 i svarteksten?
Det er en forskjell mellom disse to scenariene.
- Hvis koblingen returnerer en annen svarkode enn 200, prøver Skift å prøve endepunktene /read og /update flere ganger på nytt. Til slutt viser Skift en «Noe gikk galt. Integreringsoppsettet for arbeidsstyrken i teamet ditt har svart med ugyldige data.» Feilmelding.
- Hvis koblingen returnerer en annen status enn 200 i svarteksten, viser Skift en «Noe gikk galt. Beklager, men endringen kan ikke fullføres», feilmelding og slutter å prøve endepunktene på nytt.
Hva skjer hvis koblingen returnerer ugyldige data i svarteksten?
Skift prøver å prøve endepunktene /read og /update flere ganger på nytt. Til slutt viser Skift en «Noe gikk galt. Integreringen av arbeidsstyrken som er konfigurert i teamet, har svart med ugyldige data.» Feilmelding.
Hvordan identifisere om forespørselen opprinnelig ble gjort i Skift eller i det WFM systemet for å forhindre en uendelig løkke?
Legg til toppteksten i X-MS-WFMPassthrough: workforceIntegratonId
alle oppkall og oppdateringer for å identifisere/ignorere endringene som utløses av koblingen. Dette toppteksten brukes til å angi at forespørselen utføres på grunn av et tidligere kall som ble gjort av koblingen til Graph API for å synkronisere data fra WFM-systemet til Skift.
Registrering av integrering av arbeidsstyrken
Jeg registrerte integreringen av arbeidsstyrken og spesifiserte «eligibilityFilteringEnabledEntities», inkludert «SwapRequest, OfferShiftRequest og TimeOffReason», men svarteksten viser ikke listen «eligibilityFilteringEnabledEntities».
Kvalifiseringsfiltrering støttes for øyeblikket gjennom https://graph.microsoft.com/beta
endepunktet, ikke https://graph.microsoft.com/v1
endepunktet.
Jeg registrerte integreringen av arbeidsstyrken og la til «supportedEntities», men fikk et svar på 400 Bad Request og en «Invalid payload: Requested value 'shift, ....' ble ikke funnet.» melding
Kontroller at hver Shifts-enhet i brødteksten for listeforespørselen supportedEntities
starter med en stor bokstav. For eksempel "supportedEntities":"Shift,SwapRequest,OpenShift"
.
Jeg registrerte integreringen av arbeidsstyrken og implementerte endepunktene /connect, /update og /read, men webhooken fungerer ikke.
Kontroller at integreringen av arbeidsstyrken er aktivert for teamets tidsplan. Kontroller i tillegg at egenskapene url og apiVersion er riktige.
Endepunktreferanse
Anmodning
ConnectRequest
Eiendom | Type: | Beskrivelse |
---|---|---|
tenantId | Streng | ID for leieren for integrering av arbeidsstyrken |
userId | Streng | ID-en til brukeren for integrering av arbeidsstyrken |
{
"tenantId": "string",
"userId": "string"
}
WfiRequestContainer
Eiendom | Type: | Beskrivelse |
---|---|---|
Forespørsler | WfiRequest-samling | Liste over WfiRequests |
{
"requests": [
{
"id": "string",
"method": "string",
"url": "string",
"headers": {
"X-MS-Transaction-ID": "string",
"X-MS-Expires": "string (DateTime)"
},
"body": "ShiftsEntity"
}
]
}
Antall elementer i en forespørsel:
- I de fleste tilfeller har en forespørsel ett element.
- Noen forespørsler, for eksempel godkjenning av bytteskiftforespørsel, har fem elementer: én PUT-bytteforespørsel, to DELETE-skift (eksisterende skift) og to POST-skift (nye skift).
WfiRequest
Eiendom | Type: | Beskrivelse |
---|---|---|
id | Streng | ID for enheten |
metode | Streng | Metoden startet på elementet. Eksempel: , POST , PUT GET , . DELETE |
url-adresse | Streng | Angir typen enhets- og operasjonsdetaljer. |
Topptekst | WfiRequestHeader | Topptekst |
kropp | ShiftsEntity | Brødtekst for enheten som er relatert til forespørselen. |
For POST /teams/{teamId}/update
Eiendom | Type: | Beskrivelse |
---|---|---|
id | Streng | ID for enheten |
metode | Streng |
POST for å opprette en enhet, PUT for å oppdatere en enhet, DELETE for å slette en enhet. |
url-adresse | Streng | Formatet er /{EntityType}/{EntityId} . Mulige verdier for {EntityType} er shifts , , timeoffReasons swapRequests , openshifts , openshiftrequests , offershiftrequests , timesoff timeOffRequests . For eksempel /shifts/SHFT_12345678-1234-1234-1234-1234567890ab . |
Topptekst | WfiRequestHeader | Topptekst |
kropp | ShiftsEntity | Må samsvare {EntityType} i url-egenskapen . Bruk en av skift, swapShiftsChangeRequest, timeOffReason, openshift, openShiftChangeRequest, offerShiftRequests, timeOff, timeOffRequest. For eksempel /shifts/SHFT_12345678-1234-1234-1234-1234567890ab . |
For POST /teams/{teamsId}/read
Eiendom | Type: | Beskrivelse |
---|---|---|
id | Streng | ID for enheten |
metode | Streng | Er alltid GET . |
url-adresse | Streng |
|
Topptekst | WfiRequestHeader | Topptekst |
kropp | ShiftsEntity | Er alltid null . |
WfiRequestHeader
Eiendom | Type: | Beskrivelse |
---|---|---|
X-MS-Transaction-ID | Streng | Transaksjons-ID |
X-MS-Utløper | Streng (DateTime) | Dato/klokkeslett for transaksjonsutløp |
X-MS-WFMPassthrough: workforceIntegratonId
inkluderes ikke i WfiRequestHeader. Det bør trekkes ut fra HttpRequest.
Svar
WfiResponseContainer
Eiendom | Type: | Beskrivelse |
---|---|---|
Svar | WfiResponse-samling | Liste over WfiResponses |
{
"responses": [
{
"id": "string",
"status": "string",
"body": {
"eTag": "string",
"error": {
"code": "string",
"message": "string"
},
"data": ["string1", "string2"]
}
}
]
}
WfiResponse
Eiendom | Type: | Beskrivelse |
---|---|---|
id | Streng | ID for enheten |
status | Streng | Resultatet av operasjonen |
kropp | WfiResponseBody | WfiResponseBody |
WfiResponseBody
Eiendom | Type: | Beskrivelse |
---|---|---|
eTag | Streng | eTag |
feil | WfiResponseError | Detaljer om feilen |
data | Streng | De forespurte dataene (for leseforespørsler) |
WfiResponseError
Eiendom | Type: | Beskrivelse |
---|---|---|
kode | Streng | Feilkode |
melding | Streng | Feilmelding |