Salesforce画面フロー:繰り返し要素でレコード一括作成更新を
#Salesforce #画面フロー #レコード一括作成 #レコード一括更新
Salesforceの標準機能で作成済みのレコードをインライン編集的に更新するには、主に下記の方法が考えられます。
- リストビューのインライン編集
- レポートのインライン編集
画面フローではデータテーブルコンポーネントを使うことでレコードを一覧表示することは可能ですが、2026年1月現在ではその一覧表示画面から値を編集することは出来ません。
LWCなどの開発を行うことで柔軟な画面を作成することは出来ますが、
限定的な機能であればフローのみで実現することが可能です。
画面要素内の“繰り返し“コンポーネントを使用することで、擬似的に画面フロー上でインライン編集が可能になることを確認してみましょう。
※本記事のインライン編集とは画面上にレコードを一覧表示し、各値を1つずつ編集可能とするものです。(=2026年1月現在のレポートでのインライン編集と同義)
そのためリストビューのように各レコードの値を一括編集することは含めません。
繰り返しコンポーネントとは
Salesforceの画面フローで使用可能な画面要素のコンポーネントです。
画面フロー上で「同じUIのかたまり」をコレクションの要素分だけ繰り返し表示でき、
1行追加、1行削除などの動作も可能です。
今回はこの繰り返しコンポーネントを使用し、画面フローに複数レコードを一覧表示しつつ各値を編集可能な仕組みを考えてみます。
完成系
・1取引先に紐づく各商談を一覧表示し、画面フロー上で各値をインライン編集可能とします。
・Upsertの形で商談レコードの新規作成、既存レコード更新の両方を実現します。

画面フローの作成
- 今回は取引先画面に画面フローを配置する想定のため、その取引先に紐づく全商談を取得します。
- 画面要素で「繰り返し」要素を配置します。
- 商談一覧表示する際に表示したい項目を指定します。
- 配置した4項目へそれぞれデフォルト値を指定します。
- 繰り返しコンポーネントから商談レコードコレクション変数へ割り当てをします。
- コレクションのUpsert
- 画面フローの最終系
【ポイント】
レコードの一覧表示であればデータテーブルコンポーネントを使いたくなりますが、データテーブルは使用せず繰り返しコンポーネントを使用します。
データソースには1で取得した商談コレクションを指定します。

自動で全項目を表示することは出来ないため、表示や編集したい項目を1つずつ指定します。
【ポイント】
レコードの値としてではなく、あくまでテキストや日付などのコンポーネントを配置します。
今回は下記3項目を表示/編集したいため、下記のようにコンポーネントを配置しておきます。
・商談名:テキストコンポーネント
・完了予定日:日付コンポーネント
・承認ステータス(カスタム項目):選択リストコンポーネント
この3項目に加え、商談のUpsertキーとして使用するために商談IDを参照設定で配置します。

繰り返し要素のデータソースで指定した商談コレクションを元に、4項目のデフォルト値を指定します。
日付や選択リストコンポーネントはデフォルト値を指定しても設定画面上は表示されないようですが、下記のように4項目ともデフォルト値を設定しておきます。
【ポイント】
本記事の一番のポイントになります。
デフォルト値を指定することで、作成済みの商談を画面上に一覧表示することが出来ます。

3と4の時点では商談名、完了予定日、承認ステータス、商談IDの各項目は商談レコードの値として認識されていないため、
ループを使用して単一商談レコードへ割り当てをしつつ、商談レコードコレクションとして成形します。
ここまでの流れで下記の画面フローとなっています。

商談レコードコレクションとして成形出来たので、最後に一括でUpsertをします。
ユーザが画面上で商談レコード自体を追加している場合、商談IDを持っている/持っていないレコードがコレクション内で混在しています。
レコードを作成要素で商談IDをキーにUpsertをする形で便利です。
「作成または更新に失敗した場合の処理」を適宜設定しますが、失敗時は一律でレコードを処理しない方が運用上は安心そうです。

最後にレコードの作成要素を配置することで、今回の画面フローは下記の形となりました。
デバッグで挙動確認
取引先「あおいデザイン」に紐づく全3商談を一覧化し、商談ID以外の値を編集可能な形とすることが出来ました。
商談IDはUpsertキーのため編集不可という要件も実現できています。

運用上検討したい点
ユーザに画面上で商談レコードの追加や削除を許容するかは検討が必要です。
上記例では削除ボタンや追加ボタンが表示されています。
これらのボタンは繰り返しコンポーネントの「表示オプションを設定」にて下記2つのボタン表示/非表示の設定が可能です。
・ユーザは項目を追加できる(=追加ボタン)
・ユーザは事前入力された項目を削除できる(=削除ボタン)

追加時は必須項目が何らかの方法で必ず埋まるような仕組みが必要ですし、
削除時は削除されたレコードだけを対象に削除処理させる分岐が必要になります。
画面上の繰り返しコンポーネントを対象にループを使用する場合、下記のように
削除された行、事前入力された行、追加された行、という指定が可能です。
この辺りをうまく使用できれば処理分岐も実現できるかもしれません。

注意点
あくまでフローでの処理になるので、処理の件数には注意が必要です。
取得する既存レコードが大量の場合に件数制限を設けたり、行追加するレコードが何件以上の場合はエラーを表示するなどの仕組みは適宜想定が必要になります。
主に下記のガバナ制限には注意しましょう。
・SOQLクエリによって取得されるレコードの合計数:5万件
・発行されるSOQLクエリの合計数:100回
・DMLステートメントで処理されるレコードの合計数:1万件
・発行されるDMLステートメントの合計数:150回
まとめ
今回は画面フローで擬似的にインライン編集できる仕組みを考えてみました。
LWCなどの開発コンポーネントであれば柔軟にカスタマイズが可能ですが、
限定的な機能であれば画面フローでも実現可能です。
画面フローのデータテーブルコンポーネントでも、近い未来で今回のように1項目ずつのインライン編集できる仕組みがリリースされることもあり得ると思いますが、
それまでは繰り返し要素を駆使して工夫していくのも面白そうです。
<Salesforce>
弊社ではSalesforceをはじめとするさまざまな無料オンラインセミナーを実施しています!
>>セミナー一覧はこちら
また、弊社ではSalesforceの導入支援のサポートも行っています。ぜひお気軽にお問い合わせください。
>>Salesforceについての詳細はこちら
>>Salesforceの導入支援実績はこちらからご覧いただけます!
医療業界に特化した営業支援、顧客管理(SFA/CRM)のコンサルティングも提供しております。こちらもぜひお気軽にお問い合わせください。
>>顧客管理(SFA/CRM)のコンサルティングの詳細はこちら


