Jaa


Työtilausten luominen Dataverse Web API:n avulla

Tässä artikkelissa annetaan esimerkkejä työtilausten luomisesta Dynamics 365 Field Service käyttämällä Dataverse Web API -ohjelmointirajapintaa. Esimerkeissä käytetään msdyn_workorder-entiteettiä.

Edellytykset

  • Dynamics 365 Field Service ympäristö, jossa on WWW-ohjelmointirajapinnan päätepiste (esimerkiksi https://yourorg.api.crm.dynamics.com/api/data/v9.2/).
  • Todennettu pyyntö OAuth 2.0:n avulla. Lisätietoja on artikkelissa Dataversen todentaminen WWW-ohjelmointirajapinnan avulla.
  • Pakollisten hakukenttien aiemmin luodut tietueet:
    • Palvelutili (account entiteetti)
    • Työtilauksen tyyppi (msdyn_workordertype entiteetti)
    • Hinnasto (pricelevel entiteetti)

Tärkeää

Seuraavien esimerkkien GUID-tunnukset ovat kuvitteellisia. Korvaa ne Dynamics 365 ympäristösi todellisilla tietuetunnuksilla.

Yhden työtilauksen luominen

POST Lähetä pyyntö entiteettiin, msdyn_workorders joka on määritetty työtilauksen luomista varten. Lisätietoja on artikkelissa Taulukon rivin luominen WWW-ohjelmointirajapinnan avulla.

HTTP-pyyntö

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-vastaus

Onnistunut pyyntö palauttaa HTTP 204 No Content pyynnön, jonka OData-EntityId otsikko sisältää uuden työtilaustietueen URL-osoitteen.

Luo useita työtilauksia

Jos haluat luoda useita työtilauksia yhdessä pyynnössä, käytä -toimintoa CreateMultiple . Tämä on tehokkaampi kuin yksittäiset POST-pyynnöt tai erätoiminnot. Lue lisää kohdasta Joukkotoimintoviestien käyttäminen.

HTTP-pyyntö

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-vastaus

Onnistunut pyyntö palauttaa HTTP 200 OK luotujen tietueiden tunnukset.

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

Työtilauksen noutaminen

Kun olet luonut työtilauksen, nouda se pyynnön kanssa GET .

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>

Vastaus

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

Muistio

- msdyn_name kentässä on kenttäpalvelun luoma automaattisesti määritetty työtilauksen numero. - ja msdyn_address1 -msdyn_cityarvot täytetään palvelutilitietueesta.

Virheenkäsittely

Yleisiä virhevastauksia työtilauksia luotaessa:

Tilan koodi Peruste Ratkaisu
400 Bad Request Puuttuvat pakolliset kentät tai virheelliset kenttien arvot. Varmista, että kaikki pakolliset kentät (msdyn_serviceaccount, msdyn_workordertype, msdyn_pricelist, msdyn_systemstatus, msdyn_taxable) sisältyvät kelvollisiin arvoihin.
400 Bad Request (koodi 0x80060888) Hakukentän arvo on pelkkä GUID-tunnus ilman entiteettijoukon polkua. Käytä OData-entiteetin täydellistä viitemuotoa esimerkiksi /accounts(guid) pelkän GUID-tunnuksen sijaan.
401 Unauthorized Puuttuva tai vanhentunut käyttöoikeustietue. Päivitä tai hanki uusi OAuth 2.0 -käyttöoikeustietue.
403 Forbidden Riittämättömät oikeudet. Varmista, että käyttäjällä on kenttäpalvelu – lähettäjä tai kenttäpalvelu – järjestelmänvalvojan käyttöoikeusrooli.
404 Not Found Viitat­tua hakutietuetta ei ole olemassa. Varmista, että palvelutilin, työtilauksen tyypin ja hinnaston GUID-tunnukset viittaavat olemassa oleviin tietueisiin.