The Activiti engine supports script tasking via Groovy and JavaScript. JavaScript gets executed via the Rhino Engine and Groovy gets executed by the Groovy Engine.
JDK comes with default support for JavaScript. However, to execute Groovy, you need to add the JAR file for the Groovy Engine to the <EI_HOME>/wso2/lib/bps-endorsed
directory and restart the Business Process profile of WSO2 EI to try this sample.
The .bar
file relevant for this sample is OrderDeliveryProcess.bar
found in the <EI_HOME>/samples/business-process/bpmn
directory.
Flow of the sample
In this sample scenario,
- The customer user sends an order request with details such as order name and summary.
- This data is filtered from the script task.
- If the summary field contains ‘local’, the order request will be sent to the 'local delivery' task.
- Finally, the customer user will get a notified task that his order was sent to delivery.
The following code block is the groovy script task used in this sample.
<script> def searchString = 'local' def replacement = 'This is a local request’ def filteredSummary = orderSummary.replaceAll(searchString, replacement) execution.setVariable('orderSummary', filteredSummary) </script>
orderSummary
is the variable that contains the summary value entered by the user in the 'issue order request' task.
Running the sample
- Follow the steps in Deploying BPMN Samples to deploy the sample using the WSO2 BPS management console.
- Login to the BPMN explorer as a customer using the customer/customer credentials.
- Select the PROCESSES tab to view the task in the task list.
- Click the Start button and fill in the form that appears with the order details.
- A task notification will be displayed under the MY TASKS tab, showing which delivery option was taken.