RTETransformer – Umfang

  • Freigeben Version: Zurich
  • Aktualisiert 31. Juli 2025
  • 3 Minuten Lesedauer
  • Die RTETransformer Die API bietet eine Methode zum Transformieren und Speichern eines Arrays von Nachrichten in einen Datensatz im zugehörigen ServiceNow Instanz basierend auf einer angegebenen ETL-Definition (Extrahieren, Transformieren und Laden).

    Sie können diese API beispielsweise verwenden, wenn Sie JSON-Nutzlast(en) haben, die Anwenderinformationen enthält und diese Informationen mithilfe der robusten Transformations-Engine (RTE) in die Tabelle „sys_user“ umwandeln möchten.

    Verwenden Sie sn_impex Namespace beim Zugriff auf diese API.

    Weitere Informationen finden Sie unter Definieren Sie robuste Transformations-Engine-Vorgänge .

    RTETransformer – rteTransform(String transformDefinitionId, boolesches verboseLogging, Zeichenfolgenquelle, Number BatchSize)

    Instanziiert ein RTETransformer-Objekt.

    Tabelle : 1. Parameter
    Name Typ Beschreibung
    TransformationsdefinitionId Zeichenfolge SYS_ID der ETL-Definition (Extrahieren, Transformieren und Laden), die für die Transformation verwendet werden soll.

    Informationen zum Erstellen einer ETL finden Sie unter Erstellen Sie ETL-Definitionen (Extract Transform Load) .

    Tabelle: ETL-Definitionen [sys_rte_eb_etl_Definition]

    VerboseLogging Boolean Kennzeichnung, die angibt, ob die ausführliche Protokollierung und die Erstellung von Importsatzzeilen für das Debugging aktiviert werden sollen.
    Gültige Werte:
    • Wahr: Protokollierung und Zeilenerstellung des Importsatzes aktivieren.
    • Falsch: Protokollierung und Zeilenerstellung des Importsatzes nicht aktivieren.
    Quelle Zeichenfolge Namensfeld des Importsatzdatensatzes.
    batchSize Anzahl Anzahl der gleichzeitig zu verarbeitenden Nachrichten (Batch).

    Wenn beispielsweise 10 Nachrichten in einer Nutzlast vorhanden sind und dieser Wert auf 2 festgelegt ist, führt die Methode fünf separate Batch-Aufträge aus, um alle Nachrichten in der Nutzlast zu verarbeiten.

    Das folgende Codebeispiel zeigt, wie ein RTETransformer-Objekt für den Quell-testSourceRecord instanziiert wird, das eine Batchgröße von 10 hat.

    (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(Array-Nachricht)

    Wandelt ein Array von Nachrichten um und speichert es in einen Datensatz im zugehörigen ServiceNow Instanz basierend auf einer angegebenen ETL-Definition (Extrahieren, Transformieren und Laden).

    Wenn Sie beispielsweise Anwenderinformationen in einen sys_user-Datensatz umwandeln möchten, können Sie ein Nachrichten-Array mit einer einzelnen Nachricht erstellen und an diese Transformationsmethode übergeben.

    Tabelle : 2. Parameter
    Name Typ Beschreibung
    Nachricht Array von Objekten Stringifizierte JSON-Objekte, die die zu transformierenden Datensätze basierend auf der ETL-Definition darstellen.
    Wenn Sie beispielsweise einen einzelnen Anwender mit aktiven Daten, E-Mail, Vorname und Nachname in die Tabelle „sys_user“ umwandeln möchten, sieht die Nachricht ähnlich aus:
    [
      {  
        "active":"true",
        "email":"example@servicenow.com",
        "first_name":"Jane",
        "last_name":"Doe" 
      }
    ]
    Hinweis:
    Die Feldnamen müssen mit dem Feld/Pfad der Quellentitätsfelder übereinstimmen.
    Tabelle : 3. Rückgaben
    Name Beschreibung
    Daten Daten für die transformierten Datensätze, organisiert nach Tabellenname. Die zurückgegebenen Datensatzdaten entsprechen den zugeordneten Feldern, die in der ETL-Definition angegeben sind.

    Datentyp: Objekt

    "data": {
      "tableName": []
    }
    Daten.tableName Details der Tabelle, die die Datensätze enthält.

    Datentyp: Array von Objekten

    "tableName": [{
      "sys_id": String,
       // Other data for a single transformed record
      }]
    }
    Zum Beispiel:
    "sys_user": [{ 
      "sys_id":"b29e629877130110f5455d14cd5a99ad",
      "active": "true",
      "email": "example@servicenow.com",
      "first_name": "Jane",
      "last_name": "Doe"
    }]
    Data.tableName.sys_ID SYS_ID des Datensatzes in der Tabelle.

    Datentyp: Zeichenfolge

    Daten.Tabellenname.<other_ETL_info> Zusätzliche Felder, die in der übergebenen ETL angegeben wurden.

    Datentyp: Beliebig

    Nachricht Wenn beim Transformieren des angegebenen Datensatzes ein Fehler auftritt, wird eine Meldung angezeigt, die den Fehler beschreibt. Null, wenn die Transformation erfolgreich ist.

    Datentyp: Zeichenfolge

    SourceRecordSysId SYS_ID des Datensatzes der Importsatztabelle. Der Tabellenname des Importsatzes ist JSON-Ereignissenke [imp_JSON_event_SINK].

    Datentyp: Zeichenfolge

    status Status der Transformation, z. B. „verarbeitet“ oder „Fehler“.

    Datentyp: Zeichenfolge

    Das folgende Codebeispiel zeigt, wie ein Datensatz in der Anwendertabelle [sys_user] transformiert und gespeichert wird.

    (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;
        }
      }
    }

    Ergebnisse:

    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