別のユーザーとしてフローをデバッグする
学習の目的
この単元を完了すると、次のことができるようになります。
- 別のユーザーとしてフローをデバッグする。
- フローのコンテキストを変更する。
- デバッグ実行でロールバックを有効にして、データに影響しないようにする。
フローが失敗する原因をすべて事前に予測することは不可能であるため、フローが問題なく実行できることを保証するための最善の方法は、実際に使用するユーザーとしてフローを実行することです。Flow Builder には、実際のユーザーがフローを実行しているかのように、そのユーザーになりかわってフローをテストできる機能があります。
別のユーザーとしてのデバッグを有効にする
別のユーザーをシミュレーションしてフローを実行するには、次の設定を有効にする必要があります。
- [Setup (設定)] から、[Quick Find (クイック検索)] ボックスに
process(プロセス) と入力し、[Process Automation Settings (プロセスの自動化設定)] を選択します。
-
[Let admins debug flows as other users (システム管理者がほかのユーザーとしてフローをデバッグできるようにする)] を有効にします。
-
[Save (保存)] をクリックします。
別のユーザーとしてフローをデバッグする
フローをデバッグしてみましょう。[Close Case and Tasks (ケースと ToDo をクローズ)] フローを使用すると、サポートユーザーは 1 回のクリックですべての ToDo とケースをクローズできます。このフローは、ケースオブジェクトのカスタムボタンから実行されます。
- Trailhead Playground で、「Motor breaks down when turning on (起動時にモーターが故障する)」というケースを見つけ、アドレスバーの URL からその ID をコピーします。
このフローをデバッグするには、ケース ID が必要です。ケース ID は、ケースの URL のCase/と/viewの間にある 18 文字の文字列です。5008b00002OPpwGAATのような形式ですが、組織によって異なります。
- [Close Case and Tasks (ケースと ToDo をクローズ)] フローを開きます。
-
[Debug (デバッグ)] をクリックします。
-
[Run flow as another user (別のユーザーとしてフローを実行)] を選択します。
- [User (ユーザー)] 項目に
Ezraと入力し、[Ezra Mustang] を選択します。
- [Input Variables (入力変数)] セクションの [CaseID] 項目に、手順 1 でコピーしたケース ID を入力します。
-
[Run (実行)] をクリックします。
Salesforce は、Ezra Mustang がボタンをクリックしてフローを実行したかのようにフローを実行し、結果を [Debug Details (デバッグの詳細)] サイドバーに表示します。フローは失敗しました。
![デバッグ済みフローと、下記の説明に対応するエラーメッセージが表示された [Debug Details (デバッグの詳細)] サイドバー。](https://res.cloudinary.com/hy4kyit2a/f_auto,fl_lossy,q_70/learn/modules/flow-implementation-2/debug-flows-as-another-user/images/ja-JP/05e16ee74d333920702348e88b802eb8_i.4.jpg)
デバッグエラーをトラブルシューティングする
デバッグの詳細にエラーが表示されていることに注目してください。[Close Tasks (ToDo をクローズ)] 要素は、次のエラーメッセージで失敗しました。The flow tried to update these records: null. This error occurred: INSUFFICIENT_ACCESS_ON_CROSS_REFERENCE_ENTITY: insufficient access rights on object id.
「null」は ToDo を見つけられなかったことを意味しますが、このケースには ToDo があることが分かっています。「INSUFFICIENT_ACCESS」は、アクセスまたは権限の問題である可能性を示す手掛かりになります。
組織内で少し調査した結果、Flo は次のアクセス権と権限設定を見つけました。
- このフローは自動起動フローであるため、デフォルトのコンテキストはシステムコンテキスト共有ありです。このコンテキストでは、フローは実行ユーザーがアクセスできるレコードのみにアクセスできます。
- 共有設定では、活動 (ToDo を含むオブジェクト) の組織の共有設定が非公開に設定されています。この設定では、ToDo の所有者のみがその ToDo を表示または変更できます。
- Ezra Mustang には「Pyroclastic Support (Pyroclastic のサポート)」権限セットが割り当てられていますが、この権限セットには、組織の共有設定を上書きする「Modify All Data (すべてのデータの編集)」などの包括的なデータアクセス権は含まれていません。
- このフローのデバッグに使用したケースには 1 件の ToDo があり、その ToDo は Ezra ではなく、あなたに割り当てられています。
そのため、Ezra Mustang として ToDo を編集しようとしたときにフローが失敗したのは当然の結果です。自分に割り当てられていない ToDo は編集できません。Pyroclastic 組織では、ケースの ToDo が誰に割り当てられてもおかしくありません。そのため、Flo は次のいずれかを行う必要があります。A) 組織全体の ToDo のセキュリティを緩和する、または B) 任意のユーザーに割り当てられた ToDo をクローズできるようにフローを変更する。解決策 A は組織にとってセキュリティリスクが高いため、ここでは解決策 B を使用します。
フローのコンテキストを変更する
-
[Edit Flow (フローを編集)] をクリックして、編集可能な Flow Builder キャンバスに戻ります。
-
をクリックします。
-
[Show Advanced (詳細を表示)] をクリックします。
- [How to Run the Flow (フローの実行方法)] で、[System Context Without Sharing—Access All Data (システムコンテキスト共有なし — すべてのデータにアクセス)] を選択します。
この設定によって、フローが実行されるコンテキストが決まります。システムコンテキスト共有なしでは、フローはすべてのオブジェクトと項目にアクセスでき、レコード共有を無視して実行されることを思い出してください。つまり、このフローは、所有者に関係なく任意の ToDo を編集できるようになります。
-
[Done (完了)] をクリックします。
- フローを保存します。
次に、[Debug (デバッグ)] を使用して、同じケース ID を [CaseID] 項目に入力し、Ezra Mustang としてもう一度フローを実行します。フローは正常に完了するはずです。(デバッグの詳細にエラーが表示されなければ、正常に完了しています。)
![デバッグ済みフローと、エラーメッセージが表示されていない [Debug Details (デバッグの詳細)] サイドバー。](https://res.cloudinary.com/hy4kyit2a/f_auto,fl_lossy,q_70/learn/modules/flow-implementation-2/debug-flows-as-another-user/images/ja-JP/35ecd9549a338bd56387dda7b62ba7d2_i.7.jpg)
最後に、「Motor breaks down when turning on (起動時にモーターが故障する)」ケースレコードをもう一度確認してください。
![状況が [Deferred (延期)] に設定された状況確認のフォローアップ ToDo。](https://res.cloudinary.com/hy4kyit2a/f_auto,fl_lossy,q_70/learn/modules/flow-implementation-2/debug-flows-as-another-user/images/ja-JP/07ef45a49fb5650ad477a97f0650fda7_i.8.jpg)
ToDo が [Deferred (延期)] に設定されていることがわかります。デバッグが正常に実行された際に、フローによって ToDo レコードが更新されたためです。このようなことがあるため、フローの作成とテストは常に Sandbox で行うべきなのです。また、デバッグ実行でデータに影響を与えないようにするには、[Debug flow (フローをデバッグ)] ウィンドウで [Run flow in rollback mode (ロールバックモードでフローを実行します)] を選択します。
![前述の説明に対応する [Run flow in rollback mode (ロールバックモードでフローを実行します)] 設定が強調表示された [Debug flow (フローをデバッグ)] ウィンドウ。](https://res.cloudinary.com/hy4kyit2a/f_auto,fl_lossy,q_70/learn/modules/flow-implementation-2/debug-flows-as-another-user/images/ja-JP/dd0529b7c168611e4347d20bcf9d80da_i.9.jpg)
