Opprette arbeidsordrer ved hjelp av Dataverse Web API

Denne artikkelen inneholder eksempler på oppretting av arbeidsordrer i Dynamics 365 Field Service ved hjelp av Dataverse Web API. Eksemplene bruker msdyn_workorder enheten.

Forutsetninger

  • Et Dynamics 365 Field Service miljø med web-API-endepunktet (for eksempel https://yourorg.api.crm.dynamics.com/api/data/v9.2/).
  • En godkjent forespørsel ved hjelp av OAuth 2.0. Finn ut mer i Authenticate to Dataverse med web-API-en.
  • Eksisterende poster for de nødvendige oppslagsfeltene:
    • Tjenestekonto (account enhet)
    • Arbeidsordretype (msdyn_workordertype enhet)
    • Prisliste (pricelevel enhet)

Viktig!

GUIDene i eksemplene nedenfor er fiktive. Erstatt dem med de faktiske post-ID-ene fra Dynamics 365-miljøet.

Opprette én enkelt arbeidsrekkefølge

Send en POST forespørsel til msdyn_workorders enheten som er angitt for å opprette en arbeidsordre. Finn ut mer i Opprett en tabellrad ved hjelp av web-API-en.

HTTP-forespørsel

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 forespørsel returneres HTTP 204 No Content med et OData-EntityId hode som inneholder URL-adressen til den nye arbeidsordreposten.

Opprette flere arbeidsordrer

Hvis du vil opprette flere arbeidsordrer i én CreateMultiple enkelt forespørsel, bruker du handlingen. Dette er mer performant enn individuelle POST-forespørsler eller satsvise operasjoner. Finn ut mer i Bruk masseoperasjonsmeldinger.

HTTP-forespørsel

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 forespørsel returneres HTTP 200 OK med ID-ene for de opprettede postene.

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

Hente en arbeidsordre

Når du har opprettet en arbeidsordre, henter du den med en GET forespørsel.

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

Bemerkning

Feltet msdyn_name inneholder det automatisk tilordnede arbeidsordrenummeret som genereres av Felttjeneste. msdyn_address1 Og msdyn_city verdiene fylles ut fra tjenestekontoposten.

Feilbehandling

Vanlige feilsvar ved oppretting av arbeidsordrer:

Status kode Årsak Løsning
400 Bad Request Mangler obligatoriske felt eller ugyldige feltverdier. Kontroller at alle nødvendige felt (msdyn_serviceaccount, , msdyn_workordertype, msdyn_pricelistmsdyn_systemstatus, msdyn_taxable) er inkludert med gyldige verdier.
400 Bad Request (kode 0x80060888) Oppslagsfeltverdi er en bare GUID uten en enhetssettbane. Bruk det fullstendige OData-enhetsreferanseformatet, for eksempel /accounts(guid) i stedet for bare GUIDen.
401 Unauthorized Manglende eller utløpt tilgangstoken. Oppdater eller få et nytt OAuth 2.0-tilgangstoken.
403 Forbidden Utilstrekkelige rettigheter. Sørg for at brukeren har Field Service - Dispatcher eller Field Service - Administrator-sikkerhetsrollen.
404 Not Found Det finnes ikke den refererte oppslagsposten. Kontroller at GUIDer for tjenestekonto, arbeidsordretype og prisliste refererer til eksisterende poster.