レコードリストから文字列のアレイを生成するためのカスタムアクションの作成
ユーザーロールレコードリストから文字列のアレイを生成します。スクリプトステップを使用してレコードリストを反復処理する方法について説明します。
始める前に
このタスクについて
- ロールレコードのアクション入力を作成します。
- ロールアクション入力を含む最大 3 つのユーザーロールレコードを検索します。
- ユーザーロールレコードリストを処理するスクリプトステップを構成します。
- ユーザーロールレコードリストを含むスクリプト入力変数を作成します。
- 空のユーザーアレイを作成するスクリプトを記述します。
- ユーザーロールレコードリストを反復処理するスクリプトを記述します。
- ユーザーアレイに現在のユーザーフィールド値を入力するスクリプトを記述します。
- ユーザーアレイと子ユーザー文字列のスクリプト出力変数を作成します。
- 生成された文字列のユーザーアレイをデータピルとして出力します。
- 3 つのサンプルユーザーでアクションをテストします。
手順
- オプション:
作業を保存するアプリケーションを作成します。
App Engine Studio を使用して、アプリケーションを計画、作成、および展開できます。カスタムアクションの構築に関する詳細については、「Building apps in App Engine Studio」を参照してください。たとえば、My Application というアプリケーションを作成します。
- 次のように移動する。 All (すべて) > プロセス自動化 > Workflow Studio (ワークフロースタジオ).
- ホームページで、 [アクション] を選択します。
-
選択 新規 > アクション
[アクションプロパティ] ダイアログが表示されます。
-
次のサンプル値を入力します。
フィールド 値 名前 文字列のロールアレイを持つユーザーを作成する アプリケーション グローバル アクセス可能 すべてのアプリケーションスコープ 注:カスタムアクションを保存および展開するアプリケーションを作成した場合は、グローバルではなくそのアプリケーションを使用します。 -
[アクションを構築] を選択します。
ワークフロースタジオ インターフェイスが表示されます。
-
[アクションアウトライン] から、 入力 > 入力の作成
新しいアクション入力が表示されます。
-
次の値を使用してアクション入力を構成します。
フィールド 値 ラベル ロール タイプ Reference.Role [Reference.sys_user_role] 必須 True -
[アクションアウトライン] から [新しいステップを追加] を選択します。
利用可能なステップのリストが表示されます。
- [複数のレコードの検索] を選択します。
-
次の値を使用してステップを構成します。
フィールド 値 テーブル ユーザーロール [sys_user_has_role] 条件 [ロール][次の値に等しい][アクション->ロール] 注:[入力変数] からロールデータピルを選択します。順番 ロール ソートタイプ a ~ z 結果の最大数 3 注:この例では、デモンストレーションの目的で [結果の最大数] の設定を 3 レコードに制限しています。 -
[アクションアウトライン] から [新しいステップを追加] を選択します。
利用可能なステップのリストが表示されます。
- [スクリプト] を選択します。
- [入力変数] セクションから [変数の作成] を選択します。
-
次の値を使用して入力変数を構成します。
フィールド 値 名前 userRoleRecord 値 [ステップ->複数レコードのルックアップステップ->ユーザーロールレコード] 注:[複数レコードのルックアップ] ステップからユーザーロールレコードデータピルを選択します。注:ユーザーロールレコードデータピルは、データパネルまたは [データピルピッカー] ボタンから選択できます。 -
[スクリプト] に次のテキストを入力します。
(function execute(inputs, outputs) { //Create an empty array var usersArray = []; var i = 0; //Iterate through the list of User Role records while(inputs.userRoleRecords.next()) { //Query User Role records for user field value var user = inputs.userRoleRecords.getDisplayValue('user'); //Add current user name to array usersArray[i] = user; i += 1; } outputs.users = usersArray; })(inputs, outputs); - [出力変数] から [変数の作成] を選択します。
-
次の値を使用してアクション出力を構成します。
ラベル 名前 タイプ 必須 ユーザー ユーザー Array.String True - users Array.String を展開し、子文字列の名前を user に変更します。
-
次の値を使用して子アイテムを構成します。
ラベル 名前 タイプ 必須 user user String 誤り - [アクションアウトライン] から、 出力 > 出力の作成.
-
次の値を使用してアクションアウトラインを構成します。
ラベル 名前 タイプ 必須 ユーザー ユーザー Array.String True - users Array.String を展開し、子文字列の名前を user に変更します。
-
次の値を使用して子アイテムを構成します。
ラベル 名前 タイプ 必須 user user String False -
[編集モードを終了] を選択します。
作成した出力フィールドが表示されます。
-
users の場合は、[ステップ->スクリプトステップ->users] を選択します。
注:スクリプトステップ users データピルは、データパネルまたは [データピルピッカー] ボタンから選択できます。
- [保存] をクリックします。
-
[テスト] を選択します。
[アクションのテスト] ダイアログが表示されます。
-
次のテスト値を入力します。
入力 値 ロール admin -
[テストを実行] を選択します。
指定されたテスト値を使用してアクションが実行されます。
-
次を選択します:テストの実行が終了しました。(Your test has finished running.) アクションの実行の詳細を表示します。
アクション実行の詳細が表示されます。
-
アクション出力データのランタイム値を確認します。
JSON 形式で出力データが表示されます。この例では、users アレイには admin ロールを持つ 3 人のユーザーが含まれています。{ "users": [ "System Administrator", "Rob Phillips", "Fred Luddy" ] }