-
Notifications
You must be signed in to change notification settings - Fork 9
Variable
walker6253 edited this page Sep 30, 2025
·
15 revisions
| 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_TIME | 当前时间(适用于time控件)版本>=20250801 |
| _VAR_NOW_YEAR | 当前时间:年 |
| _VAR_NOW_MONTH | 当前时间:月 |
| _VAR_NOW_DAY | 当前时间:日 |
| _VAR_RELEASE | 当前实例的是否时正式,ture或者false |
| _VAR_URL | 当前表单的链接 |
- Type说明:
- 键值对:表示该属性存在 _Code/_Name 对应的属性,可对Code等键值对类型的字段赋值
- 数据源:表示该属性存在 _Codes/_Names 对应属性,且内容是数组(回车分割的字符串),可用于数据源。
| Var | Type | Explain |
|---|---|---|
| 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,待废弃 |
| 各表单字段和内部变量 | 同字段名 | 仅步骤模版提醒支持,合并提醒不支持 |