Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Namespace: microsoft.graph
Importante
As APIs na versão /beta no Microsoft Graph estão sujeitas a alterações. Não há suporte para o uso dessas APIs em aplicativos de produção. Para determinar se uma API está disponível na v1.0, use o seletor Versão.
Atualize as propriedades de um objeto workforceintegration .
Essa API está disponível nas seguintes implantações de nuvem nacional.
| Serviço global | Governo dos EUA L4 | US Government L5 (DOD) | China operada pela 21Vianet |
|---|---|---|---|
| ✅ | ❌ | ❌ | ❌ |
Permissões
Escolha a(s) permissão(s) marcada(s) como menos privilegiada(s) para essa API. Use uma permissão ou permissões com privilégios mais altos somente se o aplicativo exigir. Para obter detalhes sobre permissões delegadas e de aplicativo, consulte Tipos de permissão. Para saber mais sobre essas permissões, consulte a referência de permissões.
| Tipo de permissão | Permissões menos privilegiadas | Permissões com privilégios mais elevados |
|---|---|---|
| Delegado (conta corporativa ou de estudante) | WorkforceIntegration.ReadWrite.All | Indisponível. |
| Delegado (conta pessoal da Microsoft) | Sem suporte. | Sem suporte. |
| Application | WorkforceIntegration.ReadWrite.All | Indisponível. |
Solicitação HTTP
PATCH /teamwork/workforceIntegrations/{workforceIntegrationId}
Cabeçalhos de solicitação
| Nome | Descrição |
|---|---|
| Autorização | {token} de portador. Obrigatório. Saiba mais sobre autenticação e autorização. |
| MS-APP-ACTS-AS (preterido) | Uma ID de usuário (GUID). Necessário somente se o token de autorização for um token de aplicativo; caso contrário, opcional. O MS-APP-ACTS-AS cabeçalho foi preterido e não é mais necessário com tokens de aplicativo. |
Corpo da solicitação
No corpo da solicitação, forneça os valores para os campos relevantes que devem ser atualizados. As propriedades existentes que não estão incluídas no corpo da solicitação mantêm seus valores anteriores ou são recalculadas com base nas alterações de outros valores de propriedade. Para alcançar o melhor desempenho, não inclua valores existentes que não foram alterados.
| Propriedade | Tipo | Descrição |
|---|---|---|
| apiVersion | Int32 | Versão da API para a URL de retorno de chamada. Comece com 1. |
| displayName | Cadeia de caracteres | Nome da integração da força de trabalho. |
| criptografia | workforceIntegrationEncryption | O recurso de criptografia de integração da força de trabalho. |
| isActive | Booliano | Indica se esta integração da força de trabalho está ativa e disponível no momento. |
| com suporte | string | Os valores possíveis são none, shift, swapRequest, openshift, openShiftRequest, userShiftPreferences. Se estiver selecionando mais de um valor, todos os valores deverão começar com a primeira letra em maiúsculas. |
| supportedEntities | string | Esta propriedade substitui os suportes na v1.0. Recomendamos que você use essa propriedade em vez de suportes. A propriedade de suporte ainda terá suporte na versão beta por enquanto. Os valores possíveis são none, shift, swapRequest, openshift, openShiftRequest, userShiftPreferences. Se estiver selecionando mais de um valor, todos os valores deverão começar com a primeira letra em maiúsculas. |
| url | Cadeia de caracteres | URL de Integração da Força de Trabalho para retornos de chamada do serviço Shift. |
Resposta
Se for bem-sucedido, esse método retornará um código de 200 OK resposta e um objeto workforceIntegration atualizado no corpo da resposta.
Exemplos
Exemplo 1: Atualizar um objeto workforceIntegration
O exemplo a seguir atualiza um objeto workforceIntegration .
Solicitação
O exemplo a seguir mostra uma solicitação.
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"
}
Resposta
O exemplo a seguir mostra a resposta.
Observação: o objeto de resposta mostrado aqui pode ser encurtado para legibilidade.
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"
}
Exemplo 2: Criar uma nova força de trabalhoIntegração com SwapRequest habilitado para filtragem de qualificação
O exemplo a seguir cria um novo workforceIntegration com SwapRequest habilitado para filtragem de qualificação.
Solicitação
O exemplo a seguir mostra uma solicitação.
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"
}
Resposta
O exemplo a seguir mostra a resposta.
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"
}
Para criar uma nova forceIntegration com SwapRequest habilitado para filtragem de qualificação, consulte o método Create .
Exemplo 3: Buscando turnos qualificados quando SwapRequest está incluído em eligibilityFilteringEnabledEntities
A interação entre o aplicativo Turnos e os pontos de extremidade de integração da força de trabalho segue o padrão existente.
Solicitação
O exemplo a seguir mostra uma solicitação feita pelo Shifts ao ponto de extremidade de integração da força de trabalho para buscar turnos qualificados para uma solicitação de troca.
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}”
}]
}
Resposta
O exemplo a seguir mostra a resposta do serviço de integração da força de trabalho.
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
}
]
}
Exemplo 4: Desloca o retorno de chamada síncrono para o ponto de extremidade de integração da força de trabalho quando habilitado para notificações em tempo real sobre alterações de timeCard.
Solicitação
O exemplo a seguir mostra uma solicitação.
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
}
]
}
}
}
]
}
Resposta
O exemplo a seguir mostra a resposta.
HTTP/1.1 200 OK
Content-type: application/json
{
"responses":[
{
"id": "1",
"status": 200,
"body":{
"eTag": "4000ee23-0000-0700-0000-5d1415f60000",
"error": null
}
}
]
}