Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este artículo se proporcionan ejemplos de creación de pedidos de trabajo en Dynamics 365 Field Service mediante Dataverse Web API. En los ejemplos se usa la entidad msdyn_workorder .
Prerrequisitos
- Un entorno de Dynamics 365 Field Service con el punto de conexión de API web (por ejemplo,
https://yourorg.api.crm.dynamics.com/api/data/v9.2/). - Una solicitud autenticada mediante OAuth 2.0. Obtenga más información en Autenticación en Dataverse con la API web.
- Registros existentes para los campos de búsqueda necesarios:
-
Cuenta de servicio (
accountentidad) -
Tipo de pedido de trabajo (
msdyn_workordertypeentidad) -
Lista de precios (
pricelevelentidad)
-
Cuenta de servicio (
Importante
Los GUID de los ejemplos siguientes son ficticios. Reemplácelas por los identificadores de registro reales del entorno de Dynamics 365.
Creación de un único pedido de trabajo
Envíe una solicitud de POST al conjunto de entidades msdyn_workorders para crear una orden de trabajo. Obtenga más información en Creación de una fila de tabla mediante la API web.
Solicitud 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"
}
Respuesta HTTP
Una solicitud correcta devuelve HTTP 204 No Content con un encabezado OData-EntityId que incluye la URL del nuevo registro de la orden de trabajo.
Creación de varios pedidos de trabajo
Para crear varios pedidos de trabajo en una sola solicitud, use la CreateMultiple acción . Esto es más eficaz que las solicitudes POST individuales o las operaciones por lotes. Obtenga más información en Uso de mensajes de operaciones masivas.
Solicitud 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"
}
]
}
Respuesta HTTP
Una solicitud correcta devuelve HTTP 200 OK con los identificadores de los registros creados.
{
"@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 un pedido de trabajo
Después de crear un pedido de trabajo, recupéralo con una solicitud 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>
Respuesta
{
"@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"
}
Nota:
El msdyn_name campo contiene el número de pedido de trabajo asignado automáticamente generado por Field Service. Los valores msdyn_address1 y msdyn_city se rellenan desde el registro de la cuenta de servicio.
Gestión de errores
Respuestas de error comunes al crear pedidos de trabajo:
| Código de estado | Motivo | Resolution |
|---|---|---|
400 Bad Request |
Faltan campos obligatorios o valores de campo no válidos. | Compruebe que todos los campos obligatorios (msdyn_serviceaccount, msdyn_workordertype, msdyn_pricelist, msdyn_systemstatus, msdyn_taxable) se incluyen con valores válidos. |
400 Bad Request (código 0x80060888) |
El valor del campo de búsqueda es un GUID básico sin una ruta de conjunto de entidades. | Use el formato de referencia de entidad OData completo, por ejemplo /accounts(guid) , en lugar de solo el GUID. |
401 Unauthorized |
Falta o expira el token de acceso. | Actualice o obtenga un nuevo token de acceso de OAuth 2.0. |
403 Forbidden |
Privilegios insuficientes. | Asegúrese de que el usuario tiene el rol de seguridad Field Service - Dispatcher o Field Service - Administrator. |
404 Not Found |
No existe un registro de búsqueda al que se hace referencia. | Compruebe que los GUID de la cuenta de servicio, el tipo de pedido de trabajo y la lista de precios hacen referencia a los registros existentes. |