---
sourceDocument: Yokohama ビルドのワークフロー
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/ja-JP/yokohama/build-workflows

 Release :

    - yokohama

ft:locale :

    - ja-JP

ft:publication_title :

    - Yokohama ビルドのワークフロー

ft:clusterId :

    - crworkflow

bundleId :

    - crworkflow

workflow :

    - Creator


---

# レコードリストからオブジェクトのアレイを生成するカスタムアクションの作成

# レコードリストからオブジェクトのアレイを生成するカスタムアクションの作成 {#ariaid-title1}

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

ユーザーレコードリストからオブジェクトのアレイを生成します。スクリプトステップを使用してレコードリストを反復処理する方法について説明します。

## 始める前に

必要なロール：admin または flow_designer

## このタスクについて

この例を使用して、次の操作と手順のデモンストレーションを確認します。

* 部門レコードのアクション入力を作成します。
* 部門アクション入力の最大 3 つのユーザーレコードを検索します。
* ユーザーレコードリストを処理するスクリプトステップを設定します。
* ユーザーレコードリストを含むスクリプト入力変数を作成します。
* 空の連絡先アレイを作成するスクリプトを記述します。
* ユーザーレコードリストを反復処理するスクリプトを記述します。
* 連絡先オブジェクトを作成し、ユーザーレコードフィールドの値を連絡先オブジェクトにマッピングするスクリプトを記述します。
* 連絡先アレイに現在の連絡先オブジェクトを設定するスクリプトを記述します。
* 連絡先アレイと子連絡先オブジェクトのスクリプト出力変数を作成します。
* 連絡先オブジェクトをテンプレートとして保存します。
* 生成されたオブジェクトの連絡先アレイをデータピルとして出力します。
* サンプル部門でアクションをテストします。
{#create-custom-action-array-objects__ul_c5v_rdw_lhb}

## 手順

1. **オプション:** 作業を保存するアプリケーションを作成します。  
   App Engine Studio を使用して、アプリケーションを計画、作成、および展開できます。カスタムアクションの構築に関する詳細については、「[Building apps in App Engine Studio](https://www.servicenow.com/docs/access?context=aes-app-creation&version=yokohama&pubname=yokohama-application-development&ft:locale=en-US)」を参照してください。  
   たとえば、<kbd class="ph userinput">My Application</kbd> というアプリケーションを作成します。
2. 移動先 すべてプロセスの自動化ワークフロースタジオ.
3. ホームページで、 \[アクション\] を選択します。
4. 選択 新規アクション  
   \[アクションプロパティ\] ダイアログが表示されます。
5. 次のサンプル値を入力します。  
   {#create-custom-action-array-objects__table_tjt_xxp_lhb__entry__2}

   | フィールド | 値 |
   |-|-|
   | 名前 | オブジェクトの連絡先アレイを作成 |
   | アプリケーション | グローバル |
   | アクセス可能 | すべてのアプリケーションスコープ |
   [ ]

   {#create-custom-action-array-objects__table_tjt_xxp_lhb}  
   注:  
   カスタムアクションを保存および展開するアプリケーションを作成した場合は、グローバルではなくそのアプリケーションを使用します。
6. \[アクションを構築\] を選択します。  
   ワークフロースタジオ インターフェイスが表示されます。
7. \[アクションアウトライン\] から、 入力入力の作成  
   新しいアクション入力が表示されます。
8. 次の値を使用してアクション入力を構成します。  
   {#create-custom-action-array-objects__table_ijj_myp_lhb__entry__2}

   | フィールド | 値 |
   |-|-|
   | ラベル | 部門 |
   | タイプ | Reference.Department \[Reference.cmn_department\] |
   | 必須 | True |
   [ ]

   {#create-custom-action-array-objects__table_ijj_myp_lhb}
9. \[アクションアウトライン\] から \[新しいステップを追加\] を選択します。  
   利用可能なステップのリストが表示されます。
10. \[複数のレコードの検索\] を選択します。
11. 次の値を使用してステップを構成します。  
    {#create-custom-action-array-objects__table_cvp_l5p_lhb__entry__2}

    | フィールド | 値 |
    |-|-|
    | テーブル | ユーザー \[sys_user\] |
    | 条件 | \[部門\] \[次の値に等しい\] \[アクション -\> 部門\] 注: \[入力変数\] から部門データピルを選択します。 |
    | 順番 | 名前 |
    | ソートタイプ | a から z |
    | 結果の最大数 | 3 |
    [ ]

    {#create-custom-action-array-objects__table_cvp_l5p_lhb}  
    注:  
    この例では、デモンストレーションの目的で \[結果の最大数\] の設定を 3 レコードに制限しています。
12. \[アクションアウトライン\] から \[新しいステップを追加\] を選択します。  
    利用可能なステップのリストが表示されます。
13. \[スクリプト\] を選択します。
14. \[入力変数\] セクションから \[変数の作成\] を選択します。
15. 次の値を使用して入力変数を構成します。  
    {#create-custom-action-array-objects__table_uby_5zp_lhb__entry__2}

    | フィールド | 値 |
    |-|-|
    | 名前 | userRecords |
    | 値 | \[ステップ -\>「レコードの検索」ステップ -\> ユーザーレコード\] 注: \[複数レコードのルックアップ\] ステップでユーザーレコードデータピルを選択します。 |
    [ ]

    {#create-custom-action-array-objects__table_uby_5zp_lhb}  
    注:  
    \[ユーザーレコード\] データピルは、データパネルまたは \[データピルピッカー\] ボタンから選択できます。
16. \[スクリプト\] に次のテキストを入力します。  

        (function execute(inputs, outputs) {
          //Create an empty array
          var contactsArray = [];
          var i = 0;
          //Iterate through the list of User records
          while(inputs.userRecords.next()) {
            //Create an empty object for each iteration
            var contactObject = {};
            //Query User records to assign object values
            contactObject.first_name = inputs.userRecords.getValue('first_name');
            contactObject.last_name = inputs.userRecords.getValue('last_name');
            contactObject.email_address = inputs.userRecords.getValue('email');
            //Add current object to array
            contactsArray[i] = contactObject;
            i += 1;
          }
          outputs.contacts = contactsArray;
        })(inputs, outputs);

17. \[出力変数\] から \[変数の作成\] を選択します。
18. 次の値を使用してアクション出力を構成します。  
    {#create-custom-action-array-objects__table_e3w_hbq_lhb__entry__4}

    | ラベル | 名前 | タイプ | 必須 |
    |-|-|-|-|
    | contacts | contacts | Array.Object | True |
    [ ]

    {#create-custom-action-array-objects__table_e3w_hbq_lhb}
19. contacts の Array.Object を展開し、子オブジェクトの名前を <kbd class="ph userinput">contact</kbd> に変更します。
20. contact オブジェクトの行から \[子アイテムを追加\] アイコン ![]() を選択します。
21. 次の値を使用して子アイテムを構成します。  
    {#create-custom-action-array-objects__table_d3v_sbq_lhb__entry__4}

    | ラベル | 名前 | タイプ | 必須 |
    |-|-|-|-|
    | 名 | first_name | 文字列 | True |
    [ ]

    {#create-custom-action-array-objects__table_d3v_sbq_lhb}
22. contact オブジェクトの行から \[子アイテムを追加\] アイコン ![]() を選択します。
23. 次の値を使用して子アイテムを構成します。  
    {#create-custom-action-array-objects__table_ncv_5bq_lhb__entry__4}

    | ラベル | 名前 | タイプ | 必須 |
    |-|-|-|-|
    | 姓 | last_name | 文字列 | True |
    [ ]

    {#create-custom-action-array-objects__table_ncv_5bq_lhb}
24. contact オブジェクトの行から \[子アイテムを追加\] アイコン ![]() を選択します。
25. 次の値を使用して子アイテムを構成します。  
    {#create-custom-action-array-objects__table_kht_vbq_lhb__entry__4}

    | ラベル | 名前 | タイプ | 必須 |
    |-|-|-|-|
    | メールアドレス | email_address | 文字列 | True |
    [ ]

    {#create-custom-action-array-objects__table_kht_vbq_lhb}
26. 連絡先オブジェクトの行から \[詳細入力を切り替え\] を選択します。
27. \[詳細オプション\] から \[テンプレートとして保存\] を選択します。  
    \[テンプレートとして保存\] ダイアログが表示されます。
28. \[名前を入力\] に「<kbd class="ph userinput">contact</kbd>」と入力します。  
29. \[保存\] をクリックします。
30. \[アクションアウトライン\] から、 出力出力の作成.
31. 次の値を使用してアクションアウトラインを構成します。  
    {#create-custom-action-array-objects__table_ojs_pcq_lhb__entry__4}

    | ラベル | 名前 | タイプ | 必須 |
    |-|-|-|-|
    | contacts | contacts | Array.Object | True |
    [ ]

    {#create-custom-action-array-objects__table_ojs_pcq_lhb}
32. 連絡先の Array.Object を展開します。
33. 連絡先オブジェクトの行から \[詳細入力を切り替え\] を選択します。
34. \[詳細オプション\] から、 構造テンプレートから開始.  
    \[テンプレート\] が表示されます。
35. \[テンプレート\] で、以前に保存したテンプレートを選択します。  
    この例では、\[Global: contact\] を選択します。
36. \[編集モードを終了\] を選択します。  
    作成した出力フィールドが表示されます。
37. contacts の場合は、\[ステップ -\> スクリプトステップ -\> contacts\] を選択します。  
    注:  
    スクリプトステップ contacts データピルは、データパネルまたは \[データピルピッカー\] ボタンから選択できます。
38. \[保存\] をクリックします。
39. \[テスト\] を選択します。  
    \[アクションのテスト\] ダイアログが表示されます。
40. 次のテスト値を入力します。  
    {#create-custom-action-array-objects__table_onv_z22_mhb__entry__2}

    | 入力 | 値 |
    |-|-|
    | 部門 | 開発 |
    [ ]

    {#create-custom-action-array-objects__table_onv_z22_mhb}
41. \[テストを実行\] を選択します。  
    指定されたテスト値を使用してアクションが実行されます。
42. 次を選択します：テストの実行が終了しました。(Your test has finished running.) アクションの実行の詳細を表示します。  
    アクション実行の詳細が表示されます。
43. アクションの出力データのランタイム値を確認します。  
    実行の詳細には出力データが JSON 形式の文字列として表示されますが、実際の出力データタイプはオブジェクトのアレイです。出力の文字列バージョンが必要な場合は、JSON クラスを使用してオブジェクトを文字列に変換できます。JSON オブジェクトを文字列に変換する方法の詳細については、「[Scoped JSON - stringify(Object jsonObject)](https://www.servicenow.com/docs/access?context=JSONScopedAPI&version=yokohama&pubname=yokohama-api-reference&section=JSONScoped-stringify_O&ft:locale=en-US)」を参照してください。  
    この例では、連絡先オブジェクトには、開発部門の 3 人のユーザーの名、姓、およびメール情報を含む連絡先オブジェクトのアレイが含まれています。

        {
            "contacts": 
                "contact": [
                    {
                        "email_address": "allyson.gillispie@example.com",
                        "first_name": "Allyson",
                        "last_name": "Gillispie"
                    },
                    {
                        "email_address": "alva.pennigton@example.com",
                        "first_name": "Alva",
                        "last_name": "Pennigton"
                    },
                    {
                        "email_address": "andrew.och@example.com",
                        "first_name": "Andrew",
                        "last_name": "Och"
                    }
                ]
            }
        }

## タスクの結果

特定の部門のユーザーをルックアップし、それらのユーザーを連絡先オブジェクトのアレイに変換するカスタムアクションが作成されました。

## 次のタスク

独自のロジックを使用できるようにこのアクションをカスタマイズします。

