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

签核公式

签核字段的公式

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

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

1. 与整体签核流程有关

公式 描述
APPROVAL.COUNT() 传回签核的总层次数
APPROVAL.STATUS() 传回签核的状态。

N: New,尚未开始签核或撤销签核

P: Processing,开始签核后等待签核完成

REJ: Rejected,有任何一阶拒绝签核

F: Finish,全部签核人都同意时,代表完成

APPROVAL.SUBMITDATE([true]) 传回开始签核的日期和时间,可以套用在日期字段上。True为选填代表用UTC+0,没有则使用公司时区。(在前端重算会用浏览器时区,后端重算会用公司时区)
APPROVAL.SUBMITTER() 传回开始签核的用户E-mail,可以套用在用户字段。
APPROVAL.SUBMITTERNAME() 传回开始签核的用户名称。
APPROVAL.FINISHDATE([true]) 传回签核结束的日期和时间。签核“结束”指的是全部签核人都同意或是有人拒绝签核,可以套用在日期字段上。True为选填代表用UTC+0,没有则使用公司时区。(在前端重算会用浏览器时区,后端重算会用公司时区)

2. 与特定签核层次有关

公式 描述
APPROVAL.CURRENTSTEPINDEX 下一层次的索引值。从 0 开始,0 代表尚未开始签核,开始签核后会变成 1,代表第 1 阶。每次完成一层次的签核时这个值都会加 1,直到总层次数为止。当结束签核(全部层次都同意/或某一阶拒绝/或撤销签核)时也传回 0。
APPROVAL.STEP([stepIndex]) 用索引值指定某一层次。以下的公式前面都要加上 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]).RESP([email]) 传回这一层次的响应。email 为选择性的参数,可以是邮箱字符串或是用户字段,用来在多人签核时取得某个人的响应。

单人签核:

(不需要带 email 参数)

N: Not yet,这阶尚未同意或拒绝签核,处于签核中。

A: Accepted,该签核人同意签核

A_D: Accept by deputy,该签核人的代理人同意签核

REJ: Rejected,该签核人拒绝签核

REJ_D: Reject by deputy,该签核人的代理人拒绝签核

多人签核:

没有带 email 参数:

N: Not yet,已同意签核人数小于择办人数

A: Accepted,已同意签核人数大于等于择办人数

REJ: Rejected,有人拒绝签核

有带 email 参数:

unSigned: 该签核人尚未同意或拒绝签核

signed: 该签核人同意签核

signed_by_deputy: 经由该签核人的代理人同意签核

rejected: 该签核人拒绝签核

rejected_by_deputy: 经由该签核人的代理人拒绝签核

APPROVAL.STEP([stepIndex]).ISMULTI() 传回这一阶是否为多人签核的 boolean 值。 值为 true 或 false 两种。
APPROVAL.STEP([stepIndex]).THRESHOLD() 传回这一阶的择办人数。如果这阶是单人签核或是没有设置择办人数,值为 -1。
APPROVAL.STEP([stepIndex]).USERS() 传回这一阶所有的签核人。范例值: 王小美|李晓明|彭大海。可以将此公式套用在用户多选字段(因为目前多选字段不支持套用公式,所以要自己手动设置 f 属性)。
APPROVAL.STEP([stepIndex]).ACTIONDATE([email],[true]) 传回这一阶签核人同意或拒绝的日期和时间,套用在日期字段。True为选填代表用UTC+0,没有则使用公司时区。 (跟 NOWTZ 与 TODAYTZ 相同特性,在前端重算会用浏览器时区,后端重算会用公司时区)

email 为选择性的参数,可以是邮箱字符串或是用户字段,用来在多人签核时取得某个人的同意或拒绝的日期和时间。

单人签核:

(不需要 email 参数)

传回该签核人的同意或拒绝的日期和时间。

多人签核:

没有带 email 参数时,传回有人拒绝或是有人同意签核而且达标(已同意签核人数大于择办人数)的日期和时间。

