如果你的表单有设置签核流程,就可以套用以下公式来传回签核相关的数据。
目前与签核有关的公式,主要有两大类:
1. 与整体签核流程有关
2. 与特定签核层次有关
更完整的签核公式使用说明与范例请参阅此页面。
关于签核公式重算请参阅这篇说明
公式 | 描述 |
---|---|
APPROVAL.COUNT() | 传回签核的总层次数。 |
APPROVAL.STATUS() | 传回签核的状态。
N: New,尚未开始签核或撤销签核 P: Processing,开始签核后等待签核完成 REJ: Rejected,有任何一阶拒绝签核 F: Finish,全部签核人都同意时,代表完成 |
APPROVAL.SUBMITTER() | 传回开始签核的用户E-mail。可以套用在用户字段。 |
APPROVAL.SUBMITTERNAME() | 传回开始签核的用户名称。 |
APPROVAL.SUBMITDATE([true]) | 传回开始签核的日期和时间。可以套用在日期字段上。True为选填参数,填入代表用UTC+0,没有则使用公司时区,详细说明参阅此章节。 |
APPROVAL.FINISHDATE([true]) | 传回签核结束的日期和时间。签核“结束”指的是全部签核人都同意或是有人拒绝签核,可以套用在日期字段上。True为选填参数,填入代表用UTC+0,没有则使用公司时区,详细说明参阅此章节。 |
公式 | 描述 |
---|---|
APPROVAL.CURRENTSTEPINDEX | 目前这一层次的索引值。从 0 开始,0 代表尚未开始签核,开始签核后会变成 1,代表第 1 阶。
每次完成一层次的签核时这个值都会加 1,直到总层次数为止。 当结束签核(全部层次都同意/或某一阶拒绝/或撤销签核)时也传回 0。 |
以下公式前面都要加上 APPROVAL.STEP([stepIndex]),代表用索引值指定某一层次,非单独使用的公式,是用于搭配使用的签核公式参数。
stepIndex 为选择性的参数,如果不填入参数,表示使用 APPROVAL.CURRENTSTEPINDEX 作为 stepIndex,代表目前这一层次,参数说明:
APPROVAL.STEP(-1) : 上一阶
APPROVAL.STEP() : 目前这一阶 (等同于 APPROVAL.STEP(APPROVAL.CURRENTSTEPINDEX))
APPROVAL.STEP(0) : 错误,不能这样用
APPROVAL.STEP(1) : 第一阶
APPROVAL.STEP(2) : 第二阶
公式 | 描述 |
---|---|
APPROVAL.STEP([stepIndex]).NAME() | 传回这一层次的名称。 |
APPROVAL.STEP([stepIndex]).STATUS() | 传回这一层次的状态。
N: New,这阶尚未同意或拒绝签核,处于签核中 F: Finish,如果这阶是单人,代表该签核人同意或拒绝签核;如果这阶是多人,代表已同意签核人数大于等于择办人数,或是有人拒绝签核 |
APPROVAL.STEP([stepIndex]).USERS() | 传回这一阶所有的签核人。范例值: 王小美|李晓明|彭大海。可以将此公式套用在用户多选字段(因为目前多选字段不支持套用公式,请先设置好公式,再点选多选设置)。 |
APPROVAL.STEP([stepIndex]).UNSIGNEDUSERS() | 传回这一阶未签核的人。
范例值:王小美|李晓明|彭大海。可以将此公式套用在用户多选字段(因为目前多选字段不支持套用公式,请先设置好公式,再点选多选设置)。 |
APPROVAL.STEP([stepIndex]).SIGNEDUSERS() | 传回这一阶已同意签核的人。
范例值: 王小美|李晓明|彭大海。可以将此公式套用在用户多选字段(因为目前多选字段不支持套用公式,请先设置好公式,再点选多选设置)。 |
APPROVAL.STEP([stepIndex]).ISMULTI() | 传回这一阶是否为多人签核。会回传 true 或 false。 |
APPROVAL.STEP([stepIndex]).THRESHOLD() | 传回这一阶的择办人数。如果这阶是单人签核或是没有设置择办人数,值为 -1。 |
APPROVAL.STEP([stepIndex]).SIGNEDCOUNT() | 传回这一阶已同意签核的人数。 |
以下公式中的[email]为选择性参数,可以使用以下两种方式代入参数,用来在多人签核时获取某个人的签核数据。
1. 邮箱字符串(需加上""),例如:APPROVAL.STEP([stepIndex]).RESP("example@ragic.com")
2. 直接使用 Email 字段或用户字段,例如:APPROVAL.STEP([stepIndex]).RESP(A2)
(注意:公式内的[email]参数仅可套用于参照 2021/07/13 后所创建的签核步骤)
公式 | 描述 |
---|---|
APPROVAL.STEP([stepIndex]).RESP([email]) | 传回这一层次的响应。
单人签核:不需要带 email 参数 N: Not yet,这阶尚未同意或拒绝签核,处于签核中。 A: Accepted,该签核人同意签核 A_D: Accept by deputy,该签核人的代理人同意签核 REJ: Rejected,该签核人拒绝签核 REJ_D: Reject by deputy,该签核人的代理人拒绝签核 多人签核: (1) 没有带 email 参数: N: Not yet,已同意签核人数小于择办人数 A: Accepted,已同意签核人数大于等于择办人数 REJ: Rejected,有人拒绝签核 (2) 有带 email 参数: unSigned: 该签核人尚未同意或拒绝签核 signed: 该签核人同意签核 signed_by_deputy: 经由该签核人的代理人同意签核 rejected: 该签核人拒绝签核 rejected_by_deputy: 经由该签核人的代理人拒绝签核 |
APPROVAL.STEP([stepIndex]).COMMENT([email]) | 传回这一阶的签核人在同意或拒绝签核时留下的理由。如果还没同意或拒绝签核,或是做了这两个动作但没有留下理由,回传空值。
单人签核:不需要带 email 参数,传回该签核人的理由 多人签核:一定要带 email 参数,获取某人的理由 |
APPROVAL.STEP([stepIndex]).SIG([email]) | 传回这一阶的签核人的电子签名。值为 base64 图片网址字符串,如果没有签名传回空值。可以将这公式套用在图片字段上。
单人签核:不需要带 email 参数,传回该签核人的电子签名 多人签核:一定要带 email 参数,传回该签核人的电子签名 |
APPROVAL.STEP([stepIndex]).SIGIMG([email], [width], [height]) | 传回这一阶的签核人的电子签名。类似APPROVAL.STEP([stepIndex]).SIG([email]),只是这公式的值为bbcode [image],width 与 height 为可选参数,设置图片的宽与高,如果没设置,默认宽为 300px 高为 150px。可以配合 bbcode 公式将结果呈现在字描述上。
注意: 1.如果要呈现单人签核而且长为 600px 宽为 300 px 的签名图,要写成 APPROVAL.STEP([stepIndex])SIGIMG(null, 600, 300),此处的 null 不需加引号。 2. 字段种类不能使用图片/签名字段,必须使用字符串字段(例如:自由输入)。 |
APPROVAL.STEP([stepIndex]).ACTIONDATE([email],[true]) | 传回这一阶签核人同意或拒绝的日期和时间。套用在日期字段。True为选填参数,填入代表用UTC+0,没有则使用公司时区,详细说明参阅此章节。
单人签核:不需要 email 参数,传回该签核人的同意或拒绝的日期和时间。 多人签核:没有带 email 参数时,传回有人拒绝或是有人同意签核而且达标(已同意签核人数大于择办人数)的日期和时间。 有带 email 参数时,传回该签核人同意或拒绝的日期和时间。 |
APPROVAL.STEP([stepIndex]).COMMENTDATE([email],[true]) | 传回这一阶的签核人在同意或拒绝签核时写下理由的日期和时间。如果还没同意或拒绝签核,或是做了这两个动作但没有留下理由,回传空值,可以将这公式套用在日期字段上。True为选填参数,填入代表用UTC+0,没有则使用公司时区,详细说明参阅此章节。
单人签核:不需要带 email 参数,传回该签核人写下理由的日期和时间。 多人签核:一定要带 email 参数,传回某人写下理由的日期和时间。 |
回传时间的签核公式:APPROVAL.SUBMITDATE([true]) 、 APPROVAL.FINISHDATE([true])、APPROVAL.STEP([stepIndex]).ACTIONDATE([email],[true])、APPROVAL.STEP([stepIndex]).COMMENTDATE([email],[true])
建议使用公式时加上 true 这个参数,同时在日期字段设置勾选“以浏览器时区显示”。
特别提醒,如果你的表单已经开始或完成了签核流程,后续在已经有日期数据的表单,去新增字段套用会回传时间的签核公式,并且勾选了以浏览器时区显示,可能会让显示的时间被加上/减去你所在的时区。
举例来说,如果你已经在 2023/08/01 12:00 先进行了签核,而此时的签核时间字段并未勾选以浏览器时间显示,保存的时间会以公司时区被保存。当你后续新增一个“新的签核时间”字段,并勾选了以浏览器时区显示,会导致签核公式在计算的时候,先算出了以公司时区做计算的值,接着又加上了以浏览器时区显示(若为 UTC+8)的值,此“新的签核时间”字段的时间会再被多加 8 小时,显示为 2023/08/01 20:00。
因此,当发现签核时间有上述的时区差异,撤销勾选该字段的以浏览器时区显示,让表单计算绕回到公司时区即可。
当你勾选或撤销勾选以浏览器时区显示的时候,系统会显示提醒,告知字段日期数据会被转换,因此请特别留意此设置,尽量不要在已经有日期数据的字段勾选或撤销勾选。