Requirements
Fields:
- ID - This is a unique ID that will be used in the ABAP user exit to determine if the Requirement is true or false.
- Description - This is the friendly name that is shown in the workflow designer when configuring the requirements in Tasks and Task Outcomes.
Requirements are used to control two sets of behavior:
Tasks
Tasks have associated Requirements that will inform the workflow engine whether that task should be executed or not.Example
The Second_Approval task could be configured with a requirement to only execute when the Total is greater than $1,000. This would mean that if the requirement wasn't met, the workflow engine would skip the Second_Approval Task.
IMPORTANT: If you decide to use this recommended configuration, the appropriate positive action on the Second_Approval task should be set with the Default Path option.
Task Outcomes
Task actions have Outcomes. Each outcome can also be configured based on a Requirement. This is an alternative to the above method.Example
In the following example, we have configured the Outcome Tasks for the First_Approval task to either take the user to the Second_Approval or the Complete task. The Requirements have been configured on the Outcome Task to go to the Second_Approval Task if the Total is greater than $1,000 and directly to the Complete phase if the total is Not greater than $1,000.
Determining whether a Requirement is True or False
To determine if a requirement is met or not, the ABAP user exit "Evaluate Task/Outcome Requirements" should be implemented.
An example of how to implement the Value Greater than $1,000 example is shown below. The code checks the Data Model for a Field called TotalAmount and will set the e_required field true of false accordingly. This example is working with the Requirement with ID of VALUEGT1000 but as many requirements as needed can be placed in the CASE block.
Additional function
The parameter I_NODE_ID which indicates the current task being processed/evaluated with the requirement can be used to read the other properties.
Sample below activates the task if the SelectedRole from the data model is the same as the role assigned in the task