2.1.4.6 Hash变量
{menuitem}


  • 什么是Hash变量

  • 如何使用

    • 可用范围

    • Hash变量可被用于:
      • 表单设计器
      • 列表设计器
      • 用户界面设计器
      • 流程设计器中的活动名称
      • 插件的属性配置中
      • 外部表单URL中(当活动匹配到外部表单时)
    • 快捷方式

      • 在开发配置页面,且鼠标焦点在可填写区域时,使用 Ctrl+Shift+# 可调用所有Hash变量
  • 嵌套使用

    • Hash变量允许被嵌套一次使用
      • 格式
        #prefix.{prefix.variableKey}#
      • 样例
        #user.{variable.username}.firstName#,#form.tableChild.field1{form.tableParent.childId}#,#date.{envVariable.dateFormat}#
  • 返回值特别处理

    • 有时需要在脚本中使用hash变量,其返回值可能导致脚本错误,因此,我们可以在hash变量结束符“#”前使用“?”对返回值进行处理
    • 兼容多种脚本时使用“;”分隔
      • 样例
        #envVariable.script?java#,#envVariable.script?xml;json#
      • 支持类型
        • regex
        • json
        • javascript
        • html
        • xml
        • java
        • sql
        • url
  • Hash变量清单

    • 当前用户

      名称 描述
      前缀 currentUser
      说明 获取当前登录用户相关信息
      属性 用户
      • #currentUser.id#
      • #currentUser.username#
      • #currentUser.firstName#
      • #currentUser.lastName#
      • #currentUser.email#
      • #currentUser.active#
      • #currentUser.timeZone#

      组织
      • #currentUser.organization.id#
      • #currentUser.organization.name#
      • #currentUser.organization.description#

      部门
      • #currentUser.department.id#
      • #currentUser.department.name#
      • #currentUser.department.description#
      • #currentUser.department.treeStructure#

      岗级
      • #currentUser.grade.id#
      • #currentUser.grade.name#
      • #currentUser.grade.description#
      • #currentUser.grade.organizationId#

      汇报对象(HOD)
      • #currentUser.hod.username#
      • #currentUser.hod.firstName#
      • #currentUser.hod.lastName#
      • #currentUser.hod.email#
      • #currentUser.hod.active#
      • #currentUser.hod.timeZone#

      用户组
      • #currentUser.groups.id#
      • #currentUser.groups.name#

      员工信息
      • #currentUser.employee.code#
      • #currentUser.employee.jobTitle#
      • #currentUser.employee.isHod#

      部门负责人(HOD)
      • #currentUser.department.hod.username#
      • #currentUser.department.hod.firstName#
      • #currentUser.department.hod.lastName#
      • #currentUser.department.hod.email#
      • #currentUser.department.hod.active#
      • #currentUser.department.hod.timeZone#
      适用范围 应用内所有组件
    • 用户

      名称 描述
      前缀 user
      说明 根据指定用户名获取用户信息
      属性
      • #user.username.id#
      • #user.username.username#
      • #user.username.firstName#
      • #user.username.lastName#
      • #user.username.email#
      • #user.username.active#
      • #user.username.timeZone#
      适用范围 应用内所有组件
      样例
      • #user.admin.email# - 用户admin的邮箱地址
      • #user.cat.firstName# - 用户cat的名字
      • #user.{variable.user}.firstName# - Hash变量嵌套使用
    • 日期

      名称 描述
      前缀 date
      说明 根据指定的格式显示日期和时间
      显示用户设置的时区时间,如未设置,按服务器时间显示

      属性
      • #date.dateFormat#
      • #date.dateUnit[+-]integerValue.dateFormat#
        • dateFormat :Java日期格式。例如:yyyy-MM-dd 格式为 2011-06-01
        • [+]或[-]:分别代表对当前时间加减,即当前时间后或前
        • dateUnit:加减的单位,支持年、月、日
          • YEAR
          • MONTH
          • DAY
        • integerValue:整数

      适用范围 应用内所有组件
      样例 #date.h:mm a# - 8:11 下午
      #date.EEE,d MMM yyyy h:mm:ss a# - 星期六,10 十月 2015 8:11:51 下午
      #date.DAY+7.EEE,d MMM yyyy h:mm:ss a# - 当前日期加7天 - 星期六,17 十月 2015 8:11:51 下午
      #date.DAY-1.EEE,d MMM yyyy h:mm:ss a# - 当前日期减1天 - 星期五,9 十月 2015 8:11:51 下午
    • 环境变量

      名称 描述
      前缀 envVariable
      说明 获取当前应用 环境变量 的值
      属性
      • #envVariable.keyName#
      适用范围 当前应用内的任何地方
      样例 #envVariable.smtpServer# - 获取环境smtpServer的值
      #envVariable.smtpPort# - 获取环境smtpPort的值
    • 表单数据

      名称 描述
      前缀 form
      说明 获取当前应用 环境变量 的值
      属性
      • #form.tableName.fieldId#
      • #form.tableName.fieldId[recordId]#
      适用范围 表单
      流程工具
      流程设计
      样例 #form.order.orderNo# - 获取(数据表名为order)表单的orderNo字段值 (适用于流程中的表单,或表单提交后的工具内)
      #form.order.orderNo[SO-001]# - 获取(数据表名为order)表单记录中id值为“SO-001”的orderNo字段值
      #form.order.orderNo[{variable.SOID}]# - 获取(数据表名为order)表单记录中,以工作流变量SOID值为id的orderNo字段值
    • 语言国际化

      名称 描述
      前缀 i18n
      说明 支持应用级的多语言
      属性
      • #i18n.keyName#
      适用范围 应用内所有组件
      样例 参见 2.1.8 多语言设置

      工作流变量

      名称 描述
      前缀 variable
      说明 获取流程中工作流变量的值
      属性
      • #variable.variableName#
      适用范围 与流程相关的组件
      1. 活动名称
      2. 流程表单
      3. 流程工具
      样例
      • #variable.approvalStatus# - 工作流变量approvalStatus的值
    • 工作流任务

      名称 描述
      前缀 assignment
      说明 获取流程当前活动相关的信息
      属性
      • #assignment.processId#
      • #assignment.processDefId#
      • #assignment.processName#
      • #assignment.processVersion#
      • #assignment.processRequesterId#
      • #assignment.description#
      • #assignment.activityId#
      • #assignment.activityName#
      • #assignment.activityDefId#
      • #assignment.assigneeId#
      适用范围 与流程相关的元素内,例如:
      1. 活动名称中
      2. 与流程匹配的表单内
      3. 已与流程工具节点匹配的工具插件,例如邮件发送工具
    • 执行者

      名称 描述
      前缀 performer
      说明 获取流程执行者的相关信息
      属性
      • #performer.activityDefId.id#
      • #performer.activityDefId.username#
      • #performer.activityDefId.firstName#
      • #performer.activityDefId.lastName#
      • #performer.activityDefId.email#
      • #performer.activityDefId.active#
      • #performer.activityDefId.timeZone#
      适用范围 流程相关的:
      1. 活动名称
      2. 表单
      3. 工具
        • 在应用管理流程页面的匹配活动到表单标签页中找到activityDefId
        • 活动必须已被执行


      样例
      • #performer.runProcess.firstName#
      • #performer.submitLeave.firstName#
    • 请求参数

      名称 描述
      前缀 requestParam
      说明 获取URL中的参数值
      属性
      • #requestParam.parameterName# - parameterName根据需要填写
      • #requestParam.appId# - 获取当前应用ID
      • #requestParam.userviewId# - 获取当前用户界面ID
      • #requestParam.menuId# - 获取当菜单ID
      适用范围 应用内所有组件
      样例
      • #requestParam.id# - 获取URL中参数id的值
      • #requestParam.d-7373322-fn_accountId# - 获取URL中参数d-7373322-fn_accountId的值


      HttpServlet

      名称 描述
      前缀 request
      说明 获取当前HttpServletRequest对象的值
      属性
      • #request.characterEncoding#
      • #request.contextPath#
      • #request.header.NAME#
      • #request.locale#
      • #request.method#
      • #request.pathInfo#
      • #request.protocol#
      • #request.queryString#
      • #request.remoteAddr#
      • #request.requestURI#
      • #request.requestURL#
      • #request.requestedSessionId#
      • #request.scheme#
      • #request.serverName#
      • #request.serverPort#
      • #request.servletPath#
      适用范围
      • 任何有HttpServletRequest对象的地方
      • 由流程deadline触发的后台工具不适用
      样例
    • Userview Key

      名称 描述
      前缀 userviewKey
      说明 获取当前userviewKey的值
      属性
      • #userviewKey#
      适用范围
      • 列表设计器数源的SQL语句中
      • 图表数据源的SQL语句中
Create by Sean Fung on 2014-08-28 17:50:46.0
Last updated by Sean Fung on 2015-10-11 13:59:26.0