0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

スマートに複数レコードを作成する画面フロー

Last updated at Posted at 2022-03-10

最新バージョンのフローで動作しないです。
※以下は「バージョン51」時点の動作になります。

経緯

  • 画面フロー内での入力値取得処理が冗長的になってしまうため、カウンターを使用してループで画面コンポーネントの値を取得する方法のメモとして記載。

完成した画面フロー

スクリーンショット 2022-03-09 12.24.31.png
[操作手順]
1. オブジェクトの作成数を入力
2. 各項目の値を入力
3. [次へ]ボタン押下時にオブジェクトを作成

完成フロー図

スクリーンショット 2022-03-09 15.44.03.png

作成方法

画面フローコンポーネントを配置

完成した画面フローを参考とし「テキスト」項目、「数値」項目、「チェックボックス」を複数作成する

画面コンポーネント
- レコード作成数
選択リスト -> 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) 
  1. テキスト型以外の項目は、テキスト型で取得する数式と対象のデータ型で取得する数きに分ける必要がある。
  2. テキストの数値にはカンマ[”,”]を削除する処理を記載する必要がある。

数式の演算子と関数についてのHelpは下から↓↓↓↓

要素の配置と設定

完成フロー図を参考に以下の順番で要素を作成すれば完成!

No 要素 名前 処理概要
1 割り当て 単一レコード作成 [record]の各項目に「Name」「Number」「Obsolete」を割り当て
2 割り当て レコードリスト追加 [recordList]に[record]を追加
3 割り当て カウントアップ [objCnt]に1を追加
4 決定 ループ条件 [objCnt]が[objMaxCnt]以上の場合[レコードを作成
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?