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

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

    始める前に

    必要なロール:admin

    このタスクについて

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

    手順

    1. 作業を保存するアプリケーションを作成します。
      Guided Application Creator を使用します。
      たとえば、「My Application」を作成します。
    2. 移動先 すべて > プロセス自動化 > Flow Designer.
      フローデザイナー のランディングページが表示されます。
    3. 選択 新規 > アクション
      [アクションプロパティ] ダイアログが表示されます。
    4. 次のサンプル値を入力します。
      フィールド
      名前 オブジェクトの連絡先アレイを作成
      アプリケーション 自分のアプリケーション
      アクセス可能 すべてのアプリケーションスコープ
    5. [送信] を選択します。
      アクションデザイナー インターフェイスが表示されます。
    6. [アクションアウトライン] から、 入力 > 入力の作成
      新しいアクション入力が表示されます。
    7. 次の値を使用してアクション入力を構成します。
      フィールド
      ラベル 部門
      タイプ Reference.Department [Reference.cmn_department]
      必須 true
    8. [アクションアウトライン] から [新しいステップを追加] を選択します。
      利用可能なステップのリストが表示されます。
    9. [複数のレコードの検索] を選択します。
    10. 次の値を使用してステップを構成します。
      フィールド
      テーブル ユーザー [sys_user]
      条件 [部門] [次の値に等しい] [アクション -> 部門]
      順番 名前
      ソートタイプ a ~ z
      結果の最大数 3
      注:
      この例では、デモンストレーションの目的で [結果の最大数] の設定を 3 レコードに制限しています。
    11. [アクションアウトライン] から [新しいステップを追加] を選択します。
      利用可能なステップのリストが表示されます。
    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 contacts Array.Object true
    19. 連絡先の Array.Object を展開し、連絡先として子アイテムの名前を変更します。
    20. 連絡先オブジェクトの行から [子アイテムを追加] を選択します。
    21. 次の値を使用して子アイテムを構成します。
      ラベル 名前 タイプ 必須
      first_name 文字列 true
    22. 連絡先オブジェクトの行から [子アイテムを追加] を選択します。
    23. 次の値を使用して子アイテムを構成します。
      ラベル 名前 タイプ 必須
      last_name 文字列 true
    24. 連絡先オブジェクトの行から [子アイテムを追加] を選択します。
    25. 次の値を使用して子アイテムを構成します。
      ラベル 名前 タイプ 必須
      メールアドレス email_address 文字列 true
    26. 連絡先オブジェクトの行から [詳細入力を切り替え] を選択します。
    27. [詳細オプション] から [テンプレートとして保存] を選択します。
      [テンプレートとして保存] ダイアログが表示されます。
    28. [名前を入力] に「contact」と入力します。
    29. [保存] をクリックします。
    30. [アクションアウトライン] から、 出力 > 出力の作成.
    31. 次の値を使用してアクションアウトラインを構成します。
      ラベル 名前 タイプ 必須
      contacts contacts Array.Object true
    32. 連絡先の Array.Object を展開します。
    33. 連絡先オブジェクトの行から [詳細入力を切り替え] を選択します。
    34. [詳細オプション] から、 構造 > テンプレートから開始.
      [テンプレート] が表示されます。
    35. [テンプレート] で、以前に保存したテンプレートを選択します。
      たとえば、[自分のアプリケーション:連絡先 (My application: contact)] を選択します。
    36. [編集モードを終了] を選択します。
      作成した出力フィールドが表示されます。
    37. [連絡先] の場合は、[ステップ -> スクリプトステップ -> 連絡先] を選択します。
      注:
      スクリプトステップ [連絡先] データピルは、データパネルまたは [データピルピッカー] ボタンから選択できます。
    38. [保存] をクリックします。
    39. [テスト] を選択します。
      [アクションのテスト] ダイアログが表示されます。
    40. 次のテスト値を入力します。
      入力
      部門 開発
    41. [テストを実行] を選択します。
      指定されたテスト値を使用してアクションが実行されます。
    42. 次を選択します:テストの実行が終了しました。(Your test has finished running.) アクションの実行の詳細を表示します。
      アクション実行の詳細が表示されます。
    43. アクションの出力データのランタイム値を確認します。
      JSON 形式で出力データが表示されます。
      この例では、連絡先オブジェクトには、開発部門の 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"
                  }
              ]
          }
      }
      

    タスクの結果

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

    次のタスク

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