These are settings formats, listed by Data Type, that can be specified as conditional expressions when you set the Split condition based on the entered content of Data Items. Not only can you specify whether or not to enter a value and compare it with a fixed value, but you can also specify a conditional expression to be compared with the entered content of other Data Items.
It is also possible to specify conditional expressions that use EL. You can define arbitrary split conditional expressions using Workflow Variables and Data Items.
1. Conditional Expressions for each Data-type
Title/String-type (Text Box single line/multiple lines)
Determine by presence or absence of input data, or the entered character string
- Value has been entered
- Value has not been entered
- Equal to [any string / other Data Item (String-type)]
- Not equal to [any string / other Data Item (String-type)]
- Include [any string / other Data Item (String-type)]
- Begin with [any string / other Data Item (String-type)]
- End at [any string / other Data Item (String-type)]
- Matches the [any regular expression]
Numeric-type
Determine by presence or absence of input data, or the magnitude of entered numerical value
- Value has been entered
- Value has not been entered
- Equal to [any numeric / other Data Item (Numeric-type)]
- Not equal to [any numeric / other Data Item (Numeric-type)]
- Equal or less than [any numeric / other Data Item (Numeric-type)]
- Less than [any numeric / other Data Item (Numeric-type)]
- Equal or more than [any numeric / other Data Item (Numeric-type)]
- More than [any numeric / other Data Item (Numeric-type)]
Select-type (Radio Button/Select Box/Search Select Box)
Determine by presence or absence of input data, or input choice is equal or not to [any choice]
- Value has been entered
- Value has not been
- Equal to [any choice]
- Not equal to [any choice]
- entered
* 'Value of choice' is input to [any choice] as characters when the choices are defined in "Specify choice via HTTP" or "Specify by String-type Data Item"
Select-type (Check Box)
Determine by presence or absence of input data, or [any choice] is included or not in the choice entered
- Value has been entered
- Value has not been entered
- Equal to [any choice]
- Not equal to [any choice]
- [any choice] is included in selected
- [any choice] is not included in selected
* 'Value of choice' is input to [any choice] as characters when the choices are defined in "Specify choice via HTTP" or "Specify by String-type Data Item"
Date-type (Y/M/D)
Determine by presence or absence of input data, and comparison with other Data Item
- Value has been entered
- Value has not been entered
- Equal to [other Data Item (Date-type)]
- Not equal to [other Data Item (Date-type)]
- Before [other Data Item (Date-type)]
- After [other Data Item (Date-type)]
Date-type (Y/M, M/D, Y)
Determine by presence or absence of input data
- Value has been entered
- Value has not been entered
DateTime type
Determine by presence or absence of input data, and comparison with other Data Item
- Value has been entered
- Value has not been entered
- Equal to [other Data Item (Date-type)]
- Not equal to [other Data Item (Date-type)]
- Before [other Data Item (Date-type)]
- After [other Data Item (Date-type)]
User-type
Determine by presence or absence of input data, and comparison with other Data Item
- Value has been entered
- Value has not been entered
- Equal to [any User / other Data Item (User-type) / Process Start User]
- Not equal to [any User / other Data Item (User-type) / Process Start User]
- The member of the organization of [any Organization / other Data Item (Organization-type) / Process Start Organization] in the Position of the following
- [N/A / With Position / No Position / specific Position] - The member of the PARENT organization of [any Organization / other Data Item (Organization-type) / Process Start Organization] in the Position of the following
- [N/A / With Position / No Position / specific Position] - The member of the CHILD organization of [any Organization / other Data Item (Organization-type) / Process Start Organization] in the Position of the following
- [N/A / With Position / No Position / specific Position] - The member of the UPPER organization of [any Organization / other Data Item (Organization-type) / Process Start Organization] in the Position of the following
- [N/A / With Position / No Position / specific Position] - The member of the LOWER organization of [any Organization / other Data Item (Organization-type) / Process Start Organization] in the Position of the following
- [N/A / With Position / No Position / specific Position] - The member of [specific Role]
Organization-type
Determine by presence or absence of input data, and comparison with other Data Item
- Value has been entered
- Value has not been entered
- Equal to [any Organization / other Data Item (Organization-type) / Process Start Organization]
- Not equal to [any Organization / other Data Item (Organization-type) / Process Start Organization]
- The PARENT organization of [any Organization / other Data Item (Organization-type) / Process Start Organization]
- The CHILD organization of [any Organization / other Data Item (Organization-type) / Process Start Organization]
- The UPPER organization of [any Organization / other Data Item (Organization-type) / Process Start Organization]
- The LOWER organization of [any Organization / other Data Item (Organization-type) / Process Start Organization]
File-type
Determine by presence or absence of input data, or the character string of the file name
- Value has been entered
- Value has not been entered
- Include [any string] in the file name
Discussion-type
Determine by presence or absence of input data, or the entered character string
- Value has been entered
- Value has not been entered
- Include [any string]
Table-type
Cannot be used for filtering conditions.
Guide Panel-type
Display only. Cannot be used for filtering conditions.
2. Conditional Expressions using EL
It is possible to define arbitrary split conditional expressions using EL.
If the conditional expression evaluates as true, the Process will proceed to the specified transition destination. If the evaluation result is false (including an evaluation error or a null result), the Process does not proceed to the specified destination as a conditional mismatch.
2-1. Available values for EL
The following values can be used for EL.
- App and Process information (Process attributes)
- Data items
※ Guide Panel/Discussion-type are not supported - The following items cannot be used as it will result in a validation error.
- System variables: ${var[applicationRoot]}
- Application variables: ${var[param1]}
2-2. Operators available in EL
The following operators can be used in EL.
- Comparison operators
- ==, !=, >, >=, <, <=
- These comparison operators are available also for Numeric-type and Datetime-type Data Items
- The left and right sides of the comparison operators must be of the same type
In particular, please note that comparison between different subtypes (Y/M/D, Y/M, Y, M/D) of Date-types or simple comparison between Date and Datetime-type Data Items will result in false evaluation.
- Arithmetic Operators
- +, -, *, /, %
- Arithmetic operators between String-type Data Items do not work. It is required that at least one or both of them be Numeric-type Data Items
2-3. Conditional expression examples using EL
Conditions Using Workflow Variables
Evaluation Expression | Content of the Expression |
---|---|
processInstanceDebug == true | The debug Process proceeeds to the transition destination specified for debug processes. |
processInstanceTitle == 'The Title.' | The Title of the Process is equal to "The Title". |
processInstanceId <= 20000 | Process ID is less than 20000. |
processInstanceInitQuserName?.startsWith('Jack') == true | The name of the user who started the Process starts with "Jack". |
processInstanceInitQuser?.getId() == 22 | Process Start User's ID is equal to 22 |
processInstanceInitQgroupName?.endsWith('Customer') == true | The name of the Process Start Organization ends with "Customer". |
processInstanceInitQgroup?.getEmail() == 'customer@example.com' | E-mail of the Process Start Organization is equal to "customer@example.com". |
processInstanceStartDatetime?.toString() == #q_datetime?.toString() | Process Start Date and Time is equal to the value of the Datetime-type Data Item 'q_datatime'. |
processInstanceStartDatetime == #q_datetime | [ATTENTION] A simple "==" comparison will return a false result due to the difference in handling of seconds data.
|
processInstanceSequenceNumber >= 10 | The Process sequence number is 10 or more. |
processModelInfoId == 123 | App ID is equal to 123 |
processModelInfoName.contains('Satisfaction') == true | Includes "Satisfaction" in the App name |
Conditions Using Data Items
Evaluation Expression | Content of the Expression |
---|---|
#q_string0?.contains('consultation') == true | The value of the String-type Data Item "q_string0" contains "consultation". |
#q_string0 == null | String-type Data Item "q_string0" is not yet entered. |
#q_string0 != null | A value is entered in the String-type Data Item "q_string0". |
#q_numeric1 <= 999 | The value of the Numeric -type Data Item "q_numeric1" is 999 or less. |
#q_radio2?.get(0)?.value == '3' | The value of the Choice ID of the item selected with the "q_radio2" Select-type (radio button) item is equal to "3". |
#q_checkbox3?.?[value == 'b']?.size() == 1 | An item whose Choice ID is "b" is selected in the Select-type (checkbox) Data Item "q_checkbox3". |
#q_select != null && {‘option value1’, ‘option value’}.contains(#q_select.get(0).value) | Either of the options is selected in the Select-type Data Item (checkbox) |
#q_ymd4 == #q_ymd5 | The value of the Date-type (year, month, day) Data Item "q_ymd4" is equal to the value of "q_ymd5". |
#q_ym6 < #q_ym7 | The value of the Date-type (year and month) Data Item "q_ym6" is smaller than the value of the Data Item "q_ym7". |
#q_datetime8 >= #q_datetime9 | The value of the Datetime-type Data Item "q_datetime8" is greater than or equal to the value of the Data Item "q_datetime9". |
#q_file10 == null | The File-type Data Item "q_file10" has no file attached. |
#q_file10?.size() > 1 | The number of file attachments for File-type Data Item "q_file10" exceeds 1. |
#q_user11?.id == 10 | User's ID of the User-type Data Item "q_user11" is equal to 10. |
#q_user11?.getEmail() == 'SouthPole@example.com' | User's E-mail in the User-type Data Item 'q_user11' is equal to 'SouthPole@example.com'. |
#q_table12?.get(1, 2) == 'Apple' | The value of row 2, column 3 (sub-data item: String-type) of the Table-type Data Item 'q_table12' is equal to 'Apple'. |
#q_organization13?.getId() == 15 | The ID of the organization in the Organization-type Data Item "q_organization13" is equal to 15. |
Appendix
- It is possible to combine multiple conditional items as well as a single condition.
processInstanceInitQuserName?.startsWith('Jack') == true && processInstanceInitQgroup?.getEmail() == 'customer@example.com' && #q_string0?.contains('consultation') == true && #q_radio2?.get(0)?.value == '3' && #q_datetime8 >= #q_datetime9 && #q_organization13?.getId() == 15
- If the result of the operation is null, it will be treated as false and is therefore deprecated.
- In the following description, if "#q_string" is not entered (null) the evaluation result of the EL will also be null, and the operation result of the conditional expression will be false.
(deprecated)
#q_string?.startsWith('test') - To avoid a null evaluation of the EL, the following description is recommended.
#q_string?.startsWith('test') == true
- In the following description, if "#q_string" is not entered (null) the evaluation result of the EL will also be null, and the operation result of the conditional expression will be false.
- Similarly, the "!" operator is also deprecated because it may induce an evaluation error.
- In the following description if "#q_string" is not entered the evaluation result of the EL will be !null, resulting in an evaluation error, and the result of the conditional expression will be false.
(deprecated)
!#q_string?.startsWith('test') - To avoid !null evaluation errors in the EL, the following descriptions are recommended.
#q_string?.startsWith('test') == false
or#q_string?.startsWith('test') != true
- In the following description if "#q_string" is not entered the evaluation result of the EL will be !null, resulting in an evaluation error, and the result of the conditional expression will be false.
- See the following reference page for available Data Item types.
- Data Items
- Guide panel/Discussion-type is not supported.
- For details on how to use EL for each Data Item please refer to the reference below.
Comments
0 comments
Article is closed for comments.