You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 12 Next »

什么是哈希变量?

定义
哈希变量  为用户提供更大的灵活性和自由从系统访问有用的信息或相关的运行时间值。

哈希变量是一个特殊的哈希转义关键字,可用于:

  • 表单生成器
  • 数据主义生成器
  • Userview生成器
  • 支持的插件配置属性
  • 工作流设计器中的活动名称
  • 将活动映射到外部表单时的外部表单URL

从Joget组件返回一些有用的运行时变量的值。

为了方便地访问所有可用散列变量的列表,可以在上面的任何组件中使用快捷键组合Ctrl-Shift-3 

  从  Joget Workflow Marketplace 下载Hash变量的教程应用程序,  以了解更多关于Hash变量的信息。   

嵌套哈希变量

从版本3.0.3开始,哈希变量可以在另一个哈希变量中使用,形成一个嵌套哈希变量

内部哈希变量的语法由一对大括号包围。

Syntax / Format
#prefix.{prefix.variableKey}#
这里有一些例子:
Example
#date.{envVariable.dateFormat}#
#user.{variable.username}.firstName#
#form.tableChild.field1[{form.tableParent.childId}]#

 

转义哈希变量结果

解析/返回的哈希变量可能会导致与当前上下文/环境(如脚本中的语法错误)不兼容。因此,可以将附加参数传递给声明的哈希变量来转义某些字符。

在使用散列“#”结束散列变量之前,添加一个问号字符“?”并紧接着其所需的格式。你可以通过定义分号“;”来包含多个分隔值  。

  1. regx - 用于转义正则表达式特殊字符
  2. json - 用于转义JSON特殊字符
  3. javascript - 用于转义Javascript特殊字符
  4. html - 用于转义HTML特殊字符
  5. xml - 用于转义XML特殊字符
  6. java - 用于转义Java特殊字符
  7. sql - 用于转义SQL特殊字符
  8. url - 用于转义URL特殊字符
  9. nl2br - 用于将新行字符转换为<br> HTML标记
  10. separator(SEPARATOR_CHARS) - 用于更改默认分隔符 “;” 到 SEPARATOR_CHARS。例如 ?separator(, )  ,会使    "abc;def" 变成 "abc,def"。
Example
#envVariable.script?java#
#envVariable.script?nl2br;json#
#form.table.users?separator(, )#

哈希变量列表

 

工作流分配散列变量

名称描述
字首分配
描述

获取当前分配的工作流活动信息。

属性
  • #assignment.processId#
  • #assignment.processDefId#
  • #assignment.processName#
  • #assignment.processVersion#
  • #assignment.processRequesterId#
  • #assignment.activityId#
  • #assignment.activityName#
  • #assignment.activityDefId#
  • #assignment.assigneeId#
使用范围
  • 过程中的元素和部分。
    1. 活动名称。
    2. 表单映射为流程活动映射的一部分。
    3. 电子邮件工具配置作为过程工具映射的一部分

当前用户哈希变量

名称描述
字首当前用户
描述检索当前登录的用户信息。  
属性
  • currentUser.id
  • #currentUser.username#
  • #currentUser.firstName#
  • #currentUser.lastName#
  • #currentUser.email#
  • #currentUser.active#
  • #currentUser.timeZone#

在Joget企业版中,这些附加属性是可用的: -

用户元

  • #currentUser.meta。关键

组织

年级

HOD

  • #currentUser.hod.username#
  • #currentUser.hod.firstName#
  • #currentUser.hod.lastName#
  • #currentUser.hod.email#
  • #currentUser.hod.active#
  • #currentUser.hod.timeZone#

雇用

  • #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#
使用范围
  • 应用程序中的所有组件。

日期哈希变量  

名称描述
字首日期
描述

根据指定的格式获取日期时间

Localization

在Joget Workflow v5中,返回的值将跟随当前登录用户的时区。如果用户的信息不可用,那么它将使用服务器的时区。

