注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。
オブジェクトモニターの条件は、新しい監視活動がいつ検出され、記録されるかを定義します。閾値条件は連続的な真または偽のステータスを生み出し、一方イベント条件は個別のイベントを生み出します。条件には複数のサブ条件を含むことができ、複数の入力オブジェクトセットを参照することができます。オブジェクトモニターは以下の条件タイプをサポートします:
イベント条件は最も一般的な条件タイプです。イベント条件には、入力から追加または削除されたオブジェクト、およびメトリックの増加または減少条件を含みます。各イベントは特定の時間に発生し、個別のイベントです。そのため、アクティビティグラフではドットとして表示されます:
以下の例では、イベント条件は単一の入力探索を使用し、その探索で新たに使用されるオブジェクトをチェックします。オブジェクトは新たに作成されたものであったり、入力を定義するために使用されたフィルターに一致するように変更されたものであったりするために追加されるかもしれません。
一部のイベント条件では、閾値サブ条件が必要となる場合があります。これらのケースでは、主条件とサブ条件の両方が真でなければイベントは検出されません。例えば、閾値サブ条件は入力オブジェクトの数が増えることを検出するために使用されるかもしれませんが、入力セットにすでにN
個のオブジェクトが存在するという主条件が満たされている場合に限ります。
閾値条件は入力に対して実行され、時間経過とともにtrue
またはfalse
のステータスを生成します。閾値を超えるとアクティビティが記録されます。閾値を使用する条件には、任意の数のネストされたサブ条件を含めることができます。
以下は、Object Monitorsアプリケーションでの閾値条件の例です。この例では、条件はSales Opportunitiesのカスタムコホート全体のamount
の合計が10,000
を超えたときをチェックします。
閾値条件はリアルタイム評価をサポートしていません。
関数バックの条件は、イベントまたは閾値ルールオプションでサポートされていないものを含む、より複雑な条件定義を可能にするために設計されています。関数バックの条件は、true
またはfalse
のブール値を返す関数を定義し、公開することで機能します。モニターが評価されるときに関数が呼び出され、レスポンスはその実行の結果を示さなければなりません。ステータスが変更された場合、イベントが記録されます。
関数は監視されているオブジェクトタイプのObjectSet<>
を取り、条件が満たされているかどうかを示すブール値を返すべきです。Object Monitorsで使用するための関数の作成について詳しくはこちらをご覧ください。
以下の例では、関数を使用して、Sales Opportunityオブジェクトの入力セットでrealized_amount
の合計がexpected_amount
の合計よりも少ないときを計算します。
@Function()
/**
* この関数は、セットの販売機会の実現額が全ての機会額の合計よりも小さいかどうかを計算します。
*/
public async calculateOpportunityUnderRealized(opportunities: ObjectSet<SalesOpportunity>): Promise<boolean> {
let amount = await opportunities.sum(o => o.amount) // 機会の合計額を計算します。
let amountRealized = await opportunities.sum(o => o.amountRealized) // 実現した機会の合計額を計算します。
if (amount !== null && amountRealized !== null && amountRealized < amount) {
return true // 実現した機会の合計額が全体の機会額より少ない場合は真を返します。
} else {
return false // それ以外の場合は偽を返します。
}
}
関数バックの条件はリアルタイム評価をサポートしていません。さらに、関数バックの条件は、単一のブール値を出力することにより、しきい値条件とのみ使用できます。