定义计算字段

 

发布日期: 2017年2月

适用于: Dynamics 365 (online),Dynamics 365 (on-premises),Dynamics CRM 2016,Dynamics CRM Online

在 Microsoft Dynamics 365 中,计算字段可以将您的业务流程中使用的手动计算自动化。 例如,推销员可能想知道商机的加权收入,这基于商机与概率乘积得到的预计收入。 或者,如果订单大于 500 美元,他们想要自动使用一个折扣。 计算字段可以包含简单数学运算或条件运算(如大于或 if - else 等)产生的值。 您可以使用 Dynamics 365 用户界面完成这些操作,并且不需要编写代码。

计算字段功能:

  • 计算字段包含当前实体或相关父实体中使用字段的计算。

  • 在“条件”部分和“操作”部分的当前实体和相关父实体字段上表达式支持可用。 内置函数包括:

    ADDHOURSADDDAYSADDWEEKSADDMONTHSADDYEARSSUBTRACTHOURSSUBTRACTDAYSSUBTRACTWEEKSSUBTRACTMONTHSSUBTRACTYEARSDIFFINDAYSDIFFINHOURSDIFFINMINUTESDIFFINMONTHSDIFFINWEEKSDIFFINYEARSCONCATTRIMLEFTTRIMRIGHT

  • 丰富的条件支持提供分支和多个条件。 逻辑操作包括 ANDOR 运算符。

  • 在“操作”部分,可视编辑功能包括现代 UI 和 intellisense。

  • 计算字段与窗体、视图、图表和报表的无缝集成是实时的。

  • 如果您已将 Online 组织更新为 适用于 Microsoft Dynamics 365 的 2016 年 12 月更新(联机),则可以将计算字段配置为使用自定义控件。

    详细信息:适用于手机和平板电脑的 Dynamics 365 中的可视控件

计算字段的几个示例

  • 加权收入:预计收入乘以概率

  • 净值:资产减去给定客户的负债

  • 劳动力成本:保证工资达 40 个小时,加上额外的加班

  • 联系电话:基于客户或联系人的商机电话号码

  • 潜在顾客评分:提供对给定潜在顾客质量见解的单一字段

  • 跟进:通过基于优先级的指定天数跟进活动

重要

若要创建一个计算字段,必须对字段安全配置文件实体有写入特权。 如果计算字段在计算中使用安全字段,应该考虑保护计算字段,以防止没有足够权限的用户访问数据。 如果正在创建在计算中使用安全字段的计算字段,计算字段编辑器将给您一个警告并建议您保护计算字段。详细信息:字段级安全性

本主题内容

计算字段的示例

计算字段函数语法

计算字段注意事项

计算字段的示例

我们更详细地看一下计算字段示例。 我们将使用字段编辑器来定义计算字段。 打开字段编辑器:

  1. 转到“设置”>“自定义”。

  2. 选择“自定义系统” > “组件” > “实体”。

  3. 选择所需实体并选择“字段”。 选择“新建”。

在编辑器中,为字段提供所需的信息,包括“字段类型”和“数据类型”。 “字段类型”是“计算”。 可用的计算字段数据类型:

  • 一行文本

  • 选项集

  • 两个选项

  • 整数

  • 十进制数

  • 货币

  • 日期和时间

“字段类型”旁边的“编辑”按钮引导您到计算字段定义编辑器,在这里新的计算字段已创建,但未设置公式。 计算字段定义包括两个部分:“条件”和“操作”。

  • 条件部分中,您可以指定一个实体、字段、运算符、类型和值。 在“实体”的下拉框中,您可以选择当前实体或相关实体。 在“字段”下拉框中,您可以选择实体所有可用字段。 根据所选运算符,您可能需要提供类型和值。 您可以使用 ANDOR 运算符指定多个条件。

  • 在“操作”部分中,您可以提供计算字段的公式。

备注

在您的“操作”内,您可以使用查找记录中的数据。 您必须首先选择“查找”字段,然后输入一个期间。 之后,您可以选择可用于相关实体中的相应字段。 例如,在 <LookupFieldName>.<RelatedFieldName> 中,您可以选择:ParentAccountId.AccountNumber。

注意,如果已访问字段中包含敏感数据,字段级别的安全性将会在相关实体中被忽略,因此,我们还建议您保护计算字段。

商机的加权收入

在此示例中,我们使用商机实体的字段根据商机概率来计算加权收益。 在商机实体的字段编辑器中,我们创建一个名为“加权收入”的字段并指定字段类型为“计算”和数据类型为“当前”。 在计算字段定义编辑器中的“条件”部分,我们指定商机状态 = 打开。 在“操作”中,根据商机预计收入与商机概率乘积公式来计算加权收入。 以下屏幕截图显示如何分步定义加权收益计算字段。

创建名为“加权收入”的计算字段:

Weighted revenue of Opportunity in Dynamics CRM

设置商机条件:

Set Weighted Revenue in Dynamics CRM

提供加权收入公式:

Set Weighted Revenue estimated value Dynamics CRM

总共:

Weighted revenue to est. revenue in Dynamics CRM

跟进商机日期

在此示例中,当跟进商机时,我们使用商机最初潜在顾客字段来计算合适的日期。 在商机实体字段编辑器中,我们创建一个名为“跟进日期”的字段并指定类型为“计算”和数据类型为“日期和时间”。 在计算字段定义编辑器的“条件”部分,我们指定两个条件:潜在顾客的购买期限和估计值。 在“操作”中,我们提供两个公式,一个是对眼前的商机跟进一周,另一个是对不可能立刻出现的商机跟进一个月。 以下屏幕截图显示如何分步定义“跟进日期”计算字段。

