如果您想要為目標新增複雜的彙總條件,可以使用彙總查詢 (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 |
| 金額(十進位) | Goal.RollUpQueryActualDecimalIdGoal.RollUpQueryCustomDecimalIdGoal.RollUpQueryInprogressDecimalId |
針對指定彙總屬性的目標參與記錄的查詢應包含下列子句:
一個
Goal.ConsiderOnlyGoalOwnersRecords值。中
GoalRollupQuery.FetchXml指定的 FetchXML 運算式。在參考目標指標的個別彙總欄位中指定的日期範圍 (
RollupField.DateAttribute)、狀態和狀態。
防止重複計算和其他錯誤結果
查詢可有效篩選彙總的結果。 然而,如果使用不當,它們可能會引入“重複計算”或其他錯誤結果。 下列範例示範查詢如何產生不必要的結果:
您正在追蹤特定銷售人員的銷售訂單。 不過,匯總不會傳回任何銷售訂單。 如果您使用的查詢過濾掉了銷售人員擁有客戶的地區,則可能會發生這種情況。
您為銷售人員設定了兩個目標。 一個目標追蹤特定產品的機會,另一個目標追蹤特定區域的機會。 如果商機包括在指定區域內銷售指定產品,則此商機的收入會包含在這兩個目標中。 如果目標具有相同的父目標,則其總計會新增至父目標,導致重複計算。
您可以遵循以下準則來防止重複計數和其他不正確的結果:
將屬性設定
Goal.ConsiderOnlyGoalOwnersRecords為true,以僅使用目標擁有者所擁有的記錄。請勿在同一時段內將多個目標指派給銷售人員。
如果您不確定查詢是否會提供您預期的結果,請勿使用查詢。