---
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) 所要時間：26分

フローで使用可能なすべてのタイプの動的入力を使用する方法を示すアクションのサンプルを作成します。

## 始める前に

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

## 手順

1. [インスタンスの認証情報レコードと接続レコードの作成](https://servicenow-prod.fluidtopics.net/fwAbNd4fptruI_WSO2nV4w#create-credential-and-connection-for-instance "ローカルインスタンスへの接続に必要なエイリアス、接続、および資格情報を作成します。")に展開したカスタムモバイルアプリケーションを使用して管理しました。  
   この接続および資格情報エイリアスから、データ収集アクションの REST ステップを構成するために必要なベース URL とユーザーアカウントが提供されます。
2. [テーブル名を取得するためのデータ収集アクションの作成](https://servicenow-prod.fluidtopics.net/fwAbNd4fptruI_WSO2nV4w#create-data-gathering-action-to-get-table-names "テーブル API からテーブル名のリストを取得する、カスタムのデータ収集アクションを作成します。")に展開したカスタムモバイルアプリケーションを使用して管理しました。  
   このデータ収集アクションにより、動的選択肢入力の JSON データが得られます。
3. [フィールド名を取得するためのデータ収集アクションの作成](https://servicenow-prod.fluidtopics.net/fwAbNd4fptruI_WSO2nV4w#create-data-gathering-action-to-get-field-names "テーブルからフィールドのリストを取得するデータ収集アクションを作成します。")に展開したカスタムモバイルアプリケーションを使用して管理しました。  
   このデータ収集アクションにより、動的テンプレート入力の JSON データが得られます。
4. [動的入力を追加するためのデータ収集アクションの作成](https://servicenow-prod.fluidtopics.net/fwAbNd4fptruI_WSO2nV4w#create-data-gathering-action-to-add-dynamic-inputs "参照タイプの動的入力を追加するためのデータ収集アクションを作成します。")に展開したカスタムモバイルアプリケーションを使用して管理しました。  
   このデータ収集アクションにより、任意の動的入力を作成するための JSON データが得られます。
5. [動的入力をテストするカスタムアクションの作成](https://servicenow-prod.fluidtopics.net/fwAbNd4fptruI_WSO2nV4w#get-started-dynamic-input-create-record-action "動的入力をテストするカスタムアクションを作成します。")に展開したカスタムモバイルアプリケーションを使用して管理しました。  
   このカスタムアクションにより、さまざまなタイプの動的入力が示されます。
{#getting-started-dynamic-input__steps_rwp_pml_kxb}
**関連タスク**   

* [動的選択肢のデータ収集アクションの作成](https://servicenow-prod.fluidtopics.net/GUK9PJjCPiBM2yg3xVwoeA "動的選択肢入力の選択オプションのリストを生成するデータ収集アクションを作成します。")
* [動的テンプレートのデータ収集アクションの作成](https://servicenow-prod.fluidtopics.net/Zbzss6LOZnv~JmLXyA1mMQ "動的テンプレート入力のレコードフィールド値を収集するデータ収集アクションを作成します。")
* [動的入力タイプの入力のためのデータ収集アクションの作成](https://servicenow-prod.fluidtopics.net/e38WSeth8yA~f7BWtJE7QQ "動的入力タイプの入力を使用して任意のアクション入力を作成するためのデータ収集アクションを作成します。")  
**関連資料**   

* [動的入力構成オプション](https://servicenow-prod.fluidtopics.net/Ozfy71wWNvJlwYCFhQbQ5A "ここで説明するオプションを使用して動的入力を構成します。")

## インスタンスの認証情報レコードと接続レコードの作成 {#ariaid-title2}

ローカルインスタンスへの接続に必要なエイリアス、接続、および資格情報を作成します。

### 始める前に

必要なロール：アドミン

### 手順

1. 移動先 すべて接続 \& 認証情報認証情報.
2. \[新規\] を選択し、\[基本認証情報\] を選択して、次のフィールド値を入力します。
   1. \[名前\]に「<kbd class="ph userinput">Local Admin</kbd>」と入力します。
   2. \[ユーザー名\]に、フローデザイナーおよび REST API へのアクセス権を持つユーザーアカウントを入力します。  
      たとえば、「<kbd class="ph userinput">admin</kbd>」と入力します。
   3. \[パスワード\]に、アカウントのパスワードを入力します。
   {#create-credential-and-connection-for-instance__substeps_wmq_nxk_kxb}
3. \[送信\] を選択して認証情報レコードを作成します。
4. 移動先 すべて接続 \& 認証情報接続と認証情報エイリアス.
5. \[新規\] を選択し、次のフィールドに値を入力します。
   1. \[名前\]に「Local Instance」と入力します。
   2. \[接続タイプ\] では HTTP のデフォルト値をそのまま使用します。
   3. \[送信\] を選択して、\[接続および資格情報エイリアス\] レコードを作成します。
   {#create-credential-and-connection-for-instance__substeps_wm4_dzk_kxb}
6. 作成したエイリアスを選択します。  
   たとえば、\[ Local Instance\]を選択します。
7. \[接続\] 関連リストから、\[新規\] を選択して次のフィールド値を入力します。
   1. \[名前\]に「<kbd class="ph userinput">My Instance</kbd>」と入力します。
   2. \[認証情報\] で、先ほど作成したベーシック認証情報レコードを選択します。  
      たとえば、\[Local Admin\] 認証情報を選択します。
   3. \[接続 URL\] には、インスタンスのベース URL を、末尾に前方スラッシュをつけて入力します。  
      URL の先頭にはプリフィックスの「https://」、末尾にはスラッシュ文字を追加します。  
      たとえば、<kbd class="ph userinput">https://example.service-now.com/</kbd> となります。
   4. \[送信\] を選択して、\[HTTP(S) 接続\] レコードを作成します。
   {#create-credential-and-connection-for-instance__substeps_d5c_c1l_kxb}

### タスクの結果

REST ステップを構成するときに、「Local Instance」というエイリアスを使用してローカルインスタンスに接続できます。

## テーブル名を取得するためのデータ収集アクションの作成 {#ariaid-title3}

テーブル API からテーブル名のリストを取得する、カスタムのデータ収集アクションを作成します。

### 始める前に

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

### このタスクについて

このデータ収集アクションは次の要素で構成されています。

* REST [Table API](https://www.servicenow.com/docs/access?context=c_TableAPI&version=yokohama&pubname=yokohama-api-reference&ft:locale=en-US) からテーブル名を収集する REST ステップ
* REST ステップの応答本文から JSON ペイロードを作成するスクリプトステップ
* テーブル名と値のペアを JSON ドキュメントとして格納する、<kbd class="ph userinput">output</kbd> という名前のアクション出力変数
{#create-data-gathering-action-to-get-table-names__ul_lrx_byj_kxb}

このカスタムアクションは、REST API コールを使用して、ServiceNow コアの[「レコードのルックアップ」アクション](https://servicenow-prod.fluidtopics.net/e5knqv80pdBpOOSJ2buHqQ "定義された条件に基づいてテーブルからレコードを検索します。")および[「複数レコードのルックアップ」アクション](https://servicenow-prod.fluidtopics.net/C15dNrOLkiEkqjfQIiw2PQ "定義された条件を使用して、任意のテーブルで複数のレコードを検索します。")の機能を複製します。一般的には、カスタムアクションを作成しなくても基本的なレコード操作は実行できます。このアクションは、REST ステップとスクリプトステップを操作して動的入力のテーブルデータを収集する方法を示しています。

### 手順

1. 移動先 すべてプロセスの自動化ワークフロースタジオ.
2. ホームページで、 \[アクション\] を選択します。
3. 選択 新規作成アクション.
   1. \[アクションプロパティ\] 画面の \[アクション名\] フィールドに、「<kbd class="ph userinput">Data Gathering Action for Tables</kbd>」と入力します。
   2. \[アプリケーション\] で、\[グローバル\] を選択します。
   3. \[送信\] を選択します。

   {#create-data-gathering-action-to-get-table-names__substeps_fw2_tzz_3xb}  
4. \[アクションアウトライン\] の \[入力\] セクションの下で、\[新しいステップを追加\] アイコン (![\[新しいステップを追加\] アイコン]()) を選択します。
5. \[統合\] セクションで \[REST\] ステップを選択し、次のフィールド値を入力します。  
   {#create-data-gathering-action-to-get-table-names__table_pvd_ftf_mjb__entry__2}

   | 入力 | 値 |
   |-|-|
   | 接続 | \[接続エイリアスを使用\] を選択したままにします。 |
   | 接続エイリアス | 以前に作成したエイリアスを選択するか、\[新しいレコードを作成\] アイコン (![\[新しいレコードを作成\] アイコン]()) を選択して、[HTTP(S) 接続を作成します](https://www.servicenow.com/docs/access?context=create-https-connection&version=yokohama&pubname=yokohama-platform-security&ft:locale=en-US)。 注: HTTP(s) 接続の認証情報では、[ベーシック認証情報](https://www.servicenow.com/docs/access?context=r_BasicAuthCredentialsForm&version=yokohama&pubname=yokohama-platform-security&ft:locale=en-US)を使用する必要があります。また、\[接続 URL\] は末尾に前方スラッシュが含まれるインスタンスのベース URL である必要があります。接続および認証情報の詳細については、「[接続の開始](https://www.servicenow.com/docs/access?context=connection-information&version=yokohama&pubname=yokohama-platform-security&ft:locale=en-US)」および「[認証情報の開始](https://www.servicenow.com/docs/access?context=credentials-getting-started&version=yokohama&pubname=yokohama-platform-security&ft:locale=en-US)」を参照してください。 |
   | ビルド要求 | \[手動\] オプションを選択したままにします。 |
   | リソースパス | 「<kbd class="ph userinput">api/now/doc/table/schema</kbd>」と入力します。 |
   | HTTP メソッド | 「<kbd class="ph userinput">GET</kbd>」と入力します。 |
   [ ]

   {#create-data-gathering-action-to-get-table-names__table_pvd_ftf_mjb}  
6. \[アクションアウトライン\] で、REST ステップの下にある \[新しいステップを追加\] アイコン (![新しいステップアイコン]()) をクリックし、\[スクリプト\] ステップを選択します。
   1. \[入力変数\] セクションで \[変数の作成\] を選択します。
   2. \[名前\] フィールドに「<kbd class="ph userinput">payload</kbd>」と入力します。
   3. \[ 値\] フィールドの横にあるデータピルピッカー ( ![データピルピッカー]()) を選択し、 REST ステップ応答本文.
   4. \[スクリプト\] フィールドに次のコードを入力します。  


          (function execute(inputs, outputs) {
            var payload = JSON.parse(inputs.payload);
            var tables = payload.result // Get the value of the result array
              .filter(function(table) { return table.value.indexOf('_') < 0; }) // Filter the tables we want
              .map(function(table) { 
                return { label: table.label, name: table.value }; // Set values for label and name 
            });
            outputs.tables = { data: tables }; // Final, properly formatted output
          })(inputs, outputs);

      REST API から、image、reference、rawLabel、selected、label、missing、used、および value のプロパティを含む各テーブルを説明する JSON 形式の文字列が返されます。label プロパティと value プロパティからは、動的選択肢に必要な値が得られます。動的選択肢では、各選択肢オプションにラベルと名前が必要です。このスクリプトでは、value プロパティを name プロパティにマッピングします。
   5. \[出力変数\] セクションで \[変数の作成\] を選択します。
   6. \[ラベル\] フィールドと \[名前\] フィールドに「<kbd class="ph userinput">tables</kbd>」と入力します。
   7. \[タイプ\] フィールドで、<kbd class="ph userinput">[JSON]</kbd> を選択します。

   {#create-data-gathering-action-to-get-table-names__substeps_ytx_lwf_mjb}  
7. \[アクションアウトライン\] で、\[出力\] を選択します。
   1. \[出力の作成\] を選択します。
   2. \[ラベル\] フィールドと \[名前\] フィールドに「<kbd class="ph userinput">output</kbd>」と入力します。
   3. \[タイプ\] フィールドで、<kbd class="ph userinput">[JSON]</kbd> を選択します。
   4. \[編集モードを終了\] を選択します。
   5. \[ 値\] の横にあるデータピルピッカー ( ![データピルピッカー]()) を選択し、 スクリプトステップテーブル.

   {#create-data-gathering-action-to-get-table-names__substeps_mqx_swj_kxb}  
8. アクションヘッダーで \[保存\] を選択し、\[テスト\] を選択して、[アクションをテストします](https://servicenow-prod.fluidtopics.net/ml3DNlm7PNi~Eo68_M4AhA "他のユーザーに公開する前に、アクションをテストします。")。
   1. \[テストを実行\] を選択します。
   2. アクションの実行の詳細が表示されます。  
      次の簡略化された例に示すように、`[テーブル]` のランタイム値が `[ラベル]` と `[名前]` に対するキーと値のペアのアレイを含む複合オブジェクトである場合、データ収集アクションは正常に実行されます。

          {
            "data": [
              {
                "name": "evaluation",
                "label": "A/B Testing Evaluation"
              },
              {
                "name": "sla",
                "label": "Agreement"
              },
              {
                "name": "announcement",
                "label": "Announcement"
              },
              {
                "name": "cmdb",
                "label": "Base Configuration Item"
              },
              {
                "name": "checklist",
                "label": "Checklist"
              },
              {
                "name": "collaborator",
                "label": "Collaborator"
              },
              {
                "name": "conflict",
                "label": "Conflict"
              },
              {
                "name": "clone",
                "label": "Database Clone"
              },
              {
                "name": "dsl",
                "label": "DML"
              },
              {
                "name": "global",
                "label": "Global"
              },
              {
                "name": "goal",
                "label": "Goal"
              },
              {
                "name": "incident",
                "label": "Incident"
              },
              {
                "name": "interaction",
                "label": "Interaction"
              },
              {
                "name": "map",
                "label": "Map"
              },
              {
                "name": "ola",
                "label": "OLA"
              },
              {
                "name": "problem",
                "label": "Problem"
              },
              {
                "name": "question",
                "label": "Question"
              },
              {
                "name": "reminder",
                "label": "Reminder"
              },
              {
                "name": "instance",
                "label": "ServiceNow Instance"
              },
              {
                "name": "label",
                "label": "Tag"
              },
              {
                "name": "task",
                "label": "Task"
              },
              {
                "name": "taxonomy",
                "label": "Taxonomy"
              },
              {
                "name": "ticket",
                "label": "Ticket"
              },
              {
                "name": "topic",
                "label": "Topic"
              },
              {
                "name": "expert",
                "label": "Wizard"
              }
            ]
          }

   {#create-data-gathering-action-to-get-table-names__substeps_nqx_swj_kxb}  
9. アクションヘッダーで \[公開\] を選択し、グローバルスコープ内の他のフローやアクションでこのアクションを使用できるようにします。
{#create-data-gathering-action-to-get-table-names__steps_bfz_nlf_mjb}

## フィールド名を取得するためのデータ収集アクションの作成 {#ariaid-title4}

テーブルからフィールドのリストを取得するデータ収集アクションを作成します。

### 始める前に

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

### このタスクについて

このデータ収集アクションは次の要素で構成されています。

* REST [Table API](https://www.servicenow.com/docs/access?context=c_TableAPI&version=yokohama&pubname=yokohama-api-reference&ft:locale=en-US) からフィールドを収集する REST ステップ
* REST ステップの応答本文から JSON ペイロードを作成するスクリプトステップ
* フィールド名と値のペアを JSON ドキュメントとして格納する、<kbd class="ph userinput">output</kbd> という名前のアクション出力変数
{#create-data-gathering-action-to-get-field-names__ul_lrx_byj_kxb}

このカスタムアクションは、REST API コールを使用して、ServiceNow コアの[「レコードのルックアップ」アクション](https://servicenow-prod.fluidtopics.net/e5knqv80pdBpOOSJ2buHqQ "定義された条件に基づいてテーブルからレコードを検索します。")および[「複数レコードのルックアップ」アクション](https://servicenow-prod.fluidtopics.net/C15dNrOLkiEkqjfQIiw2PQ "定義された条件を使用して、任意のテーブルで複数のレコードを検索します。")の機能を複製します。一般的には、カスタムアクションを作成しなくても基本的なレコード操作は実行できます。このアクションは、REST ステップとスクリプトステップを操作して動的入力のフィールドデータを収集する方法を示しています。

### 手順

1. 移動先 すべてプロセスの自動化ワークフロースタジオ.
2. ホームページで、 \[アクション\] を選択します。
3. 選択 新規作成アクション.
   1. \[アクションプロパティ\] 画面の \[アクション名\] フィールドに、「<kbd class="ph userinput">Data Gathering Action for Fields</kbd>」と入力します。
   2. \[アプリケーション\] で、\[グローバル\] を選択します。
   3. \[送信\] を選択します。

   {#create-data-gathering-action-to-get-field-names__substeps_fw2_tzz_3xb}  
4. \[アクションアウトライン\] から、\[入力\] を選択します。
   1. \[アクションの入力\] ヘッダーで、\[入力の作成\] をクリックします。
   2. \[ラベル\] フィールドと \[名前\] フィールドに「<kbd class="ph userinput">Table</kbd>」と入力します。
   3. \[タイプ\] フィールドで、\[文字列\] を選択します。
   4. \[必須 (Mandatory)\] スライダーを切り替えてアクティブにします。
   5. \[詳細入力を切り替え\] アイコンを選択すると、詳細入力が表示されます。
   6. \[デフォルト値\] フィールドに「<kbd class="ph userinput">incident</kbd>」と入力します。

   {#create-data-gathering-action-to-get-field-names__substeps_gl2_dyf_mjb}  
5. \[アクションアウトライン\] の REST ステップの下で、\[新しいステップを追加\] アイコン (![新しいステップアイコン]()) を選択します。
6. \[統合\] セクションで \[スクリプト\] ステップを選択し、次のフィールド値を入力します。
   1. \[入力変数\] セクションで \[変数の作成\] を選択します。
   2. \[名前\] フィールドに「<kbd class="ph userinput">table</kbd>」と入力します。
   3. \[ 値\] の横にあるデータピルピッカー ( ![データピルピッカー]()) を選択し、 アクションテーブル.
   4. \[スクリプト\] フィールドに次のコードを入力します。  


          (function execute(inputs, outputs) {
              if(!inputs.table || inputs.table === "-- None --") { // check for empty or no table 
                outputs.table = "incident"; // set default table to incident
              } else {
                outputs.table = inputs.table; // use input value provided
              }
          })(inputs, outputs);

      このスクリプトによって、REST ステップに常にテーブル名が含まれるようになります。
   5. \[出力変数\] セクションで \[変数の作成\] を選択します。
   6. \[ラベル\] フィールドと \[名前\] フィールドに「<kbd class="ph userinput">table</kbd>」と入力します。
   7. \[タイプ\] フィールドで、\[文字列\] を選択します。

   {#create-data-gathering-action-to-get-field-names__substeps_etm_cvc_rxb}  
7. \[アクションアウトライン\] の \[入力\] セクションの下で、\[新しいステップを追加\] アイコン (![新しいステップアイコン]()) を選択します。
8. \[統合\] セクションで \[REST\] ステップを選択し、次のフィールド値を入力します。  
   {#create-data-gathering-action-to-get-field-names__table_gym_n5f_mjb__entry__2}

   | 入力 | 値 |
   |-|-|
   | 接続 | \[接続エイリアスを使用\] を選択したままにします。 |
   | 接続エイリアス | 以前に作成したエイリアスを選択するか、\[新しいレコードを作成\] アイコン (![\[新しいレコードを作成\] アイコン]()) を選択して、[HTTP(S) 接続を作成します](https://www.servicenow.com/docs/access?context=create-https-connection&version=yokohama&pubname=yokohama-platform-security&ft:locale=en-US)。 注: HTTP(s) 接続の認証情報では、[ベーシック認証情報](https://www.servicenow.com/docs/access?context=r_BasicAuthCredentialsForm&version=yokohama&pubname=yokohama-platform-security&ft:locale=en-US)を使用する必要があります。また、\[接続 URL\] は末尾に前方スラッシュが含まれるインスタンスのベース URL である必要があります。接続および認証情報の詳細については、「[接続の開始](https://www.servicenow.com/docs/access?context=connection-information&version=yokohama&pubname=yokohama-platform-security&ft:locale=en-US)」および「[認証情報の開始](https://www.servicenow.com/docs/access?context=credentials-getting-started&version=yokohama&pubname=yokohama-platform-security&ft:locale=en-US)」を参照してください。 |
   | ビルド要求 | \[手動\] オプションを選択したままにします。 |
   | リソースパス | 「<kbd class="ph userinput">api/now/table/</kbd>」と入力し、データピルピッカー (![データピルピッカー]()) を選択します。選択 スクリプトステップテーブル. |
   | HTTP メソッド | 「<kbd class="ph userinput">GET</kbd>」と入力します。 |
   | クエリパラメーター | このクエリパラメーターを追加すると、REST API がレコードを 1 つだけ返すようになります。 * 名前：sysparm_limit * 値：1 {#create-data-gathering-action-to-get-field-names__ul_iqr_hlf_lxb} |
   [ ]

   {#create-data-gathering-action-to-get-field-names__table_gym_n5f_mjb}  
9. \[アクションアウトライン\] の REST ステップの下で、\[新しいステップを追加\] アイコン (![新しいステップアイコン]()) を選択します。
10. \[統合\] セクションで \[スクリプト\] ステップを選択し、次のフィールド値を入力します。
    1. \[入力変数\] セクションで \[変数の作成\] を選択します。
    2. \[名前\] フィールドに「<kbd class="ph userinput">payload</kbd>」と入力します。
    3. \[ 値\] の横にあるデータピルピッカー ( ![データピルピッカー]()) を選択し、 REST ステップ応答本文.
    4. \[スクリプト\] フィールドに次のコードを入力します。  


           (function execute(inputs, outputs) {
             var payload = JSON.parse(inputs.payload);
             var fields = Object.keys(payload.result[0]) // Get first record of array
               .map(function(property) {
                 return {
                   label: property.charAt(0).toUpperCase() + property.slice(1).replace(/_/g, ' '), // Create label from field name
                   name: property, // Set name to field name
                   value: '' // Set value to empty so that dynamic template can set value
                 };
               });
             outputs.fields = { data: fields }; // final properly formatted output
           })(inputs, outputs);

       REST API から、各フィールドを名前と値のペアのセットとして説明する JSON 形式の文字列が返されます。名前はフィールド名で、値はフィールド値です。動的テンプレートで必要なのはフィールド名とラベルのみです。テンプレート値で設定できるように、フィールド値は空白にする必要があります。ラベルプロパティは、フィールド名の最初の文字を大文字にし、アンダースコアをスペースに置き換えることで計算されます。
    5. \[出力変数\] セクションで \[変数の作成\] を選択します。
    6. \[ラベル\] フィールドと \[名前\] フィールドに「<kbd class="ph userinput">fields</kbd>」と入力します。
    7. \[タイプ\] フィールドで、\[JSON\] を選択します。

    {#create-data-gathering-action-to-get-field-names__substeps_uhc_fzf_mjb}  
11. \[アクションアウトライン\] で、\[出力\] を選択します。
    1. \[アクションの出力\] ヘッダーで、\[出力の作成\] をクリックします。
    2. \[ラベル\] フィールドと \[名前\] フィールドに「<kbd class="ph userinput">output</kbd>」と入力します。
    3. \[タイプ\] フィールドで、\[JSON\] を選択します。
    4. \[編集モードを終了\] を選択します。
    5. \[ 値\] フィールドの横にあるデータピルピッカー ( ![\[データピルピッカー]()\]) を選択し、 スクリプトステップフィールド.

    {#create-data-gathering-action-to-get-field-names__substeps_ymc_lzf_mjb}  
12. アクションヘッダーで \[保存\] を選択し、\[テスト\] を選択して、[アクションをテストします](https://servicenow-prod.fluidtopics.net/ml3DNlm7PNi~Eo68_M4AhA "他のユーザーに公開する前に、アクションをテストします。")。
    1. テストアクション画面の \[テーブル\] フィールドに「<kbd class="ph userinput">incident</kbd>」と入力します。
    2. \[テストを実行\] を選択します。
    3. アクションの実行の詳細が表示されます。  
       次の簡略化された例に示すように、<kbd class="ph userinput">[出力]</kbd> のランタイム値が `[ラベル]` と `[名前]`、および `[値]` に対するキーと値のペアのアレイを含む複合オブジェクトである場合、データ収集アクションは正常に実行されます。

           {
               "data": [
                 {
                   "name": "parent",
                   "label": "Parent",
                   "value": ""
                 },
                 {
                   "name": "made_sla",
                   "label": "Made sla",
                   "value": ""
                 },
                 {
                   "name": "caused_by",
                   "label": "Caused by",
                   "value": ""
                 },
                 {
                   "name": "watch_list",
                   "label": "Watch list",
                   "value": ""
                 },
                 {
                   "name": "upon_reject",
                   "label": "Upon reject",
                   "value": ""
                 },
                 {
                   "name": "sys_updated_on",
                   "label": "Sys updated on",
                   "value": ""
                 },
                 {
                   "name": "...",
                   "label": "...",
                   "value": ""
                 },
                 {
                   "name": "category",
                   "label": "Category",
                   "value": ""
                 }
               ]
             }

    {#create-data-gathering-action-to-get-field-names__substeps_j24_hd4_tkb}  
13. アクションヘッダーで \[公開\] をクリックすると、グローバルスコープ内の他のアクションでこのアクションを使用できるようになります。
{#create-data-gathering-action-to-get-field-names__steps_ujm_c4k_kxb}

## 動的入力を追加するためのデータ収集アクションの作成 {#ariaid-title5}

参照タイプの動的入力を追加するためのデータ収集アクションを作成します。

### 始める前に

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

### このタスクについて

このデータ収集アクションには次の要素が含まれています。

* テーブル名を格納するアクション入力変数
* 2 つの動的入力を JSON オブジェクトとして作成するスクリプトステップ
* 動的入力を格納する <kbd class="ph userinput">output</kbd> という名前のアクション出力変数
{#create-data-gathering-action-to-add-dynamic-inputs__ul_lrx_byj_kxb}

このカスタムアクションは、参照タイプ入力を使用して、ServiceNow コアの[「レコードのルックアップ」アクション](https://servicenow-prod.fluidtopics.net/e5knqv80pdBpOOSJ2buHqQ "定義された条件に基づいてテーブルからレコードを検索します。")および[「複数レコードのルックアップ」アクション](https://servicenow-prod.fluidtopics.net/C15dNrOLkiEkqjfQIiw2PQ "定義された条件を使用して、任意のテーブルで複数のレコードを検索します。")の機能を複製します。通常は、カスタムアクションを作成しなくても基本的なレコード操作は実行できます。このアクションは、スクリプトステップを操作して動的入力のフィールドデータを収集する方法を示しています。

### 手順

1. 移動先 すべてプロセスの自動化ワークフロースタジオ.
2. ホームページで、 \[アクション\] を選択します。
3. 選択 新規作成アクション.
   1. \[アクションプロパティ\] 画面の \[アクション名\] フィールドに、「<kbd class="ph userinput">Data Gathering Action for Dynamic Inputs</kbd>」と入力します。
   2. \[アプリケーション\] で、\[グローバル\] を選択します。
   3. \[送信\] を選択します。

   {#create-data-gathering-action-to-add-dynamic-inputs__substeps_fw2_tzz_3xb}  
4. \[アクションアウトライン\] から、\[入力\] を選択します。
   1. \[アクションの入力\] ヘッダーで、\[入力の作成\] をクリックします。
   2. \[ラベル\] フィールドと \[名前\] フィールドに「<kbd class="ph userinput">Table</kbd>」と入力します。
   3. \[タイプ\] フィールドで、\[文字列\] を選択します。
   4. \[詳細入力を切り替え\] アイコン (![\[詳細入力を切り替え\] アイコン]()) を選択します。
   5. \[デフォルト値\] フィールドに、「<kbd class="ph userinput">sys_user</kbd>」と入力します。

   {#create-data-gathering-action-to-add-dynamic-inputs__substeps_gl2_dyf_mjb}  
5. \[アクションアウトライン\] の \[入力\] の下で、\[新しいステップを追加\] アイコン (![新しいステップアイコン]()) を選択します。
6. \[統合\] セクションで \[スクリプト\] ステップを選択し、次のフィールド値を入力します。
   1. \[入力変数\] セクションで \[変数の作成\] を選択します。
   2. \[名前\] フィールドに「<kbd class="ph userinput">table</kbd>」と入力します。
   3. \[ 値\] の横にあるデータピルピッカー ( ![データピルピッカー]()) を選択し、 入力テーブル.
   4. \[スクリプト\] フィールドに次のコードを入力します。  


          (function execute(inputs, outputs) { 
              // Define JSON for desired dynamic input type
              outputs.data = { 
                  data: [{
                    label: 'Reference type input',
                    name: 'referencetype',
                    reference: inputs.table,
                    type: 'reference',
                  }]
                }
            })(inputs, outputs);

      動的入力には、タイプごとに独自の JSON 構造があります。参照フィールドの動的入力には、次のプロパティが必要です。

      ラベル
      :   入力の横に表示するテキスト。たとえば、「Reference field input」などです。

      名前
      :   動的入力を識別して値を格納するために使用する、動的入力の内部名。たとえば、referencetype などです。

      参照
      :   参照フィールドのターゲットテーブル名。たとえば、sys_user などです。このスクリプトでは、テーブル名は変数です。

      タイプ
      :   動的入力のデータ型。たとえば、reference などです。type プロパティによって、ワークフロースタジオ で入力がどのように表示されるか、また入力を構成するために必要なその他のプロパティが決まります。
   5. \[出力変数\] セクションで \[変数の作成\] を選択します。
   6. \[ラベル\] フィールドと \[名前\] フィールドに「<kbd class="ph userinput">data</kbd>」と入力します。
   7. \[タイプ\] フィールドで、\[JSON\] を選択します。

   {#create-data-gathering-action-to-add-dynamic-inputs__substeps_uhc_fzf_mjb}  
7. \[アクションアウトライン\] で、\[出力\] を選択します。
   1. \[アクションの出力\] ヘッダーで、\[出力の作成\] をクリックします。
   2. \[ラベル\] フィールドと \[名前\] フィールドに「<kbd class="ph userinput">output</kbd>」と入力します。
   3. \[タイプ\] フィールドで、\[JSON\] を選択します。
   4. \[編集モードを終了\] を選択します。
   5. \[ 値\] フィールドの横にあるデータピルピッカー ( ![\[データピルピッカー]()\]) を選択し、 スクリプトステップデータ.

   {#create-data-gathering-action-to-add-dynamic-inputs__substeps_ymc_lzf_mjb}  
8. アクションヘッダーで \[保存\] を選択し、\[テスト\] を選択して、[アクションをテストします](https://servicenow-prod.fluidtopics.net/ml3DNlm7PNi~Eo68_M4AhA "他のユーザーに公開する前に、アクションをテストします。")。
   1. \[テストを実行\] を選択します。
   2. アクションの実行の詳細が表示されます。  
      データ収集アクションが正常に実行された場合、次の例に示すように、<kbd class="ph userinput">output</kbd> のランタイム値は JSON 文字列になります。

          {
            "data": [
              {
                "reference": "sys_user",
                "name": "referencetype",
                "label": "Reference type input",
                "type": "reference"
              }
            ]
          }

   {#create-data-gathering-action-to-add-dynamic-inputs__substeps_j24_hd4_tkb}  
9. アクションヘッダーで \[公開\] を選択し、グローバルスコープ内の他のアクションでこのアクションを使用できるようにします。

## 動的入力をテストするカスタムアクションの作成 {#ariaid-title6}

動的入力をテストするカスタムアクションを作成します。

### 始める前に

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

### このタスクについて

このヘルパーアクションでは、REST ステップからのデータ収集を説明するため、[「レコードの作成」ステップ](https://servicenow-prod.fluidtopics.net/yeNIeas6uvdpTcgNi5Njqg "任意のテーブルでレコードを作成します。レコードのフィールドを動的に追加および設定することができます。")の機能について改めて説明します。一般的に、サードパーティのシステムおよびデータへの統合には動的入力を使用します。  
このカスタムアクションには次の要素が含まれています。

* テーブルを選択するための動的選択肢タイプの入力
* フィールド値を選択および設定するための動的テンプレートタイプの入力
* [GlideRecord - Global](https://www.servicenow.com/docs/access?context=c_GlideRecordAPI&version=yokohama&pubname=yokohama-api-reference&ft:locale=en-US)からレコードを作成するためのスクリプトステップ
* 作成されたレコードの sys_id を格納する <kbd class="ph userinput">output</kbd> という名前のアクション出力変数
{#get-started-dynamic-input-create-record-action__ul_lrx_byj_kxb}

### 手順

1. 移動先 すべてプロセスの自動化ワークフロースタジオ.
2. ホームページで、 \[アクション\] を選択します。
3. 選択 新規作成アクション.
   1. \[アクションプロパティ\] 画面の \[アクション名\] フィールドに、「<kbd class="ph userinput">Create Record from Dynamic Inputs</kbd>」と入力します。
   2. \[アプリケーション\] で、\[グローバル\] を選択します。
   3. \[送信\] を選択します。

   {#get-started-dynamic-input-create-record-action__substeps_fw2_tzz_3xb}  
4. \[アクションアウトライン\] で、\[入力\] を選択します。
   1. \[入力の作成\] を選択します。
   2. \[ラベル\] フィールドと \[名前\] フィールドに「<kbd class="ph userinput">Table</kbd>」と入力します。
   3. \[タイプ\] フィールドで、\[動的選択肢\] を選択します。
   4. \[必須\] 切り替えスイッチをオンにします。
   5. \[デフォルト値\] フィールドに「<kbd class="ph userinput">incident</kbd>」と入力します。
   6. \[選択肢\] ではデフォルト値をそのまま使用します。
   7. \[動的オプション\] の \[アクション\] フィールドで、\[テーブルのデータ収集アクション (Data Gathering Action for Fields)\] を選択します。
   8. \[入力の作成\] を選択して、別のアクション入力を作成します。
   9. \[ラベル\] フィールドと \[名前\] フィールドに「<kbd class="ph userinput">Fields</kbd>」と入力します。
   10. \[タイプ\] フィールドで、\[動的テンプレート (Dynamic Template)\] を選択します。
   11. \[必須\] 切り替えスイッチをオンにします。
   12. \[動的オプション\] の \[アクション\] フィールドで、\[フィールドのデータ収集アクション(Data Gathering Action for Fields)\] を選択します。
   13. \[テーブル\] フィールドの横にある \[別の入力に依存\] トグルスイッチをオンにします。
   14. \[テーブル\] フィールドで、\[テーブル\] 入力を選択します。
   15. \[入力の作成\] を選択して、別のアクション入力を作成します。
   16. \[ラベル\] フィールドと \[名前\] フィールドに「<kbd class="ph userinput">Dynamic Input</kbd>」と入力します。
   17. \[タイプ\] フィールドで、\[動的入力\] を選択します。
   18. \[動的オプション\] の \[アクション\] フィールドで、\[動的入力のデータ収集アクション (Data Gathering Action for Dynamic Inputs)\] を選択します。
   19. データ収集アクションで提示される sys_user のデフォルト値を使用するには、\[テーブル\] フィールドを空白のままにします。

   {#get-started-dynamic-input-create-record-action__substeps_mdf_mbg_mjb}  
5. \[アクションアウトライン\] の \[入力\] セクションの下で、\[新しいステップを追加\] アイコン (![新しいステップアイコン]()) を選択します。
6. \[統合\] セクションで \[スクリプト\] ステップを選択し、次のフィールド値を入力します。
   1. \[入力変数\] セクションで \[変数の作成\] を選択します。
   2. \[名前\] フィールドに「<kbd class="ph userinput">table</kbd>」と入力します。
   3. \[ 値\] フィールドの横にあるデータピルピッカー ( ![データピルピッカー]()) を選択し、 入力テーブル.
   4. \[変数の作成\] を選択して、別の入力変数を作成します。
   5. \[名前\] フィールドに「<kbd class="ph userinput">fields</kbd>」と入力します。
   6. \[ 値\] フィールドの横にあるデータピルピッカー ( ![データピルピッカー]()) を選択し、 入力フィールド.
   7. \[変数の作成\] を選択して、別の入力変数を作成します。
   8. \[名前\] フィールドに「<kbd class="ph userinput">payload</kbd>」と入力します。
   9. \[ 値\] フィールドの横にあるデータピルピッカー ( ![データピルピッカー]()) を選択し、 入力動的入力.
   10. \[スクリプト\] フィールドに次のコードを入力します。  


           (function execute(inputs, outputs) {
               var payload = inputs.payload.referencetype; // match name from data gathering action
               var obj = JSON.parse(payload);
               var user = obj.value;
               var gr = new GlideRecord(inputs.table); // dynamic choice input
               gr.applyEncodedQuery(inputs.fields); // dynamic template input
               gr.applyEncodedQuery("caller_id=" + user); // dynamic inputs reference field
               gr.insert();
               outputs.record = gr;
               })(inputs, outputs);

   11. \[出力変数\] セクションで \[変数の作成\] を選択します。
   12. \[ラベル\] フィールドと \[名前\] フィールドに「<kbd class="ph userinput">record</kbd>」と入力します。
   13. \[タイプ\] フィールドで \[ドキュメント ID\] を選択します。

   {#get-started-dynamic-input-create-record-action__substeps_ghf_5bg_mjb}  
7. \[アクションアウトライン\] で、\[出力\] を選択します。
   1. \[アクションの出力\] ヘッダーで、\[出力の作成\] をクリックします。
   2. \[ラベル\] フィールドと \[名前\] フィールドに「<kbd class="ph userinput">Record Created</kbd>」と入力します。
   3. \[タイプ\] フィールドで \[ドキュメント ID\] を選択します。
   4. \[編集モードを終了\] を選択します。
   5. \[ 値\] フィールドの横にあるデータピルピッカー ( ![\[データピルピッカー]()\]) を選択し、 スクリプトステップレコード.

   {#get-started-dynamic-input-create-record-action__substeps_ymc_lzf_mjb}  
8. アクションヘッダーで \[保存\] を選択し、\[テスト\] を選択して、[アクションをテストします](https://servicenow-prod.fluidtopics.net/ml3DNlm7PNi~Eo68_M4AhA "他のユーザーに公開する前に、アクションをテストします。")。
   1. テストアクション画面の \[テーブル\] 入力で、動的に生成されたテーブルの選択肢を任意に選択します。  
      たとえば、インシデントテーブルを選択します。
   2. \[フィールド値を追加\] を選択し、任意のフィールドを選択して任意の値を入力します。  
      たとえば、\[簡単な説明\] フィールドを選択し、値「test」を入力します。
   3. \[動的入力\] セクションと \[参照タイプ入力(Reference type input)\] フィールドで、参照フィールド値を選択します。  
      たとえば、「Abel Tuter」というユーザーを選択します。
   4. \[テストを実行\] を選択します。  
      注:  
      テーブル API から作成したレコードは、通常はレコードの作成に関連するデータポリシーと必須フィールドをバイパスします。このアクションは、解説のみを目的としています。標準的な保護および検証を行ってレコードを作成するには、代わりに[「レコードの作成」ステップ](https://servicenow-prod.fluidtopics.net/yeNIeas6uvdpTcgNi5Njqg "任意のテーブルでレコードを作成します。レコードのフィールドを動的に追加および設定することができます。")を使用してください。
   5. アクションの実行の詳細が表示されます。  
      \[作成されたレコード\] 出力を使用すると、`[テーブル]` と `[フィールド]` のランタイム値が入力したテスト値に一致することを確認できます。

   {#get-started-dynamic-input-create-record-action__substeps_qn3_qcg_mjb}  
9. アクションヘッダーで \[公開\] を選択し、グローバルスコープ内の他のアクションでこのアクションを使用できるようにします。

### タスクの結果

このアクションは ワークフロースタジオ 内のフローに追加できます。このサンプルアクションでは、フロー設計時に値を割り当てることができるインスタンス内のテーブルと関連フィールドのリストが動的に生成されます。


