Crea ordres de treball utilitzant l'API web de Dataverse

Aquest article ofereix exemples de creació d'ordres de treball en Dynamics 365 Field Service utilitzant l'API web Dataverse. Els exemples utilitzen l'entitat msdyn_workorder .

Requisits previs

  • Un entorn Dynamics 365 Field Service amb l'endpoint de l'API web (per exemple, https://yourorg.api.crm.dynamics.com/api/data/v9.2/).
  • Una sol·licitud autenticada utilitzant OAuth 2.0. Aprèn més a Autenticar a Dataverse amb l'API web.
  • Registres existents per als camps de cerca requerits:
    • Compte de Servei (account entitat)
    • Tipus d'ordre de treball (msdyn_workordertype entitat)
    • Llista de preus (pricelevel entitat)

Important

Els GUIDs dels exemples següents són ficticis. Substitueix-los pels IDs de registre reals del teu entorn Dynamics 365.

Crea una única ordre de treball

Envia una POST sol·licitud a l'entitat msdyn_workorders configurada per crear una ordre de treball. Aprèn més a Crea una fila de taula utilitzant l'API web.

Sol·licitud de 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

Una sol·licitud reeixida retorna HTTP 204 No Content amb una OData-EntityId capçalera que conté l'URL del nou registre de l'ordre de treball.

Crea múltiples ordres de treball

Per crear diverses ordres de treball en una sola sol·licitud, utilitza l'acció CreateMultiple . Això és més eficient que les sol·licituds POST individuals o les operacions per lots. Aprèn més a Utilitza missatges d'operacions massives.

Sol·licitud de 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

Una sol·licitud HTTP 200 OK reeixida retorna els IDs dels registres creats.

{
  "@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 una ordre de treball

Després de crear una ordre de treball, recupera'l amb una GET sol·licitud.

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

Nota

El msdyn_name camp conté el número d'ordre de treball assignat automàticament generat pel Servei de Camp. Els msdyn_address1 valors i msdyn_city s'omplen des del registre del compte de servei.

Gestió d'errors

Respostes d'error comunes en crear ordres de treball:

Codi d'estat Raó Resolució
400 Bad Request Faltant camps requerits o valors de camp invàlids. Verifica que tots els camps requerits (msdyn_serviceaccount, msdyn_workordertype, msdyn_pricelist, msdyn_systemstatus, msdyn_taxable) estiguin inclosos amb valors vàlids.
400 Bad Request(codi)0x80060888 El valor del camp de cerca és un GUID nu sense un camí establert per entitats. Utilitza el format complet de referència d'entitats d'OData, per exemple /accounts(guid) , en lloc només de la GUID.
401 Unauthorized Token d'accés perdut o caducat. Refresca o obtén un nou token d'accés OAuth 2.0.
403 Forbidden Privilegis insuficients. Assegureu-vos que l'usuari tingui el rol de seguretat de Servei de Camp - Despachador o Servei de Camp - Administrador .
404 Not Found No existeix cap registre de consulta referenciat. Verifica que els GUIDs de Compte de Servei, Tipus d'Ordre de Treball i Llista de Preus facin referència als registres existents.