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 :
to return the value of some useful runtime variables from Joget components. Download the hash variable demonstration app for a quick look.
To conveniently access the list of all hash variables available, use shortcut combination Ctrl-Shift-3 in any of the components above. |
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}.
#prefix.{prefix.variableKey}# |
#date.{envVariable.dateFormat}# #user.{variable.username}.firstName# #form.tableChild.field1[{form.tableParent.childId}]# |
You can pass an index or primary key value to a Hash Variable for retrieval.
The syntax for the inner Hash Variable is wrapped by a pair of [square brackets] .
#form.myTable.fieldId.[primaryKeyValue]# |
Here are some examples:
#form.contact.name[007]# where "007" is the primary key or "id" value of database table "app_fd_contact". |
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.
#envVariable.script?java# #envVariable.script?nl2br;json# #form.table.users?separator(, )# |
Name | Description |
---|---|
Prefix | assignment |
Description | To get workflow activity information of the current assignment. |
Attributes |
|
Scope of Use |
|
Sample Attributes | To display the assignee's name: #user.{assignment.assigneeId}.firstName# #user.{assignment.assigneeId}.lastName# |
A new #process.recordId# hash variable was introduced in Joget DX to retrieve the process database table id (or primary key value) which will return the UUID id value of the process record stored in app_fd_[form_table_name], if the General Settings > Run Process Primary Key is set to "UUID". If the "Run Process Primary Key" option in General Settings is set to "Process instance ID", the "#process.recordId#" will return the same value as "#process.processId#". Read related documentation: |
Name | Description |
---|---|
Prefix | process |
Description | To retrieve information of a workflow process instance. |
Attributes |
|
Scope of Use |
|
Sample Attributes | To display the performer username of an activity instance of a process instance: #process.activityInst.assign.performerUser[{assignment.processId}]# |
Name | Description |
---|---|
Prefix | currentUser |
Description | To retrieve currently logged in user information. |
Attributes |
In Joget Enterprise edition, these additional attributes are available:- User Meta
Employment
HOD
Organization
Department
Department HOD
Grade
Group
|
Scope of Use |
|
Name | Description | ||
---|---|---|---|
Prefix | date | ||
Description | To get date time according to a specified format.
| ||
Attributes |
The above date hash with format control will use the login user's time zone setting and automatically adjust the date and time. If the user's time zone setting is blank, it wil revert to the System Settings "System Time Zone" property. If you want to perform a date formatting without using the time zone value, download and import the Date Formatter Hash Variable plugin from Joget Marketplace. | ||
Scope of Use |
| ||
Sample Attributes | #date.h:mm a# // shows current time of 12:08 PM #date.EEE,d MMM yyyy h:mm:ss a# // shows current date time of 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 #date.dd-MM-yyyy[{form.j_expense_claim.title}|yyyy-MM-dd]# // Retrieves date from j_expense_claim table, form field title, changes its origin format of yyyy-MM-dd to dd-MM-yyyy. |
Name | Description |
---|---|
Prefix | envVariable |
Description | To retrieve Environment Variable values. |
Attributes |
|
Scope of Use |
|
Sample Attributes | #envVariable.smtpServer# #envVariable.smtpPort# |
Name | Description |
---|---|
Prefix | form |
Description | To get field value from form table. |
Attributes |
|
Scope of Use |
|
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}]# //using nested Hash Variable with curly bracket. |
Name | Description |
---|---|
Prefix | binder |
Description | To get field value or field value label from the binder of a form via its form definition id . The 'binder' prefix retrieves the field value, while the 'binder.options' prefix retrieves the lookup field (eg. select box, checkbox & radio button) option label. The field value or field value label can also be obtained from other apps by including the APP_ID, else it uses the current app context. By providing the PRIMARY_KEY argument, field value or field value label from a different record can be retrieved, else data from the current record id is retrieved instead. |
Attributes |
|
Scope of Use |
|
Sample Attributes | #binder.addCard.title# #binder.cardViewer.addCard.title# #binder.cardViewer.addCard.title[b30bce20-c0a82095-14976e70-fded1735]# #binder.options.addCard.title# #binder.options.cardViewer.addCard.title# #binder.options.cardViewer.addCard.title[b30bce20-c0a82095-14976e70-fded1735]# |
Name | Description |
---|---|
Prefix | appDef |
Description | To retrieve App Definition information |
Attributes |
|
Scope of Use |
|
Sample Attributes | To display the app definition name: #appDef.name# |
Name | Description |
---|---|
Prefix | i18n |
Description | To support language localization on application level. |
Attributes |
|
Scope of Use |
|
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 |
| ||
Scope of Use |
| ||
Sample Attributes |
|
Name | Description |
---|---|
Prefix | requestParam |
Description | To access request parameter' values. |
Attributes |
|
Scope of Use |
|
Sample Attributes |
|
Name | Description |
---|---|
Prefix | user |
Description | To get user information based on username. |
Attributes |
In Joget Enterprise edition, these additional attributes are available:- User Meta
Organization
Department
Grade
HOD
Group
Employment
Department HOD
|
Scope of Use |
|
Sample Attributes |
|
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:-
|
Attributes |
|
Scope of Use |
Name | Description |
---|---|
Prefix | variable |
Description | To get the value of a workflow variable in a Process Flow. |
Attributes |
|
Scope of Use |
|
Sample Attributes | #variable.approvalStatus# |
Name | Description | |
---|---|---|
Prefix | request | |
Description | To get the value from the current HttpServletRequest object of the page view. | |
Attributes |
| |
Scope of Use |
| |
Sample Attributes | To retrieve the "Referer" header attribute value in the screenshot above, one may use the following hash variable.
|
Name | Description |
---|---|
Prefix | platform |
Description | To retrieve platform specific information. |
Attributes |
|
Attributes For SMTP |
|
Additional attributes for Joget Enterprise & Professional editions |
|
Scope of Use |
|
Name | Description |
---|---|
Prefix | users |
Description | To retrieve information of all the users in the selected group, grade, department and organization. Multiple results will be separated by semicolon. |
Attributes |
|
Scope of Use |
|
Sample Attributes | To return all the users in the current user's groups id:
|
Name | Description | |
---|---|---|
Prefix | beanshell | |
Description | Using environment variable to execute bean shell script. Passing parameter using URL query string syntax. | |
Attributes |
| |
Scope of Use |
| |
Sample Attributes | To execute a script stored in "welcome" environment variable with parameter "username" and "dept":
| |
Related Tutorials |
This is a new feature in Joget DX. |
Name | Description |
---|---|
Prefix | datalist |
Description | To display the datalist records in a grid format in your form or email tool. |
Attributes |
|
Scope of Use |
|
Sample Attributes |
|
This is a new feature in Joget DX. |
Name | Description |
---|---|
Prefix | exp |
Description | Mathematical and string operations on hash variables |
Attributes | #exp.variable# |
Scope of Use |
|
Sample Attributes | Testing Values
Mathematical operators
Logical operators
Relational operators
Ternary Operator (If Else)
String methods Note: Basically most of the String methods can be used, using `?javascript` to escape single quote in value.
Custom Methods
Math methods Note: All java.lang.Math methods can be used.
|
This is a new feature in Joget DX if you are using the Report Builder custom plugin. |
Name | Description |
---|---|
Prefix | reportLink |
Description | To retrieve the particular report based on the reportId. |
Attributes |
|
Scope of Use |
|
Sample Attributes |
|