フローの null 値によって発生する問題を修正する
学習の目的
この単元を完了すると、次のことができるようになります。
- 解決策を調査するためのリソースを挙げる。
- 組織の外部にあるリソースを使用して破損したフローを修正する。
- null 値を想定する重要性を説明する。
別の問題に対応する
ユーザー権限の問題のように単純明快な問題ばかりとは限りません。ロジックや入力データに欠陥がある場合や、値が想定外に空白のままであることが問題になることもあります。前にも説明したように、ほんの小さな問題でもフローが「破損」することがあります。大小さまざまな部分がそれぞれの役割を果たさなければ、フローは想定どおりに機能しません。
問題
システム管理者であるあなたは以前、取引先に新しい取引先責任者が追加されたときにその取引先の所有者にメールを送信するフローを設定しました。ところが今になって、取引先に関連付けられていない取引先責任者をユーザーが入力する必要が出てきました。フローは正しく設定されているように見えますが、ユーザーが取引先に関連付けられていない取引先責任者を追加したときにエラーが発生し続けています。あなたは以前と同じようにフローを見直し、デバッグ機能を実行して、何が起こっているかを調べます。
破損したフローを調査する
次の手順に従って、この破損したフローを調べます。
- ブラウザーに応じて、デバッグウィンドウまたはデバッグタブを閉じ、Flow Builder 画面に戻ります。
- Flow Builder で [back (戻る)] をクリックします。
-
[Alert Acct Owner of New Contact Added (新規取引先責任者が追加されたことを取引先所有者に通知)] フローをクリックします。
- このフローが何を実行しようとしているかを見直します。
このフローのアクションを詳しく見ていきましょう。
- [Toolbox (ツールボックス)] セクションの [Manager (マネージャー)] タブをクリックします。
-
[Email_Acct_Owner] アクションをクリックします。
- このアクションが何を実行しようとしているかを見直します。このアクションは、本文と件名が事前入力されたメールを送信します。ただし、このメールは、関連付けられた取引先の取引先所有者に送信する必要があります。
- [Recipient Address List (受信者アドレスリスト)] テキストボックスの内容を削除します。
- [Email Addresses (comma-separated) (受信者アドレス (カンマ区切り))] テキストボックスに
record
(レコード) と入力し、[Triggering Contact (トリガー取引先責任者)] を選択します。次に、[Account ID (取引先 ID)]、[Owner ID (所有者 ID)]、[Email (メール)] の順に選択します。
-
[Save As (別名で保存)] [Save As (新規バージョン)] をクリックしてから [Save (保存)] をクリックします。
-
[Debug (デバッグ)] をクリックします。
-
[Run (実行)] をクリックします。
- [Debug Details (デバッグの詳細)] の [Expand All (すべて展開)] をクリックします。
おや、何もありません。[No triggering record was specified, so the flow didn't run. (トリガーレコードが指定されなかったため、フローは実行されませんでした。)] とはどういうことでしょうか? デバッグでは新しい取引先責任者を作成できないため、このフローをトリガーできません。新しい取引先責任者がなければ、このフローがトリガーされてアクションが実行されることはありません。どうすればよいでしょうか? 従来型のトラブルシューティングを行いましょう。最初のステップは、ユーザーに発生している問題を再現することです。
フローを有効にして、取引先に関連付けられていない取引先責任者を追加し、何が起きるかを調べます。
- ブラウザーに応じて、デバッグウィンドウまたはデバッグタブを閉じ、Flow Builder 画面に戻ります。
-
[有効化] をクリックします。
- [Setup (設定)] で、[App Launcher (アプリケーションランチャー)] をクリックします。
-
[Sales (セールス)] を選択し、[Contacts (取引先責任者)] タブをクリックします。
-
[New (新規)] をクリックします。
- 次のデータを入力します。
- First Name (名):
Steve
- Last Name (姓):
Rogers
- Account (取引先): (空白のまま)
-
[Save (保存)] をクリックします。
- エラーメッセージを確認します。
- エラーメッセージの「0 recipients (0 人の受信者)」という部分をコピーします (後で必要になります)。[New Contact (新規取引先責任者)] ウィンドウを開いたままにします。
エラーメッセージを確認した後に、この新しい取引先責任者に取引先を追加して、理想的な状況でフローがどのように機能するかを見てみます。
- [Account Name (取引先名)] の下に
GenePoint
と入力します。
- 選択リストから [GenePoint] を選択します。
-
[Save (保存)] をクリックします。
あなたの受信箱では 2 通のメールを受信しているはずです。最初のメールは取引先を関連付けずに取引先責任者を保存しようとしたときのエラーメールです。フローが失敗すると、Salesforce からシステム管理者 (他の人が指定されていない場合) にメールが送信されます。このメールには、失敗でのエラーメッセージと、フローインタビューで実行された各フロー要素に関する詳細が含まれています。
フローエラーメッセージからわかるように、フローが取引先所有者のメールを検索するときに問題が発生しています。これはつじつまが合います。フローで取引先所有者のメールが見つからないのは、新しい取引先責任者に取引先が関連付けられていないためです。取引先がなければ取引先所有者のメールもありません。また、[Flow error: click here to debug in Flow Builder (フローエラー: Flow Builder でエラーをデバッグするには、こちらをクリックしてください)] リンクをクリックすると、フローが取ったパスの視覚化が表示されます。これはフローに多くのブランチがある場合には特に役立ちます。
2 通目のメールは成功したトリガーフローの結果です。あなたは取引先が関連付けられた新しい取引先責任者を追加しました。また、あなたは GenePoint 取引先の取引先所有者であるため、あなたがメールアラートを受信します。メモ: この組織は取引先所有者メールの配信が成功するように調整されています。このアイデアを本番組織に実装する場合 (最初に Sandbox でテストしてください) は、メールが確実に配信されるように、[Activate bounce management (不達管理の有効化)] を選択解除 ([Setup (設定)] > [Email (メール)] > [Deliverability (送信)] > [Activate bounce management (不達管理の有効化)] を選択解除) し、[Enable compliance with standard email security mechanisms (標準メールセキュリティのメカニズムへの準拠を有効化)] を選択解除 ([Setup (設定)] > [Email (メール)] > [Deliverability (送信)] > [Enable compliance with standard email security mechanisms (標準メールセキュリティのメカニズムへの準拠を有効化)] を選択解除) する必要がある場合があります。
フローは想定どおりに動作し、取引先所有者 (あなた) にあなたが所有する取引先に関連付けられた新しい取引先責任者が作成されたことを通知しました。システム管理者が取引先管理者であることはあまりありませんが、この例ではトレーニングのために、あらゆる視点からフローを見ることができるようになっています。
利用できるリソース
厳しいと思われる状況でも、望みがないということはありません。リソースを利用できます。デバッグ機能以外にも破損したフローの修正に役立つさまざまなリソースがあります。さっそく、いくつかのリソースを見てみましょう。
-
フローエラーメール — この重要なリソースではフローの問題に関する詳細がわかるため、トラブルシューティングに非常に役立ちます。このメールには、失敗でのエラーメッセージ、フローインタビューで実行された各フロー要素に関する詳細、失敗したフローの視覚化へのリンクが含まれています。
-
Salesforce ヘルプ — ナレッジ記事、ベストプラクティス、既知の問題などを検索します。このリソースでは、記事のほか、コミュニティの投稿も検索できます。フローエラーメールを確認した後に、破損したフローのトラブルシューティングを行うときには次にここを参照します。
-
Trailblazer Community グループ — 問題のトラブルシューティングにすぐに役立つリソースになるとは限りませんが、こうしたユーザーグループは豊富な情報と知識を備えています。コミュニティグループではメンバー同士が交流して学び合い、アイデアを交換したり、トラブルシューティングを行ったりしています。
-
Salesforce 開発者ドキュメント — Salesforce 開発者のための情報源です。開発者ドキュメントにはシステム管理者にも役立つ知識が含まれているため、調べる価値があります。
あなたはすでにフローエラーメールは確認したため、次に Salesforce ヘルプを参照します。検索機能を使用して、役に立つ記事、関連する投稿、Trailhead トピックを検索します。
-
help.salesforce.com に移動します。
- 先ほどコピーした
0 recipients
(0 人の受信者) というエラーメッセージを検索バーに入力します。
-
Enter キーを押します。
-
[Knowledge Articles (ナレッジ記事)] チェックボックスをオンにして、ナレッジ記事の結果のみに絞り込みます。
-
「Error 'Probably Limit Exceeded or 0 recipients' in a Flow with a Send Email or Email Alert Action (メール送信またはメールアラートアクションを伴うフローのエラー「受信者数の制限を超えたか 0 人の可能性があります)」 というタイトルのナレッジ記事をクリックします。
- ナレッジ記事を読みます。
null 値でも問題なし
記事には、このエラーが発生したときに自動化を機能させる 3 つの方法が挙げられています。
- 項目に値があることを必須にする入力規則を作成する。
- 項目を必須にする。
- フローを更新して、メール項目に値がある場合のみメールアラートが起動するようにする。
最初の 2 つの選択肢はこの状況に適用できる解決策ではありません。関連する取引先がない新しい取引先責任者をユーザーが正当に入力することができないためです。最適な選択肢は 3 つ目の選択肢で、メール項目に値がある場合のみメールアラートを送信するというものです。つまり、フローで取引先が見つかった場合のみ取引先所有者にメールの送信を試みます。
- 組織で、設定歯車 をクリックして、[Setup (設定)] を選択します。
- [クイック検索] ボックスに
flows
(フロー) と入力し、[Flows (フロー)] を選択します。
-
[Alert Acct Owner of New Contact Added (新規取引先責任者が追加されたことを取引先所有者に通知)] をクリックします。
- [Object: Contact (オブジェクト: 取引先責任者)] の横にある [Edit (編集)] をクリックします。
- [Condition Requirements (条件の要件)] 選択リストで [All Conditions Are Met (AND) (すべての条件に一致 (AND))] を選択します。
- [Field (項目)] テキストボックスをクリックし、[AccountId] を選択します。
- [Operator (演算子)] を [Is Null (null)] に変更します。
- [Value (値)] テキストボックスをクリックし、[$GlobalConstant.False] を選択します。
-
[Save As New Version (新規バージョンとして保存)] をクリックします。
- [A New Version (新規バージョン)] が選択されていることを確認します。
- 他のすべてのオプションはそのままにします。
-
[Save (保存)] をクリックします。
-
[有効化] をクリックします。
これで取引先責任者オブジェクトに条件が追加され、AccountID が null (空白) の場合にはフローが次のステップに進まない、つまり取引先所有者にメールを送信しないように指定できました。次は、この修正がうまくいったかどうかをテストするために、関連付けられた取引先のない取引先責任者を入力してみます。
- [Flow Builder] タブまたはウィンドウを閉じます。
- [Setup (設定)] で、[App Launcher (アプリケーションランチャー)] をクリックします。
-
[Sales (セールス)] を選択し、[Contacts (取引先責任者)] タブをクリックします。
-
[New (新規)] をクリックします。
- 次のデータを入力します。
- First Name (名):
Lily
- Last Name (姓):
Mason
- Account (取引先): (空白のまま)
-
[Save (保存)] をクリックします。
エラーメッセージは表示されません。またしても成功です。あなたは欠陥のあるフローを修正しました。フローで新しい取引先責任者の取引先項目が空白でもエラーが発生しなくなりました。一方、取引先が関連付けられている新しい取引先責任者をユーザーが追加すると、計画どおりに取引先責任者にメールが送信されます。メモ: 取引先所有者が有効なユーザーである場合のみメールを送信するには、メール要素の前に決定要素 (有効または無効) を追加します。詳細は、Salesforce ヘルプの「フロー要素: 決定」を参照してください。
これで破損したフローをすべて修正しました。あなたは異なるユーザーとしてデバッグを行い、Salesforce ヘルプを使用して答えを見つけ、フロー内のオブジェクトに検索条件を追加して null 値に対応しました。家具の組み立てもこのくらい簡単だといいですよね。
リソース
- Web サイト: Salesforce ヘルプ
- Web サイト: Trailblazer Community グループ
- Web サイト: Salesforce 開発者ドキュメント
- Trailhead: Flow Builder を使用してフローを作成する
- Salesforce ヘルプ: フロー要素: 決定