What is Hash Variable?
Hash Variables gives users greater flexibility and freedom in accessing useful information or relevant run-time values from the system.
A hash variable is a special hash-escaped keyword that can be used in
- Form Builder
- Datalist Builder
- Userview Builder
- Supported plugin configuration properties
- Activity name in Workflow Designer
- External Form URL when mapping an activity to an external form
to return the value of some useful runtime variables from Joget components.
Nested Hash Variable
Since version 3.0.3, a Hash Variable can be used inside another Hash Variable to form a Nested Hash Variable.
The syntax for the inner Hash Variable is wrapped by a pair of curly bracket.
Code Block |
---|
language | java |
---|
title | Syntax / Format |
---|
|
#prefix.{prefix.variableKey}# |
Here's some examples:
Code Block |
---|
|
#date.{envVariable.dateFormat}#
#user.{variable.username}.firstName#
#form.tableChild.field1[{form.tableParent.childId}]# |
Escaping the Resultant Hash Variable
The parsed/returned Hash Variable may cause incompatibility with the current context/environment such as syntax error in a script. Therefore, one may pass in additional parameters into the hash variable declared to escape certain characters.
Before ending a hash variable with a hash "#", add a question mark character "?" followed by the required format. You may include multiple by defining semicolon ";" separated values.
- regex
- json
- javascript
- html
- xml
- java
- sql
- url
Code Block |
---|
|
#envVariable.script?java# |
List of Hash Variables
Workflow Assignment Hash Variable
Name | Description |
---|
Prefix | assignment |
Description | To get workflow activity information of the current assignment. |
Attributes | - #assignment.processId#
- #assignment.processDefId#
- #assignment.processName#
- #assignment.processVersion#
- #assignment.processRequesterId#
- #assignment.description#
- #assignment.activityId#
- #assignment.activityName#
- #assignment.activityDefId#
- #assignment.assigneeId#
|
Scope of Use | - Elements within and part of a Process.
- Activity Name.
- Form mapped as part of process activity mapping.
- Email Tool configuration as part of process tool mapping.
|
Current User Hash Variable
Name | Description |
---|
Prefix | currentUser |
Description | To retrieve currently logged in user information. |
Attributes | - #currentUser.id#
- #currentUser.username#
- #currentUser.firstName#
- #currentUser.lastName#
- #currentUser.email#
- #currentUser.active#
- #currentUser.timeZone#
In Joget Enterprise edition, these additional attributes are available:- Organization - #currentUser.organization.id#
- #currentUser.organization.name#
- #currentUser.organization.description#
Department - #currentUser.department.id#
- #currentUser.department.name#
- #currentUser.department.description#
- #currentUser.department.treeStructure#
Grade - #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#
Group - #currentUser.groups.id#
- #currentUser.groups.name#
Employment - #currentUser.employee.code#
- #currentUser.employee.jobTitle#
- #currentUser.employee.isHod#
Department 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#
|
Scope of Use | - All components within the App.
|
Date Hash Variable
Name | Description |
---|
Prefix | date |
Description | To get date time according to a specified format. Info |
---|
| In Joget Workflow v5, the returned value would follow current logged in user's timezone. If user's information is not available, then it will use server's timezone. |
|
Attributes | - #date.dateFormat #
- #date.dateUnit[+-]integerValue.dateFormat#
Info |
---|
| dateFormat - In Java date format; e.g., yyyy-MM-dd for 2011-06-01
dateUnit integerValue - Numeric integer value. E.g. 10
|
|
Scope of Use | - All components within the App.
|
Sample Attributes | #date.h:mm a# #date.EEE,d MMM yyyy h:mm:ss a#
#date.DAY+ 7 .EEE,d MMM yyyy h:mm:ss a#
#date.DAY- 1 .EEE,d MMM yyyy h:mm:ss a#
|
Environment Variable Hash Variable
Name | Description |
---|
Prefix | envVariable |
Description | To retrieve Environment Variable value. Learn more about Environment Variables . |
Attributes | |
Scope of Use | - Anywhere within the Joget app itself. (i.e. Process, Process Tool, Form, List, Userview)
|
Sample Attributes | #envVariable.smtpServer# #envVariable.smtpPort#
|
Name | Description |
---|
Prefix | form |
Description | To get field value from form table. |
Attributes | - #form. tableName . fieldId #
- #form. tableName . fieldId [recordId]# (Available in 3.1 and above)
|
Scope of Use | - In a Process Tool part of a Process.
- In a Form.
- In a process design.
|
Sample Attributes | #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}]#
|
App Message Hash Variable (Internationalization)
Name | Description |
---|
Prefix | i18n |
Description | To support language localization on application level. |
Attributes | |
Scope of Use | - All components within the App.
|
Sample Attributes | #i18n.logout#
|
Example | Please see Add Message. |
Name | Description |
---|
Prefix | performer |
Description | To get user information of the performer of an activity. |
Attributes | - #performer. activityDefId .id#
- #performer. activityDefId .username#
- #performer. activityDefId .firstName#
- #performer. activityDefId .lastName#
- #performer. activityDefId .email#
- #performer. activityDefId .active#
- #performer. activityDefId .timeZone#
|
Scope of Use | - Elements within and part of a Process.
- Activity Name.
- Form mapped as part of process activity mapping.
- Email Tool configuration as part of process tool mapping.
Info |
---|
To get activityDefId (activity definition ID), mouseover the activity name in the Activity Mapping tab (Workflow Management Console); there will be an overlay showing the ID. |
Warning |
---|
The activity chosen must had already been performed. |
|
Sample Attributes | - #performer.runProcess.firstName#
- #performer.submitLeave.firstName#
|
Request Parameter Hash Variable
Name | Description |
---|
Prefix | requestParam |
Description | To access request parameter' values. |
Attributes | - #requestParam.parameterName#
|
Scope of Use | - All components within the App.
|
Sample Attributes | |
User Hash Variable
Name | Description |
---|
Prefix | user |
Description | To get user information based on username. |
Attributes | - #user.username.id#
- #user.username.username#
- #user.username.firstName#
- #user.username.lastName#
- #user.username.email#
- #user.username.active#
- #user.username.timeZone#
|
Scope of Use | - All components within the App.
|
Sample Attributes | - #user.admin.email#
- #user.cat.firstName#
- #user.{currentUser.username}.firstName#
|
Userview Key Hash Variable
Name | Description |
---|
Prefix | userviewKey |
Description | Userview Key Hash Variable is used solely for the purpose of accessing the current Userview key's value. Typical use case for this hash variable are:- - Filtering a Datalist based on Userview Key.
- Preloading certain form data field (e.g. subform) in a Form or Form part of a process flow based on Userview Key.
|
Attributes | |
Scope of Use | |
Workflow Variable Hash Variable
Name | Description |
---|
Prefix | variable |
Description | To get the value of a workflow variable in a Process Flow. |
Attributes | - #variable. variableName #
|
Scope of Use | - Elements within and part of a Process.
- Activity Name.
- Form mapped as part of process activity mapping.
- Email Tool configuration as part of process tool mapping.
|
Sample Attributes | #variable.approvalStatus# |
Request Hash Variable
Name | Description |
---|
Prefix | request |
Description | To get the value from the current HttpServletRequest object of the page view. |
Attributes | - #request.characterEncoding#
- #request.contextPath#
- #request.header.NAME#
NAME is the custom 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#
|
Scope of Use | - All components within the App where there is valid HttpServletRequest object. Such object will not be available in background activity such as in Process Tool triggered as a result of Deadlines.
|
Sample Attributes |
To retrieve the "Referer" header attribute value in the screenshot above, one may use the following hash variable. Code Block |
---|
| #request.header.Referer# |
|