...
Figure 2: Property Assistant - Nested Hash Variable
List Of Joget DX Hash Variables
...
System-wide 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#
white | borderWidth | 1 |
---|
titleBGColor | #ddccff |
---|
borderStyle | solid |
---|
title | New Feature |
---|
|
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.
Image Added
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 | - #assignment.processId#
- #assignment.processDefId#
- #assignment.processDefIdWithoutVersion#
- #assignment.processName#
- #assignment.processVersion#
- #assignment.processRequesterId#
- #assignment.appId#
- #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 Attributes | To display the assignee's name: #user.{assignment.assigneeId}.firstName# #user.{assignment.assigneeId}.lastName# |
Workflow Process Hash Variable
Panel |
---|
borderColor | purple |
---|
titleBGColor | #ddccff |
---|
borderStyle | solid |
---|
title | New in Joget DX |
---|
|
A new #process.recordId# hash variable was introduced in Joget DX |
Workflow Process Hash Variable
Panel |
---|
borderColor | purple |
---|
titleBGColor | #ddccff |
---|
borderStyle | solid |
---|
title | New in Joget DX |
---|
|
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 | exp |
Description | Mathematical and string operations on hash variables |
Attributes | #exp.variable# |
Scope of Use | - All components within the App.
|
Sample Attributes | 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)# = -674674
- #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.$toIntExact$toDegrees(-8295)# = -829286.4788975654116
- #exp.$log$toRadians(38180.90)# = 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
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 | - All components within the App.
|
Sample Attributes | - #reportLink.financialReport#
|
Code Builder Hash Variable
Name | Description |
---|
Prefix | code |
Description | To retrieve the template based on the code snippet ID. |
Attributes | |
Scope of Use | - All components within the App.
|
Sample Attributes | - #code.cs-calculationScript#
|
uiListCount Hash Variable
Panel |
---|
borderColor | purple |
---|
bgColor | white |
---|
borderWidth | 1 |
---|
titleBGColor | #ddccff |
---|
borderStyle | solid |
---|
title | New Feature |
---|
|
This is a new feature in Joget DX 8 |
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. |
reportLinkTo retrieve the particular report based on the reportId. To know more about Report Builder, see here. | The uiListCount hash variable is primarily utilized to retrieve the Datalist or Inbox menu count value. |
Attributes | - #uiListCount.MENU_ID#
- #uiListCount.UI_ID.MENU_ID#
|
Attributes | #reportLink.rp_report01# |
Scope of Use | - All components within the App except UI Permission.
Warning |
---|
uiListCount cannot be used inside UI permission. This is due to: 1. |
|
Sample Attributes | - #reportLink.financialReport#
|
Code Builder Hash Variable
...
To retrieve the template based on the code snippet ID.
...
...
- All components within the App.
...
- #code.cs-calculationScript#
uiListCount Hash Variable
Panel |
---|
borderColor | purple |
---|
bgColor | white |
---|
borderWidth | 1 |
---|
titleBGColor | #ddccff |
---|
borderStyle | solid |
---|
title | New Feature |
---|
|
This is a new feature in Joget DX 8. |
...
The uiListCount hash variable is primarily utilized to retrieve the Datalist or Inbox menu count value.
...
- #uiListCount.MENU_ID#
- #uiListCount.UI_ID.MENU_ID#
...
- All components within the App except UI Permission.
Warning |
---|
uiListCount cannot be used inside UI permission. This is due to: 1. UI permission contains a uiListCount hash variable 2. uiListCount Hash requires UI to load to get the count 3. In order to load the UI design, the UI permission will be called. It goes back to step 1. (Will cause an infinite recursion that eventually returns a StackOverflow exception error : ERROR 15 May 2024 09:27:20 org.apache.jsp.WEB_002dINF.jsp.error500_jsp - Handler dispatch failed; nested exception is java.lang.StackOverflowError2org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.StackOverflowError Caused by: java.lang.StackOverflowError |
UI permission contains a uiListCount hash variable 2. uiListCount Hash requires UI to load to get the count 3. In order to load the UI design, the UI permission will be called. It goes back to step 1. (Will cause an infinite recursion that eventually returns a StackOverflow exception error : ERROR 15 May 2024 09:27:20 org.apache.jsp.WEB_002dINF.jsp.error500_jsp - Handler dispatch failed; nested exception is java.lang.StackOverflowError2org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.StackOverflowError Caused by: java.lang.StackOverflowError |
|
Sample Attributes | See examples below, based on the usage within the default CRM application: - #uiListCount.MENU_ID# where MENU_ID is the id of the menu in your Userview for Datalist or Inbox (Example usage: "#uiListCount.proposal_inbox_list#")
- #uiListCount.UI_ID.MENU_ID# where UI_ID is the id of the Userview (Example usage: "#uiListCount.crm_userview_sales.proposal_inbox_list#")
|
Escape Format Hash Variable
Panel |
---|
borderColor | purple |
---|
bgColor | white |
---|
borderWidth | 1 |
---|
titleBGColor | #ddccff |
---|
borderStyle | solid |
---|
title | New Feature |
---|
|
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. Info |
---|
This hash variable can be use on any variable that have decimal values. |
|
Attributes | - #variable.variableName?decimal(decimal_number)#
- #appVariable.keyName?decimal(decimal_number)#
- #envVariable.keyName?decimal(decimal_number)#
|
Scope of Use | - All components within the App.
|
Sample Attributes | - #appVariable.double1?decimal(1)# (Example usage for 1 decimal places using app variable)
- #appVariable.double2?decimal(2)# (Example usage for 2 decimal places using app variable)
- #envVariable.double1?decimal(1)# (Example usage for 1 decimal places using environment variable)
- #envVariable.double2?decimal(2)# (Example usage for 2 decimal places using environment variable)
|
Stats Hash Variable
Name | Description |
---|
Prefix | stats |
Description | Display various Joget system and app statistics. |
Attributes | #stats.transactionCount# #stats.slowTrace# #stats.errorCount# #stats.runningProcess# #stats.completedProcess# #stats.responseTimesCheck# #stats.memoryUsageCheck# #stats.cpuUsageCheck# #stats.dbConnectionsCheck# #stats.errorRateCHeck# #stats.nodeCount# #stats.publishedAppCount# #stats.unPublishedAppCount# #stats.user.active# #stats.user.inactive# #stats.user.total# #stats.appList# #stats.app.total# #stats.form.countPerApp# #stats.form.total# #stats.errorRateCheck# #stats.list.countPerApp# #stats.list.total# #stats.UI.countPerApp# #stats.UI.total# #statsgroupList.# #stats.group.count# #stats.group.countPerGroup# #stats.group.total#
|
Scope of Use | - All components within the App.
|
Sample Attributes | |
...
See examples below, based on the usage within the default CRM application:
- #uiListCount.MENU_ID# where MENU_ID is the id of the menu in your Userview for Datalist or Inbox (Example usage: "#uiListCount.proposal_inbox_list#")
- #uiListCount.UI_ID.MENU_ID# where UI_ID is the id of the Userview (Example usage: "#uiListCount.crm_userview_sales.proposal_inbox_list#")
Escape Format Hash Variable
Panel |
---|
borderColor | purple |
---|
bgColor | white |
---|
borderWidth | 1 |
---|
titleBGColor | #ddccff |
---|
borderStyle | solid |
---|
title | New Feature |
---|
|
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. Info |
---|
This hash variable can be use on any variable that have decimal values. |
|
Attributes | - #variable.variableName?decimal(decimal_number)#
- #appVariable.keyName?decimal(decimal_number)#
- #envVariable.keyName?decimal(decimal_number)#
|
Scope of Use | - All components within the App.
|
Sample Attributes | - #appVariable.double1?decimal(1)# (Example usage for 1 decimal places using app variable)
- #appVariable.double2?decimal(2)# (Example usage for 2 decimal places using app variable)
- #envVariable.double1?decimal(1)# (Example usage for 1 decimal places using environment variable)
- #envVariable.double2?decimal(2)# (Example usage for 2 decimal places using environment variable)
|
Hash Variables In Joget Marketplace
...
Download Demo App
View file |
---|
name | APP_kb_dx8_hash_variable_demo_dx8_kb.jwa |
---|
height | 150 |
---|
|