こんにちは!
営業メンバーからの依頼です。
商談の活動「活動記録」(ToDo)のリストビュー上で、活動した内容をコメント作成・追記したいとのリクエストがあり、リストビューに画面フローを構築すればできそうだ というところまでは確認できているのですが、如何せん画面フローの知識が乏しく、お知恵をお借りしたいです。
#Trailhead Challenges #Trailhead #Salesforce Developer #Flow
和人様
こんにちは。リストビュー上で画面フローを使ってコメント作成・追記を行う実装は可能です。以下、標準機能のみで完結する構成で解説します(今回は「1件ずつコメントを追記する」パターンを前提とし、複数選択して一括処理したい場合の応用も併記します)。
■ 全体構成
1. スクリーンフロー(画面フロー)を作成
2. Task(活動記録)オブジェクトの リストビューボタン からこのフローを起動
3. フローで対象レコードのIDを受け取り、コメント入力用の画面を表示、既存の内容に追記して更新
■ フロー構築手順
1. 「新規フロー」→「画面フロー」を選択
2. 変数を作成
・名前: recordId(1件選択の場合)または ids(複数選択チェックボックスの場合)
・データ型: テキスト(recordIdの場合)またはテキストのコレクション(idsの場合)
・「入力のみで使用可能にする」にチェック
※ この変数名は仕様として決まっており、リストビューの詳細ページボタンからは「recordId」、リストビューのチェックボックス選択(一括処理)からは「ids」という変数名で自動的にIDが渡されます。
参照:
https://help.salesforce.com/apex/HTViewHelpDoc?id=platform.flow_ref_elements_screencmp_action_button.htm3. 「レコードを取得」要素を追加
・オブジェクト: Task
・条件: Id が {!recordId} と等しい
・「複数のレコードを取得するように選択されている場合のみ、複数レコードを自動的に格納」のオプションは今回は単一取得でOK
・取得した Description(活動内容)などの既存フィールドをそのまま画面に引き継ぎます
4. 「画面」要素を追加
・長文テキストの入力コンポーネントを配置(例: 「追記コメント」)
・初期値に、手順3で取得した既存の Description の内容を表示させておくと「追記」らしくなります
例: {!Get_Task.Description} & "
" & (ここにユーザー入力用の空欄を用意)
実際には「既存内容を表示する読み取り専用テキスト」+「新規コメント入力欄」の2つに分けたほうが、ユーザーが誤って過去の記録を消してしまうミスを防げます
5. 「代入」要素を追加
・新しいDescriptionの値 = 既存のDescription & 改行 & 日時 & ユーザー名 & 新規コメント入力内容
・{!$Flow.CurrentDateTime} や {!$User.FirstName} などのグローバル変数を使うと「誰がいつ追記したか」が残せます
6. 「レコードを更新」要素を追加
・対象: 手順3で取得したTaskレコード
・Description項目に手順5で組み立てたテキストを設定
7. フローを保存・有効化
■ リストビューへのボタン設置手順
1. 設定 → オブジェクトマネージャ → タスク(Task)を開く
2. 「ボタン、リンク、およびアクション」→「新規ボタンまたはリンク」
3. 表示種別: 「リストボタン」、コンテンツソース: 「URL」
4. URL欄に以下を設定:
/flow/あなたのフローAPI名?retURL=/lightning/o/Task/list
5. 保存後、「検索レイアウト」または「リストビューボタンレイアウト」の編集画面で、作成したカスタムボタンを「選択されたボタン」に追加して保存
参照(同じ仕組みの公式標準コンポーネント解説):
https://help.salesforce.com/apex/HTViewHelpDoc?id=platform.flow_ref_elements_screencmp.htm■ 補足(複数レコードへの一括コメント追記がしたい場合)
手順2の変数を「ids(テキストのコレクション)」にし、手順3を「ループ」要素で回して1件ずつ同じ処理を繰り返す構成にすれば、リストビューでチェックボックスにより複数選択→一括コメント追記も実現できます。この場合はガバナ制限(SOQL・DML回数)に注意し、ループ内では都度Get Recordsを呼ばず、事前に一括取得してからループするのが定石です。
まずは「1件ずつ追記」の構成から作ってみて、動作確認できたら複数選択対応に拡張するのがおすすめです。不明点があれば、どのステップで詰まったか教えてください。