添加复杂目标条件
发布日期: 2016年11月
适用于: Dynamics CRM 2015
如果要为目标添加复杂的汇总条件,可以使用汇总查询 (GoalRollupQuery) 实体。 例如,可以指定特定产品系列的收入或在特定区域中产生的收入。
汇总查询可以由不同的目标使用。 但是,与特定目标相关联的汇总查询仅适用于该目标。 为父目标指定的汇总查询不会传播到子目标。 子目标可以使用相同的查询,也可以使用不同的查询。 汇总查询应该使用在与目标相关联的汇总字段记录中指定的相同实体类型。 如果目标跟踪销售订单收入,但相关联的查询使用商机实体,则创建或更新目标记录时会引发异常。
若要指定查询条件,请使用 GoalRollupQuery.FetchXml 属性。 若要为查询指定实体类型,请使用 GoalRollupQuery.QueryEntityType 属性。
备注
可以在 GoalRollupQuery.QueryEntityType 属性中指定的实体必须具有设置为 true 的以下 EntityMetadata 属性: IsValidForAdvancedFind、IsUserOwned、IsCustomizable 和 CanCreateAttributes。 不能在此属性中指定以下实体:SharePointDocumentLocation、SharePointSite 和 MailMergeTemplate。
根据目标度量类型,可以使用查询筛选实际、过程中和自定义金额或计数数据。 下表显示目标度量类型以及为每种类型指定查询时可以使用的目标实体属性。
目标度量类型 |
汇总查询属性 |
---|---|
金额(货币) |
Goal.RollUpQueryActualMoneyId Goal.RollUpQueryCustomMoneyId Goal.RollUpQueryInprogressMoneyId |
金额(整数)或计数 |
Goal.RollupQueryActualIntegerId Goal.RollUpQueryCustomIntegerId Goal.RollUpQueryInprogressIntegerId |
金额(小数) |
Goal.RollUpQueryActualDecimalId Goal.RollUpQueryCustomDecimalId Goal.RollUpQueryInprogressDecimalId |
对给定汇总属性的目标参与记录的查询应该包含以下子句:
Goal.ConsiderOnlyGoalOwnersRecords 值。
在 GoalRollupQuery.FetchXml 中指定的 FetchXML 表达式。
在所引用目标度量的相应汇总字段中指定的日期范围 (RollupField.DateAttribute) 和状态。
防止重复计算和其他错误结果
查询在筛选汇总结果方面非常有效。 但是,如果不谨慎使用,它们可能会导致“重复计算”或其他错误结果。 以下示例说明查询如何导致意外结果:
您要跟踪特定销售员的销售订单。 但是,汇总未返回任何销售订单。 如果使用的查询已将销售员的客户所在的区域筛选掉,则可能会出现这种情况。
您为销售员设置了两个目标。 一个目标是跟踪特定产品的商机,另一目标是跟踪特定区域中的商机。 如果商机包括在指定区域销售指定产品,则此商机的收入会包含在两个目标中。 如果两个目标具有相同的父目标,则会将它们的总额添加到父目标中,从而导致重复计算。
可以通过遵循以下指南来防止重复计算和其他不正确的结果:
将 Goal.ConsiderOnlyGoalOwnersRecords 属性设置为 true,以便仅使用目标负责人负责的记录。
不要在同一时间段将多个目标分派给一个销售员。
如果不确定查询能否提供预期结果,请勿使用该查询。
另请参阅
© 2017 Microsoft。 保留所有权利。 版权