Creare ordini di lavoro usando l'API Web Dataverse

Questo articolo fornisce esempi di creazione di ordini di lavoro in Dynamics 365 Customer Voice usando l'API Web Dataverse. Negli esempi viene usata l'entità msdyn_workorder .

Prerequisiti

  • Un ambiente Dynamics 365 Customer Voice con l'endpoint dell'API Web, ad esempio https://yourorg.api.crm.dynamics.com/api/data/v9.2/.
  • Richiesta autenticata con OAuth 2.0. Per altre informazioni, vedere Eseguire l'autenticazione a Dataverse con l'API Web.
  • Record esistenti per i campi di ricerca obbligatori:
    • Account di servizio (entità account)
    • Tipo di ordine di lavoro (msdyn_workordertype entità)
    • Listino prezzi (pricelevel entità)

Importante

I GUID negli esempi seguenti sono fittizi. Sostituirli con gli ID record effettivi dell'ambiente di Dynamics 365.

Creare un singolo ordine di lavoro

Inviare una POST richiesta al msdyn_workorders set di entità per creare un ordine di lavoro. Per altre informazioni, vedere Creare una riga di tabella usando l'API Web.

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

Risposta HTTP

Una richiesta con esito positivo restituisce HTTP 204 No Content con un'intestazione OData-EntityId contenente l'URL del nuovo record dell'ordine di lavoro.

Creare più ordini di lavoro

Per creare più ordini di lavoro in una singola richiesta, usare l'azione CreateMultiple . Questa operazione è più efficiente rispetto alle singole richieste POST o alle operazioni batch. Per saperne di più, consulta Usare messaggi di operazioni in blocco.

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

Risposta HTTP

Una richiesta con esito positivo restituisce HTTP 200 OK con gli ID dei record creati.

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

Recuperare un ordine di lavoro

Dopo aver creato un ordine di lavoro, recuperarlo con una GET richiesta.

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>

risposta

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

Annotazioni

Il msdyn_name campo contiene il numero di ordine di lavoro assegnato automaticamente generato da Field Service. I valori msdyn_address1 e msdyn_city vengono popolati dal record dell'account del servizio.

Gestione degli errori

Risposte di errore comuni durante la creazione di ordini di lavoro:

Codice di stato Ragione Resolution
400 Bad Request Campi obbligatori mancanti o valori di campo non validi. Verificare che tutti i campi obbligatori (msdyn_serviceaccount, msdyn_workordertype, msdyn_pricelistmsdyn_systemstatus, , msdyn_taxable) siano inclusi con valori validi.
400 Bad Request (codice 0x80060888) Il valore del campo di ricerca è un GUID bare senza un percorso del set di entità. Usare il formato di riferimento completo dell'entità OData, ad esempio /accounts(guid) anziché solo il GUID.
401 Unauthorized Token di accesso mancante o scaduto. Aggiornare o ottenere un nuovo token di accesso OAuth 2.0.
403 Forbidden Privilegi insufficienti. Verificare che l'utente disponga del ruolo di sicurezza Field Service - Dispatcher o Field Service - Administrator .
404 Not Found Un record di ricerca a cui si fa riferimento non esiste. Verifica che i GUID per l'account del servizio, il tipo di ordine di lavoro e il listino prezzi facciano riferimento ai record esistenti.