Dela via


Skapa en anpassad integrering för att synkronisera personalhanteringssystemet med Skift

Översikt

Integrera Skift, schemahanteringsappen i Microsoft Teams, med ditt system för personalhantering (WFM). Med den här integreringen kan personalen i frontlinjen visa och hantera sina scheman direkt i Skift.

Den här artikeln beskriver hur du skapar en anslutningsapp med hjälp av Microsoft Graph API för att underlätta den här integreringen.

Du kan konfigurera din integrering för antingen en enkelriktad datasynkronisering eller en dubbelriktad datasynkronisering.

  • Enkelriktad synkronisering (WFM system till Skift): I den här konfigurationen synkroniseras schemadata i WFM-systemet till Skift. Anslutningsappen läser data i ditt WFM-system och skriver dem till Skift. Ändringar som görs i Skift av användare återspeglas dock inte i ditt WFM system.

  • Dubbelriktad synkronisering (WFM system och Skift): Den här konfigurationen möjliggör dubbelriktad synkronisering. Schemadata i ditt WFM-system synkroniseras med Skift och eventuella ändringar som görs i Skift av användare synkroniseras tillbaka till ditt WFM system. Anslutningsappen validerar och godkänner de ändringar som användare gör i Skift enligt affärsregler som tillämpas av ditt WFM system innan ändringarna skrivs till Skift.

Obs!

Om du använder UKG Pro WFM, Blue Yonder WFM eller Reflexis WFM kan du också använda en hanterad anslutningsapp för att integrera Skift med ditt WFM system. Mer information finns i Shifts-anslutningsappar.

Terminologi som används i den här artikeln

Term Beskrivning
kontakt En app som synkroniserar schemadata mellan ditt WFM-system och Skift.
integrering av personal En entitet som definierar krypteringsmetoden för kommunikation, motringnings-URL:en för din anslutningsapp och de Skift-entiteter som ska synkroniseras.

Innan du börjar

Förutsättningar

  • Fastställ vilka data du vill synkronisera enligt dina affärsbehov.
  • Förstå autentiserings- och auktoriseringsbegreppen i Microsofts identitetsplattform. Se Grundläggande om autentisering och auktorisering.
  • Admin roller som krävs:
    • Minst en molnprogramadministratör för att registrera en app i Microsoft Entra administrationscenter
    • Global administratör för att registrera personalintegrering

Bekanta dig med integreringsprocessen

Här är en översikt över integreringsstegen. Granska den här informationen för att få en förståelse för den övergripande processen, inklusive vem som utför varje steg.

Steg Enkelriktad synkronisering Dubbelriktad synkronisering Vem som utför det här steget
1 Skapa anslutningsappen: Skapa anslutningsappen: Developer
2 Registrera en app i Microsoft Entra administrationscenter Registrera en app i Microsoft Entra administrationscenter Ett konto som är minst en molnprogramadministratör
3 Skapa team och scheman för synkronisering Skapa team och scheman för synkronisering Utvecklare eller Teams-administratör
4 Registrera och aktivera personalintegrering: Registrera och aktivera personalintegrering: Steg 4a: Global administratör
Steg 4b: Utvecklare

Steg 1: Skapa din anslutningsapp

Skapa anslutningsappen genom att utföra följande steg:

Steg 1a: Synkronisera ändringar som gjorts i Skift till ditt WFM system

Om du vill konfigurera anslutningsappen för att ta emot och bearbeta begäranden från Skift måste du implementera följande slutpunkter:

Fastställa din grundläggande URL och slutpunkts-URL:er

Bas-URL:en (webhook) är {url}/v{apiVersion}, där URL och apiVersion är de egenskaper som du anger i workforceIntegration-objektet när du registrerar personalintegreringen.

De relativa sökvägarna för slutpunkts-URL:erna är följande:

  • /ansluta: /connect
  • /uppdatera: /teams/{teamid}/update
  • /läsa: /teams/{teamid}/read

Om url till exempel är https://contosoconnector.com/wfi och apiVersion är 1:

  • Bas-URL:en är https://contosoconnector/com/wfi/v1.
  • Slutpunkten /connect är https://contosoconnector/wfi/v1/connect.
  • /update-slutpunkten är https://contosoconnector/wfi/v1/teams/{teamid}/update.
  • /read-slutpunkten är https://contosoconnector/wfi/v1/teams/{teamid}/read.

Kryptering