创建名为“跟进日期”的计算字段:

Follow up date on an opportunity in Dynamics CRM

设置最初潜在顾客的两个条件:

Follow up date on an opportunity in Dynamics CRM

Follow up date on an opportunity in Dynamics CRM

提供跟进一周的公式:

Follow up date on an opportunity in Dynamics CRM

提供跟进一月的公式:

Set Follow up date in Dynamics CRM

总共:

Set Follow up date If-Then & Else in Dynamics CRM

记录创建的天数

在此示例中,我们使用DIFFINDAYS 函数计算从记录创建到现在的天数差。

创建名为"计算天数差“的计算字段:

Create calculated field in Dynamics CRM

提供计算天数差的公式

Calculated field, DIFFINDAYS function

总共:

Difference in days since record creation

计算字段函数语法

以下表包含计算字段的“操作”部分所提供的函数的语法的信息。

提示

将函数名称指定为大写字母。

函数语法

说明

返回类型

“ADDDAYS”(整数、日期和时间)

返回与给定日期和时间等同的新日期和时间,以及指定的天数。

日期和时间

“ADDHOURS”(整数、日期和时间)

返回与给定日期和时间等同的新日期和时间,以及指定的小时数。

日期和时间

“ADDMONTHS”(整数、日期和时间)

返回与给定日期和时间等同的新日期和时间,以及指定的月数。

日期和时间

“ADDWEEKS”(整数、日期和时间)

返回与给定日期和时间等同的新日期和时间,以及指定的周数。

日期和时间

“ADDYEARS”(整数、日期和时间)

返回与给定日期和时间等同的新日期和时间,以及指定的年数。

日期和时间

“SUBTRACTDAYS”(整数、日期和时间)

返回与给定日期和时间等同的新日期和时间,减去指定的天数。

日期和时间

“SUBTRACTHOURS”(整数、日期和时间)

返回与给定日期和时间等同的新日期和时间,减去指定的小时数。

日期和时间

“SUBTRACTMONTHS”(整数、日期和时间)

返回与给定日期和时间等同的新日期和时间,减去指定的月数。

日期和时间

“SUBTRACTWEEKS”(整数、日期和时间)

返回与给定日期和时间等同的新日期和时间,减去指定的周数。

日期和时间

“SUBTRACTYEARS”(整数、日期和时间)

返回与给定日期和时间等同的新日期和时间,减去指定的年数。

日期和时间

DIFFINDAYS(日期和时间,日期和时间)

返回两个”日期和时间“字段之间的天数差。 如果两个日期和时间为同一天,此差为零。

整数

DIFFINHOURS(日期和时间,日期和时间)

返回两个”日期和时间“字段之间的小时差。

整数

DIFFINMINUTES(日期和时间,日期和时间)

返回两个”日期和时间“字段之间的分钟差。

整数

DIFFINMONTHS(日期和时间,日期和时间)

返回两个”日期和时间“字段之间的月数差。 如果两个日期和时间为同一个月,此差为零。

整数

DIFFINWEEKS(日期和时间,日期和时间)

返回两个”日期和时间“字段之间的周数差。 如果两个日期和时间为同一周,此差为零。

整数

DIFFINYEARS(日期和时间,日期和时间)

返回两个”日期和时间“字段之间的年数差。 如果两个日期和时间为同一年,此差为零。

整数

CONCAT(单行文本,单行文本,… 单行文本)

返回连接两个或多个字符串结果的字符串。

字符串

“TRIMLEFT”(单行文本、整数)

返回包含一个含指定字符串,但第一字符不是 N 的字符串。

字符串

“TRIMRIGHT”(单行文本、整数)

返回一个包含指定字符串,但最后一个字符不是 N 的字符串。

字符串

备注

所有 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 个唯一的计算字段。

  • 在 Dynamics 365 Outlook 脱机模式中,视图或实体主窗体中不显示计算字段的值。

  • 链接的计算字段的最大数量是 5。

  • 计算字段无法引用本身或具有循环链。

  • 如果您在多个条件条款中更改一个条件运算符,所有条件操作符将更新至该条件。 例如,在从句 IF (x > 50) OR (y ==10) OR (z < 5) 中,如果您将 OR 运算符更改为 AND 运算符,那么从句中的所有 OR 运算符将变为 AND 运算符。

  • 您可以通过查找父实体的字段来访问父级字段,如 <LookupFieldName>.<FieldName>。 多实体查找字段(如Customer,可以是AccountContact)无法执行此操作。 但是,一些实体有特定实体的单个查找字段,如ParentAccountid.<FieldName>ParentContactid.<FieldName>

  • 以下情况禁用排序:

    • 包含父记录字段的计算字段。

    • 计算字段包含一个逻辑字段(如地址字段)。

    • 计算字段包含其他计算字段。

  • 计算字段只可以跨两个实体。

    • 计算字段可以包含其他实体的字段(跨两个实体 – 当前实体和父记录)。

    • 计算字段不能包含其他实体(此实体还包含另一实体的其他字段)(跨三个实体):
      (当前实体)计算字段 < - (父记录)计算字段 1 <-(父记录)计算字段 2。

  • 您无法触发计算字段上的工作流或插件。

  • 您无法将现有简单字段更改为计算字段。 如果您的当前应用程序正在使用 JavaScript 或插件来计算字段,且未创建新字段,则您无法使用计算字段功能。

  • 未对计算字段触发重复检测规则。

  • 汇总无法引用使用其他计算字段的计算字段,即使其他计算字段的所有字段在当前实体中。

另请参阅

创建和编辑字段
定义汇总字段
视频:Microsoft Dynamics CRM 2015 中的汇总和计算字段

© 2017 Microsoft。 保留所有权利。 版权