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

  • リリースバージョン: Yokohama
  • 更新日 2025年01月30日
  • 所要時間:7分
  • ユーザーレコードリストからオブジェクトのアレイを生成します。スクリプトステップを使用してレコードリストを反復処理する方法について説明します。

    始める前に

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

    このタスクについて

    この例を使用して、次の操作と手順のデモンストレーションを確認します。
    • 部門レコードのアクション入力を作成します。
    • 部門アクション入力の最大 3 つのユーザーレコードを検索します。
    • ユーザーレコードリストを処理するスクリプトステップを設定します。
    • ユーザーレコードリストを含むスクリプト入力変数を作成します。
    • 空の連絡先アレイを作成するスクリプトを記述します。
    • ユーザーレコードリストを反復処理するスクリプトを記述します。
    • 連絡先オブジェクトを作成し、ユーザーレコードフィールドの値を連絡先オブジェクトにマッピングするスクリプトを記述します。
    • 連絡先アレイに現在の連絡先オブジェクトを設定するスクリプトを記述します。
    • 連絡先アレイと子連絡先オブジェクトのスクリプト出力変数を作成します。
    • 連絡先オブジェクトをテンプレートとして保存します。
    • 生成されたオブジェクトの連絡先アレイをデータピルとして出力します。
    • サンプル部門でアクションをテストします。

    手順

    1. オプション: 作業を保存するアプリケーションを作成します。
      App Engine Studio を使用して、アプリケーションを計画、作成、および展開できます。カスタムアクションの構築に関する詳細については、「Building apps in App Engine Studio」を参照してください。
      たとえば、My Application というアプリケーションを作成します。
    2. 次のように移動する。 All (すべて) > プロセス自動化 > Workflow Studio (ワークフロースタジオ).
    3. ホームページで、 [アクション] を選択します。
    4. 選択 新規 > アクション
      [アクションプロパティ] ダイアログが表示されます。
    5. 次のサンプル値を入力します。
      フィールド
      名前 オブジェクトの連絡先アレイを作成
      アプリケーション グローバル
      アクセス可能 すべてのアプリケーションスコープ
      注:
      カスタムアクションを保存および展開するアプリケーションを作成した場合は、グローバルではなくそのアプリケーションを使用します。
    6. [アクションを構築] を選択します。
      ワークフロースタジオ インターフェイスが表示されます。
    7. [アクションアウトライン] から、 入力 > 入力の作成
      新しいアクション入力が表示されます。
    8. 次の値を使用してアクション入力を構成します。

      部門レコードを保存するアクション入力を作成します。

      フィールド
      ラベル 部門
      タイプ Reference.Department [Reference.cmn_department]
      必須 True
    9. [アクションアウトライン] から [新しいステップを追加] を選択します。
      利用可能なステップのリストが表示されます。
    10. [複数のレコードの検索] を選択します。
    11. 次の値を使用してステップを構成します。

      部門の入力変数を使用するように [複数レコードのルックアップ] ステップ条件を構成します。

      フィールド
      テーブル ユーザー [sys_user]
      条件 [部門] [次の値に等しい] [アクション -> 部門]
      注:
      [入力変数] から部門データピルを選択します。
      順番 名前
      ソートタイプ a ~ z
      結果の最大数 3
      注:
      この例では、デモンストレーションの目的で [結果の最大数] の設定を 3 レコードに制限しています。
    12. [アクションアウトライン] から [新しいステップを追加] を選択します。
      利用可能なステップのリストが表示されます。
    13. [スクリプト] を選択します。
    14. [入力変数] セクションから [変数の作成] を選択します。
    15. 次の値を使用して入力変数を構成します。

      [複数レコードのルックアップ] ステップのユーザーレコードデータピルを使用するように、スクリプトステップ入力変数を構成します。

      フィールド
      名前 userRecords
      [ステップ ->「レコードの検索」ステップ -> ユーザーレコード]
      注:
      [複数レコードのルックアップ] ステップでユーザーレコードデータピルを選択します。
      注:
      [ユーザーレコード] データピルは、データパネルまたは [データピルピッカー] ボタンから選択できます。
    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. 次の値を使用してアクション出力を構成します。

      contacts というオブジェクトのアレイを作成します。アレイ内に contact というオブジェクトを作成します。contact オブジェクト内に、名、姓、メールアドレスの 3 つの文字列変数を作成します。

      Label (ラベル) 名前 タイプ 必須
      contacts contacts Array.Object True
    19. contacts の Array.Object を展開し、子オブジェクトの名前を contact に変更します。
    20. contact オブジェクトの行から [子アイテムを追加] アイコン を選択します。
    21. 次の値を使用して子アイテムを構成します。
      ラベル 名前 タイプ 必須
      first_name 文字列 True
    22. contact オブジェクトの行から [子アイテムを追加] アイコン を選択します。
    23. 次の値を使用して子アイテムを構成します。
      ラベル 名前 タイプ 必須
      last_name 文字列 True
    24. contact オブジェクトの行から [子アイテムを追加] アイコン を選択します。
    25. 次の値を使用して子アイテムを構成します。
      ラベル 名前 タイプ 必須
      メールアドレス email_address 文字列 True
    26. 連絡先オブジェクトの行から [詳細入力を切り替え] を選択します。
    27. [詳細オプション] から [テンプレートとして保存] を選択します。
      [テンプレートとして保存] ダイアログが表示されます。
    28. [名前を入力] に「contact」と入力します。
      オブジェクトテンプレートを「contact」という名前で保存します。
    29. [Save (保存)] をクリックします。
    30. [アクションアウトライン] から、 出力 > 出力の作成.
    31. 次の値を使用してアクションアウトラインを構成します。

      contacts と呼ばれるアクション出力を作成して、オブジェクトのアレイを保存します。

      Label (ラベル) 名前 タイプ 必須
      contacts contacts Array.Object True
    32. 連絡先の Array.Object を展開します。
    33. 連絡先オブジェクトの行から [詳細入力を切り替え] を選択します。
    34. [詳細オプション] から、 構造 > テンプレートから開始.
      [テンプレート] が表示されます。
    35. [テンプレート] で、以前に保存したテンプレートを選択します。
      この例では、[Global: contact] を選択します。
    36. [編集モードを終了] を選択します。
      作成した出力フィールドが表示されます。
    37. contacts の場合は、[ステップ -> スクリプトステップ -> contacts] を選択します。

      スクリプトステップの contacts データピルを使用するようにアクション出力変数を構成します。

      注:
      スクリプトステップ contacts データピルは、データパネルまたは [データピルピッカー] ボタンから選択できます。
    38. [保存] をクリックします。
    39. [テスト] を選択します。
      [アクションのテスト] ダイアログが表示されます。
    40. 次のテスト値を入力します。

      アクションをテストする開発部門を選択します。

      入力
      部門 開発
    41. [テストを実行] を選択します。
      指定されたテスト値を使用してアクションが実行されます。
    42. 次を選択します:テストの実行が終了しました。(Your test has finished running.) アクションの実行の詳細を表示します。
      アクション実行の詳細が表示されます。
    43. アクションの出力データのランタイム値を確認します。

      カスタムアクションのテスト結果の [実行の詳細] ページ。

      実行の詳細には出力データが JSON 形式の文字列として表示されますが、実際の出力データタイプはオブジェクトのアレイです。出力の文字列バージョンが必要な場合は、JSON クラスを使用してオブジェクトを文字列に変換できます。JSON オブジェクトを文字列に変換する方法の詳細については、「Scoped JSON - stringify(Object jsonObject)」を参照してください。
      この例では、連絡先オブジェクトには、開発部門の 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"
                  }
              ]
          }
      }
      

    タスクの結果

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

    次のタスク

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