属性
  • #date.dateFormat  
  • #date.dateUnit [+ - ] integerValue.dateFormat

Options

日期格式

  • 在Java日期格式; 例如2011年6月1日的yyyy-MM-dd

dateUnit

integerValue

  • 数字整数值。例如10
使用范围
  • 应用程序中的所有组件。
示例属性#date.h:mm a# // 12:08 PM
#date.EEE,d MMM yyyy h:mm:ss a# // Wed, 4 Jul 2014 12:08:56 PM
#date.DAY+7.EEE,d MMM yyyy h:mm:ss a# // Add 7 days on top of current date time - Wed, 11 Jul 2014 12:08:56 PM
#date.DAY-1.EEE,d MMM yyyy h:mm:ss a# // Minus 1 days on top of current date time - Wed, 3 Jul 2014 12:08:56 PM

环境变量哈希变量  

名称描述
字首envVariable
描述

检索环境变量值。了解有关环境变量的更多信息。    

属性
  • #envVariable.keyName  
使用范围
  • 在Joget应用程序本身的任何地方。(即流程,流程工具,表单,列表,用户视图)
示例属性#envVariable.smtpServer#
#envVariable.smtpPort#

表单数据哈希变量  

名称描述
字首形成
描述

表格中获取字段值  

属性
  • #from.tableName.fieldId    
  • from.tableName.fieldId [ isrecordId ]#(提供3.1以上)      
使用范围
  • 在Process中的Process Tool部分。
  • 在表单中。
  • 在一个过程设计中。
示例属性#form.registration.registeredDate# //will use the current record ID
#form.registration.registeredDate[ 0001 ]# //0001 is the record ID to seek for
#form.registration.registeredDate[{variable.recordId}]# //using nested Hash Variable with curly bracket.

应用程序消息散列变量(国际化)  

名称描述
字首国际化
描述

在应用程序级别支持语言本地化。

属性
  • #i18n. keyName #
使用范围
  • 应用程序中的所有组件。
示例属性

#i18n.logout#

请参阅添加消息

执行者哈希变量  

名称描述
字首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(活动定义ID),请在“活动映射”选项卡(工作流程管理控制台)中将活动名称鼠标悬停; 会有覆盖显示ID。

所选择的活动必须已经执行。

示例属性
  • #performer.runProcess.firstName#
  • #performer.submitLeave.firstName#

请求参数哈希变量  

名称描述
字首requestParam
描述

访问请求参数的值。

属性
  • #requestParam.parameterName [分隔符]
  • 如果在具有多个值的数据列表过滤器中使用requestParam,则可以指示分隔符(或;),以便在数据输出中定义分隔符。如果在多个值的情况下不指定分隔符则使用逗号“,”作为默认值。
使用范围
  • 应用程序中的所有组件。
示例属性
  • #requestParam.key#可以专门用于获取UserView Key值
  • requestParam.name [;]#表示“name”变量将存储以分号分隔的多个值。例如,这个SQL语句“select * from expenses where title in(#requestParam.title [,]#)”将被转换为“select * from(where a,b,c)中的标题”以满足多个值在“where-in”声明中。
  • 在用户视图页面中,可以访问以下属性。
    • #requestParam.key#
    • #requestParam.userviewId#
    • #requestParam.menuId#
    • #requestParam.appId#

用户哈希变量  

名称描述
字首用户
描述

要根据用户名获取用户信息  

属性
  • #user. username .id#
  • #user. username .username#
  • #user. username .firstName#
  • #user. username .lastName#
  • #user. username .email#
  • #user. username .active#
  • #user. username .timeZone#

在Joget企业版中,这些附加属性是可用的: -

用户元

  • #user. username .meta.KEY#  

组织

  • #user. username  .department.id  
  • #user. username  .department.name  
  • #user. username  .department.description#  
  • #user. username  .department.treeStructure#  

年级

  • #user. username  .grade.id  
  • #user. username  .grade.name  
  • #user. username  .grade.description#  
  • #user. username  .grade.organizationId#  

