この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

新しい拡張ポリシーのテストとトラブルシューティング

拡張トランザクションセキュリティポリシーが期待どおりに動作しない場合は、以下のテストとトラブルシューティングに関するヒントを確認して問題を診断します。
使用可能なインターフェース: Salesforce Classic および Lightning Experience
使用可能なエディション: Enterprise Edition、Unlimited Edition、および Developer Edition

Salesforce Shield または Salesforce Event Monitoring アドオンサブスクリプションが必要です。


Sandbox でテストする

新しいポリシーは、本番にリリースする前に必ず Sandbox でテストします。Sandbox で、ポリシーを作成して有効化してから、さまざまなアクションを試してポリシーが期待どおりに実行されるかどうかをテストします。

たとえば、ReportEvent ポリシーがリードに関するレポートのエクスポートをすべてブロックする必要がある場合は、さまざまなレポート操作を試してそれらがブロックされることを確認します。次に例を示します。
  • リードに関する標準レポートを実行する。
  • リードに関するカスタムレポートタイプを作成し、そのタイプを使用するレポートを実行する。
  • リードに関するレポートの REST API クエリを実行する。

ポリシー条件を確認する

ポリシーが期待どおりに動作しない場合、追加した条件が適切ではない可能性があります。イベントマネージャは、ポリシー条件のトラブルシューティングに適したツールです。イベントマネージャの UI からイベントの保存またはストリーミングを有効化すると、組織の実際のイベントの項目値を調べることができます。これらの実際の値を期待値と比較し、一致するかどうかを確認できます。

たとえば、「QueriedEntities 次の値と等しい Lead」という条件を指定して ReportEvent ポリシーを作成するとします。次に、組織で Lead オブジェクトが含まれるカスタムレポートタイプを実行します。ポリシーがトリガされることを期待していますが、トリガされません。次の手順を実行して、問題を見つけます。

  1. 組織での ReportEvent の履歴を参照するために、イベントマネージャで ReportEvent の保存を有効化します。
  2. ReportEvent エントリが保存されるように再度カスタムレポートタイプを実行します。
  3. Postman などの API クライアントから、ReportEvent イベントオブジェクトを照会し、このカスタムレポートタイプの最近の実行に対応するエントリを見つけます。
  4. QueriedEntities 項目の値を確認します。期待した値ですか? 違っていれば、条件を変更します。たとえば、カスタムレポートタイプがリード以外のオブジェクトにも関連する場合、QueriedEntities の値は、Lead, Campaign, MyCustomObject__c のようになっています。この場合、ポリシー条件を「QueriedEntities 次の値を含む Lead」に変更します。

自動 Apex テストを追加する

自動 Apex テストは、新しい拡張ポリシーの Apex コードに入力ミス、論理的な不具合、退行があるか見つけるのに適した方法です。一般には、ベストプラクティスとして、開発サイクルの早期に自動テストを作成します。テストにより、本番環境のユーザに悪影響を与える前に、誤動作するポリシーを修正できます。

たとえば、リードデータエクスポート Apex クラスに入力ミスが含まれていて、条件が Lead ではなく Laed を評価しているとします。この Apex テストを実行すると、失敗するため、問題があることがわかります。

Apex デバッグログを追加する

Apex テストを作成して実行した後、Apex コードに問題があることはわかりますが、それが何かはわかりません。Apex デバッグログを使用すると、Apex クラスの動作を可視化しやすくなるため、問題を修正できます。

現在 System.debug() ステートメントに Laed という入力ミスが含まれている、リードデータエクスポート拡張ポリシーの Apex コードを更新しましょう。

開発者コンソールから Apex テストを再実行し、Apex コードが生成したデバッグログを表示します。次の例では、��近のイベントの Lead が含まれていない QueriedEntities 項目が表示されています。強調表示されたデバッグログで、正しく評価されなかった条件が特定されます。これで、簡単に Apex コードを調べて入力ミスを見つけることができます。

デバッグログが表示されている開発者コンソール

本番環境でポリシーが実行されたときのデバッグ出力を表示する場合は、自動ユーザのユーザ追跡フラグを追加します。自動ユーザがトランザクションセキュリティポリシーを実行します。

新しいユーザ追跡フラグが表示されている [設定] の [デバッグログ]