---
sourceDocument: Référence de l’API Xanadu
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/fr-FR/xanadu/api-reference

 Release :

    - xanadu

ft:locale :

    - fr-FR

ft:publication_title :

    - Référence de l’API Xanadu

ft:clusterId :

    - crapiref

bundleId :

    - crapiref

workflow :

    - Creator


---

# Guide du développeur de l'API ouverte de commande de service

# Guide du développeur de l'API ouverte de commande de service {#ariaid-title1}

* Rversion finale: Xanadu
* 
* Mis à jour 1 août 2024
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 4 minutes de lecture

Utilisez l'API ouverte de commande de service pour créer, mettre à jour et récupérer des informations de commande de service.

Ce guide du développeur fournit des informations sur la façon d'étendre le [Commande de service : API ouverte](https://servicenow-prod.fluidtopics.net/H_GR3AoXk7r4ovkKk3JL9Q#service-order-open-api "L’API ouverte de commande de service fournit un point de terminaison qui active un mécanisme standardisé pour passer des commandes de services.") pour effectuer diverses personnalisations.

## Extension de l'API ouverte de la commande de service {#ariaid-title2}

L'API ouverte de commande de service peut être étendue en modifiant des includes de script.  
Ces includes de script ne doivent être modifiés qu'en tenant compte des conséquences des changements.