HOD

  • #user. username  .hod.username#  
  • #user. username  .hod.firstName#  
  • #user. username  .hod.lastName#  
  • #user. username  .hod.email#  
  • #user. username  .hod.active#  
  • #user. username  .hod.timeZone#  

雇用

  • #user. username  .employee.code#  
  • #user. username  .employee.jobTitle#  
  • #user. username  .employee.isHod#  

HOD部门

  • #user. username  .department.hod.username#  
  • #user. username  .department.hod.firstName#  
  • #user. username  .department.hod.lastName#  
  • #user. username  .department.hod.email#  
  • #user. username  .department.hod.active#  
  • #user. username  .department.hod.timeZone#  
使用范围
  • 应用程序中的所有组件。
示例属性
  • #user.admin.email#
  • #user.cat.firstName#
  • #user.{requestParam.username} .email#检索通过url参数传递的用户的电子邮件地址

用户视图密钥哈希变量  

名称描述
字首userviewKey
描述

用户视图密钥散列变量仅用于访问当前用户视图密钥的值

这个散列变量的典型用例是:

  • 数据列表基于用户视图的关键字段。
  • 在基于UserView Key 的过程流程表单表单分区预加载某些表单数据字段(例如子表单)。
属性
  • #userviewKey#
使用范围

工作流变量哈希变量

名称描述
字首变量
描述

在Process Flow中获取工作流程变量

属性
  • variable.variableName  
使用范围
  • 过程中的元素和部分。
    1. 活动名称。
    2. 表单映射为流程活动映射的一部分。
    3. 电子邮件工具配置作为过程工具映射的一部分
示例属性#variable.approvalStatus#

请求哈希变量

名称描述
字首请求
描述

从页面视图的当前  HttpServletRequest对象获取值   

属性
  • #request.characterEncoding#
  • #request.contextPath#
  • #request.header.name#
    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#
使用范围
  • App中的所有组件都有有效的HttpServletRequest对象。这样的对象不能在后台活动中使用,例如由于截止时间而触发的过程工具  
示例属性

要检索上面屏幕截图中的“Referer”标题属性值,可以使用下面的散列变量。

Hash Variable
#request.header.Referer#

平台哈希变量

 

New Feature

这是Joget Workflow v6中的一个新功能。

名称描述
字首平台
描述检索特定于平台的信息。  
属性
  • platform.name#

  • #platform.version#

  • #platform.jdbcDriver#

  • #platform.setting.dataFileBasePath#

  • #platform.setting.deadlineCheckerInterval#

  • #platform.setting.defaultUserview#

  • #platform.setting.fileSizeLimit#

  • #platform.setting.landingPage#

  • #platform.setting.systemDateFormat#

  • #platform.setting.systemLocale#

  • #platform.setting.systemTimeZone# 

在Joget企业版中,这些附加属性是可用的: -

  • platform.license.name#

  • #platform.license.holder#

  • #platform.license.users#

  • #platform.license.appLimit#

  • #platform.license.expiry#

  • #platform.license.activated#

  • #platform.systemKey#

使用范围
  • 应用程序中的所有组件。

Bean Shell哈希变量

New Feature

这是Joget Workflow v6中的一个新功能。

名称描述
字首BeanShell
描述使用环境变量来执行bean shell脚本。使用URL查询字符串语法传递参数。
属性
  • #beanshell.ENVIRONMENT_VARIABLE#

  • #beanshell.ENVIRONMENT_VARIABLE# [PARAMETERS_URL_QUERY_STRING]

 

ScopeofUse
  • 应用程序中的所有组件。

示例属性

使用参数“username”和“dept”执行存储在“welcome”环境变量中的脚本:

if (username != null && username.length == 1 && !username[0].isEmpty()) {
       return "Welcome " + username[0] + " (" + dept[0] + "),";
} else {
       return "";
}

 

  • No labels