Table of Contents |
---|
outline | true |
---|
absoluteUrl | true |
---|
|
What is Hash Variable?
Hash Variables gives gives users greater flexibility and freedom in accessing useful information or relevant run-time values from the system.
...
to return the value of some useful runtime variables from Joget components.
Info |
---|
|
Download the tutorial app on Hash Variables from Joget Workflow Marketplace to learn more about Hash Variable. |
Nested Hash Variable
Since version 3.0.3, a a Hash Variable can can be used inside another another Hash Variable to to form a 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}# |
...
Code Block |
---|
|
#date.{envVariable.dateFormat}#
#user.{variable.username}.firstName#
#form.tableChild.field1[{form.tableParent.childId}]# |
Here's some examples:-
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 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.
|
Sample Attribute | To display the assignee's name: #user.{assignment.assigneeId}.firstName# #user.{assignment.assigneeId}.lastName# |
Current User Hash Variable 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 Variable
Name | Description |
---|
Prefix | date |
Description | To get get date time according 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# a# #date.EEE,d MMM yyyy h:mm:ss a# a#
#date.DAY+ 7 .EEE,d MMM yyyy h:mm:ss a# a#
#date.DAY- 1 .EEE,d MMM yyyy h:mm:ss a#
|
Environment Variable Hash Variable Variable
Name | Description |
---|
Prefix | envVariable |
Description | To retrieve retrieve Environment Variable value value. Learn more about 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 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. app.hello#logout# Image Added |
Example | Please see Add Message. |
Performer Hash Variable Variable
Name | Description |
---|
Prefix | performerperformer |
Description | To get get user information of the performer of 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 Variable
Name | Description |
---|
Prefix | requestParam |
Description | To access request parameter' values. |
Attributes | - #requestParam.parameterName[separator]#
- Separator (, or ;) can be indicated if requestParam is used in datalist filter with multiple values, to define the separator character in data output. Comma "," is used as default if no separator is indicated in cases of multiple values.
|
Scope of Use | - All components within the App.
|
Sample Attributes | - #requestParam.key# can be used specifically to obtain obtain Userview Key value.
- #requestParam.name[;]# to indicate 'name' variable will store multiple values separated by semicolon. For example, this SQL statement "select * from expenses where title in (#requestParam.title[,]#)" will be translated to "select * from expenses where title in (a,b,c)" to cater for multiple values in "where-in" statement.
- In a Userview page, one may access the following attributes.
- #requestParam.key#
- #requestParam.userviewId#
- #requestParam.menuId#
- #requestParam.appId#
|
User Hash Variable Variable
Name | Description |
---|
Prefix | user |
Description | To get get user information based on 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.{requestParam.username}.email# to retrieve the email address of the user passed via url parameter
|
Userview Key Hash Variable Variable
Name | Description |
---|
Prefix | userviewKeyuserviewKey |
Description | Userview Key Hash Hash Variable is used solely for the purpose of accessing the current current Userview key's value. Typical use case for this hash variable are:- - Filtering a a Datalist based based on Userview Key.
- Preloading certain form data field (e.g. subform) in a a Form or or Form part of a process flow based based on Userview Key.
|
Attributes | |
Scope of Use | |
Workflow Variable Hash Variable
Name | Description |
---|
Prefix | variablevariable |
Description | To get the 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# | #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 | Image Added To retrieve the "Referer" header attribute value in the screenshot above, one may use the following hash variable. Code Block |
---|
| #request.header.Referer# |
|