※もし間違いがあれば、お手数おかけしますがご指摘いただけましたら幸いです。すぐ修正致します。
idsとループ処理の掛け合わせ
主な処理の流れは下記になります
①リストビューで選択されたレコードを、idsでフローに呼び起こす
②ループ処理で、idsにあるidを呼び起こし、コピーしていく
作り方
作り方の主な流れです
①フローを作成する(ウェイト重め)
②オブジェクトにカスタムボタンを作成し、フローを割り当てる(ウェイト軽め)
①フローを作成する
フローを作成していきます。こちらの画面キャプチャが概要になります。
フロー作成の流れとして、
①idsでリストビューにてチェックされたレコードを呼び起こす
②決定木で、0件、101件以上、1~100件に振り分ける
③ループ処理で、idsに格納されたレコードを一件ずつ呼び起こす
④一件ずつ、レコードをコピーしていく
になります。
idsでリストビューにてチェックされたレコードを呼び起こす
画面フローで作成を行っていきます。
API参照名「ids」となっているリソースを作成します。
※idsには、ID情報のみ格納されています。
API参照名を「ids」とすることで、リストビューにてチェックされたレコードを呼び起こすことができます。
続いて、idsで受け取ったレコードの数をカウントし、格納する要素を作成します。
ここで新規に「Count」リソースを作成してください。
API参照名を「Count」とすることで、レコード件数をカウントすることができます。
決定木で、0件、101件以上、1~100件に振り分ける
決定木を作成します。各決定分岐を、下記画面キャプチャ通り作成してください。
次に、0件、101件以上、1~100件だった場合の画面を作成します。
0件だった場合↓
1~100件だった場合↓
コンポーネントより、「テキスト」を画面に挿入し、商談名を一律にできるようにします。
例:2023年3Q価格改定商談 など
ループ処理で、idsに格納されたレコードを一件ずつ呼び起こす
続いて、要素「レコードの取得」にて、idsに格納されている個別のID情報を、商談オブジェクトにて検索をかけ、レコード情報をすべて取得します。
次に、「レコードの取得」にて得たレコード情報をもとに、レコードを作成していきます。
要素「レコードの作成」を用意し、下記画面キャプチャ通りに設定していきます。
ここで商談名に、先ほどの画面キャプチャにて入力された商談名を割り当てていきます。
項目値の設定も設定していけるので、任意で自由に設定してください。
②オブジェクトにカスタムボタンを作成し、フローを割り当てる
商談オブジェクトの設定画面に遷移し、「ボタン、リンク、およびアクション」から「新規ボタンまたはリンク」を作成します。
カスタムボタンは下記画面キャプチャの通り設定していきます。
画面フローの呼び起こしは、
/flow/(フローのAPI参照名)
と入力します。作成できたら保存します。
続いて、リストビュー上にカスタムボタンとして表示させます。
商談オブジェクトの設定画面から、「リストビューボタンレイアウト」を開き、使用しているリストビューの編集画面に遷移します。
ここに、先ほど作成したカスタムボタン「一括コピー」を追加してください。最後に保存します。
# 挙動の確認
商談オブジェクトにて、実際にコピーしてみます。
まずは適当に何件か選択します。
※ここでリストビューにてレコードタイプを一つに絞らないと、コピーができないので、一つに絞る必要があります。
次に、「一括コピー」をクリックします。商談名も適当に入力します。
まとめ&参考したサイト
一括コピーに関してはまだまだ改善点あると思います。
・誤って複数レコードタイプを選択してしまったりしたときのパス
・コピー完了したレコードを一括コピーの画面フローの最後に表示させる
・商談名を「(元の商談名)のコピー」などと制御する
など・・・
ひとまず、こちら一括コピーの草案として提示します。
ご参考になれば幸いです。
リストビューで選択したレコードをidsで呼び起こし、またSOQLの問題は、こちらの記事を参考にしました。