フロー権限とコンテキストを付与する
学習の目的
この単元を完了すると、次のことができるようになります。
- フローを実行する権限をユーザーに付与する。
- フローに必要なアクセス権を提供するように権限セットを更新する。
- フローが実行されるデフォルトおよび選択肢のコンテキストを特定する。
現実的な問題として、フローは複雑になりがちです。多くの要素から構成され、何らかの形で Salesforce のほぼすべての側面と連携するからです。最も単純なフローであっても、Salesforce 全体を考慮して設計されていなければエラーを引き起こす可能性があります。ここでは、フローで発生しがちな一般的な問題について説明します。
ユーザーにフローの権限を付与する
ユーザーがアクセスできる場所にフローをリリースしても、そのユーザーが必ずしもフローを実行できるとは限りません。フローを実行するには、ユーザーに次のいずれかの権限が必要です。
- ユーザーレコードに付与された「フローユーザー」権限。
- 割り当てられたプロファイルまたは権限セットに付与された「フローの実行」権限。
これらの権限があれば、ユーザーは制限のないすべてのフローを実行できます。プロファイルまたは権限セットを使用してユーザーのグループにアクセス権を付与する方が効率的です。
Flow Builder のハンズオン
「フローの実装 I」の Playground をまだ開いていない場合は、このモジュールの手順を確認して試せるように、今すぐ開いてください。Trailhead Playground を開くには、「フローの実装 I」バッジの最後の単元に移動し、ハンズオン Challenge までスクロールして、[Launch (起動)] をクリックします。また、ハンズオン Challenge を実行するときにも Playground を使用します。
権限セットで「フローの実行」権限を有効にしましょう。
- [Setup (設定)] の [Quick Find (クイック検索)] ボックスに
permission(権限) と入力して検索し、[Permission Sets (権限セット)] を選択します。
-
[Pyroclastic Support (Pyroclastic のサポート)] を選択します。
-
[App Permissions (アプリケーション権限)] を選択します。
-
[Edit (編集)] をクリックします。
- [Flow and Flow Orchestration (フローおよびフローオーケストレーション)] セクションで、[Run Flows (フローを実行)] を選択します。

