These are configuration formats for the output of strings via EL syntax. The formats are available for assigning values to String-type Data Items in Update Data steps, for setting up an email message in Throwing Message Intermediate Event (Email), and for settings values for each Task.
You can use fixed values, data references, and App/Process reference information to assign values to String-type Data Items. You can also use formatting functions to specify the output format, and functions to calculate JSON/XML escapes and hash values.
This section introduces the basic structure of EL expressions and how to write them. For a detailed specification of the EL expressions available in Questetra and corresponding examples, please refer to: R2275: Outputting as a String Using EL Expressions (Advanced).
BPMN Icon: [Update Data], [Throw Message Intermediate Event (Email)], etc.
Workflow Variables
Workflow Platform
Application Root URL (System Constant)
| Format | Assigned value |
|---|---|
| ${var[applicationRoot]} | https://example.questetra.net/ |
App
App ID
| Format | Assigned value |
|---|---|
| #{processModelInfoId} | 12 |
App Name
| Format | Assigned value |
|---|---|
| #{processModelInfoName} | Inquiry-handling flow |
Process
Process ID
| Format | Assigned value |
|---|---|
| #{processInstanceId} | 12345 |
| p#{processInstanceId} | p12345 |
| #{#sformat('%d', processInstanceId)} | 12345 |
| #{#sformat('%04d', processInstanceId)} | 12345 |
| #{#sformat('%06d', processInstanceId)} | 012345 |
Process Sequence Number (Application variable)
| Format | Assigned value |
|---|---|
| #{processInstanceSequenceNumber} | 67890 |
| #{#sformat('%06d', processInstanceSequenceNumber)} | 067890 |
| xyz#{#sformat('%06d', processInstanceSequenceNumber)} | xyz067890 |
Process Start Time
| Format | Assigned value |
|---|---|
| #{processInstanceStartDatetime} | 2020-03-14 09:45:00 |
| #{#dateFormatter.format('dd.MM.yyyy HH:mm (E) Z', processInstanceStartDatetime)} | 14.03.2020 09:45 (Wed) -0500 |
| #{#dateFormatter.format('M.yy', processInstanceStartDatetime)} | 3.14 |
Process Start User
| Format | Assigned value |
|---|---|
| #{processInstanceInitQuserName} | SUZUKI Ichiro |
| #{processInstanceInitQuser?.getEmail()} | suzuki@example.com |
Process Start Organization
| Format | Assigned value |
|---|---|
| #{processInstanceInitQgroupName} | Sales |
| #{processInstanceInitQgroup?.getEmail()} | sales@example.com |
Parent Process ID
| Format | Assigned value |
|---|---|
| #{parentProcessInstanceId} | 1234 |
- Can be used in a Process started from [Message Start Event (HTTP)] by an HTTP request sent from the same workflow platform.
Data Items
String-type
| Format | Assigned Value |
|---|---|
| #{#q_string} | ABC, def |
Numeric-type
| Format | Assigned value |
|---|---|
| #{#q_numeric} | 12,345.67 |
| #{#sformat("%1.1f", #q_numeric)} | 12345.7 |
| #{#sformat("%1.1f", #q_numeric - 45)} | 12300.7 |
- Decimal point notation is output according to the Data Item setting.
- Prefix / suffix characters are not output.
- It is also possible to set to output the calculation result.
Select-type
| Format | Assigned value |
|---|---|
| #{#q_select_radio} | Brazil |
| #{#q_select_radio?.![value]} | br (selected choice ID) |
| #{#q_select_check} | Japan, Brazil (display labels of the selections) |
| #{#q_select_check?.![value]} | ja, br (selected choice IDs) |
| #{#q_select_check?.get(1)} | Brazil (the second choice label) |
| #{#q_select_check?.get(0)?.value} | ja (the first choice ID) |
- When multiple choices are checked, the delimiter is "," (comma).
Date/Datetime-type
| Format | Assigned value |
|---|---|
| #{#q_date} | 2020-03-14 (Date-type Y/M/D) (2020-03 (Y/M)) (2020 (Y)) (03-14 (M/D)) |
| #{#q_datetime} | 2020-03-14 23:45 (Datetime-type) |
| #{#q_datetime.addDays(#q_num.intValue())} | 2020-03-24 23:45 (Add days of the value of Numeric-type Data Item) |
| #{#dateFormatter.format('dd mm, yyyy', #q_datetime)} | 14 03, 2020 |
- Follows the sub-type settings in the Data Item
File-type
| Format | Assigned value |
|---|---|
| #{#q_file} | (List of file names) |
| #{#q_file?.![contentType]} | (List of Content-Types) |
| #{#q_file?.get(0)?.getCharset()} | (Value of charset part of Content-Type of the first file) |
| #{#q_file?.get(1)?.length} | (Size of the second file) |
- Comma-delimited if multiple
User-type
| Format | Assigned value |
|---|---|
| #{#q_user} | SUZUKI Ichiro <suzuki@example.com> |
| #{#q_user?.name} or #{#q_user?.getName()} |
SUZUKI Ichiro |
| #{#q_user?.id} or #{#q_user?.getId()} |
13 |
| #{#q_user?.email} or #{#q_user?.getEmail()} |
suzuki@example.com |
| #{#q_quser?.isDeletedInFuture()} | true/false (With or without [Will be deleted in the future] flag) |
Organization-type
| Format | Assigned value |
|---|---|
| #{#q_org} | Sales <sales@example.com> |
| #{#q_org?.name} or #{#q_org?.getName()} |
Sales |
| #{#q_org?.id} or #{#q_org?.getId()} |
5 |
| #{#q_org?.email} or #{#q_org?.getEmail()} |
sales@example.com |
| #{#q_org?.isDeletedInFuture()} | true/false (With or without [Will be deleted in the future] flag) |
Table-type
| Format | Assigned value |
|---|---|
| #{#q_table} | 2 row(s) |
| #q_table.summary['price'] | 2.25 |
| #{#q_table?.get(0, 2)} | Cash |
| #{#q_table?.getObject(0, 2)?.getDisplay()} | Cash |
| #{#q_table?.getObject(0, 'kind')?.display} | Travel Fee |
| #{#q_table?.rows?.![#this['name'] + '|' + #this['price']]} | Orange|1.00, Apple|1.25 |
Discussion-type (text)
| Format | Assigned value |
|---|---|
| #{#q_discussion} |
------- [2020-02-07 13:29] <NAKAMURA Haruko> (Assigning to single-line will result in an error) |
Discussion-type (Markdown) (v18.0 and later)
| Format | Assigned value |
|---|---|
| #{#q_discussion_md} |
------- [2020-02-07 13:29] <NAKAMURA Haruko> Heading 3
(The embedded value is Markdown text (raw text). Assigning it to a single line will result in an error.) |
Guide Panel-type
| n/a | (Display only) |
Notes
- The Expression Language used for the variable is based on the implementation of SpEL (Spring Expression Language)
- Formats with multiple variables can be set to String-type Data
- E.g. If you set "Process ID is #{processInstanceId}. Process Sequence number is #{processInstanceSequenceNumber}", the values "Process ID is 12345. Process Sequence number is 67890" will be assigned
- If there is a conflict, such multiple lines of data being assigned to a single-line String-type Data Item, it will result in an error
- If you do not set anything in the format settings, a blank will be assigned (data will be deleted)
- '%04d' (decimal notation plus 4 Digit zero (0)Padding) is processing to add a leading zero to make it 4 characters long