Alla begäranden krypteras med AES-256-CBC-HMAC-SHA256. Du anger den delade hemlighetsnyckeln när du registrerar personalintegrering. Svar som skickas tillbaka till Skift ska inte krypteras.

Slutpunkter

POST /connect

Shifts anropar den här slutpunkten för att testa anslutningen när du registrerar personalintegrering. Ett lyckat svar returneras endast om den här slutpunkten returnerar ett HTTP-svar 200 OK .

Exempel

Begäran
ConnectRequest

{
   "tenantId": "a1s2s355-a2s3-j7h6-f4d3-k2h9j4mqpz",
   "userId": "4fbc12d7-1234-56ef-8a90-bc123d45678f"
}

Svar
Returnera HTTP 200 OK

POST /teams/{teamid}/update

Skift anropar den här slutpunkten för att få godkännande när en ändring görs i en Skifts-entitet i ett schema som är aktiverat för integrering av personal. Om den här slutpunkten godkänner begäran sparas ändringen i Skift.

Eftersom ditt WFM system är postsystemet bör det först försöka göra ändringen i WFM system när anslutningsappen tar emot en begäran till den här slutpunkten. Om ändringen lyckas returnerar du lyckad. Annars returnerar du fel.

Skift anropar den här slutpunkten för varje ändring (inklusive ändringar som initieras från anslutningsprogrammet/WFM-systemet). Om anslutningsappen skickade en uppdatering till Shifts med Graph API och lade till X-MS-WFMPassthrough: workforceIntegratonId huvudet, kommer begäran som kommer till den här slutpunkten att ha samma rubrik, vilket gör att du kan identifiera och hantera dessa begäranden på rätt sätt. Returnera till exempel framgång utan att göra samma ändring i det WFM systemet som det skulle vara redundant och kan orsaka att anslutningsappen fastnar i en oändlig loop.

Följande diagram visar dataflödet.

Diagram som visar flödet för uppdateringar från Skift till ditt WFM system.

Obs!

Mer information om modeller för begäran och svar finns i WfiRequest i avsnittet Slutpunktsreferens i den här artikeln.

Returnera svarskod
Alla svar från integreringen, inklusive ett fel, måste ha en HTTP-svarskod 200 OK. Svarstexten måste ha status och felmeddelande som återspeglar lämpligt feltillstånd för underanrop. Alla svar från integreringen som inte 200 OK behandlas som ett fel och returneras till anroparen (klienten eller Microsoft Graph).

Om du vill konfigurera en enkelriktad synkronisering gör du Skifts skrivskyddat

För en enkelriktad synkronisering måste du göra Skift skrivskyddat så att användarna inte kan göra ändringar i Skift. Om du vill göra Skift skrivskyddat returnerar du ett felsvar för alla begäranden från Skift.

Om du till exempel vill blockera användare från att göra ändringar i skift i schemat måste den här slutpunkten returnera ett felsvar när den tar emot en begäran om en entitet shift .

Exempel

Begäran
WfiRequestContainer

I följande exempel visas en begäran från Skift som frågar om ett skift, vars ID är SHFT_12345678-1234-1234-1234-1234567890ab och har egenskaperna i brödtexten, kan sparas i Skift. Den här begäran utlöstes när en användare skapar ett 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

Lyckades: Returnera HTTP 200 OK

Det här exemplet visar svaret som returneras om slutpunkten godkände begäran. I det här scenariot sparas skiftet i Skift och användaren kan se skiftet i schemat.

{
  "responses": [
    {
      "id": "SHFT_12345678-1234-1234-1234-1234567890ab",
      "status": 200,
      "body": {
        "eTag": "3f4e5d6c-7a8b-9c0d-1e2f-3g4h5i6j7k8l",
        "error": null,
        "data": null
      }
    }
  ]
}

Fel: Returnera HTTP 200 OK

Det här exemplet visar svaret som returneras om slutpunkten nekade begäran. I det här scenariot får användaren felmeddelandet "Det gick inte att lägga till 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

Den här slutpunkten hanterar begäranden från Skift för att hämta berättigade time off-orsaker eller berättigade skift för växlingsbegäranden för en användare.

Obs!

Från och med oktober 2024 stöds den här slutpunkten endast i betaversionen av Microsoft Graph API. Du måste också ange värden för egenskapen eligibilityFilteringEnabledEntities när du registrerar personalintegreringen.

Följande diagram visar dataflödet.

Diagram som visar flödet för begäranden om berättigandefiltrering.

