创建计算字段以自动化手动计算
此主题适用于 Dynamics 365 Customer Engagement (on-premises)。 有关此主题的 Power Apps 版本,请参阅: 定义计算字段以自动化手动计算
计算字段可以将您的业务流程中使用的手动计算自动化。 例如,推销员可能想知道商机的加权收入,这基于商机与概率乘积得到的预计收入。 或者,如果订单大于 500 美元,他们想要自动使用一个折扣。 计算字段可以包含简单数学运算或条件运算(如大于或 if - else 等)产生的值。 您可以使用计算字段功能完成这些操作,并且不需要编写代码。
计算字段功能:
计算字段包含当前实体或相关父实体中使用字段的计算。
在条件部分和操作部分的当前实体和相关父实体字段上表达式支持可用。 内置函数包括:
ADDHOURS、ADDDAYS、ADDWEEKS、ADDMONTHS、ADDYEARS、SUBTRACTHOURS、 SUBTRACTDAYS、SUBTRACTWEEKS、SUBTRACTMONTHS、SUBTRACTYEARS、DIFFINDAYS、 DIFFINHOURS、DIFFINMINUTES、DIFFINMONTHS、DIFFINWEEKS、DIFFINYEARS、CONCAT、TRIMLEFT 和 TRIMRIGHT。
丰富的条件支持提供分支和多个条件。 逻辑操作包括 AND 和 OR 运算符。
在操作部分,可视编辑功能包括现代 UI 和 intellisense。
计算字段与窗体、视图、图表和报表的无缝集成是实时的。
如果您已将 Online 组织更新为 Dynamics 365 (online) 的 2016 年 12 月版更新,则可以将计算字段配置为使用自定义控件。
计算字段的几个示例
加权收入:预计收入乘以概率
净值:资产减去给定客户的负债
劳动力成本:保证工资达 40 个小时,加上额外的加班
联系电话:基于客户或联系人的商机电话号码
潜在顾客评分:提供对给定潜在顾客质量见解的单一字段
跟进:通过基于优先级的指定天数跟进活动
重要提示
若要创建一个计算字段,必须对字段安全配置文件实体有写入特权。 如果计算字段在计算中使用安全字段,应该考虑保护计算字段,以防止没有足够权限的用户访问数据。 如果正在创建在计算中使用安全字段的计算字段,计算字段编辑器将给您一个警告并建议您保护计算字段。 更多信息:字段级安全性。
计算字段的示例
我们更详细地看一下计算字段示例。 我们将使用字段编辑器来定义计算字段。 打开字段编辑器:
打开解决方案资源管理器
展开组件>实体。
选择所需实体并选择字段。 选择新建。
在编辑器中,为字段提供所需的信息,包括字段类型和数据类型。 字段类型是计算。 可用的计算字段数据类型:
一行文本
选项集
两个选项
整数
十进制数
货币
日期和时间
字段类型旁边的编辑按钮引导您到计算字段定义编辑器,在这里新的计算字段已创建,但未设置公式。 计算字段定义包括两个部分:条件和操作。
在条件部分中,您可以指定一个实体、字段、运算符、类型和值。 在实体的下拉框中,您可以选择当前实体或相关实体。 在字段下拉框中,您可以选择实体所有可用字段。 根据所选运算符,您可能需要提供类型和值。 您可以使用
AND
或OR
运算符指定多个条件。在操作部分中,您可以提供计算字段的公式。
备注
在您的“操作”内,您可以使用查找记录中的数据。 您必须首先选择“查找”字段,然后输入一个期间。 之后,您可以选择可用于相关实体中的相应字段。 例如,在 <LookupFieldName>.<RelatedFieldName> 中,您可以选择:ParentAccountId.AccountNumber。
注意,如果已访问字段中包含敏感数据,字段级别的安全性将会在相关实体中被忽略,因此,我们还建议您保护计算字段。
商机的加权收入
在此示例中,我们使用商机实体的字段根据商机概率来计算加权收益。 在商机实体的字段编辑器中,我们创建一个名为“加权收入”的字段并指定字段类型为计算和数据类型为当前。 在计算字段定义编辑器中的条件部分,我们指定商机状态 = 打开。 在操作中,根据商机预计收入与商机概率乘积公式来计算加权收入。 以下屏幕截图显示如何分步定义加权收益计算字段。
创建名为“加权收入”的计算字段:
设置商机条件:
提供加权收入公式:
总共:
跟进商机日期
在此示例中,当跟进商机时,我们使用商机最初潜在顾客字段来计算合适的日期。 在商机实体字段编辑器中,我们创建一个名为“跟进日期”的字段并指定类型为计算和数据类型为日期和时间。 在计算字段定义编辑器的条件部分,我们指定两个条件:潜在顾客的购买期限和估计值。 在操作中,我们提供两个公式,一个是对眼前的商机跟进一周,另一个是对不可能立刻出现的商机跟进一个月。 以下屏幕截图显示如何分步定义“跟进日期”计算字段。
创建名为“跟进日期”的计算字段:
设置最初潜在顾客的两个条件:
提供跟进一周的公式:
提供跟进一月的公式:
总共:
记录创建的天数
在此示例中,我们使用DIFFINDAYS 函数计算从记录创建到现在的天数差。
创建名为"计算天数差"的计算字段:
提供计算天数差的公式
总共:
计算字段函数语法
以下表包含计算字段的操作部分所提供的函数的语法的信息。
小费
将函数名称指定为大写字母。
函数语法 | 说明 | 返回类型 |
---|---|---|
ADDDAYS(整数、日期和时间) | 返回与给定日期和时间等同的新日期和时间,以及指定的天数。 | 日期和时间 |
ADDHOURS(整数、日期和时间) | 返回与给定日期和时间等同的新日期和时间,以及指定的小时数。 | 日期和时间 |
ADDMONTHS(整数、日期和时间) | 返回与给定日期和时间等同的新日期和时间,以及指定的月数。 | 日期和时间 |
ADDWEEKS(整数、日期和时间) | 返回与给定日期和时间等同的新日期和时间,以及指定的周数。 | 日期和时间 |
ADDYEARS(整数、日期和时间) | 返回与给定日期和时间等同的新日期和时间,以及指定的年数。 | 日期和时间 |
SUBTRACTDAYS(整数、日期和时间) | 返回与给定日期和时间等同的新日期和时间,减去指定的天数。 | 日期和时间 |
SUBTRACTHOURS(整数、日期和时间) | 返回与给定日期和时间等同的新日期和时间,减去指定的小时数。 | 日期和时间 |
SUBTRACTMONTHS(整数、日期和时间) | 返回与给定日期和时间等同的新日期和时间,减去指定的月数。 | 日期和时间 |
SUBTRACTWEEKS(整数、日期和时间) | 返回与给定日期和时间等同的新日期和时间,减去指定的周数。 | 日期和时间 |
SUBTRACTYEARS(整数、日期和时间) | 返回与给定日期和时间等同的新日期和时间,减去指定的年数。 | 日期和时间 |
DIFFINDAYS(日期和时间,日期和时间) | 返回两个日期和时间字段之间的天数差。 如果两个日期和时间为同一天,此差为零。 | 整数 |
DIFFINHOURS(日期和时间,日期和时间) | 返回两个日期和时间字段之间的小时差。 | 整数 |
DIFFINMINUTES(日期和时间,日期和时间) | 返回两个日期和时间字段之间的分钟差。 | 整数 |
DIFFINMONTHS(日期和时间,日期和时间) | 返回两个日期和时间字段之间的月数差。 如果两个日期和时间为同一个月,此差为零。 | 整数 |
DIFFINWEEKS(日期和时间,日期和时间) | 返回两个日期和时间字段之间的周数差。 如果两个日期和时间为同一周,此差为零。 | 整数 |
DIFFINYEARS(日期和时间,日期和时间) | 返回两个日期和时间字段之间的年数差。 如果两个日期和时间为同一年,此差为零。 | 整数 |
CONCAT(单行文本,单行文本…单行文本) | 返回连接两个或多个字符串结果的字符串。 | 字符串 |
TRIMLEFT(单行文本、整数) | 返回包含一个含指定字符串,但第一字符不是 N 的字符串。 | 字符串 |
TRIMRIGHT(单行文本、整数) | 返回一个包含指定字符串,但最后一个字符不是 N 的字符串。 | String |
备注
所有 DIFF 都函数需要第一个日期和时间字段和第二个日期和时间字段具有相同的行为:用户当地时间、仅限日期或时区无关时区独立。 如果第二个字段的行为不与第一个字段的行为匹配,错误消息将显示,指示第二个字段不能在当前函数中使用。 详细信息:日期及时间字段的行为和格式。
备注
不能输入日期作为计算字段的日期值,例如 01/01/2015。 只能使用其他“日期时间”字段设置或比较日期和日期时间值。
在CONCAT函数中,可将文字字符串用作单行文本、包含单行文本的实体字段或者两者的组合。 例如:CONCAT(FirstName 或 LastName“是经理。”)。 如果文字字符串包含引号,请在前面每个引号前面加上反斜线 (\) 转义字符,例如:“此字符串包含\”引号。\””这可以确保字符串中的引号不被看作分隔字符串的特殊字符。
以下示例显示如何使用TRIMLEFT和TRIMRIGHT函数: 他们包含由TRIMLEFT和TRIMRIGHT函数返回的初始字符串和结果字符串:
TRIMLEFT (“RXX10-3456789”, 3) 返回字符串“10-3456789”
TRIMRIGHT (“20-3456789RXX”, 3) 返回字符串“20-3456789”
计算字段注意事项
在使用计算字段时,您应了解的某些条件和限制:
保存的查询、图表和可视化最多可以有 10 个唯一的计算字段。
在 Customer Engagement Outlook 脱机模式中,视图或实体主窗体中不显示计算字段的值。
链接的计算字段的最大数量是 5。
计算字段无法引用本身或具有循环链。
如果您在多个条件条款中更改一个条件运算符,所有条件操作符将更新至该条件。 例如,在从句
IF (x > 50) OR (y ==10) OR (z < 5)
中,如果您将OR
运算符更改为AND
运算符,那么从句中的所有OR
运算符将变为AND
运算符。您可以通过查找父实体的字段来访问父级字段,如
<LookupFieldName>.<FieldName>
。 多实体查找字段(如Customer
,可以是Account
或Contact
)无法执行此操作。 但是,一些实体有特定实体的单个查找字段,如ParentAccountid.<FieldName>
或ParentContactid.<FieldName>
。以下情况禁用排序:
包含父记录字段的计算字段。
计算字段包含一个逻辑字段(如地址字段)。
计算字段包含其他计算字段。
计算字段只可以跨两个实体。
计算字段可以包含其他实体的字段(跨两个实体 – 当前实体和父记录)。
计算字段不能包含其他实体(此实体还包含另一实体的其他字段)(跨三个实体):
(当前实体)计算字段 < - (父记录)计算字段 1 <-(父记录)计算字段 2。
您无法触发计算字段上的工作流或插件。
您无法将现有简单字段更改为计算字段。 如果您的当前应用程序正在使用 JavaScript 或插件来计算字段,且未创建新字段,则您无法使用计算字段功能。
未对计算字段触发重复检测规则。
汇总无法引用使用其他计算字段的计算字段,即使其他计算字段的所有字段在当前实体中。