Variable - infoplus/docs GitHub Wiki

变量格式对比

  • InfoPlus有多处配置都会使用到变量,但格式有些不同。
  • 表单数据参考:FormData
  • 表单公式的使用:控件动态设置
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 当前表单的链接

User类型的属性

  • 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格式

Beanshell类型的格式示例

// 读取表单日期控件转换格式,实例名称使用 
// 实例名称配置:${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,待废弃
各表单字段和内部变量 同字段名 仅步骤模版提醒支持,合并提醒不支持
⚠️ **GitHub.com Fallback** ⚠️