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
}
}
]
}