画面フローとサブフロー:レコードリストからコピーを作成 Part1
フローのレコード選択肢やらサブフローやら、使ってみたかったんです。
画面フローからコピーレコードを作成します。
ちくわ
2023/12/28 10:04:37
こんにちは、ちくわ です。
IT業界、Salesforceともに未経験でした。
そんなビギナーから細やかな知識共有になります。
同じようにSalesforceを勉強中、認定アドミニストレーターを目指しています!なんて方のお役に立てばと思います。
【今回のテーマ】
画面フローとサブフローを使って、レコードリストからコピーを作成してみよう!
より詳しく言うと、
取引先ページから既存の商談レコードを元レコードとして選択
一部項目は新規入力出来るようにし、その他は元データが引き継がれて作成
作成しようと思ったきっかけは、
フローのリソースで見つけた"レコード選択肢セット"とやらと
"サブフロー"を使ってみたかったからです。。なお、こちらのブログ記事を参考にさせていただきました。
気になっていた要素が同時にできる&シンプルそう!ということで。
英語の記事ですが、翻訳機能でなんとかなりそうだったので(Google翻訳ありがとう)
Accidental Coder - A Salesforce Blog My Salesforce Experiments >Screen Flows | Clone Records using Flows
あくまで学習用として作成しています。
細かなユースケースや考慮事項などは、別途検討する必要がある旨ご留意ください。
【設定の大まかな流れ】
①画面フローを設定する(元レコード選択画面) ※本記事はここまで
②自動起動フローの設定(コピーを作成) ※次回
③画面フローの設定からサブフローをつなげる ※次回【完成形】
・取引先レコードページ
①選択リストをクリックすると
既存の商談レコードが表示されます
②画面フローで一部項目は新しい値を
入力できるように設定
③商談レコードが作成
④商談名、完了予定日、フェーズ、確度は新しい値に。
その他は元のレコード情報が引き継がれています。
・画面フロー
・サブフロー(自動起動フロー)
【考え得るユースケースやメリット?】
既存レコードがリストで一覧表示され、希望するレコードを選択し迅速にコピーできる
尚且つタイトルなど一部項目は新しい値にしたい時 などかな?
【では設定】
①画面フロー
1. 設定、フロー、新規フローを開いて「画面フロー」を選択
2. レコード変数「recordId」の作成 ※必ず行ってください
取引先レコードの情報を受け取り、
コピーを作成するための情報の入れ物となる変数です
Summer '20 以降、Lightning アプリケーションビルダーのレコードページで
フローを設定している場合
[レコードのすべての項目値をフロー変数に渡します] を選択するだけで
すべてのレコードの詳細と項目値がこの入力変数に自動的に渡されます
◇ SALESFORCE ヘルプ >ドキュメント >SALESFORCE SUMMER '20 リリースノート >Lightning ページまたはクイックアクションからフローを起動するときにレコードを渡す
・ツールボックスから「新規リソース」を選択
・リソース種別:変数
API参照名:recordId ※必ずこのAPI参照名にしてください。Iだけ大文字です。
データ型:レコード
複数の値を許可(コレクション):チェックしない
オブジェクト:取引先
フロー外部での可用性:「入力で使用可能」にチェック ※レコードページからの値を受け入れるためです。必ずチェックしてください。
SALESFORCE ヘルプ > ドキュメント > SERVICE CLOUD > recordId の作成
3. コピー元の商談を選択できるように、画面要素を作成します
・開始の下の、+マークから「画面」要素を追加
画面の表示ラベル、API名は必須入力です
※API名には命名規則を設けると保守性が高まります
※レイアウトは自動レイアウトで進めさせていただいてます
・左側のコンポーネントから、「選択リスト」を選択
・任意の表示ラベル、API参照名を入力
データ型:テキスト
ユーザーが複数のオプションを選択できるようにする:いいえ
・選択肢を設定にて
新規選択肢リソースを選択・作成します
リソース種別:レコード選択肢セット
任意のAPI参照名を入力
オブジェクト:商談(選択したオブジェクトのレコードが、選択リストで表示されます)
条件の要件:すべての条件に一致(AND)
項目:AccountId 取引先ID
演算子:次の文字列と一致する
値:レコード(単一)変数のrecorId>Id 取引先ID を選択



・下にスクロールし、各選択肢を設定
各選択肢の表示ラベルと値にどの項目を使用するかを設定します
選択肢表示ラベル:Name 商談名※生成された選択肢をユーザーが区別するための項目を選択します
データ型:テキスト
選択肢の値:Id 商談ID ※実行時にユーザーがこの選択肢を選択したときに保存される項目の値を決定します。
SALESFORCE ヘルプ > ドキュメント > ビジネスプロセスの自動化 > フローのリソース: レコード選択肢セット
・完了を押します
今作った選択肢リソースがコンポーネントの「選択肢」に
入っていることを確認できればOKです
取引先に紐づく商談レコードが表示されるよう設定できました

なお、先ほどの選択肢セットの編集画面にて
表示レコードの条件をより細かくし、表示件数の絞り込みを行ったり
「レコードの並び替え」から、昇順/降順、選択肢の最大数も設定可能です
4. ユーザーが選択した商談レコードのデータを取得する要素を作成します
・画面要素の下に、「レコードを取得」要素を追加
任意の表示ラベル、API参照名を入力
オブジェクト:商談・商談レコードを絞り込みとして
条件の要件:すべての条件に一致(AND)
項目:Id 商談ID
演算子:次の文字列と一致する
値:画面コンポーネントで設定した、レコード選択肢リスト
商談レコードを並び替え:並び替えなし
保存するレコード数:最初のレコードのみ
レコードデータの保存方法:すべての項目を自動的に保存
5. コピー元のデータ値から新しい値に書き換える画面要素を追加します
・レコードを取得要素の下に、「画面」要素を追加
任意の表示ラベル、API参照名を入力
・入力コンポーネントより、新しく値を設定したい項目のデータ型に沿ってコンポーネントを配置します。
例)商談名 項目はテキスト型なので、テキストコンポーネントを選択完了予定日 項目は日付型なので、日付コンポーネントを選択 等
※項目のデータ型については
オブジェクトマネージャー>商談>項目とリレーション にて確認できますよ
・各コンポーネントで
表示ラベル、API参照名を入力
必須:チェックをつける※デフォルト値は任意です
・なお、フェーズ項目については少し追加手順があります!
選択肢を設定にて、選択肢を指定しなければいけません。
選択肢:新規選択肢リソース
・リソース種別:選択リスト選択肢セット
任意のAPI参照名を入力 例)selectset_OppSatge
オブジェクト:商談データ型:選択リスト
項目:StageName フェーズ
並び替え順:項目のデフォルトの順序
選択肢のなかに、作成した選択肢セットが表示されていることを確認します
完了を押して、フローを保存したらOKです。未だ有効化はしないでください。
一旦お疲れ様でした…!
次回、このフローから繋がるサブフローを作成して完成となります。
フローは無事に動くとやはり面白いので、辛抱強く試してみましょう…!
gilde techにはこの他にもSalesforceに関する便利な記事が
多数展開されていますので是非ご登録ください^^
関連記事
実験:フローで取引先を【関連情報と共にコピー】してみた
「フローで取引先を【関連情報と共にコピー】してみた」の「取引先責任者」編
コメント