Returnera svarskod
Alla svar från integreringen, inklusive ett fel, måste ha en HTTP-svarskod 200 OK. Svarstexten måste innehålla statusen och felmeddelandet som återspeglar lämpligt feltillstånd för underanrop. Alla svar från integreringen som inte 200 OK behandlas som ett fel och returneras till anroparen (klienten eller Microsoft Graph).

Exempel: TimeOffReason

Begäran

I följande exempel visas en begäran från Skift som frågar vilka time off-orsaker som en användare (användar-ID aa162a04-bec6-4b81-ba99-96caa7b2b24d) är berättigad till. Den här begäran utlöstes när användaren begär slutade i Skift.

 { 
  "requests": [ 
    { 
      "id": "aa162a04-bec6-4b81-ba99-96caa7b2b24d", 
      "method": "GET", 
      "url": "/users/aa162a04-bec6-4b81-ba99-96caa7b2b24d/timeOffReasons?requestType=TimeOffReason"
    } 
  ] 
}

Svar
Lyckades: Returnera HTTP 200 OK

Följande svar visar att de berättigade time off-orsaks-ID:n för användaren är "TOR_29f4a110-ae53-458b-83d6-00c910fe2fbc" och "TOR_8c0e8d07-ac1a-48dc-b3af-7bc71a62ff7d". I det här scenariot ser användaren motsvarande time off-skäl att välja mellan 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 
          } 
        }
    ]
}

Fel: Returnera HTTP 200 OK

I det här exemplet returneras ett felsvar eftersom anslutningsappen inte kunde nå WFM-systemet för att hämta time off-orsaker för användaren.

 {
  "responses": [
    {
      "id": "aa162a04-bec6-4b81-ba99-96caa7b2b24d",
      "status": 503,
      "body": {
        "data": null,
        "error": {
          "code": "503",
          "message": "Could not reach WFM"
        }
      }
    }
  ]
}
Exempel: SwapRequest

Begäran

I följande exempel visas en begäran från Skift som frågar vilka skift som är berättigade till ett byte med skiftet vars ID är SHFT_5e2b51ac-dc47-4a66-83ea-1bbbf81ac029 mellan 2024-2024-2024 10-01T04:00:00.0000000Z och 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
Lyckades: Returnera HTTP 200 OK

Följande svar visar att skiftet kan växlas med skiftet vars ID är 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, 
      } 
    }
  ]
}

Fel: Returnera HTTP 200 OK

I det här exemplet returneras ett felsvar eftersom anslutningsappen inte kunde nå WFM-systemet för att hämta berättigade skift för en växlingsbegäran för användaren.

{
  "responses": [
    {
      "id": "SHFT_5e2b51ac-dc47-4a66-83ea-1bbbf81ac029",
      "status": 503,
      "body": {
        "data": null,
        "error": {
          "code": "503",
          "message": "could not reach WFM"
        }
      }
    }
  ]
}

Steg 1b: Synkronisera data från ditt WFM system till Skift

Använd Skift-API:er i Microsoft Graph för att läsa schemadata från ditt WFM system och skriva data till Skift.

Om du till exempel vill lägga till ett skift till Skift använder du API:et Skapa skift .

Se referensen för Microsoft Graph API v1.0 för Skift-API:er, som visas under Skifthantering.

Obs!

Huvudet MS-APP-ACTS-AS krävs i begäranden och måste innehålla ID :t (GUID) för den användare som appen agerar för. Vi rekommenderar att du använder användar-ID:t för en teamägare när du uppdaterar schemat.

Följande diagram visar dataflödet.

Diagram som visar flödet för att synkronisera data från ditt WFM system till Skift.

Inledande synkronisering

För den första synkroniseringen bör anslutningsappen läsa data i ditt WFM system och skriva data till Skift. Vi rekommenderar att du synkroniserar två veckors framtida data.

Efter den första synkroniseringen

