Creează comenzi de lucru folosind API-ul web Dataverse

Acest articol oferă exemple de crearea comenzilor de lucru în Dynamics 365 Field Service folosind API-ul web Dataverse. Exemplele folosesc entitatea msdyn_workorder .

Cerințe preliminare

  • Un mediu Dynamics 365 Field Service cu endpoint-ul Web API (de exemplu, https://yourorg.api.crm.dynamics.com/api/data/v9.2/).
  • O cerere autentificare folosind OAuth 2.0. Află mai multe despre Authenticate to Dataverse cu Web API-ul.
  • Înregistrări existente pentru câmpurile de căutare necesare:
    • Cont de servicii (account entitate)
    • Tipul ordinului de lucru (msdyn_workordertype entitate)
    • Listă de prețuri (pricelevel entitate)

Important

GUID-urile din exemplele următoare sunt fictive. Înlocuiește-le cu ID-urile reale ale registrelor din mediul tău Dynamics 365.

Creează un singur ordin de lucru

Trimite o POST cerere către msdyn_workorders entitatea setată să creeze un ordin de lucru. Află mai multe în Crearea unui rând de tabel folosind Web API.

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

Răspuns HTTP

O cerere reușită returnează HTTP 204 No Content cu un OData-EntityId antet care conține URL-ul noii înregistrări ale comenzii de lucru.

Creează mai multe ordine de lucru

Pentru a crea mai multe ordine de lucru într-o singură cerere, folosește acțiunea CreateMultiple . Aceasta este mai performantă decât cererile individuale POST sau operațiunile batch. Află mai multe în Folosirea mesajelor de operațiuni în masă.

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

Răspuns HTTP

O cerere reușită returnează HTTP 200 OK ID-urile înregistrărilor create.

{
  "@odata.context": "[Organization URL]/api/data/v9.2/$metadata#Microsoft.Dynamics.CRM.CreateMultipleResponse",
  "Ids": [
    "c1d2e3f4-5678-9abc-def0-111111111111",
    "c1d2e3f4-5678-9abc-def0-222222222222"
  ]
}

Recuperează un ordin de lucru

După ce creezi un ordin de lucru, recuperează-l cu o GET cerere.

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>

Răspuns

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

Notă

Câmpul msdyn_name conține numărul ordinului de lucru atribuit automat generat de Field Service. Valorile msdyn_address1 și msdyn_city sunt completate din înregistrarea contului de serviciu.

Gestionarea erorilor

Răspunsuri frecvente la eroare la crearea comenzilor de lucru:

Cod de stare Motiv Rezolvare
400 Bad Request Câmpuri necesare lipsă sau valori invalide ale câmpurilor. Verificați că toate câmpurile necesare (msdyn_serviceaccount, msdyn_workordertype, msdyn_pricelist, msdyn_systemstatus, msdyn_taxable) sunt incluse cu valori valide.
400 Bad Request (cod 0x80060888) Valoarea câmpului de căutare este un GUID simplu, fără o cale de set de entități. Folosește formatul complet de referință al entității OData, /accounts(guid) de exemplu, în loc de doar GUID-ul.
401 Unauthorized Token de acces lipsă sau expirat. Reîmprospătează sau obține un nou token de acces OAuth 2.0.
403 Forbidden Privilegii insuficiente. Asigurați-vă că utilizatorul are rolul de securitate Field Service - Dispecer sau Field Service - Administrator .
404 Not Found O înregistrare de căutare referențială nu există. Verificați că GUID-urile pentru Contul de Serviciu, Tipul Ordinului de Lucru și Lista de Prețuri fac referire la înregistrările existente.