Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Este artigo apresenta exemplos de criação de ordens de trabalho em Dynamics 365 Field Service utilizando a API Web Dataverse. Os exemplos usam a entidade msdyn_workorder .
Pré-requisitos
- Um ambiente Dynamics 365 Field Service com o endpoint da Web API (por exemplo,
https://yourorg.api.crm.dynamics.com/api/data/v9.2/). - Um pedido autenticado usando OAuth 2.0. Saiba mais em Autenticar no Dataverse com a Web API.
- Registos existentes para os campos de pesquisa obrigatórios:
-
Conta de Serviço (
accountentidade) -
Tipo de Ordem de Trabalho (
msdyn_workordertypeentidade) -
Lista de Preços (
pricelevelentidade)
-
Conta de Serviço (
Importante
Os GUIDs nos exemplos seguintes são fictícios. Substitua-os pelos IDs de registo reais do seu ambiente Dynamics 365.
Crie uma única ordem de trabalho
Envie um POST pedido à msdyn_workorders entidade configurada para criar uma ordem de trabalho. Saiba mais em Criar uma linha de tabela usando a Web API.
Pedido HTTP
POST [Organization URL]/api/data/v9.2/msdyn_workorders
Accept: application/json
Content-Type: application/json
OData-MaxVersion: 4.0
OData-Version: 4.0
Authorization: Bearer <access_token>
{
"msdyn_serviceaccount@odata.bind": "/accounts(e1a2b3c4-5678-9abc-def0-1234567890ab)",
"msdyn_workordertype@odata.bind": "/msdyn_workordertypes(a1b2c3d4-5678-9abc-def0-1234567890cd)",
"msdyn_pricelist@odata.bind": "/pricelevels(f1e2d3c4-5678-9abc-def0-1234567890ef)",
"msdyn_systemstatus": 690970000,
"msdyn_taxable": false,
"msdyn_instructions": "Install new equipment"
}
Resposta HTTP
Um pedido bem-sucedido retorna HTTP 204 No Content com um OData-EntityId cabeçalho contendo o URL do novo registo da ordem de trabalho.
Criar múltiplas ordens de trabalho
Para criar múltiplas ordens de trabalho num único pedido, use a CreateMultiple ação. Isto é mais eficiente do que pedidos POST individuais ou operações em lote. Saiba mais em Utilizar mensagens de operações em massa.
Pedido HTTP
POST [Organization URL]/api/data/v9.2/msdyn_workorders/Microsoft.Dynamics.CRM.CreateMultiple
Accept: application/json
Content-Type: application/json
OData-MaxVersion: 4.0
OData-Version: 4.0
Authorization: Bearer <access_token>
{
"Targets": [
{
"@odata.type": "Microsoft.Dynamics.CRM.msdyn_workorder",
"msdyn_serviceaccount@odata.bind": "/accounts(e1a2b3c4-5678-9abc-def0-1234567890ab)",
"msdyn_workordertype@odata.bind": "/msdyn_workordertypes(a1b2c3d4-5678-9abc-def0-1234567890cd)",
"msdyn_pricelist@odata.bind": "/pricelevels(f1e2d3c4-5678-9abc-def0-1234567890ef)",
"msdyn_systemstatus": 690970000,
"msdyn_taxable": false,
"msdyn_instructions": "Work order 1 - Install new equipment"
},
{
"@odata.type": "Microsoft.Dynamics.CRM.msdyn_workorder",
"msdyn_serviceaccount@odata.bind": "/accounts(e1a2b3c4-5678-9abc-def0-1234567890ab)",
"msdyn_workordertype@odata.bind": "/msdyn_workordertypes(a1b2c3d4-5678-9abc-def0-1234567890cd)",
"msdyn_pricelist@odata.bind": "/pricelevels(f1e2d3c4-5678-9abc-def0-1234567890ef)",
"msdyn_systemstatus": 690970000,
"msdyn_taxable": false,
"msdyn_instructions": "Work order 2 - Preventive maintenance check"
}
]
}
Resposta HTTP
Um pedido bem-sucedido retorna HTTP 200 OK os IDs dos registos criados.
{
"@odata.context": "[Organization URL]/api/data/v9.2/$metadata#Microsoft.Dynamics.CRM.CreateMultipleResponse",
"Ids": [
"c1d2e3f4-5678-9abc-def0-111111111111",
"c1d2e3f4-5678-9abc-def0-222222222222"
]
}
Recuperar uma ordem de trabalho
Depois de criares uma ordem de trabalho, recupera-a com uma requisição GET.
GET [Organization URL]/api/data/v9.2/msdyn_workorders(<work-order-id>)?$select=msdyn_name,msdyn_systemstatus,msdyn_address1,msdyn_city
Accept: application/json
OData-MaxVersion: 4.0
OData-Version: 4.0
Authorization: Bearer <access_token>
Resposta
{
"@odata.context": "[Organization URL]/api/data/v9.2/$metadata#msdyn_workorders(msdyn_name,msdyn_systemstatus,msdyn_address1,msdyn_city)/$entity",
"@odata.etag": "W/\"7998533\"",
"msdyn_workorderid": "d4e5f6a7-1234-5678-9abc-def012345678",
"msdyn_name": "00051",
"msdyn_systemstatus": 690970000,
"msdyn_address1": "205 108th Ave NE",
"msdyn_city": "Bellevue"
}
Observação
O msdyn_name campo contém o número de ordem de trabalho atribuído automaticamente gerado pelo Serviço de Campo. Os valores msdyn_address1 e msdyn_city são preenchidos a partir do registo da conta de serviço.
Tratamento de erros
Respostas de erro comuns ao criar ordens de trabalho:
| Código de estado | Justificação | Resolução |
|---|---|---|
400 Bad Request |
Campos obrigatórios em falta ou valores de campo inválidos. | Verifique se todos os campos obrigatórios (msdyn_serviceaccount, msdyn_workordertype, msdyn_pricelist, msdyn_systemstatus, msdyn_taxable) estão incluídos com valores válidos. |
400 Bad Request (código 0x80060888) |
O valor do campo de pesquisa é um GUID simples sem um caminho do conjunto de entidades. | Use, por exemplo /accounts(guid) , o formato completo de referência da entidade OData, em vez de apenas o GUID. |
401 Unauthorized |
Token de acesso em falta ou expirado. | Atualize ou obtenha um novo token de acesso OAuth 2.0. |
403 Forbidden |
Privilégios insuficientes. | Assegure que o utilizador tem o papel de Serviço de Campo - Despachante ou Serviço de Campo - Administrador de segurança. |
404 Not Found |
Um registo de pesquisa referenciado não existe. | Verifique se os GUIDs para Conta de Serviço, Tipo de Ordem de Trabalho e Lista de Preços fazem referência a registos existentes. |