DX攻略部がリニューアルしました!

【FlowBuilder基礎】Salesforceのフローで設定する各項目を徹底解説!

こんにちは、DX攻略部のヘナトンです。

今回はSalesforceフローの詳細設定の各項目について解説していきます。

「詳細設定の各項目にどういった内容を入力すべきなのか」について解説しますので、フローの設定方法全般について知りたいはこちらの記事をご覧ください。

フロー詳細設定の各項目の設定方法について

詳細設定には設定可能な項目がいくつかありますのでそれぞれ解説していきます。

まずはSalesforceフローのプロパティモーダル画面の「詳細を表示」をクリックします。

様々な詳細情報が出てきましたね。

それぞれ解説しますので必要に応じて設定してください。

  • フローの実行方法
  • 種別
  • ソーステンプレート
  • テンプレート
  • 元のフロー
  • 上書き可能
  • フローを実行するためのAPIバージョン
  • インタビュー表示ラベル

    フローの実行方法

    以下に記載する【A】が一番弱く、【C】が一番強い実行方法です。

    【A】ユーザまたはシステムコンテキスト(デフォルト)

    フローの起動方法に依存します。

    つまりフローの起動方法によってフロー要素へのアクセス権が異なります

    実行元 必要権限
    Apex コードによって異なる
    Experience Cloud サイト ユーザ
    カスタム Aura コンポーネント内の視覚化されたコンポーネントとして埋め込まれている ユーザ
    Visualforce ページ内の視覚化されたコンポーネントとして埋め込まれている ユーザ
    カスタムボタン ユーザ
    カスタムリンク ユーザ
    直接リンク ユーザ
    フローアクション ユーザ
    Lightning ページ ユーザ
    プロセスビルダーで作成されたプロセス 共有なしのシステムコンテキスト
    レコードトリガ 共有なしのシステムコンテキスト
    REST API ユーザ
    カスタム Aura コンポーネントコントローラの Apex メソッドから実行 コードによって異なる
    Visualforce コントローラの Apex メソッドから実行 コードによって異なる
    スケジュールトリガ 共有なしのシステムコンテキスト
    Web タブ ユーザ

    例えばカスタムボタンからフローを起動した場合、デフォルトではユーザコンテキストによりアクセス権が決定されます。

    ユーザAに商談オブジェクトのフェーズ項目に更新権限が与えられていないのにも関わらず、ユーザAがそのフェーズ項目を更新するフローを実行するとエラーが出ます。

    フローの起動方法によるコンテキストの違いに関する詳細はSalesforceヘルプをご覧ください。

    【B】システムコンテキスト共有あり

    【A】のユーザコンテキストにはアクセス権は左右されませんがシステムコンテキストで実行され、レコードの共有に関する制限を受けます。

    つまり組織の共有設定や、ロール階層、共有ルール、共有の手動直接設定、チーム、テリトリーによってアクセス権が異なります

    例えば組織の共有設定で商談が非公開であり、とある商談AがユーザBにどの方法でも共有されていないとします。

    商談Aを参照するフローをユーザBが実行するとエラーが出ます。

    【C】システムコンテキスト共有なし

    コンテキストによる一切のアクセス制限を受けません

    セキュリティ面を考慮すると様々なパターンの慎重なテストが必要ですがフロー内で多くのオブジェクトを使用している場合で、フロー内でユーザによる条件分岐をしっかり行っている場合はこの設定にすることをオススメします。

    大切なことなのでもう一度改めて記載しますが、この設定にする場合は漏れなく被りないMECEを意識したテストをすることを徹底してください。

    フローの種別をレコードトリガーフローにしている場合は常に「システムコンテキスト共有なし」で実行されます。

    *MECE:Mutually Exclusive and Collectively Exhaustive。互いに重複せず全体として漏れがない状態という意味。

    種別

    フローの種別を決定します。

    初めにフローを作成する際に選んでいるはずですので基本的には編集不要です。

    ソーステンプレート

    このフローが基づいているテンプレートを選択します。

    何か別のフローをテンプレートとしてフローを作成する場合に使用します。

    テンプレート

    このフローをテンプレートとして他のフローで使用する場合はチェックを入れます。

    元のフロー

    上書き可能なパッケージ化されたフローを選択します。

    管理パッケージからインストールされるフローの中で上書き可能なものがあればそのフローをカスタマイズできます。

    有効化すると元のインストールされたフローではなくカスタマイズ後のこのフローが実行されます。

    上書き可能

    パッケージ化するにあたって上書き可能にする場合はチェックを入れます。

    開発者が管理パッケージを作成するにあたってその管理パッケージを使用するそれぞれの組織がカスタマイズするであろうフローの場合に使用します。

    フローを実行するためのAPIバージョン

    基本的には最新のバージョンにしておきましょう。

    数字が大きい方が新しいバージョンです。

    過去に作成したフローに最新のフロー機能を付与したい場合などは新しいバージョンに設定するとよいです。

    インタビュー表示ラベル

    このラベルによってフローの実行中の各インスタンスを識別します。

    この表示ラベルはフローでエラーが発生した場合のメールまたは一時停止中のインタビューリストに表示されます。

    例えば商談項目を更新するフローでエラーが発生した場合、どの商談でそのエラーが発生したかを素早く知りたい場合に商談のIDやName項目をここに入れておくとエラーメールにIDとName項目が表示されるようになります。

    まとめ

    Salesforceフローの詳細設定の具体的な設定項目の解説は以上です。

    普段は意識することのない設定内容だと思いますが、「フローの実行方法」など設定することが絶対に必要なシーンは出てくると思います。

    フローの挙動がうまくいかない時に、この詳細設定を見直すと解決策が見えてくることも多々あります。

    すでに運用しているフローの詳細設定をむやみに変更するのは危険極まりないですが、Sandbox環境にて詳細設定変更テストしてみると、今までうまくいかずにApexプログラムで時間をかけて開発していたものがフローで実現できるかもしれません。

    最後までお読みいただきありがとうございました。