SuiteCRM工作流(Workflow)计算字段用法

目录

  • 添加参数
  • 添加关系参数
  • 为字段创建公式
  • 可用功能
    • 逻辑功能
      • 等于
      • 不相等
      • 比…更
      • 大于等于
      • 少于
      • 小于等于
      • 空的
      • 不是空的
      • 要么
    • 文字功能
      • 子串
      • 长度
      • 更换
      • 位置
      • 小写
      • 大写
    • 数学函数
      • 减去
      • 划分
      • 功率
      • 平方根
      • 绝对
    • 日期功能
      • 日期
      • 现在
      • 昨天
      • 明天
      • 日期差异
      • addYears
      • addMonths
      • addDays
      • addHours
      • addMinutes
      • addSeconds
      • 减去年份
      • 减去月份
      • 减去天数
      • 减去小时
      • 减去分钟
      • 减去秒
    • 控制功能
      • 如果那么
    • 专柜
      • 全球柜台
      • GlobalCounterPerUser
      • GlobalCounterPerModule
      • GlobalCounterPerUserPerModule
      • DailyCounter
      • DailyCounterPerUser
      • DailyCounterPerModule
      • DailyCounterPerUserPerModule
    • 示例-计算机会的月费
      • 用例
      • 建立
      • 工作流程
      • 删除动作
      • 删除字段和关系线

在工作流中,功能特别强大且复杂 行动 称为计算字段,可让您对要处理的记录中的值进行操作。

添加参数 

通过使用“计算字段”用户界面的“参数”部分中的下拉列表,可以向公式中添加参数。下拉列表包含所有(基本和自定义)字段,这些字段属于在“基本字段”部分中选择的模块。

要添加参数,请从下拉列表中选择字段,然后单击 添加参数。执行此操作后,参数表中将出现新行,其中包含字段名称和给定的标识符。

对于某些字段(下拉菜单和多项选择),显示了一个附加的下拉菜单,用户可以在其中选择是否应在“计算字段”中使用原始值或格式化值。原始值表示存储在数据库中的值,格式化值表示该数据库值的标签。

要从表格中删除参数,只需点击“—”在参数行中。请注意,如果删除参数,则会重新计算所有标识符,因此标​​识符可能会随字段更改!

用户创建公式时,将使用标识符来引用此字段。例如,{P0}标识符的所有外观都会在公式中替换为“数字1”。所有参数都类似于{Px},其中x是参数的顺序。参数的数量没有限制。

添加关系参数 

关系参数与常规参数非常相似,唯一的区别是用户首先选择与实际实体具有一对一一对多关系的实体。

错误示范
正确示范

备注:必须建立关系是 一对一一对多 ,如果多对多则关系参数不显示关联模块!!!另外再提示一点,建立关联关系必须是第一次就是正确的方案,改关联关系会很麻烦!!

备注2:这边有点小问题:1、关联模块建立错误后,有时候删除不掉,有时候经过多次删除才可以删除关联关系;2、是一对多,还是多对一?两者会不会有什么区别???这是一些问题,等待解决。。。。

要添加关系参数,请首先选择关系,然后从连接的实体中选择字段,然后按“添加关系参数”按钮。执行此操作后,关系参数表中将出现新行,其中包含关系名称,字段名称和给定的标识符。

至于某些关系参数字段的参数(下拉菜单和多重选择),还会显示一个附加的下拉菜单,用户可以在其中选择是否应在“计算字段”中使用原始值或格式化值。

要从表格中删除关联参数,只需点击“—”关系参数行中的按钮。请注意,如果删除一个关系参数,则会重新计算所有标识符,因此标​​识符可能会随字段改变!

用户创建公式时,将使用标识符来引用此字段。例如,{R0}标识符的所有外观都会在公式中替换为创建者用户的用户名。所有关系参数都类似于{Rx},其中x是关系参数的顺序。关系参数的数量不受限制。

为字段创建公式 

在用户界面的“公式”部分中,用户可以为实际实体的字段添加公式。

要添加公式,请先从下拉列表中选择一个字段,然后按添加公式按钮。执行此操作后,公式表中将出现一个新行,其中包含字段名称和公式的位置。

要从表格中删除公式,只需点击“—”在公式行中

公式是一个文本框,用户可以在其中编写公式。该模块在给定的时间(保存,调度程序运行或同时运行)上评估公式,并用评估值填充所选字段。