Efter den första synkroniseringen kan du välja att:

  • Uppdatera Skift synkront med ändringar i ditt WFM system: Skicka en uppdatering till Skift för varje ändring som görs i ditt WFM system.

  • Uppdatera Skift asynkront med ändringar i ditt WFM system: Utför en regelbunden synkronisering genom att skriva alla ändringar som har inträffat i ditt WFM system inom en viss tidsram (till exempel 10 minuter) till Skift.

    Alla skrivåtgärder till Skift, inklusive skrivåtgärder som initieras av anslutningsappen, utlöser ett anrop till anslutningsappens /update-slutpunkt. Vi rekommenderar att du inkluderar rubriken till X-MS-WFMPassthrough: workforceIntegratonId alla skrivanrop så att anslutningsappen kan identifiera och hantera dem på rätt sätt. Om ditt WFM system till exempel initierade ändringen godkänner du den utan att tillämpa en uppdatering på ditt WFM system.

    Obs!

    Om du konfigurerar anslutningsappen för en dubbelriktad synkronisering av data mellan ditt WFM-system och Skift, undantar du ändringar som initierats från Skift i den periodiska synkroniseringen. Dessa ändringar är redan skrivna i Skift.

Steg 2: Registrera en app i Microsoft Entra administrationscenter

Följ de här stegen för att registrera en app för din anslutningsapp i Microsofts identitetsplattform, konfigurera behörigheter för appen att komma åt Microsoft Graph och hämta en åtkomsttoken.

  1. Logga in på Microsoft Entra administrationscenter som minst molnprogramadministratör.

  2. Registrera din app. Anvisningar finns i Registrera ett program med Microsofts identitetsplattform.

  3. Tilldela Schedule.ReadWrite.Allaprogrambehörigheter till appen för endast appåtkomst och hämta en åtkomsttoken.

    Stegvisa anvisningar finns i Få åtkomst utan användare.

    Åtkomsttoken verifierar att din app har behörighet att anropa Microsoft Graph med hjälp av sin egen identitet med hjälp av behörigheten Schedule.ReadWrite.All . Den måste ingå i auktoriseringshuvudet för begäranden.

Steg 3: Skapa team och scheman för synkronisering

Konfigurera de team i Teams som du vill synkronisera. Du kan använda befintliga team eller skapa nya team.

  1. Konfigurera team i Teams så att de motsvarar teamen och platserna i ditt WFM system. Se till att du lägger till följande personer i varje team:

    • Chefer i frontlinjen som teamägare. Se till att du lägger till användaren i MS-APP-ACTS-AS rubriken som teamägare för respektive team.
    • Medarbetare i frontlinjen som teammedlemmar.
  2. Skapa ett schema i Skift för varje team. Mer information finns i Skapa eller ersätt schema.

  3. Lägg till schemagrupper i schemat för varje team. Schemagrupper används för att gruppera anställda baserat på gemensamma egenskaper i ett team. Schemagrupper kan till exempel vara avdelningar eller jobbtyper. Mer information finns i schedulingGroup resource type (SchemaläggningGruppresurstyp).

  4. Lägg till anställda i varje schemagrupp. Mer information finns i Ersätt schedulingGroup.

Obs!

Du kan också använda administrationscentret för Teams för att konfigurera dina team och distribuera Skift till teamen. Mer information finns i:

Steg 4: Registrera och aktivera personalintegrering

En personalintegrering definierar krypteringsinställningarna för kommunikation mellan Skift och anslutningsappen, URL:en för återanrop från Skift och vilka typer av entiteter som ska synkroniseras.

Utför följande steg för att registrera och aktivera personalintegrering:

Steg 4a: Registrera personalintegrering i din klientorganisation

Du måste vara global administratör för att utföra det här steget.

Använd API:et Create workforceIntegration för att registrera din personalintegrering i din klientorganisation.

Här är ett exempel på en begäran.

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”,
}

Mer information finns i följande tabell. Mer information finns i workforceIntegration resource type (Personalintegrationsresurstyp).

Egenskap Mer information
apiVersion API-version för motringnings-URL:en. Din bas-URL består av url-egenskapen och den här egenskapen.
kryptering Ange protokoll till sharedSecret. Det hemliga värdet måste vara exakt 64 tecken.

Använd hemligheten för att dekryptera de krypterade JSON-nyttolaster som skickas till anslutningsappens slutpunkt från Skift. Nyttolasten krypteras med AES-256-CBC-HMAC-SHA256. Din app bör bevara den här hemligheten på ett säkert sätt. Till exempel i ett nyckelvalv.
supportedEntities Ange de Skift-entiteter som du vill att anslutningsappen ska stödja för synkronisering. Skift anropar anslutningsappens /update-slutpunkt när någon av dessa entiteter ändras så att du kan godkänna eller avvisa ändringen. En lista över möjliga värden finns i workforceIntegration resource type (Personalintegrationsresurstyp)