* TMFServiceOrderAPIUtil : contient des fonctions pour gérer les demandes POST.
* TMFServiceOrderGetAPIUtil : contient des fonctions pour gérer les demandes GET.
* ServiceOrderExtensionOOB : contient des fonctions d'assistance qui prennent en charge les fonctions dans TMFServiceOrderAPIUtil et TMFServiceOrderGetAPIUtil.
* ServiceOrderProcessor : fichier d'include de script vide. Utilisez ce fichier pour définir toutes les fonctions que vous souhaitez remplacer à partir de ServiceOrderExtensionOOB.
{#extend-service-order-api__ul_d5h_lhr_wpb}

Étendez l'API ouverte de commande de service pour effectuer les personnalisations suivantes.

### Paramètres requis {#extend-service-order-api__section_nmk_lbt_prb}

Pour modifier les paramètres de corps de la demande requis ou non pour créer une commande de service, remplacez la fonction `getServiceOrderSchema()` contenue dans l'include de script ServiceOrderExtensionOOB .

La fonction `getServiceOrderSchema()` lit le schéma à partir de l'include de script TMFOrderAPIConstants . TMFOrderAPIConstants est protégé et ne peut pas être modifié, vous ne pouvez donc pas simplement mettre à jour le schéma. Au lieu de cela, un nouveau schéma doit être lu à partir d'un fichier différent. Vous pouvez remplacer `getServiceOrderSchema()` pour lire un nouveau schéma. Pour remplacer `getServiceOrderSchema(),` écrivez une fonction portant le même nom dans l'include de script ServiceOrderProcessor . La nouvelle fonction de ServiceOrderProcessor sera appelée par TMFServiceOrderAPIUtil pour remplacer la fonction `getServiceOrderSchema()` par défaut dans ServiceOrderExtensionOOB.  
Dans cet exemple, `getServiceOrderSchema()` renvoie un schéma personnalisé qui est défini dans un nouveau fichier de constantes.

    // ServiceOrderProcessor

    var ServiceOrderProcessor = Class.create();
    ServiceOrderProcessor.prototype = Object.extendsObject(ServiceOrderExtensionOOB, {
       // Define overriding functions here
       // Function name and parameters must be identical to the function it overrides

       getServiceOrderSchema: function() {
          //Define your own custom schema in a new constant file
          return JSON.parse(Constants.SCHEMA.CREATE_SERVICE_ORDER);
       },

       type: 'ServiceOrderProcessor'
    });

### Validation du corps de la demande {#extend-service-order-api__section_m3r_1hs_nrb}

Pour effectuer une validation supplémentaire sur le corps de la demande, remplacez les fonctions ServiceOrderExtensionOOB . ServiceOrderExtensionOOB contient les quatre fonctions d'assistance suivantes qui renvoient `true` par défaut.

* `validatePostRequest()` : appelé par `processPostOrder()` dans TMFServiceOrderAPIUtil.
* `validateServiceObj()` : appelé par `processPostOrder()` dans TMFServiceOrderAPIUtil.
* `validateRelatedPartyObj()` : appelé par `processPostOrder()` dans TMFServiceOrderAPIUtil.
* `validateGetRequest()` : appelé par `processGetOrder()` dans TMFServiceOrderGetAPIUtil.

{#extend-service-order-api__ul_khg_llx_wpb}Si une fonction d'assistance renvoie `false`, cela arrête le fonctionnement de l'API. Pour appliquer une validation personnalisée, remplacez les fonctions d'assistance ServiceOrderExtensionOOB en créant des fonctions avec des noms et des paramètres identiques dans ServiceOrderProcessor. Ces nouvelles fonctions ServiceOrderProcessor seront appelées par TMFServiceOrderAPIUtil et TMFServiceOrderGetAPIUtil pour remplacer les fonctions d'aide ServiceOrderExtensionOOB par défaut.  
Dans cet exemple, une fonction de ServiceOrderProcessor remplace une fonction par défaut de ServiceOrderExtensionOOB pour effectuer la validation de l'attribut serviceOrderItem .

    // ServiceOrderProcessor

    var ServiceOrderProcessor = Class.create();
    ServiceOrderProcessor.prototype = Object.extendsObject(ServiceOrderExtensionOOB, {
        // Define overriding functions here
        // Function name and parameters must be identical to the function it overrides

        validatePostRequest: function(orderObject, details) {
            // Returning false terminates the POST request
            // Make sure to push error message in details array in case of error
            if (gs.nil(orderObject.serviceOrderItem)) {
                details.push(new TMFCommonOrderAPIUtil().getErrorDetailsObj(TMFOrderAPIConstants.MESSAGES.MISSING_ORDER_ITEM, '/'));
                return false;
            }
            return true;
        },

        type: 'ServiceOrderProcessor'
    });

### Opérations REST supplémentaires {#extend-service-order-api__section_sy1_2hs_nrb}

Pour créer des opérations supplémentaires au-delà des opérations GET et POST existantes, [créez des ressources REST scriptées supplémentaires](https://servicenow-prod.fluidtopics.net/LxUaU9gVjbo1HyqHuOdvrQ "Créez une ressource d’API REST scriptée pour définir la méthode HTTP, le script de traitement et pour remplacer les paramètres du service parent.") pour l'API ouverte de commande de service. La logique des nouvelles ressources REST scriptées doit être cohérente avec les opérations existantes. Définissez les fonctions des nouvelles opérations dans un nouvel include de script.

### Mappage de champs {#extend-service-order-api__section_ywk_rhs_nrb}

Lors de la création d'enregistrements, les mappages d'API font correspondre les paramètres du corps de la demande aux champs d'enregistrement. Lors de la récupération des enregistrements, l'API mappe les champs d'enregistrement aux attributs de l'objet de réponse.  
ServiceOrderExtensionOOB contient les fonctions suivantes pour mapper un corps de demande POST à un GlideRecord.

* `transformOrderGr()`
* `transformOrdLineItemGr()`
* `transformCustLineItmContact()`
* `transformOrderItemChar()`
{#extend-service-order-api__ul_krb_r4x_wpb}  
ServiceOrderExtensionOOB contient les fonctions suivantes pour mapper un objet GlideRecord à un objet de réponse pour les demandes GET ou POST.

* `transformPostOrderResponse()`
* `transformGetOrderResponse()`
* `transformServiceObj()`
* `transformRelatedPartyCustomerLineItem()`
* `transformOrderItemRelationship()`
* `transformGetOrdLineItmResponse()`
* `transformServiceCharacteristics()`
* `transformServiceSpecification()`
{#extend-service-order-api__ul_qqk_zfz_wpb}

Personnalisez les mappages de champs pour ajouter et récupérer des données pour des champs supplémentaires, ou pour modifier les mappages par défaut des champs. Pour personnaliser les mappages de champs, remplacez les fonctions de mappage ServiceOrderExtensionOOB en créant des fonctions avec des noms et des paramètres identiques dans ServiceOrderProcessor. Ces nouvelles fonctions ServiceOrderProcessor seront utilisées par TMFServiceOrderAPIUtil et TMFServiceOrderGetAPIUtil pour remplacer les fonctions de mappage ServiceOrderExtensionOOB par défaut.  
Dans cet exemple, deux fonctions de ServiceOrderProcessor remplacent les fonctions par défaut de ServiceOrderExtensionOOB pour créer des mappages pour les external_id champs et sys_id .

    // ServiceOrderProcessor

    var ServiceOrderProcessor = Class.create();
    ServiceOrderProcessor.prototype = Object.extendsObject(ServiceOrderExtensionOOB, {
        // Define overriding functions here
        // Function name and parameters must be identical to the function it overrides

        transformOrderGr: function(requestObject, orderGr) {
            orderGr.external_id = requestObject.externalId;
            return orderGr;
        },

        transformPostOrderResponse: function(orderObject, orderGr) {
            orderObject.id = orderGr.getValue('sys_id');
            return orderObject;
        },

        type: 'ServiceOrderProcessor'
    });