有带 email 参数时,传回该签核人同意或拒绝的日期和时间。

(注意:公式内的[email]参数仅可套用于参照2021/07/13后所创建的签核步骤)

APPROVAL.STEP([stepIndex]).UNSIGNEDUSERS() 传回这一阶未签核的人。

范例值:王小美|李晓明|彭大海。可以将此公式套用在用户多选字段(因为目前多选字段不支持套用公式,所以要自己手动设置 f 属性)。

APPROVAL.STEP([stepIndex]).SIGNEDUSERS() 传回这一阶已同意签核的人。

范例值: 王小美|李晓明|彭大海。可以将此公式套用在用户多选字段(因为目前多选字段不支持套用公式,所以要自己手动设置 f 属性)。

APPROVAL.STEP([stepIndex]).SIGNEDCOUNT() 传回这一阶已同意签核的人数。
APPROVAL.STEP([stepIndex]).SIG([email]) 传回这一阶的签核人的数码签名,值为 base64 图片网址字符串,如果没有签名传回空值。可以将这公式套用在图片字段上。email 为选择性的参数,可以是邮箱字符串或是用户字段,用来在多人签核时取得某个人的数码签名。请注意此公式的[email]参数需加上" "引号。

单人签核:

(不需要带 email 参数)

传回该签核人的数码签名

多人签核:

一定要带 email 参数,传回该签核人的数码签名

APPROVAL.STEP([stepIndex]).SIGIMG([email], [width], [height]) 传回这一阶的签核人的数码签名,类似APPROVAL.STEP([stepIndex]).SIG([email]),只是这公式的值为bbcode [image],width 与 height 为可选参数,设置图片的宽与高,如果没设置,默认宽为 300px 高为 150px。可以配合 bbcode 公式将结果呈现在字描述上。请注意此公式的[email]参数需加上" "引号。如果要呈现单人签核而且长为 600px 宽为 300 px 的签名图,要写成 APPROVAL.STEP([stepIndex])SIGIMG(null, 600, 300),此处的 null 不需加引号
APPROVAL.STEP([stepIndex]).COMMENT([email]) 传回这一阶的签核人在同意或拒绝签核时留下的理由。如果还没同意或拒绝签核,或是做了这两个动作但没有留下理由,回传空值。

单人签核:

(不需要带 email 参数)

传回该签核人的理由

多人签核:

一定要带 email 参数,取得某人的理由

APPROVAL.STEP([stepIndex]).COMMENTDATE([email],[true]) 传回这一阶的签核人在同意或拒绝签核时写下理由的日期和时间。如果还没同意或拒绝签核,或是做了这两个动作但没有留下理由,回传空值,可以将这公式套用在日期字段上。True为选填代表用UTC+0,没有则使用公司时区。

单人签核:

(不需要带 email 参数)

传回该签核人写下理由的日期和时间。

多人签核:

一定要带 email 参数,传回某人写下理由的日期和时间

公式重算

关于公式重算请参阅这篇说明

签核公式的时区问题

特别提醒,如果你的表单已经开始或完成了签核流程,后续在已经有日期数据的表单,去新增字段套用会回传时间的签核公式,例如:APPROVAL.SUBMITDATE([true]) 或是 APPROVAL.STEP([stepIndex]).ACTIONDATE([email],[true]) 等公式,并且勾选了以浏览器时区显示,可能会让显示的时间被加上/减去你所在的时区。

举例来说,如果你已经在 2023/08/01 12:00 先进行了签核,而此时的签核时间字段并未勾选以浏览器时间显示,保存的时间会以公司时区被保存。当你后续新增一个“新的签核时间”字段,并勾选了以浏览器时区显示,会导致签核公式在计算的时候,先算出了以公司时区做计算的值,接着又加上了以浏览器时区显示(若为 UTC+8)的值,此“新的签核时间”字段的时间会再被多加 8 小时,显示为 2023/08/01 20:00。

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

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

回最上面 目录

马上登记
免费试用 Ragic!

用 Google 帐号登记

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