RTETransformer : délimité

  • Rversion finale: Australia
  • Mis à jour 12 mars 2026
  • 4 minutes de lecture
  • L’API RTETransformer fournit une méthode permettant de transformer et de stocker un tableau de messages en un enregistrement dans l’instance associée ServiceNow en fonction d’une définition d’extraction, de transformation et de chargement (ETL) fournie.

    Par exemple, vous pouvez utiliser cette API lorsque vous avez une ou des charges utiles JSON qui contiennent des informations utilisateur et que vous souhaitez transformer ces informations en table sys_user à l’aide du moteur de transformation robuste (RTE).

    Utilisez l’espace de noms sn_impex lors de l’accès à cette API.

    Pour plus d’informations, consultez Définir les opérations d’un moteur de transformation robuste.

    RTETransformer : RTETransformer(Chaîne transformDefinitionId, booléen verboseLogging, source de chaîne, nombre, batchSize)

    Instancie un objet RTETransformer .

    Tableau 1. Paramètres
    Nom Type Description
    transformDefinitionId Chaîne Sys_id de la définition d’extraction, de transformation et de chargement (ETL) à utiliser pour la transformation.

    Pour plus d’informations sur la création d’une ETL, consultez Créer des définitions ETL (Extract Transform Load).

    Table : définitions ETL [sys_rte_eb_etl_definition]

    verboseLogging Booléen Marqueur indiquant s’il faut activer la journalisation détaillée et la création de lignes de jeux d’importation pour le débogage.
    Valeurs valides :
    • vrai : activer la connexion et la création de lignes de jeu d’importation.
    • faux : n’active pas la connexion et la création de lignes de jeu d’importation.
    source Chaîne Champ Nom de l’enregistrement du jeu d’importation.
    batchSize Numéro Nombre de messages à traiter en une seule fois (lot).

    Par exemple, si une charge utile contient 10 messages et que cette valeur est définie sur 2, la méthode exécute cinq tâches par lots distinctes pour traiter tous les messages de la charge utile.

    L’exemple de code suivant montre comment instancier un objet RTETransformer pour la source testSourceRecord qui a une taille de lot de 10.

    (function(/*CTIOperationRequest*/ request, /*CTIOperationResponse*/ response, /*Context*/ ctx) {    
      // Uses an ETL definition with a target table of incident, and mappings for the number and short description field
      var transformer = new sn_impex.RTETransformer("c58f1c6377110110f5455d14cd5a998b", true, "testSourceRecord", 10);
      var messages = ["{\"number\":\"testnumber\",\"short_description\":\"testdesc\"}"];
      var results = transformer.transform(messages);
    
      for (var i = 0; i < results.length; i++) {
        var dataList = results[i].data.incident;
        gs.log("source record id: " + results[i].sourceRecordSysId);
        gs.log("status: " + results[i].status);
        for (var j = 0; j < dataList.length; j++) {
          gs.log("number:" + dataList[j].number);
          gs.log("short desc:" + dataList[j].short_description);
        }
      }
    })(request, response, ctx);

    RTETransformer : transform(Tableau message)

    Transforme et stocke un tableau de messages en un enregistrement dans l’instance associée ServiceNow en fonction d’une définition d’extraction, de transformation et de chargement (ETL) fournie.

    Par exemple, si vous souhaitez transformer des informations utilisateur en un enregistrement sys_user, vous pouvez créer un tableau de messages avec un message unique et le transmettre à cette méthode de transformation.

    Tableau 2. Paramètres
    Nom Type Description
    message Tableau d'objets Objets JSON convertis avec Stringify représentant les enregistrements à transformer en fonction de la définition ETL.
    Par exemple, si vous souhaitez transformer un seul utilisateur avec les données actives, l’e-mail, le prénom et le nom de famille dans la table sys_user, le message ressemblera à ceci :
    [
      {  
        "active":"true",
        "email":"example@servicenow.com",
        "first_name":"Jane",
        "last_name":"Doe" 
      }
    ]
    Remarque :
    Les noms de champs doivent correspondre au champ/chemin d’accès des champs de l’entité source.
    Tableau 3. Renvoie
    Nom Description
    données Données des enregistrements transformés, organisés par nom de table. Les données d’enregistrement renvoyées correspondent aux champs mappés spécifiés dans la définition ETL.

    Type de données : objet

    "data": {
      "tableName": []
    }
    nom.table.données Détails de la table contenant les enregistrements.

    Type de données : tableau d’objets

    "tableName": [{
      "sys_id": String,
       // Other data for a single transformed record
      }]
    }
    Par exemple :
    "sys_user": [{ 
      "sys_id":"b29e629877130110f5455d14cd5a99ad",
      "active": "true",
      "email": "example@servicenow.com",
      "first_name": "Jane",
      "last_name": "Doe"
    }]
    data.tableName.sys_id Sys_id de l’enregistrement dans la table.

    Type de données : chaîne

    nom.table.<other_ETL_info> Champs supplémentaires qui ont été spécifiés dans l’ETL réussi.

    Type de données : n’importe lequel

    message Si une erreur se produit lors de la transformation de l’enregistrement spécifié, un message décrivant l’erreur s’affiche. Nul si la transformation réussit.

    Type de données : chaîne

    sourceRecordSysId Sys_id de l’enregistrement de la table des ensembles d’importation. Le nom de la table de jeu d’importation est Récepteur d’événements JSON [imp_json_event_sink].

    Type de données : chaîne

    statut État de la transformation, par exemple traité ou erreur.

    Type de données : chaîne

    L’exemple de code suivant montre comment transformer et stocker un enregistrement dans la table Utilisateur [sys_user].

    (function(/*CTIOperationRequest*/ request, /*CTIOperationResponse*/ response, /*Context*/ ctx) { 
      // Uses an ETL definition with a target table of sys_user, and mappings for the active, 
      //email, first name, and last name fields
      var transformer = new sn_impex.RTETransformer("c58f1c6377110110f5455d14cd5a998b", true, "testSourceRecord", 10);
      var messages = [JSON.stringify({
        "active":"true",
        "email":"example@servicenow.com",
        "first_name":"Jane",
        "last_name":"Doe"
      }), 
      JSON.stringify({
        "active":"true",
        "email":"example2@servicenow.com",
        "first_name":"John",
        "last_name":"Deer"
      })];
      var results = transformer.transform(messages);
    
      for (var i = 0; i < results.length; i++) { 
        var dataList = results[i].data.sys_user;
        gs.log("source record id: " + results[i].sourceRecordSysId); gs.log("status: " + results[i].status);
        for (var j = 0; j < dataList.length; j++) { 
          gs.log("First Name: " + dataList[j].first_name);
          gs.log("Last Name: " + dataList[j].last_name);
          gs.log("Email: " + dataList[j].email;
          gs.log("Active: " + dataList[j].active;
        }
      }
    }

    Résultats :

    source record id: b29e629877130110f5455d14cd5a99ad
    status: PROCESSED
    First Name: Jane
    Last Name: Doe
    Email: example@servicenow.com
    Active: true
    First Name: John
    Last Name: Deer
    Email: example2@servicenow.com
    Active: true