Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Cet article fournit des exemples de création de commandes de travail dans Dynamics 365 Field Service à l’aide de l’API web Dataverse Web. Les exemples utilisent l’entité msdyn_workorder .
Prerequisites
- Un environnement Dynamics 365 Field Service avec le point de terminaison de l’API web (par exemple,
https://yourorg.api.crm.dynamics.com/api/data/v9.2/). - Demande authentifiée à l’aide d’OAuth 2.0. En savoir plus sur l’authentification auprès de Dataverse avec l’API web.
- Enregistrements existants pour les champs de recherche requis :
-
Compte de service (
accountentité) -
Type d’ordre de travail (
msdyn_workordertypeentité) -
Liste de prix (
pricelevelentité)
-
Compte de service (
Important
Les GUID dans les exemples suivants sont fictifs. Remplacez-les par les ID d’enregistrement réels de votre environnement de Dynamics 365.
Créer un ordre de travail unique
Envoyez une POST demande à l’ensemble msdyn_workorders d’entités pour créer une commande de travail. Pour en savoir plus, consultez Créer une ligne de table à l’aide de l’API web.
Requête 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éponse HTTP
Une requête réussie retourne HTTP 204 No Content avec un OData-EntityId en-tête contenant l’URL du nouvel enregistrement de commande de travail.
Créer plusieurs commandes de travail
Pour créer plusieurs commandes de travail dans une seule requête, utilisez l’action CreateMultiple . Cela est plus performant que les requêtes POST individuelles ou les opérations de traitement par lots. Pour plus d’informations : Utiliser les messages d’opération en bloc.
Requête 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éponse HTTP
Une requête réussie retourne HTTP 200 OK avec les ID des enregistrements créés.
{
"@odata.context": "[Organization URL]/api/data/v9.2/$metadata#Microsoft.Dynamics.CRM.CreateMultipleResponse",
"Ids": [
"c1d2e3f4-5678-9abc-def0-111111111111",
"c1d2e3f4-5678-9abc-def0-222222222222"
]
}
Récupérer un ordre de travail
Après avoir créé une commande de travail, récupérez-la avec une GET demande.
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éponse
{
"@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"
}
Note
Le msdyn_name champ contient le numéro d’ordre de travail attribué automatiquement généré par Field Service. Les valeurs msdyn_address1 et msdyn_city sont remplies depuis l’enregistrement du compte de service.
Gestion des erreurs
Réponses d’erreur courantes lors de la création de commandes de travail :
| Code de statut | Reason | Résolution |
|---|---|---|
400 Bad Request |
Champs obligatoires manquants ou valeurs de champ non valides. | Vérifiez que tous les champs obligatoires (msdyn_serviceaccount, msdyn_workordertype, msdyn_pricelist, msdyn_systemstatus, msdyn_taxable) sont inclus avec des valeurs valides. |
400 Bad Request (code 0x80060888) |
La valeur du champ de recherche est un GUID pur sans chemin d’accès à l’ensemble d'entités. | Utilisez le format de référence d’entité OData complet, par exemple /accounts(guid) au lieu du GUID uniquement. |
401 Unauthorized |
Jeton d’accès manquant ou expiré. | Actualisez ou obtenez un nouveau jeton d’accès OAuth 2.0. |
403 Forbidden |
Privilèges insuffisants. | Vérifiez que l’utilisateur dispose du rôle de sécurité Field Service - Dispatcher ou Field Service - Administrateur . |
404 Not Found |
Un enregistrement de recherche référencé n’existe pas. | Vérifiez que les GUID pour le compte de service, le type de commande de travail et la liste de prix référencent les enregistrements existants. |