Freigeben über


Aktualisieren der Personalintegration

Namespace: microsoft.graph

Wichtig

Die APIs unter der /beta Version in Microsoft Graph können sich ändern. Die Verwendung dieser APIs in Produktionsanwendungen wird nicht unterstützt. Um festzustellen, ob eine API in v1.0 verfügbar ist, verwenden Sie die Version Selektor.

Aktualisiert die Eigenschaften eines workforceintegration-Objekts .

Diese API ist in den folgenden nationalen Cloudbereitstellungen verfügbar.

Globaler Dienst US Government L4 US Government L5 (DOD) China, betrieben von 21Vianet

Berechtigungen

Wählen Sie für diese API die Als am wenigsten privilegierten Berechtigungen gekennzeichneten Berechtigungen aus. Verwenden Sie nur dann eine Berechtigung mit höheren Berechtigungen , wenn dies für Ihre App erforderlich ist. Ausführliche Informationen zu delegierten Berechtigungen und Anwendungsberechtigungen finden Sie unter Berechtigungstypen. Weitere Informationen zu diesen Berechtigungen finden Sie in der Berechtigungsreferenz.

Berechtigungstyp Berechtigungen mit den geringsten Berechtigungen Berechtigungen mit höheren Berechtigungen
Delegiert (Geschäfts-, Schul- oder Unikonto) WorkforceIntegration.ReadWrite.All Nicht verfügbar.
Delegiert (persönliches Microsoft-Konto) Nicht unterstützt Nicht unterstützt
Anwendung Nicht unterstützt Nicht unterstützt

HTTP-Anforderung

PATCH /teamwork/workforceIntegrations/{workforceIntegrationId}

Anforderungsheader

Name Beschreibung
Authorization Bearer {token}. Erforderlich. Erfahren Sie mehr über die Authentifizierung und Autorisierung.
MS-APP-ACTS-AS Eine Benutzer-ID (GUID). Nur erforderlich, wenn das Autorisierungstoken ein Anwendungstoken ist. andernfalls optional.

Anforderungstext

Geben Sie im Anforderungstext die Werte für die relevanten Felder an, die aktualisiert werden sollen. Vorhandene Eigenschaften, die nicht im Anforderungstext enthalten sind, behalten ihre vorherigen Werte bei oder werden basierend auf Änderungen an anderen Eigenschaftswerten neu berechnet. Geben Sie aus Gründen der Leistung vorhandene Werte, die nicht geändert wurden, nicht an.

Eigenschaft Typ Beschreibung
apiVersion Int32 API-Version für die Rückruf-URL. Beginnen Sie mit 1.
displayName String Name der Personalintegration.
Verschlüsselung workforceIntegrationEncryption Die Verschlüsselungsressource für die Personalintegration.
isActive Boolesch Gibt an, ob diese Personalintegration derzeit aktiv und verfügbar ist.
Unterstützt string Mögliche Werte sind none, shift, swapRequest, openshift, openShiftRequest, . userShiftPreferences Wenn Sie mehrere Werte auswählen, müssen alle Werte mit dem ersten Buchstaben in Großbuchstaben beginnen.
supportedEntities string Diese Eigenschaft ersetzt unterstützungen in v1.0. Es wird empfohlen, diese Eigenschaft anstelle von supports zu verwenden. Die Supports-Eigenschaft wird vorerst weiterhin in der Betaversion unterstützt. Mögliche Werte sind none, shift, swapRequest, openshift, openShiftRequest, . userShiftPreferences Wenn Sie mehrere Werte auswählen, müssen alle Werte mit dem ersten Buchstaben in Großbuchstaben beginnen.
url Zeichenfolge Personalintegrations-URL für Rückrufe aus dem Schichtdienst.

Antwort

Bei erfolgreicher Ausführung gibt die Methode den 200 OK Antwortcode und ein aktualisiertes workforceIntegration-Objekt im Antworttext zurück.

Beispiele

Beispiel 1: Aktualisieren eines workforceIntegration-Objekts

Im folgenden Beispiel wird ein workforceIntegration-Objekt aktualisiert.

Anforderung

Das folgende Beispiel zeigt eine Anfrage.

PATCH https://graph.microsoft.com/beta/teamwork/workforceIntegrations/{workforceIntegrationId}
Content-type: application/json

{
  "displayName": "displayName-value",
  "apiVersion": 99,
  "encryption": {
    "protocol": "protocol-value",
    "secret": "secret-value"
  },
  "isActive": true,
  "url": "url-value",
  "supports": "supports-value"
}

Antwort

Das folgende Beispiel zeigt die Antwort.

Hinweis: Das hier gezeigte Antwortobjekt kann zur besseren Lesbarkeit gekürzt werden.

HTTP/1.1 200 OK
Content-type: application/json

{
  "displayName": "displayName-value",
  "apiVersion": 99,
  "encryption": {
    "protocol": "protocol-value",
    "secret": "secret-value"
  },
  "isActive": true,
  "url": "url-value",
  "supports": "supports-value"
}

Beispiel 2: Erstellen einer neuen WorkforceIntegration mit aktiviertem SwapRequest für die Berechtigungsfilterung

Im folgenden Beispiel wird eine neue workforceIntegration mit aktiviertem SwapRequest für die Berechtigungsfilterung erstellt.

Anforderung

Das folgende Beispiel zeigt eine Anfrage.

POST https://graph.microsoft.com/beta/teamwork/workforceIntegrations/
Authorization: Bearer {token}
Content-type: application/json

