---
sourceDocument: Xanadu API リファレンス
sourceDocumentLink: https://www.servicenow.com/docs/r/ja-JP/xanadu/api-reference

 Release :

    - xanadu

ft:locale :

    - ja-JP

ft:publication_title :

    - Xanadu API リファレンス

ft:clusterId :

    - crapiref

bundleId :

    - crapiref

workflow :

    - Creator


---

# RTETransformer - スコープ指定

# RTETransformer - スコープ指定 {#ariaid-title1}

* リリースバージョン: Xanadu
* 
* 更新日 2024年08月01日
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 所要時間：7分

RTETransformer API は、提供された抽出、変換、ロード (ETL) の定義に基づいて、メッセージのアレイをレコードに変換して関連する ServiceNow インスタンス内に格納するメソッドを提供します。
たとえば、ユーザー情報を含む JSON ペイロードがあり、強力な変換エンジン (RTE) を使用してその情報をsys_userテーブルに変換する場合に、この API を使用できます。

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

詳細については、「 [強力な変換エンジン操作の定義](https://www.servicenow.com/docs/access?context=define-rte-operations&version=xanadu&pubname=xanadu-integrate-applications&ft:locale=en-US)」を参照してください。

## RTETransformer - rteTransform(文字列 transformDefinitionId, ブール値 verboseLogging, 文字列 source, 数値 batchSize) {#ariaid-title2}

RTETransformer オブジェクトをインスタンス化します。
{#RTETrans-RTETrans_S_B_S_N__table_rsd_fk2_jtb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| transformDefinitionId | 文字列 | 変換に使用する抽出、変換、およびロード (ETL) 定義の sys_id。ETL 定義 \[sys_rte_eb_etl_definition\] テーブルにあります。 ETL の作成については、「 [抽出変換ロード (ETL) 定義の作成](https://www.servicenow.com/docs/access?context=create-etl-definitions&version=xanadu&pubname=xanadu-integrate-applications&ft:locale=en-US)」を参照してください。 |
| verboseLogging | ブーリアン | デバッグ用の詳細なログ記録とインポートセット行の作成を有効にするかどうかを示すフラグ。 有効な値： * true：ログ記録とインポートセット行の作成を有効にします。 * false：ログ記録とインポートセット行の作成を有効にしません。 {#RTETrans-RTETrans_S_B_S_N__ul_u1v_fm2_jtb} |
| source | 文字列 | インポートセットレコードの名前フィールド。 |
| batchSize | 数字 | 一度に処理するメッセージ (バッチ) の数。たとえば、ペイロードに 10 件のメッセージがあり、この値が 2 に設定されている場合、メソッドは 5 つのバッチジョブを個別に実行してペイロード内のすべてのメッセージを処理します。 |
[表 : 1. パラメーター]

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

    (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(アレイ message) {#ariaid-title3}

提供された抽出、変換、ロード (ETL) の定義に基づいて、メッセージのアレイをレコードに変換し、関連する ServiceNow インスタンス内に格納します。
たとえば、ユーザー情報を sys_user レコードに変換する場合は、メッセージが 1 つだけのメッセージアレイを作成し、この変換メソッドに渡すことができます。
{#RTETrans-transform_A__table_xsb_bq2_jtb__entry__3}

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

{#RTETrans-transform_A__table_xsb_bq2_jtb} {#RTETrans-transform_A__table_ysb_bq2_jtb__entry__2}

| 名前 | 説明 |
|-|-|
| data | テーブル名別に整理された変換済みレコードのデータ。返されたレコードデータは、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 で指定された追加フィールド。 データタイプ：任意 |
| message | 指定されたレコードの変換中にエラーが発生すると、エラーを説明するメッセージが表示されます。変換が成功した場合は null です。 データタイプ：文字列 |
| sourceRecordSysId | インポートセットテーブルレコードの sys_id。インポートセットテーブル名は JSON イベントシンク \[imp_json_event_sinc\] です。 データタイプ：文字列 |
| status | 変換のステータス (処理済みやエラーなど)。 データタイプ：文字列 |
[表 : 3. 返される内容]

{#RTETrans-transform_A__table_ysb_bq2_jtb}  
次のコード例は、レコードを変換してユーザー \[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


