目標の合計のロールアップ

 

公開日: 2017年1月

対象: Dynamics 365 (online)、Dynamics 365 (on-premises)、Dynamics CRM 2016、Dynamics CRM Online

目標階層内でデータをロールアップするには、RecalculateRequest メッセージを使用します。 このメッセージは、階層内のすべての目標の目標ロールアップ フィールド値 (Goal.ActualMoneyGoal.ActualInteger など) を再計算します。 各目標のロールアップは、目標管理者のコンテキストで実行されます。 これは、目標管理者が読み取りアクセス権を持っているレコードだけがロールアップに参加することを意味します。 システムは、ロールアップ中に各目標に対するマネージャーのコンテキストを自動的に切り替えます。これは、すべての目標には別々の目標のマネージャーがいるためです。

合計は、下位目標から上位目標にロールアップされ、階層の最下位から最上位にロールアップされます。 階層の最上位でのルート目標の最終的な合計は、階層内のすべての合計の総計になります。 たとえば、収入指標が使用される場合、合計は金額の総計になります。 件数指標が使用される場合、合計はシステム内の実績レコード (電話など) の総数になります。 どちらの目標が再計算操作の対象であっても、特定の階層のすべての合計が更新されます。

Goal.RollupOnlyFromChildGoalstrue に設定した場合は、下位目標レコードだけがロールアップで使用されます。false に設定した場合、ロールアップには、子レコードとその他の目標に参加するレコードが含まれます。 参加するレコードは、次の条件を満たす必要があります。

  • レコードのソース日付が目標期間の開始日と終了日の間にあるか、目標期間の開始日または終了日である。

  • レコードの状態とステータスが目標指標に定義された値と一致する。

  • 目標に対してロールアップ クエリが指定された場合は、すべてのクエリ条件が満たされている。

  • 目標管理者がレコードの読み取りアクセス権を持っている。

注意

ロールアップに参加しない目標ロールアップ フィールドは更新されず、値は null です。

ロールアップ有効期限を指定するには、Organization.GoalRollupExpiryTime 属性を使用します。 たとえば、ロールアップ有効期限を 6 か月に設定した場合、6 か月よりも古い目標は自動的にロールアップされません。 目標のロールアップ頻度を指定するには、Organization.GoalRollupFrequency 属性を使用します。 頻度は、時間単位で設定できます。 既定では、目標の実績値は 24 時間ごとに再計算されます。

計算値を上書きする

システムが計算した目標ロールアップ フィールド (実績、進行中、またはユーザー定義) の値を上書きするには、UpdateRequest メッセージを使用して目標レコードを更新します。Goal.IsOverride 属性を true に設定して、ロールアップ フィールド値を更新できることをシステムに通知する必要があります。 目標のロールアップ フィールド値が上書きされたので、次回の再計算操作で更新してはいけないことをシステムに通知するには、Goal.IsOverridden 属性を true に設定します。Goal.IsOverridefalse の場合、更新操作中に例外がスローされます。Goal.IsOverriddenfalse の場合、目標ロールアップ フィールド値は次回の再計算操作時にシステムが計算した値で上書きされます。

関連項目

目標管理エンティティ
サンプル: カスタム期間の目標データを、対象の売上に対してロールアップする
サンプル: 件数の拡大対象に対する会計期間の目標データのロールアップ
目標 (Goal) エンティティのメッセージおよびメソッド

Microsoft Dynamics 365

© 2017 Microsoft. All rights reserved. 著作権