ロールアップ クエリ (GoalRollupQuery) エンティティを使用して、目標の複雑な目標条件を追加します。 たとえば、特定の製品ラインの売上や特定の担当地域における売上を指定できます。
異なる目標では、同じロールアップ クエリを使用できます。 ただし、特定の目標に関連付けられているロールアップ クエリは、その目標にのみ適用されます。 親目標に指定されたロールアップ クエリは、子目標に反映されません。 下位の目標は、同じクエリを使用することも、別のクエリを使用することもできます。 ロールアップ クエリは、目標に関連付けられているロールアップ フィールド レコードに指定されている、同じエンティティの種類を使用する必要があります。 目標が受注売上高を追跡している一方で、関連するクエリが商談エンティティを使用している場合は、目標レコードを作成または更新するときに例外が発生します。
注
目標ロールアップ クエリで返すことのできるレコードの最大数は 5000 です。
クエリ条件を指定するには、GoalRollupQuery.FetchXml 属性を使用します。 クエリのエンティティの種類を指定するには、GoalRollupQuery.QueryEntityType 属性を使用します。
注
GoalRollupQuery.QueryEntityType 属性に指定できるテーブルでは、EntityMetadata、true、IsValidForAdvancedFind、IsUserOwned の各 IsCustomizable 属性を CanCreateAttributes に設定する必要があります。 次のテーブルは、この属性では指定できません: SharePointDocumentLocation、SharePointSite、MailMergeTemplate。
目標指標の種類に応じて、実績、進行中、およびユーザー定義の金額または件数データのフィルター処理を行うクエリを使用できます。 次の表は、目標指標の種類と、各種類のクエリを指定する際に使用できる目標エンティティ属性を示しています。
| 目標指標の種類 | ロールアップ クエリの属性 |
|---|---|
| 金額(金銭) | Goal.RollUpQueryActualMoneyIdGoal.RollUpQueryCustomMoneyIdGoal.RollUpQueryInprogressMoneyId |
| 金額 (整数型) または件数 | Goal.RollupQueryActualIntegerIdGoal.RollUpQueryCustomIntegerIdGoal.RollUpQueryInprogressIntegerId |
| 金額(10進数) | Goal.RollUpQueryActualDecimalIdGoal.RollUpQueryCustomDecimalIdGoal.RollUpQueryInprogressDecimalId |
指定のロールアップ属性の目標に関係するレコードを対象とするクエリには、次の句が含まれている必要があります。
Goal.ConsiderOnlyGoalOwnersRecordsの値。GoalRollupQuery.FetchXml内で指定される FetchXML 式。参照される目標指標の対応するロールアップ フィールドに指定される日付の範囲 (
RollupField.DateAttribute)、状態、および進捗状況。
二重カウントやその他の誤った結果を防ぐ
クエリは、ロールアップの結果を効果的にフィルター処理します。 ただし、慎重に使用しないと、二重カウントやその他の誤った結果が発生する可能性があります。 次の例は、クエリが望ましくない結果にどのように影響するかを示しています。
特定の営業担当者の受注を追跡しています。 ただし、ロールアップは販売注文を返しません。 このシナリオは、使用したクエリが、営業担当者に顧客がいる地域を除外した場合に発生する可能性があります。
営業担当者に対して 2 つの目標が設定されています。 1 つの目標では特定の製品の営業案件を追跡し、もう 1 つの目標では特定の担当地域の営業案件を追跡します。 営業案件に、指定の担当地域での指定の製品の販売が含まれる場合、この営業案件によってもたらされる売上は両方の目標に含まれます。 目標の親目標が同じ場合、それぞれの合計値が親目標に加算されるため、二重計上になります。
次のガイドラインに従うことによって、ダブル カウントなどの誤った結果を防ぐことができます。
Goal.ConsiderOnlyGoalOwnersRecords属性をtrueに設定して、目標の所有者が所有するレコードのみを使用する。営業担当者に対して、複数の目標を同じ期間に割り当てない。
期待した結果が得られない場合は、クエリを使用しないでください。