Opret arbejdsordrer ved hjælp af Dataverse Web-API'en

Denne artikel indeholder eksempler på oprettelse af arbejdsordrer i Dynamics 365 Field Service ved hjælp af Dataverse Web API. I eksemplerne bruges objektet msdyn_workorder .

Forudsætninger

  • Et Dynamics 365 Field Service miljø med web-API-slutpunktet (f.eks. https://yourorg.api.crm.dynamics.com/api/data/v9.2/).
  • En godkendt anmodning ved hjælp af OAuth 2.0. Få mere at vide i Godkend til dataverse med web-API'en.
  • Eksisterende poster for de påkrævede opslagsfelter:
    • Tjenestekonto (account entitet)
    • Arbejdsordretype (msdyn_workordertype enhed)
    • Prisliste (pricelevel entitet)

Vigtig

GUID'erne i følgende eksempler er fiktive. Erstat dem med de faktiske post-id'er fra dit Dynamics 365 miljø.

Opret en enkelt arbejdsordre

Send en POST anmodning til det msdyn_workorders objekt, der er angivet for at oprette en arbejdsordre. Få mere at vide i Opret en tabelrække ved hjælp af Web-API'en.

HTTP-anmodning

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

HTTP-svar

En vellykket anmodning returnerer HTTP 204 No Content med et OData-EntityId sidehoved, der indeholder URL-adressen til den nye arbejdsordrepost.

Opret flere arbejdsordrer

Hvis du vil oprette flere arbejdsordrer i en enkelt anmodning, skal du bruge handlingen CreateMultiple . Dette er mere effektiv end individuelle POST-anmodninger eller batchhandlinger. Få mere at vide i Brug meddelelser om massehandlinger.

HTTP-anmodning

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

HTTP-svar

En vellykket anmodning returnerer HTTP 200 OK med id'erne for de oprettede poster.

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

Hent en arbejdsordre

Når du har oprettet en arbejdsordre, skal du hente den med en GET anmodning.

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>

Svar

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

Note

Feltet msdyn_name indeholder det automatisk tildelte arbejdsordrenummer, der genereres af Field Service. Værdierne msdyn_address1 og msdyn_city udfyldes fra tjenestekontoposten.

Fejlhåndtering

Almindelige fejlsvar ved oprettelse af arbejdsordrer:

Statuskode Årsag Løsning
400 Bad Request Manglende obligatoriske felter eller ugyldige feltværdier. Kontrollér, at alle obligatoriske felter (msdyn_serviceaccount, msdyn_workordertype, msdyn_pricelist, msdyn_systemstatus) msdyn_taxableer inkluderet i gyldige værdier.
400 Bad Request (kode 0x80060888) Opslagsfeltværdien er en GUID uden tilknyttet entitiesætsti. Brug det fulde OData-objektreferenceformat, f.eks /accounts(guid) . i stedet for blot GUID.
401 Unauthorized Adgangstokenet mangler eller er udløbet. Opdater eller hent et nyt OAuth 2.0-adgangstoken.
403 Forbidden Utilstrækkelige rettigheder. Kontrollér, at brugeren har sikkerhedsrollen Field Service - Dispatcher eller Field Service – Administrator .
404 Not Found Der findes ikke en opslagspost, som der refereres til. Kontrollér, at GUID'erne for tjenestekonto, arbejdsordretype og prisliste refererer til eksisterende poster.