Not Den här listan är en utvecklingsbar uppräkning. Du måste använda begärandehuvudet Prefer: include-unknown-enum-members för att hämta alla värden.
eligibilityFilteringEnabledEntities Obs! Från och med oktober 2024 stöds den här slutpunkten endast i betaversionen av Microsoft Graph API.

Ange de Skift-entiteter som du vill ansluta till för att stödja filtrering av berättigande. Möjliga värden är:
  • none: Tom lista
  • SwapRequests: Skift anropar anslutningsappens /read-slutpunkt för att hämta en filtrerad lista över skift som en användare kan välja mellan för en växlingsbegäran.
  • TimeOffReasons: Skift anropar anslutningsappens /read-slutpunkt för att få en filtrerad lista över time-off-orsaker som en användare kan välja mellan när de begär slutade.
Not Den här listan är en utvecklingsbar uppräkning. Du måste använda begärandehuvudet Prefer: include-unknown-enum-members för att hämta alla värden.
URL URL:en för personalintegrering för återanrop från Skift. Din bas-URL består av den här egenskapen och egenskapen apiVerson .

Steg 4b: Aktivera personalintegrering för dina teamscheman

Aktivera personalintegrering enligt de scheman som du vill hantera. Det gör du genom att använda API:et Skapa eller ersätta schema för att skapa eller uppdatera schemat för dina team.

Här är ett exempel på en begäran.

POST https://graph.microsoft.com/v1.0/teams/{teamId}/schedule
{
  enabled: true,
  timezone: “America/New_York”,
  workforceIntegrationIds: [ “workforceIntegrationId”]
}
  • Ange workforceIntegrationId som genererades när du registrerade arbetsstyrkans integrering.
  • Du kan aktivera högst en integrering av arbetsstyrkan enligt ett schema. Om du inkluderar mer än ett workforceIntegrationId i begäran används det första.

Felsökning

Kontakt

Vad händer om anslutningsappen svarar på en begäran från Skifts om den returnerar en annan svarskod än 200? Spelar det någon roll om den returnerar en annan status än 200 i svarstexten?

Det finns en skillnad mellan dessa två scenarier.

  • Om anslutningsappen returnerar en annan svarskod än 200 försöker Skift försöka igen med slutpunkterna /read och /update flera gånger. Så småningom visar Skift ett "Något gick fel. Konfigurationen av personalintegrering i ditt team har svarat med ogiltiga data." felmeddelande.
  • Om anslutningsappen returnerar en annan status än 200 i svarstexten visar Skift ett "Något gick fel. Det gick inte att slutföra ändringen", felmeddelande och slutar försöka igen med slutpunkterna.

Vad händer om anslutningsappen returnerar ogiltiga data i svarstexten?

Skift försöker försöka igen med slutpunkterna /read och /update flera gånger. Så småningom visar Skift ett "Något gick fel. Personalintegrering som har konfigurerats i ditt team har svarat med ogiltiga data." felmeddelande.

Hur gör jag för att identifiera om begäran ursprungligen gjordes i Skift eller i WFM system för att förhindra en oändlig loop?

Lägg till rubriken i X-MS-WFMPassthrough: workforceIntegratonId alla skriv- och uppdateringsanrop för att identifiera/ignorera de ändringar som utlöses av anslutningsappen. Det här huvudet används för att ange att begäran görs på grund av ett föregående anrop som gjordes av anslutningsappen för att Graph API för att synkronisera data från ditt WFM system till Skifts.

Registrering av personalintegrering

Jag registrerade personalintegreringen och angav "eligibilityFilteringEnabledEntities" inklusive "SwapRequest, OfferShiftRequest och TimeOffReason", men svarstexten visar inte listan "eligibilityFilteringEnabledEntities".

Berättigandefiltrering stöds för närvarande via https://graph.microsoft.com/beta slutpunkten, inte https://graph.microsoft.com/v1 slutpunkten.

Jag registrerade personalintegrering och lade till "supportedEntities" men får ett svar på 400 Felaktig begäran och en "Ogiltig nyttolast: Begärt värde "skift, ...." hittades inte." meddelande

Kontrollera att varje Skift-entitet i supportedEntities listans begärandetext börjar med en versal bokstav. Till exempel "supportedEntities":"Shift,SwapRequest,OpenShift".

Jag registrerade personalintegrering och implementerade slutpunkterna /connect, /update och /read, men webhooken fungerar inte.

Se till att integreringen av personalen är aktiverad för ditt teamschema. Kontrollera också att egenskaperna url och apiVersion är korrekta.

Slutpunktsreferens

