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

PolicyCondition インターフェース

トランザクションセキュリティポリシーに基づいて、特定のイベントの発生時に実行するアクションを指定するクラスを実装できるようにする Apex インターフェースです。

名前空間

従来のトランザクションセキュリティは、Summer '20 以降すべての Salesforce 組織で廃止される予定です。詳細は、「Legacy Transaction Security Retirement (従来のトランザクションセキュリティの廃止)」を参照してください。新しいフレームワークを使用してトランザクションセキュリティポリシーを作成する場合は、拡張トランザクションセキュリティのドキュメントを参照してください。従来のポリシーを新しいフレームワークに移行する場合は、移行のドキュメントを参照してください。

警告

TxnSecurity

使用方法

Enhanced Transaction Security のより多くの機能とサポートを使用するには、PolicyCondition インターフェースではなく、EventCondition インターフェースを使用してください。

ヒント

evaluate メソッドは、トランザクションセキュリティポリシーで監視されているイベントが発生するとコールされます。通常の実装では、最初にイベントから関心のある項目を選択します。その項目をテストして、監視されている条件を満たすどうか確認します。条件を満たす場合、メソッドは true を返します。

たとえば、同じユーザが複数回ログインしていないかチェックするトランザクションセキュリティポリシーがあるとします。ログインイベントごとに、メソッドは、ログインしているユーザにすでに進行中のログインセッションがあるかどうかをチェックし、ある場合は true を返します。

ポリシー条件インターフェースが正しく機能することを確認するために、テストクラスを用意することをお勧めします。ポリシーを Sandbox から本番組織に移動するか、変更セットと共に移動するか、または他の方法で移動するかに関係なくテストが必要です。たとえば、ポリシーを本番環境に移行する前に、開発環境でポリシーをテストします。

エラーが発生する可能性があるため、カスタムポリシーには DML ステートメントを含めないでください。トランザクションポリシーの評価中に Apex を介してカスタムメールを送信すると、レコードが別のレコードに明示的に関連付けられていなくても、エラーが表示されます。詳細は、『Apex 開発者ガイド』「Apex DML 操作」を参照してください。

PolicyCondition のメソッド

PolicyCondition のメソッドは次のとおりです。

evaluate(event)

トランザクションセキュリティポリシーに対してイベントを評価します。イベントでポリシーがトリガされる場合、true が返されます。

署名

public Boolean evaluate(TxnSecurity.Event event)

パラメータ

event
型: TxnSecurity.Event
トランザクションセキュリティポリシーに対して確認するイベント。

戻り値

型: Boolean

ポリシーがトリガされると、True が返されます。たとえば、ユーザをシングルログインセッションに限定するポリシーがあるとします。あるユーザが 2 つ目のログインをしようとすると、ポリシーのアクションによって現在のセッションを終了するよう求められます。また、Salesforce システム管理者にもメール通知が送信されます。evaluate() メソッドは、ログインイベントのみを確認し、ユーザの 2 つ目のログインである場合に True を返します。トランザクションセキュリティシステムはアクションと通知を実行しますが、evaluate() メソッドは実行しません。

従来のトランザクションセキュリティの Apex ポリシー

すべてのトランザクションセキュリティポリシーでは、Apex TxnSecurity.PolicyCondition または TxnSecurity.EventCondition インターフェースを実装する必要があります。
使用可能なエディション: Salesforce Classic および Lightning Experience
使用可能なエディション: Enterprise Edition、Unlimited Edition、および Developer Edition

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


従来のトランザクションセキュリティは、Summer '20 以降すべての Salesforce 組織で廃止される予定です。詳細は、「Legacy Transaction Security Retirement (従来のトランザクションセキュリティの廃止)」を参照してください。従来のフレームワークを使用してトランザクションセキュリティポリシーを作成、編集、有効化することができなくなり、こうした操作を実行しようとするとエラーメッセージが表示されます。新しいフレームワークを使用してトランザクションセキュリティポリシーを作成する場合は、拡張トランザクションセキュリティのドキュメントを参照してください。従来のポリシーを新しいフレームワークに移行する場合は、移行のドキュメントを参照してください。

警告

ポリシーの Apex インターフェースを生成する前に条件値を指定していなかった場合、後で条件を追加できます。条件を変更するために、ポリシーを有効化する前に、Apex コードを編集して条件を含めることができます。条件を含めないと、ポリシーはトリガされません。

エラーが発生する可能性があるため、カスタムポリシーには DML ステートメントを含めないでください。トランザクションポリシーの評価中に Apex を介してカスタムメールを送信すると、レコードが別のレコードに明示的に関連付けられていなくても、エラーが表示されます。詳細は、『Apex 開発者ガイド』「Apex DML 操作」を参照してください。

トランザクションセキュリティポリシーを削除しても、TxnSecurity.PolicyCondition 実装や TxnSecurity.EventCondition 実装は削除されません。Apex コードを他のポリシーで再利用できます。

TxnSecurity.PolicyCondition を実装する Apex クラスの API コールアウトを使用する場合は、[設定] でトランザクションセキュリティポリシーを作成するときに、アクションを選択する必要があります。アクションとして [なし] を選択した場合は、ポリシーを実行できません。詳細は、『Apex 開発者ガイド』の「Apex を使用したコールアウトの呼び出し」を参照してください。