-
[Save (保存)] をクリックします。
-
[Save (保存)] をもう一度クリックします。
これで、「Pyroclastic Support (Pyroclastic のサポート)」権限セットを持つすべてのユーザーが、制限のないフローをすべて実行できます。
ユーザーにフローに必要な権限を付与する
フローを作成する際には、たとえば、レコードを取得し、そのレコードを更新して、メールを送信するといった、フローで何を行うべきかに意識が向きがちです。ですが、Salesforce の権限が引き続き適用されることを忘れてはなりません。ユーザーが商談を作成する画面フローを実行しても、そのユーザーに商談を作成できるプロファイルまたは権限セットが割り当てられていないと、フローは失敗します。
別のフロー計画を見てみましょう。
確認事項 |
要求されたフローに対する回答 |
|---|---|
誰がフローを実行しますか? |
サポート部門のすべてのユーザーです。 |
フローはいつ実行されますか? |
このフローはページに埋め込まれるため、該当しません。 |
フローが正常に実行されるために必要なデータは何ですか? |
ケースを作成し、関連するケース項目を編集できる必要があります。
新しいケースにファイルをアップロードできる必要があります。 |
フローは何を行いますか? |
フローは、関連するケース項目値をユーザーに尋ね、入力された値を使用して新しいケースを作成して、フローで処理した取引先責任者レコードに関連付けます。 |
フローはどこに配置されますか? |
すべての取引先責任者の標準 Lightning ページに埋め込まれます。 |
対象ユーザーはなぜこのフローを必要としますか? |
検索した取引先責任者レコードからケースを作成する方が簡単だからです。 |
すべてのサポートユーザーがこのフローを実行する必要があります。このフローはケースを作成し、関連するケース項目を設定します。そのため、すべてのサポートユーザーには、ケースを作成し、関連するケース項目を編集するための権限が必要です。サポートユーザーは全員「Pyroclastic Support (Pyroclastic のサポート)」権限セットを持っています (これは新しく作成された権限セットであり、まだいくつか問題があります) ので、必要な権限がすべて含まれていることを確認しましょう。
- 「Pyroclastic Support (Pyroclastic のサポート)」権限セットで、[Object Settings (オブジェクト設定)] を選択します。
-
[Cases (ケース)] を選択します。
-
[Edit (編集)] をクリックします。
- [Object Permissions (オブジェクト権限)] セクションで、[Cases (ケース)] 行の [Create (作成)] と [Edit (編集)] を選択します。
まだ保存しないでください。まず、この権限セットが関連するすべてのケース項目にアクセスできることを確認しましょう。
- [Field Permissions (項目権限)] セクションまでスクロールします。
ケースオブジェクトの各項目に対して、この権限セットに設定されている権限を確認します。この権限セットは、フローに関連するほとんどのケース項目に対して編集アクセス権を持っていますが、[QA Reviewer (QA レビュー担当者)] 項目に対する編集アクセス権が必要です。
- [QA Reviewer (QA レビュー担当者)] 行で、[Edit Access (編集アクセス権)] を選択します。
[Edit Access (編集アクセス権)] を選択すると、[Read Access (参照アクセス権)] が自動的に選択されます。![権限セットのケースオブジェクトにある [Field Permissions (項目権限)] セクションで、手順 2 に対応する [QA Reviewer (QA レビュー担当者)] 項目が強調表示されている。](https://res.cloudinary.com/hy4kyit2a/f_auto,fl_lossy,q_70/learn/modules/flow-implementation-2/grant-flow-permissions-and-context/images/ja-JP/305b5f3b42a56327d430a74c04dbd18b_i.1.jpg)
-
[Save (保存)] をクリックします。
これで、「Pyroclastic Support (Pyroclastic のサポート)」権限セットは、[Create Case for Contact (取引先責任者のケース作成)] フローで使用される関連するすべてのケース項目を編集できます。この権限がない場合、フローが権限のない項目にデータを入力してケースを作成しようとすると、エラーメッセージが表示されます。
フローのコンテキストを理解する
画面フローでは多くの場合、オブジェクトや項目へのアクセス権が必要ですが、すべてのフローで必要になるわけではありません。たとえば、レコードトリガーフローでは、ユーザーの権限を気にする必要はありません。これは、画面フローとレコードトリガーフローが異なるコンテキストで動作するためです。
コンテキストは、あらゆる開発で用いられる概念です。コンテキストとは、簡単に言えば誰が自動化を実行しているかを定義するものです。フローには、3 種類のコンテキストがあります。
コンテキスト |
説明 |
|---|---|
ユーザーコンテキスト |
フローは、実行ユーザーがアクセスできるオブジェクト、項目、レコードにアクセスできます。 |
システムコンテキスト共有あり |
フローはすべてのオブジェクトと項目にアクセスできますが、実行ユーザーのレコード共有に基づいてレコードアクセスが制限されます。 |
システムコンテキスト共有なし |
フローは、レコード共有を無視して、すべてのオブジェクト、項目、レコードにアクセスできます。 |
「共有あり」と「共有なし」の違いに少し注目してみましょう。ここでいう「共有」とは、組織全体のデフォルト、共有ルール、手動共有などの共有設定で定義されるレコード共有を指します。たとえば、ユーザーがケースに対する参照アクセス権を持っていても、ケースオブジェクトの組織の共有設定が非公開に設定されている場合、その参照アクセスは自分が所有するケースに限定されます。
つまり、コンテキストについて説明する場合、「共有あり」とはこれらの共有設定が完全に適用されていることを意味し、「共有なし」とは共有設定が無視されることを意味します。そのため、システムコンテキスト共有なしでは、ほぼ無制限のアクセス権が付与されます。これは便利ですがリスクも伴います。たとえば、ケースが更新されたときに同じ取引先で進行中の商談の有無を確認するフローがあれば、全員に商談へのアクセス権を付与する必要がないため、便利です。一方、保護されている個人取引先責任者の詳細を表示するフローがある場合、それらの詳細にアクセスすべきでないユーザーがそのフローにアクセスできてしまうと、セキュリティ上のリスクが発生します。
デフォルトコンテキストは、フローの種別によって決まります。また、一部のフロー種別では、コンテキストを変更できます。具体的に見てみましょう。
フロー種別 |
デフォルトのコンテキスト |
選択できるコンテキスト |
|---|---|---|
|
レコードトリガーフロー スケジュールトリガーフロー |
システムコンテキスト共有なし |
なし |
画面フロー |
ユーザーコンテキスト |
システムコンテキスト共有あり システムコンテキスト共有なし |
自動起動フロー |
実行元のコンテキストから継承されます。 別の自動化がフローを実行する場合、フローはその自動化のコンテキストを継承します。たとえば、ユーザーがフローを実行すれば、フローのコンテキストはユーザーコンテキストになります。 |
システムコンテキスト共有あり システムコンテキスト共有なし |
次の単元では、フローのコンテキストを変更する方法について詳しく学習します。