Begäran

ConnectRequest

Egenskap Typ Beskrivning
tenantId Sträng ID för klientorganisationen för personalintegrering
userId Sträng ID för användaren för personalintegrering
{
  "tenantId": "string",
  "userId": "string"
}

WfiRequestContainer

Egenskap Typ Beskrivning
Förfrågningar WfiRequest-samling Lista över WfiRequests
{
  "requests": [
    {
      "id": "string",
      "method": "string",
      "url": "string",
      "headers": {
        "X-MS-Transaction-ID": "string",
        "X-MS-Expires": "string (DateTime)"
      },
      "body": "ShiftsEntity"
    }
  ]
}

Antal element i en begäran:

  • I de flesta fall har en begäran ett element.
  • Vissa begäranden, till exempel godkännanden av växlingsförfrågan, har fem element: en PUT-växlingsbegäran, två DELETE-skift (befintliga skift) och två POST-skift (nya skift).

WfiRequest

Egenskap Typ Beskrivning
id Sträng ID för entiteten
metod Sträng Metoden som anropas för objektet. Till exempel POST, PUT, GET, DELETE.
URL Sträng Anger typen av entitets- och åtgärdsinformation.
Headers WfiRequestHeader Headers
kropp ShiftsEntity Brödtexten för entiteten som är relaterad till begäran.
För POST /teams/{teamId}/update
Egenskap Typ Beskrivning
id Sträng ID för entiteten
metod Sträng POST för att skapa en entitet, PUT för att uppdatera en entitet, DELETE för att ta bort en entitet.
URL Sträng Formatet är /{EntityType}/{EntityId}. Möjliga värden för {EntityType} är shifts, swapRequests, timeoffReasons, openshifts, openshiftrequests, offershiftrequests, , timesoff, timeOffRequests. Till exempel /shifts/SHFT_12345678-1234-1234-1234-1234567890ab.
rubrik WfiRequestHeader Rubrik
kropp ShiftsEntity Måste matcha {EntityType} i url-egenskapen . Använd ett skift,swapShiftsChangeRequest, timeOffReason, openshift, openShiftChangeRequest, offerShiftRequests, timeOff, timeOffRequest. Till exempel /shifts/SHFT_12345678-1234-1234-1234-1234567890ab.
För POST /teams/{teamsId}/read
Egenskap Typ Beskrivning
id Sträng ID för entiteten
metod Sträng Är alltid GET.
URL Sträng
  • TimeOffReasons: Formatet är /users/{userId}/timeOffReasons?requestType=TimeOffReason. Till exempel /users/aa162a04-bec6-4b81-ba99-96caa7b2b24d/timeOffReasons?requestType=TimeOffReason.
  • SwapRequest: Formatet är /shifts/{ShiftsId}/requestableShifts?requestType=SwapRequest\u0026startTime={startTime}\u0026endTime={endTime}. Till exempel shifts/SHFT_1132430e-365e-4dc5-b8b0-b800592a81a8/requestableShifts?requestType=SwapRequest\u0026startTime=2024-10-01T07:00:00.0000000Z\u0026endTime=2024-11-01T06:59:59.9990000Z.
rubrik WfiRequestHeader Rubrik
kropp ShiftsEntity Är alltid null.

WfiRequestHeader

Egenskap Typ Beskrivning
X-MS-Transaction-ID Sträng Transaktions-ID
X-MS-Upphör att gälla Sträng (DateTime) Förfallodatum för transaktioner

X-MS-WFMPassthrough: workforceIntegratonId ingår inte i WfiRequestHeader. Den bör extraheras från HttpRequest.

Svar

WfiResponseContainer

Egenskap Typ Beskrivning
Svaren WfiResponse-samling Lista över WfiResponses
{
  "responses": [
    {
      "id": "string",
      "status": "string",
      "body": {
        "eTag": "string",
        "error": {
          "code": "string",
          "message": "string"
        },
        "data": ["string1", "string2"]
      }
    }
  ]
}

WfiResponse

Egenskap Typ Beskrivning
id Sträng ID för entiteten
status Sträng Resultatet av åtgärden
kropp WfiResponseBody WfiResponseBody

WfiResponseBody

Egenskap Typ Beskrivning
eTag Sträng eTag
fel WfiResponseError Information om felet
data Sträng Begärda data (för läsbegäranden)

WfiResponseError

Egenskap Typ Beskrivning
kod Sträng Felkod
Meddelande Sträng Felmeddelande