Table of Contents | ||
---|---|---|
|
Introduction
What are Hash
...
Variables?
English |
---|
Hash |
...
variables in Joget are placeholders used to dynamically display data within applications. They allow users to insert dynamic content without hardcoding values, which enhances flexibility and customization. Hash variables can fetch and display data from various sources such as forms, workflows, and the system itself. They promote customization and flexibility by avoiding hardcoded values, ultimately improving the user-friendliness of Joget applications. |
A hash variable is a special hash-escaped keyword that can be used in :
- Form Builder
- Datalist List Builder
- Userview UI Builder
- BeanShell code
- 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. Download the hash variable demonstration app for a quick look.
Tip |
---|
To conveniently access the list of all hash variables available, use the shortcut combination Ctrl + Shift + 3 in any of the components above to bring up the hash variable assistant Property Assistant. |
Nested Hash Variable
...
Code Block | ||||
---|---|---|---|---|
| ||||
#prefix.{prefix.variableKey}# |
Code Block | ||
---|---|---|
| ||
#date.{envVariable.dateFormat}# #user.{variable.username}.firstName# #form.tableChild.field1[{form.tableParent.childId}]# |
...
Code Block | ||
---|---|---|
| ||
#envVariable.script?java# #envVariable.script?nl2br;json# #form.table.users?separator(, )# |
Hash Variable
...
Some hash variables listed below are not available in the Joget Community Edition, read the Detailed Plugin Comparison Between Editions for more information.
List Of Joget DX Hash Variables
Workflow Assignment Hash Variable
...
To get workflow activity information of the current assignment.
...
- #assignment.processId#
- #assignment.processDefId#
- #assignment.processDefIdWithoutVersion#
- #assignment.processName#
- #assignment.processVersion#
- #assignment.processRequesterId#
- #assignment.appId#
- #assignment.activityId#
- #assignment.activityName#
- #assignment.activityDefId#
- #assignment.assigneeId#
...
- 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.
...
To display the assignee's name:
#user.{assignment.assigneeId}.firstName# #user.{assignment.assigneeId}.lastName#
Return Values
- If the record does not exist, "#form.table.field#" returns the same = "#form.table.field#". Use the ternary operator ( condition ? exprIfTrue : exprIfFalse ) to check and set to NULL if the return value matches the origin hash variable (if used in BeanShell or Javascript).
- If record exist but field is empty, "#form.table.field#" returns empty = "".
- If record exist and field has value "abc", "#form.table.field#" returns the value = "abc".
Hash Variable Features In Joget DX Community Edition
Some hash variables listed below are not available in the Joget Community Edition, read the Detailed Plugin Comparison Between Editions for more information.
Hash Variable - Property Assistant
Panel | |||||||
---|---|---|---|---|---|---|---|
|
Workflow Process Hash Variable
Panel | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
This is a new feature in Joget DX | A new #process.recordId# hash variable was introduced 8. |
Property Assistant is a new feature in Joget DX
...
Read related documentation:
- Joget v6 to DX Upgrade Notes > Important Note About Joget DX New Process ID Using UUID
- General Settings > System Administration Settings > Run Process Primary Key option
8, that allows you to quickly access and insert Hash Variables (and others)in any form element, UI element or list.
The Property Assistant allows you to choose a hash variable's attributes from a select box (Figure 1).
Figure 1: Property Assistant - Hash Variable Attributes Selection
You can also insert Nested Hash Variables easily using the Property Assistant by clicking on the desired attribute that will include the nested variable and then clicking back on the variable list to choose a variable to insert. (See Figure 2)
Figure 2: Property Assistant - Nested Hash Variable
System-wide Hash Variable
Panel | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||
This is a new feature in Joget DX 8.2. |
The System Variables menu introduces system-wide Hash Variables, which allows users to create and define custom hash variables that can be used in Property Assistant. This means that system-wide hash variables can be used in any app as it is not tied to any specific app.
System-wide Hash Variables can be accessed in Property Assistant using the #sysVariable.KEY# hash variable, where KEY is defined in the System Variables settings page.
List Of Joget DX Hash Variables
Workflow Assignment Hash Variable
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# |
Workflow Process Hash Variable
Panel | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
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 |
|
Name | Description |
Prefix | process |
Description | To retrieve information of a workflow process instance. |
Attributes |
#process.activityInst.ACTIVITY_DEF_ID.assignmentUsers# |
Scope of Use |
|
Sample Attributes | To display the performer username of an activity instance of a process instance: #process.activityInst.assign.performerUser[{assignment.processId}]# |
Current User Hash Variable
...
- #currentUser.username#
- #currentUser.firstName#
- #currentUser.lastName#
- #currentUser.fullName#
- #currentUser.email#
- #currentUser.active#
- #currentUser.timeZone#
- #currentUser.locale#
- #currentUser.roles#
In Joget Enterprise edition, these additional attributes are available:-
User Meta
#currentUser.meta.KEY#
To read additional user meta data stored in dir_user_meta table.
Example: #currentUser.meta.duration#.
Employment
- #currentUser.employee.code#
- #currentUser.employee.jobTitle#
- #currentUser.employee.isHod#
HOD
- #currentUser.hod.username#
- #currentUser.hod.firstName#
- #currentUser.hod.lastName#
- #currentUser.hod.email#
- #currentUser.hod.active#
- #currentUser.hod.timeZone#
Organization
- #currentUser.organization.id#
- #currentUser.organization.name#
- #currentUser.organization.description#
Department
- #currentUser.department.id#
- #currentUser.department.name#
- #currentUser.department.description#
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#
Grade
- #currentUser.grade.id#
- #currentUser.grade.name#
- #currentUser.grade.description#
Group
- #currentUser.groups.id#
- #currentUser.groups.name#
...
- All components within the App.
Date Hash Variable
...
To get date time according to a specified format.
Info | ||
---|---|---|
| ||
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. |
...
- #date.dateFormat#
#date.dateUnit[+-]integerValue.dateFormat#
- #date.dateFormat|TZ# A new feature in Joget DX v7.0.8 to display the date time adjusted based on the Coordinated Universal Time (UTC) timezone value (0 to 12), for example, "#date.yyyy-MM-dd HH:mm|5#" will display the current date time based on UTC plus 5 hours. Read Display Date Time Based On UTC.
Info | ||
---|---|---|
| ||
dateFormat
dateUnit
integerValue
|
#date.DATE_FORMAT_TO[INPUT_DATE_VALUE| INPUT_VALUE_FORMAT]#
#date.dateUnit[+-]integerValue.DATE_FORMAT_TO[INPUT_DATE_VALUE| INPUT_VALUE_FORMAT]#
Info |
---|
INPUT_DATE_VALUE accepts any date value and even nested hash variables, e.g: form data hash variable. See example in sample attributes below. INPUT_VALUE_FORMAT is the INPUT_DATE_VALUE original format. DATE_FORMAT_TO defines the format to change to. |
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.
...
- All components within the App.
...
#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.
| |
Scope of Use |
|
Sample Attributes | To display the performer username of an activity instance of a process instance: #process.activityInst.assign.performerUser[{assignment.processId}]# |
Current User Hash Variable
Name | Description |
---|---|
Prefix | currentUser |
Description | To retrieve currently logged in user information. More user hash variables here. |
Attributes |
In Joget Enterprise edition, these additional attributes are available:- User Meta
Employment
HOD
Organization
Department
Department HOD
Grade
Group
|
Scope of Use |
|
Date
Environment Variable Hash Variable
...
To retrieve Environment Variable values.
...
- #envVariable.keyName #
...
- Anywhere within the Joget app itself. (i.e. Process, Process Tool, Form, List, Userview)
...
#envVariable.smtpPort#
...
Hash Variable
Name | Description |
---|---|
Prefix | formdate |
Description | To get |
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. |
Form Binder Hash Variable
...
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.
...
- #binder.APP_ID.FORM_DEF_ID.FIELD_ID#
- #binder.APP_ID.FORM_DEF_ID.FIELD_ID[PRIMARY_KEY]#
- #binder.FORM_DEF_ID.FIELD_ID#
- #binder.FORM_DEF_ID.FIELD_ID[PRIMARY_KEY]#
- #binder.options.APP_ID.FORM_DEF_ID.FIELD_ID#
- #binder.options.APP_ID.FORM_DEF_ID.FIELD_ID[PRIMARY_KEY]#
- #binder.options.FORM_DEF_ID.FIELD_ID#
- #binder.options.FORM_DEF_ID.FIELD_ID[PRIMARY_KEY]#
...
- In a Process Tool part of a Process.
- In a Form.
- In a process design.
...
#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]#
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 #dateEN.yyyy-MM-dd# // shows current date of 2023-02-15 in English even though the locale has been set to a different language. (i.e Arabic) #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. |
Environment Variable Hash Variable
Name | Description |
---|---|
Prefix | envVariable |
Description | To retrieve Environment Variable values. |
Attributes |
|
Scope of Use |
|
Sample Attributes | #envVariable.smtpServer# #envVariable.smtpPort# |
App Variable Hash Variable
Panel | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
This is a new feature in Joget DX. |
Note |
---|
The App Variable Hash Variable has the same functionality as the Environment Variable Hash Variable. Both can be used to retrieve App/Environment variable values in Joget DX 8 |
Name | Description |
---|---|
Prefix | appVariable |
Description | To retrieve App Variable values. |
Attributes |
|
Scope of Use |
|
Sample Attributes | #appVariable.smtpServer# #appVariable.smtpPort# |
Form Data Hash Variable
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. |
Form Binder Hash Variable
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]# |
App Definition Hash Variable
Name | Description |
---|---|
Prefix | appDef |
Description | To retrieve App Definition information |
Attributes |
|
Scope of Use |
|
Sample Attributes | To display the app definition name: #appDef.name# |
App Translation Hash Variable (Internationalization)
Name | Description |
---|---|
Prefix | i18n |
Description | To support language localization on application level. |
Attributes |
|
Scope of Use |
|
Sample Attributes | #i18n.logout# |
Example | Please see Add Translation. |
Performer Hash Variable
Name | Description | ||||
---|---|---|---|---|---|
Prefix | performer | ||||
Description | To get user information of the performer of an activity. | ||||
Attributes |
| ||||
Scope of Use |
| ||||
Sample Attributes |
|
Request Parameter Hash Variable
Name | Description |
---|---|
Prefix | requestParam |
Description | To access request parameter' values. |
Attributes |
|
Scope of Use |
|
Sample Attributes |
|
User Hash Variable
Name | Description |
---|---|
Prefix | user |
Description | To get user information based on username. Replace the username below in red with the actual username (example admin) or {currentUser.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 |
|
Userview Key Hash Variable
Name | Description |
---|---|
Prefix | userviewKey |
Description | Userview Key Hash Variable is used solely for the purpose of accessing the current UI key's value. Typical use case for this hash variable are:-
|
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 |
|
#appDef.dateCreated#
#appDef.dateModified#
#appDef.version#
#appDef.license#
#appDef.name#
#appDef.published#
- All components within the App.
To display the app definition name:
#appDef.name#
...
| |
Scope of Use |
|
Sample Attributes | #variable.approvalStatus# |
Request Hash Variable
Name | Description |
---|---|
Prefix | i18nrequest |
Description | To support language localization on application level. |
Attributes |
|
Scope of Use |
|
Sample Attributes | #i18n.logout# |
Example | Please see Add Message. |
Performer Hash Variable
...
To get user information of the performer of an activity.
...
- #performer.activityDefId.id#
- #performer.activityDefId.username#
- #performer.activityDefId.firstName#
- #performer.activityDefId.lastName#
- #performer.activityDefId.email#
- #performer.activityDefId.active#
- #performer.activityDefId.timeZone#
...
- 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. |
...
- #performer.runProcess.firstName#
- #performer.submitLeave.firstName#
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.
See following example of retrieving a Joget APP URL using the Request Hash Variable.
|
Platform Hash Variable
...
Name | Description |
---|---|
Prefix | requestParamplatform |
Description | To access request parameter' values.retrieve platform specific information. |
Attributes |
|
Scope of Use |
|
Sample Attributes |
|
User Hash Variable
| |
Attributes For SMTP |
|
Additional attributes for Joget Enterprise & Professional editions |
|
Scope of Use |
|
Users Hash Variable
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:
|
Bean Shell Hash Variable
Name | Description |
---|---|
Prefix | beanshell |
Description | Using App Variable to execute bean shell script. Passing parameter using URL query string syntax. |
Attributes |
|
Name | Description |
Prefix | user |
Description | To get user information based on username. Replace the username below in red with the actual username (example admin) or {currentUser.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 |
|
Userview Key Hash Variable
...
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.
...
- #userviewKey#
...
To execute a script stored in the "welcome" app variable with parameter "username" and "dept":
| |||||
Related Tutorials |
Datalist Hash Variable
Panel | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||
The "datalist.col" (highlighted in Bold in the table below) Hash Variables are a new feature in DX 8 that allows users to access and display a List's column data in multiple formats. |
Workflow Variable Hash Variable
...
To get the value of a workflow variable in a Process Flow.
...
- #variable.variableName#
...
- 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.
...
Name | Description | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Prefix | requestdatalist | ||||||||||||
Description | To get the value from the current HttpServletRequest object of the page view. | ||||||||||||
Attributes |
| 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.
See following example of retrieving a Joget APP URL using the Request Hash Variable.
|
Platform Hash Variable
...
#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#
...
- #platform.setting.smtpHost#
- #platform.setting.smtpPort#
- #platform.setting.smtpSecurity#
- #platform.setting.smtpUsername#
- #platform.setting.smtpPassword#
- #platform.setting.smtpEmail#
...
#platform.license.holder#
#platform.license.users#
#platform.license.appLimit#
#platform.license.expiry#
#platform.license.activated#
#platform.systemKey#
...
- All components within the App.
display the List records in a grid format in your form or email tool. | |
Attributes |
|
Scope of Use |
|
Sample Attributes |
|
** for "datalist.col.xx.ID.column" variables, the "column" parameter refers to the order of the column in the list starting from 0. hence, to refer to the first column in a list called list_f1, your hash variable would look like this : #datalist.col.sum.list_f1.column_0
** the column are counted from 0, and does not include the default checkbox included in list tables
Expression
...
Hash Variable
Name | Description |
---|---|
Prefix | usersexp |
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:
|
Bean Shell Hash Variable
...
#beanshell.ENVIRONMENT_VARIABLE#
#beanshell.ENVIRONMENT_VARIABLE[PARAMETERS_URL_QUERY_STRING]#
...
- All components within the App.
...
To execute a script stored in "welcome" environment variable with parameter "username" and "dept":
Code Block | ||
---|---|---|
| ||
if (username != null && username.length == 1 && !username[0].isEmpty()) {
return "Welcome " + username[0] + " (" + dept[0] + "),";
} else {
return "";
} |
- #beanshell.welcome[username={currentUser.username?url}&dept={currentUser.department.name?url}]#
...
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 `?expression` to escape single quote in value.
Custom Methods
Math methods Note: All java.lang.Math methods can be used.
|
Report Builder Hash Variable
Warning |
---|
The API IP/Domain Whitelist setting in General Settings needs to be configured in order for reportLink hash variable to work. If a request is from a non-whitelisted IP/domain, the response will be a HTTP 400 Bad Request. |
Name | Description |
---|---|
Prefix | reportLink |
Description | To retrieve the particular report based on the reportId. To know more about Report Builder, see here. |
Attributes |
|
Scope of Use |
|
Sample Attributes |
|
Code Builder Hash Variable
Name | Description |
---|---|
Prefix | code |
Description | To retrieve the template based on the code snippet ID. |
Attributes |
|
Scope of Use |
|
Sample Attributes |
|
uiListCount Hash Variable
Panel | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||
This is a new feature in Joget DX 8. |
Name | Description | ||
---|---|---|---|
Prefix | uiListCount | ||
Description | The uiListCount hash variable is primarily utilized to retrieve the Datalist or Inbox menu count value. | ||
Attributes |
| ||
Scope of Use |
| ||
Sample Attributes | See examples below, based on the usage within the default CRM application:
|
Escape Format Hash Variable
Panel | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||
This is a new feature in Joget DX 8. |
Name | Description | ||
---|---|---|---|
Prefix | ?decimal(decimal_number) | ||
Description | The escape format hash variable used to allow the formatting of decimal places.
| ||
Attributes |
| ||
Scope of Use |
| ||
Sample Attributes |
|
Stats Hash Variable
Name | Description |
---|---|
Prefix | stats |
Description | Display various Joget system and app statistics. |
Attributes |
|
Datalist Hash Variable (New)
Panel | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
This is a new feature in Joget DX. |
...
- #datalist.html.ID#
- #datalist.csv.ID#
- #datalist.size.ID#
- #datalist.total.ID#
- #datalist.html.ID[FILTER_PARAM1=FILTER_VALUE1&FILTER_PARAM2=FILTER_VALUE2]#
- #datalist.csv.ID[FILTER_PARAM1=FILTER_VALUE1&FILTER_PARAM2=FILTER_VALUE2]#
- #datalist.size.ID[FILTER_PARAM1=FILTER_VALUE1&FILTER_PARAM2=FILTER_VALUE2]#
- #datalist.total.ID[FILTER_PARAM1=FILTER_VALUE1&FILTER_PARAM2=FILTER_VALUE2]#
...
- All components within the App.
...
- #datalist.html.myDataList#
- #datalist.csv.ImyDataList#
- #datalist.size.ImyDataList#
- #datalist.total.ImyDataList#
- #datalist.html.myDataList[d-8015999-fn_name=James&d-6304176-fn_email=james@gmail.com]#
- #datalist.csv.myDataList[d-8015999-fn_name=James&d-6304176-fn_email=james@gmail.com]#
- #datalist.size.myDataList[d-8015999-fn_name=James&d-6304176-fn_email=james@gmail.com]#
- #datalist.total.myDataList[d-8015999-fn_name=James&d-6304176-fn_email=james@gmail.com]#
- #datalist.html.list_f1[d-1338250-fn_id={process.recordId}]#
- #datalist.html.listId[filterId={form.table.field[{envVariable.variableId}]}]#
Expression Hash Variable (New)
Panel | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
This is a new feature in Joget DX. |
...
- All components within the App.
...
Testing Values
- #envVariable.num1# = 55
- #envVariable.num2# = 288
- #envVariable.double1# = 123.45
- #envVariable.double2# = 246.78
- #envVariable.bool1# = true
- #envVariable.bool2# = false
- #envVariable.str1# = Hello World!
- #envVariable.str2# = Using Joget Hash Variables!
- #envVariable.empty# =
- #envVariable.hashVariable# = #assignment.processId#
Mathematical operators
- #exp.{envVariable.num1} + {envVariable.num2}# = 343
- #exp.{envVariable.num1} - {envVariable.num2}# = -233
- #exp.{envVariable.double1} * {envVariable.double2}# = 30464.991
- #exp.{envVariable.num2} / {envVariable.num1}# = 5
- #exp.{envVariable.num1} % 7# = 6
- #exp.({envVariable.num1} + 2) * 2# = 114
- #exp.{envVariable.num1} + 2 * 2# = 59
- #exp.2 ^ 2# = 4
Logical operators
- #exp.{envVariable.bool1} and {envVariable.bool2}# = false
- #exp.{envVariable.bool1} or {envVariable.bool2}# = true
- #exp.!{envVariable.bool1}# = false
Relational operators
- #{envVariable.num1} gt {envVariable.num2}# = false
- #{envVariable.num1} ge {envVariable.num1}# = true
- #{envVariable.num1} lt {envVariable.num2}# = true
- #{envVariable.num1} le {envVariable.num1}# = true
- #{envVariable.num1} eq {envVariable.num1}# = true
- #{envVariable.num1} ne {envVariable.num1}# = false
Ternary Operator (If Else)
- #exp.({envVariable.num1} lt {envVariable.num2})?{envVariable.num1}:{envVariable.num2}#= 55
- #exp.'{envVariable.empty?expression}'.isEmpty()?'empty':'has value'#= empty
String methods
Note: Basically most of the String methods can be used, using `?expression` to escape single quote in value.
- #exp.'{envVariable.str1?expression}' + ' ' + '{envVariable.str2?expression}'# = Hello World! Using Joget Hash Variables
- #exp.'{envVariable.str1?expression}'.substring(5)# = World!
- #exp.'{envVariable.str1?expression}'.toLowerCase()# = hello world!
- #exp.'{envVariable.str1?expression}'.toUpperCase()# = HELLO WORLD!
- #exp.'{envVariable.str1?expression}'.replace('world', 'there')# = Hello World!
- #exp.'{envVariable.str1?expression}'.replaceFirst('[a-z]', '*')# = H*llo World!
- #exp.'{envVariable.str1?expression}'.replaceAll('[a-z]', '*')# = H**** W****!
- #exp.'{envVariable.str1?expression}'.charAt(0)# = H
- #exp.'{envVariable.str1?expression}'.contains('World')# = true
- #exp.'{envVariable.str1?expression}'.equalsIgnoreCase('{envVariable.str1?expression}'.toLowerCase())# = true
- #exp.'{envVariable.empty?expression}'.isEmpty()# = true
- #exp.'{envVariable.str1?expression}'.indexOf('World')# = 6
- #exp.'{envVariable.str1?expression}'.lastIndexOf('World')# = 6
- #exp.'{envVariable.str1?expression}'.startsWith('H')# = true
- #exp.'{envVariable.str1?expression}'.endsWith('!')# = true
Custom Methods
- #exp.$isParsed('{envVariable.hashVariable}')# = false
Math methods
Note: All java.lang.Math methods can be used.
- #exp.$sin(30)# = -0.9880316240928618
- #exp.$cos(30)# = 0.15425144988758405
- #exp.$tan(30)# = -6.405331196646276
- #exp.$asin(30)# = NaN
- #exp.$acos(30)# = NaN
- #exp.$atan(30)# = 1.5374753309166493
- #exp.$sinh(30)# = 5.343237290762231E12
- #exp.$cosh(30)# = 5.343237290762231E12
- #exp.$tanh(30)# = 1.0
- #exp.$abs(-7)# = 7.0
- #exp.$max(60,30)# = 60.0
- #exp.$min(60,30)# = 30
- #exp.$round(79.52)# = 80
- #exp.$sqrt(12)# = 3.4641016151377544
- #exp.$cbrt(81)# = 4.326748710922225
- #exp.$pow(4, 2)# = 16.0
- #exp.$signum(82.7)# = 1.0
- #exp.$ceil(82.7)# = 83.0
- #exp.$copySign(740.4, -29.1)# = -740.4
- #exp.$nextAfter(84352.24, 154.284)# = 84352.234
- #exp.$nextUp(744.93)# = 744.93005
- #exp.$nextDown(744.93)# = 744.9299999999998
- #exp.$floor(744.93)# = 744.0
- #exp.$floorDiv(25, 3)# = 8
- #exp.$random()# = 0.3988245190916774
- #exp.$rint(81.68)# = 82.0
- #exp.$hypot(8, 6)# = 10.0
- #exp.$ulp(8.1)# = 9.536743E-7
- #exp.$getExponent(50.45)# = 5
- #exp.$IEEEremainder(387.1, 4.2)# = 0.7000000000000064
- #exp.$addExact(469, 737)# = 1206
- #exp.$subtractExact(469, 737)# = -268
- #exp.$multiplyExact(469, 737)# = 345653
- #exp.$incrementExact(674)# = 675
- #exp.$decrementExact(674)# = 673
- #exp.$negateExact(674)# = -674
- #exp.$toIntExact(-829)# = -829
- #exp.$log(38.9)# = 3.6609942506244004
- #exp.$log10(38.9)# = 1.5899496013257077
- #exp.$log1p(26)# = 3.295836866004329
- #exp.$exp(2)# = 7.38905609893065
- #exp.$expm1(2)# = 6.38905609893065
- #exp.$toDegrees(5)# = 286.4788975654116
- #exp.$toRadians(180.0)# = 3.141592653589793
Report Builder Hash Variable (New)
Panel | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
This is a new feature in Joget DX if you are using the Report Builder custom plugin. |
Warning |
---|
The API IP/Domain Whitelist setting in General Settings needs to be configured in order for reportLink hash variable to work. If a request is from a non-whitelisted IP/domain, the response will be a HTTP 400 Bad Request. |
...
To retrieve the particular report based on the reportId.
To know more about Report Builder, see here.
...
- #reportLink.rp_report01#
...
- All components within the App.
...
- #reportLink.financialReport#
Code Builder Hash Variable (New)
Panel | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
This is a new feature in Joget DX if you are using the Code Builder custom plugin. |
To retrieve the template based on the code snippet ID.
Scope of Use |
|
Sample Attributes |
|
Hash Variables In Joget Marketplace
Download Demo App
View file | ||
---|---|---|
|
|