最新バージョンのフローで動作しないです。
※以下は「バージョン51」時点の動作になります。
経緯
- 画面フロー内での入力値取得処理が冗長的になってしまうため、カウンターを使用してループで画面コンポーネントの値を取得する方法のメモとして記載。
完成した画面フロー
[操作手順]
1. オブジェクトの作成数を入力
2. 各項目の値を入力
3. [次へ]ボタン押下時にオブジェクトを作成
完成フロー図
作成方法
画面フローコンポーネントを配置
完成した画面フローを参考とし「テキスト」項目、「数値」項目、「チェックボックス」を複数作成する
画面コンポーネント
- レコード作成数
選択リスト -> API参照名: "objMaxCnt", [1, 2, 3]
- セクション1 -> コンポーネントの表示を設定: [1 以上 objMaxCnt]
[入力]テキスト -> API参照名: "Name1"
[入力]数値 -> API参照名: "Number1"
[入力]チェックボックス -> API参照名: "Obsolete1"
- セクション2 -> コンポーネントの表示を設定: [2 以上 objMaxCnt]
[入力]テキスト -> API参照名: "Name2"
[入力]数値 -> API参照名: "Number2"
[入力]チェックボックス -> API参照名: "Obsolete2"
- セクション3 -> コンポーネントの表示を設定: [3 以上 objMaxCnt]
[入力]テキスト -> API参照名: "Name3"
[入力]数値 -> API参照名: "Number3"
[入力]チェックボックス -> API参照名: "Obsolete3"
コンポーネントを動的に参照するにはAPI参照名を"〇〇〇1"と末尾に半角数字の連番を記載する必要がある
リソースの作成
テキストテンプレートおよび変数の作成
カウンタ変数を作成
リソース | 名前 | データ型 | デフォルト値 |
---|---|---|---|
変数 | objCnt | 数値 | 1 |
レコード作成用変数とレコードリスト作成用変数を作成
リソース | 名前 | データ型 | コレクション |
---|---|---|---|
変数 | record | レコード | FALSE |
変数 | recordList | レコード | TRUE |
カウンタを使って画面コンポーネントのAPI参照名を生成するテキストテンプレートを作成
リソース | 名前 | 本文 | 説明 |
---|---|---|---|
テキストテンプレート | template_Name | {!Name{!objCnt}} |
テキスト項目(Name?)のAPI参照名生成 |
テキストテンプレート | template_Number | {!Number{!objCnt}} |
数値項目(Number?)のAPI参照名生成 |
テキストテンプレート | template_Obsolete | {!Obsolete{!objCnt}} |
チェックボックス項目(Obsolete?)のAPI参照名生成 |
数式を使用してAPI参照名から画面コンポーネントの入力値を参照
- デフォルトのテキストテンプレートの値は以下のようになっている。
リソース | 名前 | 値 |
---|---|---|
変数 | objCnt | 1 |
テキストテンプレート | template_Name | <p>Name1</p> |
テキストテンプレート | template_Number | <p>Number1</p> |
テキストテンプレート | template_Obsolete | <p>Obsolete1</p> |
- カウンタがプラスされるたび、テキストテンプレートが画面コンポーネントの次のセクションの項目のAPI参照名を生成する仕組みになっている。
- この状態では<p>タグが邪魔なため<p>タグを削除する数式を作成する
リソース | 名前 | 型 | 数式 |
---|---|---|---|
数式 | Name | テキスト | SUBSTITUTE(SUBSTITUTE({!tmplate_name}, "</p>", ""), "<p>", "") |
数式 | Number_text | テキスト | SUBSTITUTE(SUBSTITUTE({!template_Number}, "</p>", ""), "<p>", "") |
数式 | Obsolete_text | テキスト | SUBSTITUTE(SUBSTITUTE({!template_Obsolete}, "</p>", ""), "<p>", "") |
- テキスト型以外の項目を別の対象の型に変更
リソース | 名前 | 型 | 数式 |
---|---|---|---|
数式 | Number | 数値 | VALUE(SUBSTITUTE({!Number_Text}, ",", "")) |
数式 | Obsolete | Boolean | IF({!Obsolete_Text} == "true", true, false) |
- テキスト型以外の項目は、テキスト型で取得する数式と対象のデータ型で取得する数きに分ける必要がある。
- テキストの数値にはカンマ[”,”]を削除する処理を記載する必要がある。
数式の演算子と関数についてのHelpは下から↓↓↓↓
要素の配置と設定
完成フロー図を参考に以下の順番で要素を作成すれば完成!
No | 要素 | 名前 | 処理概要 |
---|---|---|---|
1 | 割り当て | 単一レコード作成 | [record]の各項目に「Name」「Number」「Obsolete」を割り当て |
2 | 割り当て | レコードリスト追加 | [recordList]に[record]を追加 |
3 | 割り当て | カウントアップ | [objCnt]に1を追加 |
4 | 決定 | ループ条件 | [objCnt]が[objMaxCnt]以上の場合[レコードを作成 |