You are viewing an old version of this page. View the current version.
Compare with Current
View Page History
« Previous
Version 29
Next »
Introduction
What are 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
- 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.
Nested Hash Variable
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}#
Here's some examples:
#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".
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 - Used to escape regular expression special characters
- json - Used to escape JSON special characters
- javascript - Used to escape Javascript special characters
- html - Used to escape HTML special characters
- xml - Used to escape XML special characters
- java - Used to escape Java special characters
- sql - Used to escape SQL special characters
- url - Used to escape URL special characters
- nl2br - Used to convert new line character to <br> HTML tag
- separator(SEPARATOR_CHARS) - Used to change the default separator ";" to the SEPARATOR_CHARS. eg. ?separator(, ) resulted "abc, def" instead of "abc;def".
#envVariable.script?java#
#envVariable.script?nl2br;json#
#form.table.users?separator(, )#
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
Name | Description |
---|
Prefix | process |
Description | To retrieve information of a workflow process instance. |
Attributes | - #process.recordId#
#process.appId# #process.processId# #process.processDefId# #process.processDefIdWithoutVersion# #process.processName# #process.processVersion# #process.processRequesterId# #process.state# #process.startedTime# #process.limit# #process.due# #process.delay# #process.delayInSeconds# #process.finishTime# #process.timeConsumingFromDateStarted# #process.timeConsumingFromDateStartedInSeconds# #process.activityInst.ACTIVITY_DEF_ID.instanceId# #process.activityInst.ACTIVITY_DEF_ID.name# #process.activityInst.ACTIVITY_DEF_ID.status# #process.activityInst.ACTIVITY_DEF_ID.state# #process.activityInst.ACTIVITY_DEF_ID.type# #process.activityInst.ACTIVITY_DEF_ID.startedTime# #process.activityInst.ACTIVITY_DEF_ID.limit# #process.activityInst.ACTIVITY_DEF_ID.limitInSeconds# #process.activityInst.ACTIVITY_DEF_ID.due# #process.activityInst.ACTIVITY_DEF_ID.delay# #process.activityInst.ACTIVITY_DEF_ID.delayInSeconds# #process.activityInst.ACTIVITY_DEF_ID.finishTime# #process.activityInst.ACTIVITY_DEF_ID.timeConsumingFromDateStarted# #process.activityInst.ACTIVITY_DEF_ID.timeConsumingFromDateStartedInSeconds# #process.activityInst.ACTIVITY_DEF_ID.performer# #process.activityInst.ACTIVITY_DEF_ID.performerUser# #process.activityInst.ACTIVITY_DEF_ID.assignmentUsers#
#process.appId[PROCESS_INSTANCE_ID]# #process.processDefId[PROCESS_INSTANCE_ID]# #process.processDefIdWithoutVersion[PROCESS_INSTANCE_ID]# #process.processName[PROCESS_INSTANCE_ID]# #process.processVersion[PROCESS_INSTANCE_ID]# #process.processRequesterId[PROCESS_INSTANCE_ID]# #process.startedTime[PROCESS_INSTANCE_ID]# #process.limit[PROCESS_INSTANCE_ID]# #process.due[PROCESS_INSTANCE_ID]# #process.delay[PROCESS_INSTANCE_ID]# #process.delayInSeconds[PROCESS_INSTANCE_ID]# #process.finishTime[PROCESS_INSTANCE_ID]# #process.timeConsumingFromDateStarted[PROCESS_INSTANCE_ID]# #process.timeConsumingFromDateStartedInSeconds[PROCESS_INSTANCE_ID]# #process.activityInst.ACTIVITY_DEF_ID.instanceId[PROCESS_INSTANCE_ID]# #process.activityInst.ACTIVITY_DEF_ID.name[PROCESS_INSTANCE_ID]# #process.activityInst.ACTIVITY_DEF_ID.status[PROCESS_INSTANCE_ID]# #process.activityInst.ACTIVITY_DEF_ID.state[PROCESS_INSTANCE_ID]# #process.activityInst.ACTIVITY_DEF_ID.type[PROCESS_INSTANCE_ID]# #process.activityInst.ACTIVITY_DEF_ID.startedTime[PROCESS_INSTANCE_ID]# #process.activityInst.ACTIVITY_DEF_ID.limit[PROCESS_INSTANCE_ID]# #process.activityInst.ACTIVITY_DEF_ID.limitInSeconds[PROCESS_INSTANCE_ID]# #process.activityInst.ACTIVITY_DEF_ID.due[PROCESS_INSTANCE_ID]# #process.activityInst.ACTIVITY_DEF_ID.delay[PROCESS_INSTANCE_ID]# #process.activityInst.ACTIVITY_DEF_ID.delayInSeconds[PROCESS_INSTANCE_ID]# #process.activityInst.ACTIVITY_DEF_ID.finishTime[PROCESS_INSTANCE_ID]# #process.activityInst.ACTIVITY_DEF_ID.timeConsumingFromDateStarted[PROCESS_INSTANCE_ID]# #process.activityInst.ACTIVITY_DEF_ID.timeConsumingFromDateStartedInSeconds[PROCESS_INSTANCE_ID]# #process.activityInst.ACTIVITY_DEF_ID.performer[PROCESS_INSTANCE_ID]# #process.activityInst.ACTIVITY_DEF_ID.performerUser[PROCESS_INSTANCE_ID]# #process.activityInst.ACTIVITY_DEF_ID.assignmentUsers[PROCESS_INSTANCE_ID]#
|
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 performer username of an activity instance of a process instance: #process.activityInst.assign.performerUser[{assingment.processId}]# |
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:- User Meta 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#
|
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. |
Attributes | |
Scope of Use | - All components within the App.
|
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. |
Environment Variable Hash Variable
Name | Description |
---|
Prefix | envVariable |
Description | To retrieve Environment Variable values. |
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}]#
|
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 | - #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]#
|
Scope of Use | - In a Process Tool part of a Process.
- In a Form.
- In a process design.
|
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 | #appDef.appId# #appDef.dateCreated# #appDef.dateModified# #appDef.version# #appDef.license# #appDef.name# #appDef.published#
|
Scope of Use | - All components within the App.
|
Sample Attributes | To display the app definition name: #appDef.name# |
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.
|
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[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 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#
#requestParam.primaryKey# can be used to retrieve the value passed into Ajax Subforms. For example, when a select box is selected, the id value will be passed into the Ajax Subform and you can use the #requestParam.primaryKey# in JDBC SQL Where clause.
|
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#
In Joget Enterprise edition, these additional attributes are available:- User Meta - #user.username.meta.KEY#
To read additional user meta data stored in dir_user_meta table. Example: #user.cat.meta.duration# will return the value "100".
Organization - #user.username.organization.id#
- #user.username.organization.name#
- #user.username.organization.description#
Department - #user.username.department.id#
- #user.username.department.name#
- #user.username.department.description#
Grade - #user.username.grade.id#
- #user.username.grade.name#
- #user.username.grade.description#
- #user.username.grade.organizationId#
HOD - #user.username.hod.username#
- #user.username.hod.firstName#
- #user.username.hod.lastName#
- #user.username.hod.email#
- #user.username.hod.active#
- #user.username.hod.timeZone#
Group - #user.username.groups.id#
- #user.username.groups.name#
Employment - #user.username.employee.code#
- #user.username.employee.jobTitle#
- #user.username.employee.isHod#
Department HOD - #user.username.department.hod.username#
- #user.username.department.hod.firstName#
- #user.username.department.hod.lastName#
- #user.username.department.hod.email#
- #user.username.department.hod.active#
- #user.username.department.hod.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
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 | |
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# , where 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. |
Name | Description |
---|
Prefix | platform |
Description | To retrieve platform specific information. |
Attributes | #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#
In Joget Enterprise edition, these additional attributes are available:- #platform.license.name# #platform.license.holder# #platform.license.users# #platform.license.appLimit# #platform.license.expiry# #platform.license.activated# #platform.systemKey#
|
Scope of Use | - All components within the App.
|
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 | #users.group.GROUP_ID.username# #users.group.GROUP_ID.firstName# #users.group.GROUP_ID.lastName# #users.group.GROUP_ID.fullName# #users.group.GROUP_ID.email#
#users.grade.GRADE_ID.username# #users.grade.GRADE_ID.firstName# #users.grade.GRADE_ID.lastName# #users.grade.GRADE_ID.fullName# #users.grade.GRADE_ID.email#
#users.department.DEPARTMENT_ID.username# #users.department.DEPARTMENT_ID.firstName# #users.department.DEPARTMENT_ID.lastName# #users.department.DEPARTMENT_ID.fullName# #users.department.DEPARTMENT_ID.email#
#users.organization.ORGANIZATION_ID.username# #users.organization.ORGANIZATION_ID.firstName# #users.organization.ORGANIZATION_ID.lastName# #users.organization.ORGANIZATION_ID.fullName# #users.organization.ORGANIZATION_ID.email#
|
Scope of Use | - All components within the App.
|
Sample Attributes | To return all the users in the current user's groups id: |
Bean Shell Hash Variable
Name | Description |
---|
Prefix | beanshell |
Description | Using environment variable to execute bean shell script. Passing parameter using URL query string syntax. |
Attributes | |
Scope of Use | - All components within the App.
|
Sample Attributes | To execute a script stored in "welcome" environment variable with parameter "username" and "dept":
if (username != null && username.length == 1 && !username[0].isEmpty()) {
return "Welcome " + username[0] + " (" + dept[0] + "),";
} else {
return "";
}
- #beanshell.welcome[username={currentUser.username}&dept={currentUser.department.name}]#
|
Related Tutorials | |
Datalist Hash Variable (New in Joget DX)
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 | - #datalist.html.ID#
- #datalist.csv.ID#
- #datalist.html.ID[FILTER_PARAM1=FILTER_VALUE1&FILTER_PARAM2=FILTER_VALUE2]#
- #datalist.csv.ID[FILTER_PARAM1=FILTER_VALUE1&FILTER_PARAM2=FILTER_VALUE2]#
|
Scope of Use | - All components within the App.
|
Sample Attributes | - #datalist.html.myDataList#
- #datalist.csv.ImyDataList#
- #datalist.html.myDataList[name=James&email=james@gmail.com]#
- #datalist.csv.myDataList[name=James&email=james@gmail.com]#
|
Expression Hash Variable (New in Joget DX)
This is a new feature in Joget DX.
Name | Description |
---|
Prefix | {hash variable} |
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?javascript}'.isEmpty()?'empty':'has value'#= empty
String methods Note: Basically most of the String methods can be used, using `?javascript` to escape single quote in value. - #exp.'{envVariable.str1?javascript}' + ' ' + '{envVariable.str2?javascript}'# = Hello World! Using Joget Hash Variables
- #exp.'{envVariable.str1?javascript}'.substring(5)# = World!
- #exp.'{envVariable.str1?javascript}'.toLowerCase()# = hello world!
- #exp.'{envVariable.str1?javascript}'.toUpperCase()# = HELLO WORLD!
- #exp.'{envVariable.str1?javascript}'.replace('world', 'there')# = Hello World!
- #exp.'{envVariable.str1?javascript}'.replaceFirst('[a-z]', '*')# = H*llo World!
- #exp.'{envVariable.str1?javascript}'.replaceAll('[a-z]', '*')# = H**** W****!
- #exp.'{envVariable.str1?javascript}'.charAt(0)# = H
- #exp.'{envVariable.str1?javascript}'.contains('World')# = true
- #exp.'{envVariable.str1?javascript}'.equalsIgnoreCase('{envVariable.str1?javascript}'.toLowerCase())# = true
- #exp.'{envVariable.empty?javascript}'.isEmpty()# = true
- #exp.'{envVariable.str1?javascript}'.indexOf('World')# = 6
- #exp.'{envVariable.str1?javascript}'.lastIndexOf('World')# = 6
- #exp.'{envVariable.str1?javascript}'.startsWith('H')# = true
- #exp.'{envVariable.str1?javascript}'.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 in Joget DX)
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 | - All components within the App.
|
Sample Attributes | - #reportLink.financialReport#
|
Download Demo App
APP_hash_variable_dx_kb.jwa