首先恭喜题主,能问这个问题,说明您已经开始实现从伙伴云初学者到高阶者的阶段性跨越了,因为在伙伴云只有自动化工作流这一part才会用到函数~
言归正传,先回答您的问题“想把业绩实收按照时间放在人员异动表格里”。
小编试着理解下题主想要表达的意思,您是不是想实现“当某个销售在系统上记录了收款金额后,系统会自动记录收款时间在人员异动表格里”呢?
如果小编理解正确的话,那我们可以试着这么来设置。
01. 第一步:设置触发动作
进入伙伴云工作区后台,选择“自动化”-“创建自动化”,点击“触发器”,选择人员移动表格进行创建。
(注:演示过程中我用了品牌使用非收款单表,题主可以选择人员变动表)
填写工作流名称后,选择“触发方式”——“修改数据之后”。(*销售人员记录收款金额时,一般是通过“修改数据之后”完成的)
02. 第二步:设置触发条件
销售人员只有记录收款金额时,才需要自动更新当前时间,修改为其他状态时,是不需要记录的。所以,触发条件表达式为:AND({当前数据.收款金额-新值}!={当前数据.收款金额-原值}
(*注:该表达式不可直接复制使用,需要自行在表达式编辑框内点选下面推荐的“变量”(带有“{}”部分的为变量)。
03. 第三步:选择执行操作
选择“修改已有数据”,选择目标表格(注:演示过程中我用了品牌使用非收款单表,题主可以选择人员变动表)。
修改哪些数据,我们选择指定条件下的数据,书写上函数表达式,即缴费日期为现在的日期。
点击保存,我们就创建好了这个工作流了。创建后,工作流默认“开启”状态,就可以进行验证了。
话题延伸:为了让您更全面的了解伙伴云函数的应用,下面再科普下系统现有的函数公式吧~
一、操作符
伙伴云中常用的操作符大概有11种,可参与变量与常量之间的比较或计算。
分类 | 操作 | 说明 | 逻辑操作 | = | 等于 | 逻辑操作 | != | 不等于 | 逻辑操作 | > | 大于 | 逻辑操作 | < | 小于 | 逻辑操作 | >= | 大于等于 | 逻辑操作 | <= | 小于等于 | 数学操作 | + | 加 | 举一个销售场景中的栗子吧。
销售管理中通常会涉及到某一款产品的销售状态,通常会有两种状态:未付款、付款完成。这时,我们就用到了“销售状态”这个字段变量,以及“付款完成”这个选项值常量。
*注: 放在“{}”中的变量与常量,不可通过复制的方式插入,只可通过推荐的变量与常量进行选择。因为虽然看到的是变量或常量的文字,但每一个“{}”都对应了一个唯一的ID,只有通过选择添加的方式才能获取到对应的ID。
1、变量
即字段变量,当由不同的数据触发执行工作流时,可以在表达式中通过引入字段变量,来代表不同的数据的字段值。
可以通过输入左花括号“{”来引入变量,输入后我们会给出自动提示,按方向键“下”或鼠标点击进行选择,您还可以直接输入文字,我们还会根据文字自动搜索并推荐出您需要用到的变量。选择变量后,右花括号“}”会自动补齐。
例如:{当前数据.分数} 就是一个字段变量
不同的字段类型,对应的字段变量的结果类型不同:
字段类型 | 返回值类型 | 文本(单行/多行/带格式)、号码、条码 | 文本 text | 数值(数值/百分比)、金额、计算公式(结果为数字/百分比) | 数字 number | 日期和时间(仅日期/日期和时间)、计算公式(结果为仅日期/日期和时间) | 日期 datetime | 选项(单选项/多选项)、下拉菜单(单选项/多选项) | 选项 category | 工作区成员(一个成员/多个成员) | 用户 user | 关联其他表格(一条数据/多条数据) | 数据 item | 图片、附件 | 文件 file | 除字段变量外,还提供了如下变量:
变量 | 语法 | 数据类型 | 含义 | 指定表格 | {表格名称} | 表格 table | 当使用统计函数时,才可引入指定的表格变量,用于统计指定表格的数据。 | 当前表格 | {当前表格} | 表格 table | 用于引入当前触发工作流的表格变量,可用于统计函数。 | 当前数据 | {当前数据} | 数据 item | 由数据触发的工作流中才可引入的变量,通过此变量可引入该数据的所有字段的值。 | 当前操作人 | {当前操作人} | 用户 user | 由用户触发的工作流才可引入的变量,即通过定时到期触发的工作流不可引入。 | 目标表格 | {目标表格} | 表格 table | 用于引入对目标表格数据的筛选时用到的目标表格字段。 | 目标数据 | {目标数据} | 数据 item | 当工作流的后续操作要对指定表格修改数据时,每一条被操作的数据作为目标数据。 | 查找数据表格 | {查找数据表格} | 表格 table | 用于引入要查找数据的表格字段。 | 查找到的数据 | {查找到的数据} | 数据 item | 可在批量创建数据时引入找到的数据。 |
一般情况下,在数据变量下可通过“.”引入如下变量:
变量 | 语法 | 数据类型 | 含义 | 字段 | {数据.字段名} | 详见上表 | 该数据的所有字段值,根据字段类型的不同,会返回不同的数据类型。 | 创建时间 | {数据.创建时间} | 日期 datetime | 该数据的创建时间。 | 创建人 | {数据.创建人} | 用户 user | 该数据的创建人。 | 修改时间 | {数据.修改时间} | 日期 datetime | 该数据的修改时间。 | 修改人 | {数据.修改人} | 用户 user | 该数据的修改人。 |
当触发条件只选择了“修改数据”时,在数据变量下可通过“.”引入如下变量:
变量 | 语法 | 数据类型 | 含义 | 字段(原值) | {数据.字段名-原值} | 同字段 | 表示数据修改之前的原值,在字段变量下引入。 | 字段(新值) | {数据.字段名-新值} | 同字段 | 表示数据修改之后的新值,在字段变量下引入。 | 修改时间(上次) | {数据.修改时间-上次} | 日期 datetime | 表示数据上次的修改时间,在字段变量下引入。 | 修改时间(本次) | {数据.修改时间-本次} | 日期 datetime | 表示数据本次的修改时间,在字段变量下引入。 | 修改人(上次) | {数据.修改人-上次} | 用户 user | 表示数据上次的修改人,在字段变量下引入。 | 修改人(本次) | {数据.修改人-本次} | 用户 user | 表示数据本次的修改人,在字段变量下引入。 | 2、常量
在表达式与变量做比较或运算的,大多是常量。可使用的常量如下:
常量 | 语法 | 数据类型 | 含义 | 数字 | 2.34 | 数字number | 直接书写数字即可,用于计算,或为数字字段赋值。 | 文本 | ‘字符串’ | 文本text | 文本需用英文单引号扩起来,用于文本拼接,与文本字段比较,或为文本字段赋值。 | 备选项 | {C:表格名称.字段名称.备选项} | 选项category | 通过输入“{C:”来触发引入选项字段下的备选项,只可用于与所属选项字段进行比较,或为选项字段赋值。 | 用户 | {U:用户姓名} | 用户user | 通过输入“{U:”来触发引入工作区成员,可输入用户姓名直接搜索,用于与用户类型的字段变量进行比较,或为工作区成员字段赋值。 | 数据 | {I:表格名称/数据标题} | 数据item | 通过输入“{I:”来触发引入指定表格的指定数据,可输入表格名称或数据标题直接搜索,用于与关联了相同表格的关联字段的变量进行比较,或为关联字段赋值。 | 字段 | {I:表格名称/数据标题.字段名} | 同字段 | 在指定数据下,可引入该数据的所有字段值,根据字段类型的不同,会返回不同的数据类型。 | 文件 | {F:附件文件名} | 文件file | 可通过上传文件引入,为图片或附件字段赋值。 |
二、伙伴云表达式中支持的函数
了解了操作符,我们再来看下什么是表达式和函数。
1、什么是表达式?
在工作流中,用来描述触发工作流的条件、修改目标数据的条件、对目标数据的字段进行赋值的公式,统称为表达式。
表达式是工作流中实现复杂业务逻辑,满足高级计算、汇总需求最重要的部分,通过表达式您可以结合自己的业务,灵活配置出所需要的功能。
表达式的语法与 Excel 中的公式语法十分类似,函数的用法也很相近,相信会用 Excel 的您一定会很快上手的。
例如:IF({当前数据.分数} &= 60, &#39;及格&#39;, &#39;不及格&#39;)
2、函数类型
伙伴云支持56种高级函数,具体函数的说明和示例,可以参考下面的表格。
统计函数
函数 | 返回类型 | 说明 | 示例 | 结果 | COUNT (表格,[统计条件]) | number | 返回指定表格中满足条件的数据条数。统计条件中不可嵌套使用统计函数。 | COUNT({员工表},{员工表.性别}=[{C:男}]) | | SUM (数字字段,[统计条件]) | number | 返回指定表格中满足条件的数据,其指定数字字段值的总和。统计条件中不可嵌套使用统计函数。 | SUM({员工表.工资}) | | AVG (数字字段,[统计条件]) | number | 返回指定表格中满足条件的数据,其指定数字字段值的平均值。统计条件中不可嵌套使用统计函数。 | AVG({员工表.工资}) | | MIN (字段,[统计条件]) | number | 返回指定表格中满足条件的数据,其指定数字、日期、文本字段值的最小值。统计条件中不可嵌套使用统计函数。 | MIN({员工表.工资}) MIN({员工表.出生日期}) | | MAX (字段,[统计条件]) | number | 返回指定表格中满足条件的数据,其指定数字、日期、文本字段值的最大值。统计条件中不可嵌套使用统计函数。 | MAX({员工表.工资}) MAX({员工表.出生日期}) | | 逻辑函数
函数 | 返回类型 | 说明 | 示例 | 结果 | IF (条件,表达式1,表达式2) | | 如果条件为真,则执行表达式1,为假则执行表达式2。条件中不可嵌套使用IF函数。 | IF({员工表.年龄}&60,’退休’,’在职’) IF({员工表.年龄}&60,IF({员工表.性别}=[{C:女}],’退休’,’在职’),’在职’) | | AND (条件1,条件2,[条件3,…]) | boolean | 所有条件均为真,则返回真,否则返回假。 | AND(2=2,2<2) | false | OR (条件1,条件2,[条件3,…]) | boolean | 任意一个条件为真,则返回真,否则返回假。 | OR(2=2,2&3) | true | NOT (逻辑结果) | boolean | 对逻辑结果取反。 | NOT(2&3) | true | IN (变量,[变量1,变量2,…]) | boolean | 任意类型的变量或常量包含一组同类型变量或常量结果中的任意一个,则返回真。用于选项、用户、关联类型的字段变量与常量的比较。 | IN(2,[2,3,4]) IN([2,5],[2,3,4]) | TRUE TRUE | LIKE (文本,[文本1,文本2,…]) | boolean | 文本类型的变量或常量包含一组文本类型变量或常量结果中的任意一个,则返回真。逻辑操作LIKE的函数模式。 | LIKE(‘伙伴云’,[‘伙伴’,’云’]) | true | ISEMPTY (变量) | boolean | 变量为空或未填写,则返回真。 | ISEMPTY({员工表.电话}) | | 数学函数
函数 | 返回类型 | 说明 | 示例 | 结果 | ABS (数值) | number | 返回数值的绝对值。 | ABS(-2) | 2 | ROUND (数值,[小数位精确度]) | number | 根据设置的小数位精确度,返回对数值四舍五入后的值。小数位精确度默认为0,即只保留整数。 | ROUND(3.44,1) ROUND(3.5) | 3.4 4 | INT (数值) | number | 舍掉小数位后,返回整数部分。 | INT(3.44) | 3 | MOD (数值,除数) | number | 用数值除以除数后,返回整除后的余数。 | MOD(10,3) | 1 | POWER (数值,幂次方) | number | 用于计算指定数值的指定幂次方。数值和幂次方均为数值类型的变量或常量,幂次方为大于1的数为乘方,为小于1(1/N)的数为开方。 | POWER(5, 2) POWER(25, 1/2) | 25 5 | 日期函数
函数 | 返回类型 | 说明 | 示例 | 结果 | TODAY() | datetime | 返回当天日期。 | TODAY() | 42721 | NOW() | datetime | 返回当天日期+时间。 | NOW() | 42721.62670138889 | DATEADD (日期,数值,[单位]) | datetime | 对日期加减按照单位加减。单位默认为日,可选单位:年Y、月M、日D、时H、分I、秒S。 | DATEADD(‘2016-12-04’,3)
DATEADD(‘2016-12-04 20:00:00’,3,’H’) | 2016-12-07 2016-12-04 23:00:00 | DATEDIF (日期1,日期2,[单位]) | number | 根据指定的单位,返回日期2减去日期1的差值。当日期2小于日期1时,差值为负值。单位默认为日,可选单位:年Y、月M、日D、时H、分I、秒S。 | DATEDIF(‘2016-12-01’,’2016-12-04’)
DATEDIF(‘2016-12-04 20:00:00’,’2016-12-05 20:00:00’,’H’) | 3 24 | DATEFORMAT (日期,格式) | text | 将日期转为指定格式返回。格式包括: 年:YYYY(=2016)、YY(=16) 月:MM(=01~12) 日:DD(=01~31) 时:HH(=00~23) 分:Mi(=00~59) 秒:SS(=00~59) 周几:D(=1~7,代表周日~周六) 每月中第几周:W(=1~5,从每月第1天开始算第1周) 每年中第几周:WW(=1~53,从每年第1天开始算第1周) | DATEFORMAT(‘2016-12-04’,’YY年MM月DD日 星期WD’) | 16年12月04日星期日 | YEAR (日期) | number | 返回指定日期中的年。 | YEAR(‘2016-12-04’) | 2016 | MONTH (日期) | number | 返回指定日期中的月。 | MONTH(‘2016-12-04’) | 12 | DAY (日期) | number | 返回指定日期中的日。 | DAY(‘2016-12-04’) | 4 | HOUR (日期) | number | 返回指定日期中的小时。 | HOUR(‘2016-12-04 20:30:56’) | 20 | MINUTE (日期) | number | 返回指定日期中的分钟。 | MINUTE(‘2016-12-04 20:30:56’) | 30 | SECOND (日期) | number | 返回指定日期中的秒。 | SECOND(‘2016-12-04 20:30:56’) | 56 | WEEKNUM (日期) | number | 返回指定日期为第几周,从每年第1天开始算第1周。 | WEEKNUM(‘2016-12-04’) | 50 | WEEKDAY (日期) | number | 返回指定日期为星期几。返回值为1~7,代表周日~周六。 | WEEKDAY(‘2016-12-04’) | 1 | 文本函数
函数 | 返回类型 | 说明 | 示例 | 结果 | CONCAT (文本1,文本2,[文本3,…]) | text | 可用于连接多个任意类型的文本、日期、数字变量或常量。 | CONCAT({总价}/10000, ‘万元’) | | TEXT (变量) | text | 将变量转为文本。 | TEXT({性别}) | 男 | VALUE (文本) | number | 将文本转为数字。 | VALUE(‘23元’) | 23 | LEN (文本) | number | 返回文本的长度,中文、英文都算1个字符。 | LEN(‘伙伴云huoban’) | 9 | SEARCH (关键字,文本,[搜索开始位置]) | number | 在指定文本中查找关键字,返回第一次出现关键字的字符位置,文本的第一个字记为1。未找到,返回0。搜索开始位置,表示从文本的第几个字符开始搜索,默认为1。 | SEARCH(‘伙伴’,’伙伴云伙伴云’) SEARCH(‘伙伴’,’伙伴云伙伴云’,3) | 1 4 | REPLACE (原文本,替换开始位置,替换字符数,新文本) | text | 在原文本中,从替换位置开始,往后数指定的替换字符数,将这段文本替换为新文本。 | REPLACE(‘伙伴云’,1,2,’huoban’) | huoban云 | REPT (文本,重复次数) | text | 将文本重复指定次数。 | REPT(‘伙伴’,2) | 伙伴伙伴 | PAD (原文本,长度,填充用的文本,填充位置) | text | 将原文本填充到指定长度,如果文本长度大于设置的长度,则不做任何操作。 | PAD(‘1’,4,’0’,’LEFT’) | 1 | TRIM (文本) | text | 删除文本首尾的空格。 | TRIM(‘ 伙伴云 ‘) | 伙伴云 | LEFT (文本,截取字符数) | text | 从文本左侧开始,返回指定字符数的文字。 | LEFT(‘伙伴云’,2) | 伙伴 | RIGHT (文本,截取字符数) | text | 从文本右侧开始,返回指定字符数的文字。 | RIGHT(‘伙伴云’,1) | 云 | MID (文本,开始位置,截取字符数) | text | 从文本指定位置开始,返回指定字符数的文字。 | MID(‘伙伴云’,2,1) | 伴 | 数组函数
函数 | 返回类型 | 说明 | 示例 | 结果 | MERGE (数组1,数组2,…) | array | 用于多选字段,将多个多选结果去重拼接到一起。数组使用方括号“[值1,值2,…]”表示,选项、用户、关联字段,单选和多选的结果均为数组。 | MERGE([{C:选项一},{C:选项二}],[{C:选项三}],{目标数据.选项字段}) 如果目标数据的“选项字段”选择的是“选项四” | [{C:选项一},{C:选项二},{C:选项三},{C:选项四}] | REMOVE (原数组,元素1,元素2,…) | array | 从多选的选项、成员、关联中移除元素,元素可以是字段变量或具体的值。 | REMOVE({目标数据.负责人},{当前数据.成员},{U:张三}) | | ARRLEN (数组) | number | 返回数组中的元素个数,数组可以是多选字段或图片/附件。 | ARRLEN({目标数据.参与人}) | 10 | 特殊函数
函数 | 返回类型 | 说明 | 示例 | 结果 | EMPTY () | null | 返回空值 | EMPTY() | | INCREMENT ([重置方式]) | number | 基于表格,返回自增编号,编号从1开始,每次执行加1。工作流的每个后续动作中只能使用一次自增函数。 重置方式,用于按照指定的周期,将增长的编号重新设置为1,可选方式包括: -不重置:A(默认值,从1开始自增,不会重置) -按日重置:D(每天自增编号重置为1) -按月重置:M(每月第一天自增编号重置为1) -按年重置:Y(每年第一天自增编号重置为1) | INCREMENT(‘A’) | 1 | OPTION (选项字段,变量) | category | 根据变量获取指定选项字段的备选项。 | OPTION({目标表格.性别},{当前数据.性别}) | | ITEM (表格,条件,[排序],[返回字段]) | item/字段的值 | 根据条件和排序获取指定表格中的一条数据,还可指定返回该数据哪个字段的值。无需条件时请写两个单引号’’。排序默认按照创建时间倒排。 | ITEM({当前表格},{当前表格.销售状态}={C:已签约},{当前表格.销售额-倒序},{当前表格.销售人员}} | 返回销售状态为已签约的销售额最大的一条数据的销售人员字段的值 | ITEMS (表格,条件,[排序],[返回条数]) | array | 根据条件和排序获取指定表格中的全部数据(最多50条)或指定条数的数据。 | ITEMS({当前表格},{当前表格.销售状态}={C:已签约},{当前表格.创建时间-倒序}} | 返回销售状态为已签约的最新发布的50条数据 | FIELDS (字段,条件,[排序],[返回条数]) | array | 根据条件和排序获取指定表格中的全部数据(最多50条)或指定条数的数据的指定字段值的集合。 | FIELDS({当前表格.负责人},{当前表格.销售状态}={C:已签约},{当前表格.创建时间-倒序}} | 返返回销售状态为已签约的最新发布的50条数据中负责人的集合 | GETUSER (用户,资料项) | text | 返回用户的指定资料项:name、phone、email | GETUSER({U:张三},‘phone’) | 18612345678 | GETURL (图片附件字段) | text | 返回图片/附件的URL链接,链接为标准HTML的A链接,链接名为文件名,多个图片/附件用顿号连接 | GETURL(附件) | | DISTANCE (位置1,位置2) | number | 返回两个位置间的直线距离,单位米,可用位置字段,或输入{L}选择一个指定地点。 | DISTANCE({位置1},{L:北京天安门}) | 23000 | 以上就是伙伴云表达式中关于函数的具体说明了,希望我的回答能够帮助到您。
如果嗨想要学习更多提升课程,也可以到伙伴云官网-帮助中心进行自助查看哟~
伙伴云 |