Dataverse Web API'sini kullanarak iş siparişleri oluşturma

Bu makalede, Dataverse Web API kullanarak Dynamics 365 Field Service iş siparişleri oluşturma örnekleri sağlanır. Örneklerde msdyn_workorder varlığı kullanılır.

Önkoşullar

  • Web API uç noktasına sahip bir Dynamics 365 Field Service ortamı (örneğin, https://yourorg.api.crm.dynamics.com/api/data/v9.2/).
  • OAuth 2.0 kullanan kimliği doğrulanmış istek. Web API'siyle Dataverse'de kimlik doğrulaması hakkında daha fazla bilgi edinin.
  • Gerekli arama alanları için mevcut kayıtlar:
    • Hizmet Hesabı (account varlık)
    • İş Emri Türü (msdyn_workordertype varlık)
    • Fiyat Listesi (pricelevel varlık)

Önemli

Aşağıdaki örneklerde yer alan GUID'ler kurgusaldır. Bunları Dynamics 365 ortamınızdaki gerçek kayıt kimlikleriyle değiştirin.

Tek bir iş emri oluşturma

İş emri oluşturmak üzere msdyn_workorders varlık kümesine POST isteği gönderin. Web API'sini kullanarak tablo satırı oluşturma bölümünde daha fazla bilgi edinin.

HTTP isteği

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 yanıtı

Başarılı bir istek, yeni iş emri kaydının URL'sini içeren bir OData-EntityId başlığıyla birlikte HTTP 204 No Content döndürür.

Birden çok iş emri oluşturma

Tek bir istekte birden çok iş emri oluşturmak için eylemi kullanın CreateMultiple . Bu, tek tek POST isteklerinden veya toplu işlemlerden daha yüksek performanslıdır. Toplu işlem iletilerini kullanma bölümünde daha fazla bilgi edinin.

HTTP isteği

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 yanıtı

Başarılı bir istek, oluşturulan kayıtların kimlikleriyle birlikte HTTP 200 OK döndürür.

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

İş siparişi alma

Bir iş emri oluşturduktan sonra onu bir GET talebiyle alın.

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>

Yanıt

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

Uyarı

msdyn_name alanı, Field Service tarafından oluşturulan, otomatik olarak atanan iş emri numarasını içerir. msdyn_address1 ve msdyn_city değerleri hizmet hesabı kaydından doldurulur.

Hata işleme

İş emirleri oluşturulurken sık karşılaşılan hata yanıtları:

Durum Kodu Nedeni Çözüm
400 Bad Request Gerekli alanlar veya geçersiz alan değerleri eksik. Tüm gerekli alanların (msdyn_serviceaccount, msdyn_workordertype, msdyn_pricelist, msdyn_systemstatus, ) msdyn_taxablegeçerli değerlerle eklendiğini doğrulayın.
400 Bad Request (kod 0x80060888) Arama alanı değeri, varlık kümesi yolu olmayan çıplak bir GUID'dir. Tam OData varlık başvuru biçimini kullanın, örneğin yalnızca GUID yerine /accounts(guid).
401 Unauthorized Eksik veya süresi dolmuş erişim belirteci. Yeni bir OAuth 2.0 erişim belirtecini yenileyin veya alın.
403 Forbidden Yetersiz ayrıcalıklar. Kullanıcının Alan Hizmeti - Dağıtıcı veya Alan Hizmeti - Yönetici güvenlik rolüne sahip olduğundan emin olun.
404 Not Found Başvurulan arama kaydı mevcut değil. Hizmet Hesabı, İş Siparişi Türü ve Fiyat Listesi GUID'lerinin var olan kayıtlara başvurduğunu doğrulayın.