Skapa arbetsorder med hjälp av Dataverse Web API

Den här artikeln innehåller exempel på hur du skapar arbetsorder i Dynamics 365 Field Service med hjälp av webb-API:et Dataverse. Exemplen använder entiteten msdyn_workorder .

Förutsättningar

  • En Dynamics 365 Field Service miljö med webb-API-slutpunkten (till exempel https://yourorg.api.crm.dynamics.com/api/data/v9.2/).
  • En autentiserad begäran med OAuth 2.0. Läs mer i Autentisera till Dataverse med webb-API:et.
  • Befintliga poster för de nödvändiga uppslagsfälten:
    • Tjänstkonto (account entitet)
    • Typ av arbetsorder (msdyn_workordertype entitet)
    • Prislista (pricelevel entitet)

Viktigt!

GUID:erna i följande exempel är fiktiva. Ersätt dem med de faktiska post-ID:na från din Dynamics 365-miljö.

Skapa en enskild arbetsordning

Skicka en POST begäran till entitetsuppsättningen msdyn_workorders för att skapa en arbetsorder. Läs mer i Skapa en tabellrad med hjälp av webb-API:et.

HTTP-begäran

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 lyckad begäran returnerar HTTP 204 No Content med en OData-EntityId-huvud som innehåller URL:en för den nya arbetsorderposten.

Skapa flera arbetsorder

Om du vill skapa flera arbetsorder i en enda begäran använder du åtgärden CreateMultiple . Detta är mer högpresterande än enskilda POST-begäranden eller batchåtgärder. Läs mer i Använda massåtgärdsmeddelanden.

HTTP-begäran

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 lyckad begäran returnerar HTTP 200 OK med ID:n för de skapade posterna.

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

Hämta en arbetsorder

När du har skapat en arbetsorder hämtar du den med en GET begäran.

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

Anmärkning

Fältet msdyn_name innehåller det automatiskt tilldelade arbetsordernumret som genereras av Fälttjänst. Värdena msdyn_address1 och msdyn_city fylls i ur servicekontokontot.

Felhantering

Vanliga felsvar när du skapar arbetsorder:

Statuskod Förnuft Lösning
400 Bad Request Obligatoriska fält eller ogiltiga fältvärden saknas. Kontrollera att alla obligatoriska fält (msdyn_serviceaccount, , msdyn_workordertypemsdyn_pricelist, msdyn_systemstatus, msdyn_taxable) ingår i giltiga värden.
400 Bad Request (kod 0x80060888) Uppslagsfältets värde är enbart en GUID utan en entitetsuppsättningssökväg. Använd det fullständiga OData-entitetsreferensformatet, till exempel /accounts(guid) i stället för bara GUID.
401 Unauthorized Åtkomsttoken saknas eller har upphört att gälla. Uppdatera eller hämta en ny OAuth 2.0-åtkomsttoken.
403 Forbidden Otillräcklig behörighet. Se till att användaren har säkerhetsrollen Field Service – Dispatcher eller Field Service – Administratör .
404 Not Found Det finns ingen refererad uppslagspost. Kontrollera att GUID:erna för tjänstkonto, arbetsordertyp och prislista refererar till befintliga poster.