设计手册
遇到问题了吗?不用担心,答案都在这。
全站搜索

签核公式

如果你的表单有设置签核流程,就可以套用以下公式来传回签核相关的数据。

目前与签核有关的公式,主要有两大类:

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。

因此,当发现签核时间有上述的时区差异,撤销勾选该字段的以浏览器时区显示,让表单计算绕回到公司时区即可。

当你勾选或撤销勾选以浏览器时区显示的时候,系统会显示提醒,告知字段日期数据会被转换,因此请特别留意此设置,尽量不要在已经有日期数据的字段勾选或撤销勾选。

回最上面 目录

马上登记
免费试用 Ragic!

用 Google 帐号登记

立即科技 Ragic, Inc.
02-7728-8692
info@ragic.com
台北市中正区南昌路二段81号9楼