该公式可以包含任何文本(具有完整的UTF-8支持),但是仅会评估函数部分(参数在'{‘和’}’之间的函数)。例如,如果我们填写如下公式:由创建人{R0}创建的产品成本是{P0}元,则保存后说明字段将具有以下值: 由创建人<admin>创建的产品成本是<100>元)。

“计算字段”具有许多内置函数,使用户可以构建复杂的公式来实现各种目标。这些功能将在下一节中介绍。

可用功能 

如上所述,所有功能都包裹在{ 和}符号之间,它们看起来像{functionName(parameter1; parameter2; …)}。对于不同的功能,参数的数量是不同的。该模块将评估函数并通过公式中的结果对其进行更改。

这些函数可以相互嵌入(使用函数的结果作为另一个函数的参数),如以下示例所示:

{power({subtract({divide({add({multiply(10; 2)}; 12)}; 8)}; 1)}; 2)}

此函数是以下数学表达式的形式化外观:

(((((10 * 2)+ 12)/ 8)– 1)2

功能分为六组。这些组在文档的下一部分中描述。

逻辑功能 

逻辑函数以1和0的形式返回true或false,因此可以使用这些函数填充复选框类型的字段。它们也可以用作ifThenElse函数的逻辑条件。

等于 equal 

签名 {equal(parameter1;parameter2)}
参量parameter1:可以是任何类型的任何值
parameter2:可以是任何类型的任何值
描述确定parameter1是否等于parameter2
退货如果两个参数相等则为1,否则为0
呼叫范例 {equal(1; 2)} returns 0

不相等 notEqual 

签名 {notEqual(parameter1; parameter2)}
参量parameter1:可以是任何类型的任何值
parameter2:可以是任何类型的任何值
描述确定parameter1是否与parameter2不相等
退货如果两个参数相等则为0,否则为1
呼叫范例 {notEqual(1; 2)} returns 1

比…更 greaterThan 

签名 {greaterThan(parameter1; parameter2)}
参量parameter1:可以是任何类型的任何值
parameter2:可以是任何类型的任何值
描述确定parameter1是否大于parameter2
退货如果parameter1大于parameter2则为1,否则为0
呼叫范例 {greaterThan(3; 3)} returns 0

大于等于 greaterThanOrEqual 

签名 {greaterThanOrEqual(parameter1; parameter2)}
参量parameter1:可以是任何类型的任何值
parameter2:可以是任何类型的任何值
描述确定parameter1是否大于或等于 parameter2
退货如果parameter1大于或等于parameter2则为1,否则为0
呼叫范例 {greaterThanOrEqual(3; 3)} returns 1

说明:因为时间原因下文的错误暂时就不再修正,有时间会全部修改过来,请谅解。

少于 

签名{lessThan(parameter1; parameter2)}
参量parameter1:可以是任何类型的任何值
parameter2:可以是任何类型的任何值
描述确定parameter1是否小于parameter2
退货如果parameter1小于parameter2则为1,否则为0
呼叫范例{lessThan(3; 3)}返回0

小于等于 

签名{lessThanOrEqual(parameter1; parameter2)}
参量parameter1:可以是任何类型的任何值
parameter2:可以是任何类型的任何值
描述确定parameter1是否小于或等于parameter2
退货如果parameter1小于或等于parameter2则为1,否则为0
呼叫范例{lessThanOrEqual(3; 3)}返回1

空的 

签名{空(参数)}
参量参数:文本值
描述确定参数是否为空
退货如果参数为空则为1,否则为0
呼叫范例{empty(任何文本)}返回0

不是空的 

签名{notEmpty(parameter)}
参量参数:文本值
描述确定参数是否为空
退货如果参数不为空则为1,如果为空则为0
呼叫范例{notEmpty(任何文本)}返回1

不 

签名{不(参数)}
参量参数:逻辑值
描述取反参数的逻辑值
退货如果参数为0,则为1;如果参数为1 ,则为0
呼叫范例{not(0)}返回1

和 

签名{and(parameter1; parameter2)}
参量参数1:逻辑值
参数2:逻辑值
描述将AND逻辑运算符应用于两个逻辑值
退货如果parameter1parameter2为1,则为1,如果任何参数为0,则为0
呼叫范例{and(1; 0)}返回0

要么 

签名{or(parameter1; parameter2)}
参量参数1:逻辑值
参数2:逻辑值
描述将OR逻辑运算符应用于两个逻辑值
退货如果parameter1parameter2为1,则为1,如果两个参数均为0,则为0
呼叫范例{or(1; 0)}返回1

文字功能 

文本函数用于以各种方式操纵文本。此处列出的所有功能均完全支持UTF-8文本,因此特殊字符不会引起任何问题。

子串 

签名{substring(text; start; length)}
参量文字:文字值
开始:十进制值
长度[可选参数]:十进制值
描述start剪切文本字段的子字符串。如果 未设置length可选参数,则它将剪切所有字符,直到字符串结尾,否则剪切提供的length。文本字符的索引从0开始。
退货给定文本的子字符串
呼叫范例{substring(这是我的文字; 5)} return是我的文字
{substring(这是我的文字; 5; 5)}返回的是我的

长度 

签名{length(parameter)}
参量参数:文本值
描述计算文本中的字符。
退货文本中的字符数。
呼叫范例{length(sample text)}返回11

更换 

签名{替换(搜索;替换;主题)}
参量搜索:文本值
替换:文本值
主题:文字值
描述替换所有出现的搜索替换文本主题
退货具有替换值的主题
呼叫范例{replace(apple; orange;这是一棵苹果树)}返回这是一棵橙树

位置 

签名{位置(主题;搜索)}
参量主题:文字值
搜索:文本值
描述查找第一次出现的位置搜索的 主题
退货的数字位置搜索主题或-1,如果搜索 不存在的主题
呼叫范例{position(我的文字在哪里?; text)}返回12

小写 

签名{小写(参数)}
参量参数:文本值
描述使文字小写
退货小写的文本。
呼叫范例{小写(因此是sAmPlE tExT)}返回的是示例文本

大写 

签名{大写(参数)}
参量参数:文本值
描述使文字大写
退货大写的文本。
呼叫范例{uppercase(这是sAmPlE tExT)}返回此文本示例

数学函数 

数学函数用于以各种方式操纵数字。在计算字段中,一些数学运算符被实现为函数。

加 

签名{add(parameter1; parameter2)}
参量参数1:数值
参数2:数字值
描述添加parameter1parameter2
退货parameter1parameter2之和
呼叫范例{add(3.12; 4.83)}返回7.95

减去 

签名{subtract(parameter1; parameter2)}
参量参数1:数值
参数2:数字值
描述减去参数2参数1
退货parameter2parameter1的区别
呼叫范例{subtract(8; 3)}返回5

乘 

签名{multiply(parameter1; parameter2)}
参量参数1:数值
参数2:数字值
描述parameter1parameter2相乘
退货参数1参数2的乘积
呼叫范例{multiply(2; 4)}返回8

划分 

签名{divide(parameter1; parameter2)}
参量参数1:数值
参数2:数字值
描述分歧参数2参数1
退货参数2参数1的除法
呼叫范例{divide(8; 2)}返回4

功率 

签名{power(parameter1; parameter2)}
参量参数1:数值
参数2:数字值
描述引发参数1到的功率参数2
退货参数1提升到的功率参数2
呼叫范例{power(2; 7)}返回128

平方根 

签名{squareRoot(parameter)}
参量参数:数值
描述计算参数的平方根
退货参数的平方根
呼叫范例{squareRoot(4)}返回2

绝对 

签名{绝对(参数)}
参量参数:数值
描述计算参数的绝对值
退货参数的绝对值
呼叫范例{absolute(-4)}返回4

省去日期。。。(可以自行参考官方文档日期功能 

示例-计算机会的月费 

用例 

用户希望通过将机会金额除以持续时间来计算机会到自定义字段的月租费用。

建立 

我们的机会模块具有一个名为“持续时间”的下拉字段,其值:(括号内的数据库值)6个月[6],1年[12],2年[24]。还有一个货币字段,称为“每月”。

工作流程 

转到工作流程模块并创建一个新的工作流程。设置基本选项,如下所示:

名称:如你所愿工作流程模块:机会
状态:有效运行:仅保存
运行:所有记录重复运行:已检查
130工作流程示例

我们不创建任何条件,因为我们希望工作流能够抓住所有机会。

现在,添加一个动作并从下拉列表中选择“计算字段”。

然后,添加机会中的两个字段作为参数。首先,选择商机数量(金额)并将其添加为参数(它将为{P0}),然后从数据类型下拉列表中选择“持续时间”和“原始值”选项并将其添加为参数二(将为{P1})。无需为此公式添加任何关系参数。

现在,为每月字段添加一个公式,并使用以下公式填充文本框:

{divide({P0}; {P1})}

因此,整个操作应如下所示:

范例CF已更新1

保存工作流程并创建一个新的机会:

示例CF orig2

如您所见,我们甚至没有将每月字段添加到EditView,因为我们不想强迫用户进行计算。保存机会并在DetailView上检查结果:

示例CF orig3

AOW计算字段由贡献 勤奋的技术与商业咨询有限公司

删除动作 

您可以通过点击 X 在操作的右上角。

131删除动作

删除字段和关系线 

您可以通过单击  在动作的左侧。

删除字段/关系线
滚动至顶部
扫码添加微信联系我们 关闭