RTETransformer - スコープ対象

  • リリースバージョン: Australia
  • 更新日 2026年03月12日
  • 所要時間:7分
  • RTETransformer API は、指定された抽出、変換、ロード (ETL) 定義に基づいて、メッセージのアレイを関連する ServiceNow インスタンスのレコードに変換して保存する方法を提供します。

    たとえば、ユーザー情報を含む JSON ペイロードがあり、強力な変換エンジン (RTE) を使用してその情報を sys_user テーブルに変換する場合は、この API を使用できます。

    この API にアクセスするときは、 sn_impex 名前空間を使用します。

    詳細については、「 強力な変換エンジン操作の定義」を参照してください。

    RTETransformer - RTETransformer(文字列 transformDefinitionId, ブール値 verboseLogging, 文字列 source, 数値 batchSize)

    RTETransformer オブジェクトをインスタンス化します。

    表 : 1. パラメーター
    名前 タイプ 説明
    transformDefinitionId 文字列 変換に使用する抽出、変換、ロード (ETL) 定義のSys_id。

    ETL の作成の詳細については、「抽出 変換ロード (ETL) 定義の作成」を参照してください。

    テーブル:ETL 定義 [sys_rte_eb_etl_definition]

    詳細ログ記録 ブーリアン 詳細なログ記録とデバッグ用のインポートセット行の作成を有効にするかどうかを示すフラグ。
    有効な値:
    • true:ログ記録とインポートセット行の作成を有効にします。
    • false:ログ記録とインポートセット行の作成を有効にしません。
    ソース 文字列 インポートセットレコードの名前フィールド。
    batchSize 番号 一度に処理するメッセージの数 (バッチ)。

    たとえば、ペイロードに 10 個のメッセージがあり、この値が 2 に設定されている場合、メソッドは 5 つの個別のバッチジョブを実行して、ペイロード内のすべてのメッセージを処理します。

    次のコード例は、バッチサイズが 10 のソース testSourceRecordRTETransformer オブジェクトをインスタンス化する方法を示しています。

    (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(アレイメッセージ)

    指定された抽出、変換、ロード (ETL) 定義に基づいて、メッセージのアレイを関連する ServiceNow インスタンスのレコードに変換して保存します。

    たとえば、ユーザー情報をsys_userレコードに変換する場合は、単一のメッセージを含むメッセージアレイを作成し、それをこの変換メソッドに渡すことができます。

    表 : 2. パラメーター
    名前 タイプ 説明
    メッセージ オブジェクトのアレイ ETL 定義に基づいて変換するレコードを表す文字列化された JSON オブジェクト。
    たとえば、アクティブなデータ、メール、名、姓を持つ単一のユーザーをsys_userテーブルに変換する場合、メッセージは次のようになります。
    [
      {  
        "active":"true",
        "email":"example@servicenow.com",
        "first_name":"Jane",
        "last_name":"Doe" 
      }
    ]
    注:
    フィールド名は、ソースエンティティフィールドのフィールド/パスと一致する必要があります。
    表 : 3. 返される内容
    名前 説明
    データ テーブル名別に整理された変換済みレコードのデータ。返されるレコードデータは、ETL 定義で指定されたマッピングされたフィールドと一致します。

    データタイプ: オブジェクト

    "data": {
      "tableName": []
    }
    data.tableName レコードを含むテーブルの詳細。

    データタイプ:オブジェクトのアレイ

    "tableName": [{
      "sys_id": String,
       // Other data for a single transformed record
      }]
    }
    例:
    "sys_user": [{ 
      "sys_id":"b29e629877130110f5455d14cd5a99ad",
      "active": "true",
      "email": "example@servicenow.com",
      "first_name": "Jane",
      "last_name": "Doe"
    }]
    data.tableName.sys_id テーブル内のレコードのSys_id。

    データタイプ:文字列

    data.tableName.<other_ETL_info> 合格した ETL で指定された追加フィールド。

    データタイプ:任意

    メッセージ 指定されたレコードの変換中にエラーが発生した場合は、エラーを説明するメッセージが表示されます。変換が成功した場合は null。

    データタイプ:文字列

    sourceRecordSysId インポートセットテーブルレコードのSys_id。インポートセットテーブル名は JSON イベントシンク [imp_json_event_sink] です。

    データタイプ:文字列

    status 処理済みやエラーなどの変換のステータス。

    データタイプ:文字列

    次のコード例は、ユーザー [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;
        }
      }
    }

    結果:

    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