Salesforceの画面フローはレコード詳細画面から簡単に起動してそのレコードの処理を行う事が出来ます。
その処理をリストビューから複数レコードに対して実行したいときにどうすればよいか説明します。
レコード詳細画面から、右上の「アクション」を押して起動するフローは簡単に作れますが、多少のノウハウが必要です。
誰でも無料で作成出来て永久無料の「デベロッパー・エディション」を取得して作ってみましょう。
https://www.salesforce.com/form/developer-signup/
ここから取得すると、DataCloudもAgentforceも自由に使える開発環境を取得出来ます。
★ユーザIDは世界で1つの「メール形式」である必要があります。会社メルアドを安易に使うと本当に会社で導入されるときにトラブルになります。メルアドの「+」以降は無視されるという性質を利用して、「sano@hoge.com」なら「sano+202504@hoge.com」などと年月を入れて取得しましょう。
1)「設定」「プロセスの自動化」「フロー」から右上の「新規フロー」ボタン
2)「最初から作成」を選び「次へ」、種別の選択は「画面フロー」を選び「次へ」
1)「画面フロー」の下にある(+)を押す
2)「レコードを取得」を選び、表示ラベルとAPI参照名を付ける
表示ラベル「取引先読み込み」 API参照名「AccountRead」
2)「データソース」は「●Salesforceオブジェクト」として取引先を選ぶ
3)「項目」にidを選ぶ(上で取引先を選んでいるので全項目が出ます)
4)演算子は「次の文字列と一致する」とします
5)右側の項目は「+新規リソース」を選びます
1)リソース種別は「変数」を選びます
2)API参照名は「recordId」とします
★IDのIは大文字dは小文字です。リザーブされた変数名です
3)データ型は「テキスト」
4)「入力で使用可能」にチェックを入れます
★これで勝手にレコードIDが入ります
何かの項目を少しだけ変えて更新してみましょう
1)今作った「取引先読み込み」の下の(+)から「レコードを更新」を選びます
2)表示ラベル「取引先更新」API参照名「AccountUpdate」
3)「更新するレコードを検索してその値を設定する方法」は「レコードを識別する条件を指定し、項目を個別に設定」
4)「このオブジェクト種別のレコードを更新」は「取引先」
5)絞り込みの項目には「Id」、演算子は「次の文字列と一致する」、値は
AccontRead 取引先 > ID 取引先ID
6)設定の項目には「取引先番号」 値は「+新規リソース」
取引先番号を適当に変更する数式を作ります
1)リソース種別は「数式」 APIは「AcNoUpdate」
2)データ型は「テキスト」、数式は次の通り入れます
3)数式は次の数式をコピーします
if( {!AccountRead.AccountNumber} = "","TEST001" ,
mid ( {!AccountRead.AccountNumber} ,2,99)&
left ( {!AccountRead.AccountNumber} ,1)
)
保存しデバッグモードで動作確認します
1)右上の「保存」 表示ラベル「取引先番号更新」 API「AcNoUpdate」
2)保存を押すと上の「デバッグ」が押せるようになります
3)デバッグオプションはデフォルト、RedordIdは取引先のSalesforceIDを入力します。別のタブで取引先の詳細を表示させるとURLに出てきます。
4)テストが終われば「有効化」ボタンを押します
今作ったフローを起動するためのボタン(アクション)を作成し配置します
1)「設定」「オブジェクトマネージャ」から「取引先」を選択
2)ボタン、リンク、およびアクションの「新規アクション」
3)アクション種別」フロー
フロー:取引先番号更新
表示ラベル:番号更新 ←ボタン名になります
行重:AcNoUpdate
4)ページレイアウトから表示しているレイアウトを選びます
※標準のDEVELOPERなら「Account Layout」
5)「モバイルおよび Lightning の アクション」から今作った「番号更新」を下のレイアウト上にドロップする
6)保存
1)取引先の詳細画面にボタンが出ています
2)ボタンを押してから、リフレッシュ(f5)を押すと、取引先番号がローテーションします
★画面フロー終了後自動で画面リフレッシュさせることは出来なさそうです。そのうち出来るようになるかも。
LISTVIEWから複数レコードを選択して起動されると、「ids」というコレクション変数にセールスフォースIDが入ってきます。
それを最後までループで回す処理とします。せっかくレコード詳細から動くようになっていますので、レコード詳細から起動された時にも動くように変更しておきます。
保存しデバッグモードで動作確認します
1)左上のアイコンからツールボックスを開きます
2)「新規リソース」ボタンから変数を作成します
リソース種別:変数
API参照名:ids
データ型:テキスト ■複数の値を許可
■入力で使用可能
3)完了を押します
1)「決定」要素を追加します
2)結果の詳細に次の通り入れます
リソース 演算子 値 recordId null False3)詳細起動側に「割り当て」要素を追加します
4)変数値を設定を次の通り入れます
変数 演算子 値 ids 追加 recordId演算子を「追加」にすることがコツです(コレクション変数だから出来ます)
1)「ループ」要素を追加します
コレクション変数に「ids」をセットします
2)2つの要素をループの中にコピーします
・要素を選び「要素を切り取り」
・ループの中の+をクリックすると張り付きます
3)「取引先読み込み」要素の値の「redordId」を「ループ ids_loopの現在の項目」に変更します
4)「新規バージョンとして保存」します
5)「有効化」します
★詳細画面の起動をデバッグで確認します。idsはデバッグ出来ません。
詳細では(アクション)でしたが、リストビューはCLASSICモードのためボタンを作成し配置します
1)「設定」「オブジェクトマネージャ」から「取引先」を選択
2)ボタン、リンク、およびアクションの「新規ボタンまたはリンク」
3)●リストボタン
4)URLに次の通り設定。ただしfilterNameは戻るリストビューのID
/flow/AcNoUpdate?retURL=lightning/o/Account/list?filterName=00BgK000000G1t2UAC5)リストビューボタンレイアウトのリストビューに今作ったボタンを入れます