Erstellen von Arbeitsaufträgen mithilfe der Dataverse-Web-API

Dieser Artikel enthält Beispiele für das Erstellen von Arbeitsaufträgen in Dynamics 365 Field Service mithilfe der Dataverse-Web-API. In den Beispielen wird die msdyn_workorder Entität verwendet.

Voraussetzungen

  • Eine Dynamics 365 Field Service Umgebung mit dem Web-API-Endpunkt (z. B. https://yourorg.api.crm.dynamics.com/api/data/v9.2/).
  • Eine authentifizierte Anforderung mit OAuth 2.0. Erfahren Sie mehr in der Authentifizierung bei Dataverse mit der Web-API.
  • Vorhandene Datensätze für die erforderlichen Nachschlagefelder:
    • Dienstkonto (account Entität)
    • Arbeitsauftragstyp (msdyn_workordertype Entität)
    • Preisliste (pricelevel Entität)

Wichtig

Die GUIDs in den folgenden Beispielen sind fiktitös. Ersetzen Sie sie durch die tatsächlichen Datensatz-IDs aus Ihrer Dynamics 365 Umgebung.

Einzelnen Arbeitsauftrag erstellen

Senden Sie eine POST-Anforderung an die msdyn_workorders-Entität, um einen Arbeitsauftrag zu erstellen. Weitere Informationen finden Sie unter Erstellen einer Tabellenzeile mithilfe der Web-API.

HTTP-Anforderung

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

Eine erfolgreiche Anforderung wird mit HTTP 204 No Content und einem OData-EntityId-Header zurückgegeben, der die URL des neuen Arbeitsauftragsdatensatzes enthält.

Erstellen mehrerer Arbeitsaufträge

Verwenden Sie die CreateMultiple Aktion, um mehrere Arbeitsaufträge in einer einzigen Anforderung zu erstellen. Dies ist leistungsfähiger als einzelne POST-Anforderungen oder Batchvorgänge. Weitere Informationen finden Sie unter "Massenvorgangsnachrichten verwenden".

HTTP-Anforderung

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

Eine erfolgreiche Anforderung gibt HTTP 200 OK mit den IDs der erstellten Datensätze zurück.

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

Abrufen eines Arbeitsauftrags

Nachdem Sie einen Arbeitsauftrag erstellt haben, rufen Sie ihn mit einer GET Anfrage ab.

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>

Antwort

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

Hinweis

Das msdyn_name Feld enthält die automatisch zugewiesene Arbeitsauftragsnummer, die von Field Service generiert wird. Die Werte msdyn_address1 und msdyn_city werden aus dem Dienstkontodatensatz befüllt.

Fehlerbehandlung

Häufige Fehlerantworten beim Erstellen von Arbeitsaufträgen:

Statuscode Grund Lösung
400 Bad Request Fehlende Pflichtfelder oder ungültige Feldwerte. Stellen Sie sicher, dass alle erforderlichen Felder (msdyn_serviceaccount, msdyn_workordertype, msdyn_pricelist, msdyn_systemstatus, msdyn_taxable) mit gültigen Werten enthalten sind.
400 Bad Request (Code 0x80060888) Der Wert des Suchfelds ist eine reine GUID ohne festgelegten Entitätspfad. Verwenden Sie das vollständige OData-Entitätsreferenzformat, z. B. /accounts(guid) anstelle der GUID.
401 Unauthorized Fehlendes oder abgelaufenes Zugriffstoken. Aktualisieren oder Abrufen eines neuen OAuth 2.0-Zugriffstokens.
403 Forbidden Unzureichende Berechtigungen. Stellen Sie sicher, dass der Benutzer über die Sicherheitsrolle Field Service - Dispatcher oder Field Service - Administrator verfügt.
404 Not Found Ein referenzierter Nachschlagedatensatz existiert nicht. Vergewissern Sie sich, dass die GUIDs für Dienstkonto, Arbeitsauftragstyp und Preisliste vorhandene Datensätze referenzieren.