Format |
表单引擎 |
表单公式 |
Beanshell |
工作流引擎 |
Freemarker |
ExportAPI |
场景举例 |
${变量名} |
Yes |
? |
No |
Yes |
Yes |
Yes |
数据源/导出Word |
${变量名/前/后缀/默认值} |
Yes |
No |
No |
No |
No |
No |
实例名/Tag |
${变量名.属性} |
No |
No |
No |
No |
Yes |
No |
Freemarker通知 |
$变量名 |
No |
Yes |
No |
No |
No |
No |
公式样式 |
$变量名.属性 |
No |
Yes |
No |
No |
No |
No |
公式样式 |
${"变量名"} |
No |
No |
Yes |
No |
No |
No |
工作流脚本 |
Var |
Explain |
_VAR_ACTION_ACCOUNT |
当前办理用户的账号 |
_VAR_ACTION_ACCOUNT_FRIENDLY |
当前办理用户友好的帐号(对于openid主体),202207新增 |
_VAR_ACTION_REALNAME |
当前办理用户名字 |
_VAR_ACTION_ORGANIZE |
当前办理用户的部门,如有多个不保障顺序 |
_VAR_ACTION_ORGANIZES |
当前办理用户的部门列表,可作Datasource |
_VAR_ACTION_INDEP_ORGANIZE |
当前办理用户的独立部门,多个不保障顺序 |
_VAR_ACTION_INDEP_ORGANIZES |
当前办理用户独立部门列表,可作Datasource |
_VAR_ACTION_USERCODES |
当前办理用户的学工号列表 |
_VAR_EXECUTE_ORGANIZE |
当前办理用户在该步骤有权限的岗位对应的部门 |
_VAR_EXECUTE_ORGANIZES |
当前办理用户在该步骤有权限的岗位对应的部门列表,可作Datasource |
_VAR_EXECUTE_INDEP_ORGANIZES |
同上,但是是其独立部门列表 |
_VAR_EXECUTE_POSITIONS |
当前用户在该步骤有权限的身份,符合UserFilter格式 |
_VAR_EXECUTE_USERCODES |
当前用户在该步骤有权限的身份编号列表,202207新增 |
_VAR_POSITIONS |
当前用户的身份,符合UserFilter格式 |
_VAR_OWNER_ACCOUNT |
实例所有者的账号 |
_VAR_ACTION_ACCOUNT_FRIENDLY |
实例所有者友好的帐号(对于openid主体),202207新增 |
_VAR_OWNER_REALNAME |
实例所有者的姓名 |
_VAR_OWNER_ORGANIZES |
实例所有者部门列表 |
_VAR_OWNER_USERCODES |
实例所有者学工号列表 |
_VAR_PARTICIPANTS |
实例的参与人列表 |
_VAR_ENTRY_NUMBER |
当前流程实例的流水号 |
_VAR_STEP_CODE |
当前步骤代码 |
_VAR_ADDR |
当前用户IP地址 |
_VAR_NOW |
当前时间 |
_VAR_NOW_YEAR |
当前时间:年 |
_VAR_NOW_MONTH |
当前时间:月 |
_VAR_NOW_DAY |
当前时间:日 |
_VAR_RELEASE |
当前实例的是否时正式,ture或者false |
_VAR_URL |
当前表单的链接 |
- Type说明:
- 键值对:表示该属性存在 _Code/_Name 对应的属性,可对Code等键值对类型的字段赋值
- 数据源:表示该属性存在 _Codes/_Names 对应属性,且内容是数组(回车分割的字符串),可用于数据源。
Var |
Type |
Explain |
email |
string |
邮箱 |
phone |
string |
手机号 |
userCode |
string |
学工号(所有三元组中索引最高的) |
userCodes |
数据源 |
学工号列表(所有三元组) |
userCodesFiltered |
数据源 |
学工号列表(UserFilter过滤后的三元组) |
organizeCode |
string |
所在部门代码(所有三元组中索引最高的) |
organizeName |
string |
所在部门名称(与organizeCode对应) |
organize |
数据源 |
所在部门列表(所有三元组) |
organizeFiltered |
数据源 |
所在部门列表(UserFilter过滤后的三元组) |
indepOrganize |
键值对/数据源 |
所在独立部门/列表(所有三元组中索引最高的) |
indepOrganizeFiltered |
数据源 |
所在独立部门/列表(UserFilter过滤后的三元组) |
positions |
string |
用户完整三元组,UserFilters格式 |
formalPositions |
string |
用户身份三元组,UserFilters格式 |
// 读取表单日期控件转换格式,实例名称使用
// 实例名称配置:${fieldFZ}${fieldXingMing}到${fieldChuFangGuoJia}因公出国(境)
long t=${"fieldChuGuoKaiShiRiQi"};
if( t > 0 ) {
String rq=new java.text.SimpleDateFormat("yyyy年MM月dd日").format(new java.util.Date(t * 1000));
$.put("fieldFZ",rq);
}
// 报错1
error.report("WTF");
// 报错2
String rest=${"fieldName"}; // 获取表单值
String info="信息不能为空";
if(rest.equals("")){
error.report(info);
}
// for循环重复节
List results = ${"fieldSZYXYJ"};
for(String result : results) {
if (result.equals("1")) {
return "approve";
}
}
return "reject";
// 协议判断 是否已审核
return "1".equals($${"fieldMyDepartmentApprove"}) ? "yes" : "no";
// 判断是否全部通过
int passedCount = 0;
Collection results = ${"fieldMyDepartmentApprove"};
for (Object r : results) {
if ("1".equals(r)) passedCount++;
}
int size = results.size();
if (passedCount == size) return "all";
return "some";
- 以下变量仅支持freemarker语法,变量替换方式仅支持FormData和内部变量
Var |
Type |
Explain |
URI_TASK_CENTER |
URL |
办事大厅URL,来自租户配置 |
user |
User |
用户,来自用户表 |
user.trueName |
String |
用户:姓名 |
user.tenantUserId |
String |
用户:账号 |
user.openid |
String |
用户:openid,可为空 |
user.userName |
String |
用户:用户名,可为空 |
user.email |
String |
用户:邮箱,可为空 |
user.phone |
String |
用户:手机,可为空 |
tasks |
List
|
待办任务数组 |
tasks[].url |
URL |
待办任务办理地址 |
tasks[].name |
URL |
待办步骤名 |
tasks[].app |
App |
待办任务所属应用 |
tasks[].process |
Process |
待办任务所输流水 |
tasks[].instanceName |
String |
同 process.name,待废弃 |
各表单字段和内部变量 |
同字段名 |
仅步骤模版提醒支持,合并提醒不支持 |