Notă
Accesul la această pagină necesită autorizare. Puteți încerca să vă conectați sau să modificați directoarele.
Accesul la această pagină necesită autorizare. Puteți încerca să modificați directoarele.
Acest articol oferă exemple de crearea comenzilor de lucru în Dynamics 365 Field Service folosind API-ul web Dataverse. Exemplele folosesc entitatea msdyn_workorder .
Cerințe preliminare
- Un mediu Dynamics 365 Field Service cu endpoint-ul Web API (de exemplu,
https://yourorg.api.crm.dynamics.com/api/data/v9.2/). - O cerere autentificare folosind OAuth 2.0. Află mai multe despre Authenticate to Dataverse cu Web API-ul.
- Înregistrări existente pentru câmpurile de căutare necesare:
-
Cont de servicii (
accountentitate) -
Tipul ordinului de lucru (
msdyn_workordertypeentitate) -
Listă de prețuri (
pricelevelentitate)
-
Cont de servicii (
Important
GUID-urile din exemplele următoare sunt fictive. Înlocuiește-le cu ID-urile reale ale registrelor din mediul tău Dynamics 365.
Creează un singur ordin de lucru
Trimite o POST cerere către msdyn_workorders entitatea setată să creeze un ordin de lucru. Află mai multe în Crearea unui rând de tabel folosind Web API.
Solicitare 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"
}
Răspuns HTTP
O cerere reușită returnează HTTP 204 No Content cu un OData-EntityId antet care conține URL-ul noii înregistrări ale comenzii de lucru.
Creează mai multe ordine de lucru
Pentru a crea mai multe ordine de lucru într-o singură cerere, folosește acțiunea CreateMultiple . Aceasta este mai performantă decât cererile individuale POST sau operațiunile batch. Află mai multe în Folosirea mesajelor de operațiuni în masă.
Solicitare 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"
}
]
}
Răspuns HTTP
O cerere reușită returnează HTTP 200 OK ID-urile înregistrărilor create.
{
"@odata.context": "[Organization URL]/api/data/v9.2/$metadata#Microsoft.Dynamics.CRM.CreateMultipleResponse",
"Ids": [
"c1d2e3f4-5678-9abc-def0-111111111111",
"c1d2e3f4-5678-9abc-def0-222222222222"
]
}
Recuperează un ordin de lucru
După ce creezi un ordin de lucru, recuperează-l cu o GET cerere.
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>
Răspuns
{
"@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"
}
Notă
Câmpul msdyn_name conține numărul ordinului de lucru atribuit automat generat de Field Service. Valorile msdyn_address1 și msdyn_city sunt completate din înregistrarea contului de serviciu.
Gestionarea erorilor
Răspunsuri frecvente la eroare la crearea comenzilor de lucru:
| Cod de stare | Motiv | Rezolvare |
|---|---|---|
400 Bad Request |
Câmpuri necesare lipsă sau valori invalide ale câmpurilor. | Verificați că toate câmpurile necesare (msdyn_serviceaccount, msdyn_workordertype, msdyn_pricelist, msdyn_systemstatus, msdyn_taxable) sunt incluse cu valori valide. |
400 Bad Request (cod 0x80060888) |
Valoarea câmpului de căutare este un GUID simplu, fără o cale de set de entități. | Folosește formatul complet de referință al entității OData, /accounts(guid) de exemplu, în loc de doar GUID-ul. |
401 Unauthorized |
Token de acces lipsă sau expirat. | Reîmprospătează sau obține un nou token de acces OAuth 2.0. |
403 Forbidden |
Privilegii insuficiente. | Asigurați-vă că utilizatorul are rolul de securitate Field Service - Dispecer sau Field Service - Administrator . |
404 Not Found |
O înregistrare de căutare referențială nu există. | Verificați că GUID-urile pentru Contul de Serviciu, Tipul Ordinului de Lucru și Lista de Prețuri fac referire la înregistrările existente. |