如果你的表单有设置签核流程,就可以套用以下公式来传回签核相关的数据。
目前与签核有关的公式,主要有两大类:
公式 | 描述 |
---|---|
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,没有则使用公司时区。(在前端重算会用浏览器时区,后端重算会用公司时区) |
公式 | 描述 |
---|---|
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 参数,传回该签核人的数码签名 |
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 参数,传回某人写下理由的日期和时间 |
当你在数据库中输入数据时,数据会依据你所写的公式做计算,一旦你保存了你的数据,此值就会被保存并不会改变。
也就是说,即使你在设计模式下改变了你的公式,原本既已保存的数据也不会依据新的公式重新被计算。
会这样的原因是因为你先前根据旧公式所计算出来的数据还是有效的,不应该因为你更新了公式而自动更改已经保存的数据。
举个例子来说,如果你有一张计算税收的表单,因为最近税率涨了而你更改公式,但先前保存的税收数据还是应该要以旧的税率来计算没错。
但某些情况,你有可能会需要用最新的公式将旧的数据都重新算一遍。你可以在表单设计模式下,到你想要重新计算公式的字段公式中,下面有两个选项让你用新的公式将所有数据更新,或是让所有新的公式更新所有数据(如果你更新了不只一个公式)。
如果你是在设计模式下修改、新增公式,记得要先保存设计再单击公式重算喔!
如果你常常更改一个公式或是公式中的变量,你也可以考虑利用写程序来将你的公式每天重新计算。