①呼び出し元レコードのSFIDを取得する
→ 「recordId」を使う
・Apexクラスを呼び出すカスタムボタンをLEXでも使えるようにする(詳細ページボタン編)
・【実装例あり】Salesforce画面フローの入力変数recordIdとは?使い方を徹底解説!
②リストビューから複数選択されたレコードのSFIDを取得する
→ 「ids」を使う
・【Salesforce】idsを使ってリストビューや関連リストから選択した複数レコードをフローに渡す方法
・VFを呼び出すカスタムボタンをLEXでも使えるようにする(リストボタン編)
③サブフロー
・【Salesforce】【サブフロー】フロー開発でDRY原則を適用する
④制限事項
基本的にはApex開発と同様の部分を気をつければOK。
そのうえでフロー開発固有の制限について代表的なものを知っておくと良し。
トランザクション単位のフローの制限
・SOQLクエリ(SELECT等)は合計100回まで
・5万件を超えるレコードはSELECTできない
・処理が完了するまでに約10秒以上かかるとエラーが出て止まる。
など
5万件を超えるレコードを処理したい場合は、大人しくApexバッチ等で実装する。
⑤権限まわり
「プロファイル」「権限セット」「ユーザー」単位で設定したり、
フロー自体でどのユーザーで使用できるように設定できたりする。
・【Salesforce】ユーザによってはフローが実行できない?原因と解決策まとめ
④に関連して、取引先レコード全件に対して一括処理するスケジュールトリガーフローを
実装したものの、本番環境のレコード数が余裕で上限を超えていて
慌ててApexバッチで同じ機能を作り直したこともありました。(1敗)