{
  "displayName": "ABCWorkforceIntegration",
  "apiVersion": 1,
  "isActive": true,
  "encryption": {
    "protocol": "sharedSecret",
    "secret": "My Secret"
  },
  "url": "https://ABCWorkforceIntegration.com/Contoso/",
  "supports": "Shift,SwapRequest",
  "eligibilityFilteringEnabledEntities": "SwapRequest"
}

Antwort

Das folgende Beispiel zeigt die Antwort.

HTTP/1.1 200 OK
{
  "id": "c5d0c76b-80c4-481c-be50-923cd8d680a1",
  "displayName": "ABCWorkforceIntegration",
  "apiVersion": 1,
  "isActive": true,
  "encryption": {
    "protocol": "sharedSecret",
    "secret": null
  },
  "url": "https://abcWorkforceIntegration.com/Contoso/",
  "supports": "Shift,SwapRequest",
  "eligibilityFilteringEnabledEntities": "SwapRequest"
}

Informationen zum Erstellen einer neuen workforceIntegration mit aktiviertem SwapRequest für die Berechtigungsfilterung finden Sie unter Create-Methode .

Beispiel 3: Abrufen berechtigter Schichten, wenn SwapRequest in "eligibilityFilteringEnabledEntities" enthalten ist

Die Interaktion zwischen der Schichten-App und den Endpunkten für die Integration von Mitarbeitern folgt dem vorhandenen Muster.

Anforderung

Das folgende Beispiel zeigt eine Anforderung, die von Schichten an den Workforce Integration-Endpunkt gesendet wird, um berechtigte Schichten für eine Austauschanforderung abzurufen.

POST https://abcWorkforceIntegration.com/Contoso/{apiVersion}/team/{teamId}/read
Accept-Language: en-us

{
  "requests": [
  {
     "id": "{shiftId}",
     "method": "GET”,
     "url": “/shifts/{shiftId}/requestableShifts?requestType={requestType}&startDateTime={startDateTime}&endDateTime={endDateTime}”
   }]
}

Antwort

Hier sehen Sie ein Beispiel für die Antwort des Personalintegrationsdiensts.

HTTP/1.1 200 OK
{
  "responses": [
  {
    "body": {
      "SHFT_6548f642-cbc1-4228-8621-054327576457",
      "SHFT_6548f642-cbc1-4228-8621-054327571234"
  }
    "id": "{shiftId}",
    "status: 200,
    "body": {
       "data": [{ShiftId}, {ShiftId}...]
       "error": null
    }
  ]
}

Beispiel 4: Verschiebt den synchronen Rückruf an den Personalintegrationsendpunkt, wenn er für Echtzeitbenachrichtigungen zu timeCard-Änderungen aktiviert ist.

Anforderung

Das folgende Beispiel zeigt eine Anfrage.

POST https://foobarWorkforceIntegration.com/foobar/v1/teams/788b75d2-a911-48c0-a5e2-dc98480457e3/update
Accept-Language: en-us
X-MS-WFMPassthrough: foobarvalue
Content-type: application/json
{
   "requests":[
      {
         "id":"1",
         "method":"POST",
         "url":"/timecards",
         "headers":{
            "X-MS-Transaction-ID":"1"
         },
         "body":{
            "id":"3895809b-a618-4c0d-86a0-d42b25b7d74f",
            "userId":"a3601044-a1b5-438e-b742-f78d01d68a67",
            "createdDateTime":"2019-03-18T00:00:00.000Z",
            "createdBy":{
               "user":{
                  "id":"a3601044-a1b5-438e-b742-f78d01d68a67",
                  "displayName":"Dwight Schrute"
               }
            },
            "lastModifiedDateTime":"2019-03-18T00:00:00.000Z",
            "lastModifiedBy":{
               "user":{
                  "id":"a3601044-a1b5-438e-b742-f78d01d68a67",
                  "displayName":"Dwight Schrute"
               }
            },
            "state":"onBreak",
            "clockIn":{
               "dateTime":"2019-03-18T00:00:00.000Z",
               "atApprovedLocation":true,
               "notes":null
            },
            "clockOut":null,
            "breaks":[
               {
                  "id":"string",
                  "notes":{
                     "content":"Lunch break",
                     "contentType":"text"
                  },
                  "start":{
                     "dateTime":"2019-03-18T00:00:00.000Z",
                     "atApprovedLocation":true,
                     "notes":{
                        "content":"Started my break 5 minutes early",
                        "contentType":"text"
                     }
                  },
                  "end":null
               }
            ],
            "notes":null,
            "originalEntry":{
               "clockIn":{
                  "dateTime":"2019-03-18T00:00:00.000Z",
                  "atApprovedLocation":true,
                  "notes":null
               },
               "clockOut":null,
               "breaks":[
                  {
                     "id":"4591109b-a618-3e0d-e6a0-d42b25b7231f",
                     "notes":{
                        "content":"Lunch break",
                        "contentType":"text"
                     },
                     "start":{
                        "dateTime":"2019-03-18T00:00:00.000Z",
                        "atApprovedLocation":true,
                        "notes":{
                           "content":"Started my break 5 minutes early",
                           "contentType":"text"
                        }
                     },
                     "end":null
                  }
               ]
            }
         }
      }
   ]
}

Antwort

Das folgende Beispiel zeigt die Antwort.

HTTP/1.1 200 OK
Content-type: application/json
{
  "responses":[
    {
      "id": "1",
      "status": 200,
      "body":{
        "eTag": "4000ee23-0000-0700-0000-5d1415f60000",
        "error": null
      }
    }
  ]
}