Δημιουργία παραγγελιών εργασίας με χρήση του API Web Dataverse

Αυτό το άρθρο παρέχει παραδείγματα για τη δημιουργία παραγγελιών εργασίας σε Dynamics 365 Field Service χρησιμοποιώντας το Dataverse Web API. Τα παραδείγματα χρησιμοποιούν την msdyn_workorder οντότητα.

Προαπαιτούμενα

  • Ένα περιβάλλον Dynamics 365 Field Service με το τελικό σημείο Web API (για παράδειγμα, https://yourorg.api.crm.dynamics.com/api/data/v9.2/).
  • Μια αίτηση ελέγχου ταυτότητας που χρησιμοποιεί OAuth 2.0. Μάθετε περισσότερα στο θέμα Έλεγχος ταυτότητας στο Dataverse με το Web API.
  • Υπάρχουσες εγγραφές για τα απαιτούμενα πεδία αναζήτησης:
    • Λογαριασμός υπηρεσίας (account οντότητα)
    • Τύπος παραγγελίας εργασίας (msdyn_workordertype οντότητα)
    • Τιμοκατάλογος (pricelevel οντότητα)

Σημαντικό

Τα GUID στα παρακάτω παραδείγματα είναι φανταστικά. Αντικαταστήστε τα με τα πραγματικά αναγνωριστικά εγγραφών από το περιβάλλον Dynamics 365 σας.

Δημιουργία μοναδικής σειράς εργασίας

Στείλτε μια POST αίτηση στην οντότητα που msdyn_workorders έχει οριστεί για να δημιουργήσετε μια σειρά εργασίας. Μάθετε περισσότερα στο θέμα Δημιουργία γραμμής πίνακα με χρήση του API Web.

Αίτηση HTTP

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

Επιστρέφει μια επιτυχημένη αίτηση HTTP 204 No Content με μια OData-EntityId κεφαλίδα που περιέχει τη διεύθυνση URL της νέας εγγραφής παραγγελίας εργασίας.

Δημιουργία πολλών παραγγελιών εργασίας

Για να δημιουργήσετε πολλές παραγγελίες εργασίας σε μία μόνο αίτηση, χρησιμοποιήστε την CreateMultiple ενέργεια. Αυτό είναι πιο αποδοτικό από τις μεμονωμένες αιτήσεις POST ή λειτουργίες δέσμης. Μάθετε περισσότερα στο ενότητα Χρήση μηνυμάτων μαζικής λειτουργίας.

Αίτηση HTTP

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

Μια επιτυχημένη αίτηση επιστρέφει HTTP 200 OK με τα αναγνωριστικά των εγγραφών που δημιουργήθηκαν.

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

Ανάκτηση παραγγελίας εργασίας

Αφού δημιουργήσετε μια παραγγελία εργασίας, ανακτήστε την με μια 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>

Απάντηση

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

Σημείωμα

Το msdyn_name πεδίο περιέχει τον αριθμό παραγγελίας εργασίας αυτόματης εκχώρησης που δημιουργείται από την Υπηρεσία πεδίου. Οι msdyn_address1 τιμές και msdyn_city συμπληρώνονται από την εγγραφή λογαριασμού υπηρεσίας.

Χειρισμός σφαλμάτων

Συνήθεις αποκρίσεις σφαλμάτων κατά τη δημιουργία παραγγελιών εργασίας:

Κωδικός κατάστασης Αιτία Επίλυση
400 Bad Request Λείπουν απαιτούμενα πεδία ή μη έγκυρες τιμές πεδίου. Επαληθεύστε ότι όλα τα απαιτούμενα πεδία (msdyn_serviceaccount, msdyn_workordertype, msdyn_pricelist, msdyn_systemstatus, msdyn_taxable) περιλαμβάνονται με έγκυρες τιμές.
400 Bad Request (κωδικός 0x80060888) Η τιμή πεδίου αναζήτησης είναι ένα γυμνό GUID χωρίς μια διαδρομή που έχει οριστεί οντότητα. Χρησιμοποιήστε την πλήρη μορφή αναφοράς οντότητας OData, για παράδειγμα /accounts(guid) , αντί μόνο για το GUID.
401 Unauthorized Λείπει ή έληξε το διακριτικό πρόσβασης. Ανανεώστε ή αποκτήστε ένα νέο διακριτικό πρόσβασης OAuth 2.0.
403 Forbidden Ανεπαρκή δικαιώματα. Βεβαιωθείτε ότι ο χρήστης έχει ρόλο ασφαλείας Επιτόπιας υπηρεσίας - Αποστολέας ή Επιτόπια υπηρεσία - Διαχειριστής .
404 Not Found Δεν υπάρχει μια αναφερόμενη εγγραφή αναζήτησης. Επαληθεύστε ότι τα GUID για λογαριασμό υπηρεσίας, τύπο παραγγελίας εργασίας και τιμοκατάλογο αναφέρονται σε υπάρχουσες εγγραφές.