Tasks
BPMN Tasks
Introduction
In your BPMN process, it is the Task objects that actually do the work! Typically, you will start modeling a business process using standard (non-specific) tasks , but then as you develop your model into an executable business process, you will change these to more specific task types that, for example, call APEX pages, run scripts, and send messages. This section describes those task types and links to pages that show how configure each type.
Supported Task Types
1. bpmn:task - Task
This is the standard, generic (or βnoneβ), BPMN task. It has no special behavior when a process is executed.
Typically these are used in the early stages of modeling a business process, but as a project moves towards creating an executable process model, you will convert standard tasks to one of the more specific task types listed below.
2. bpmn:userTask - Calls an APEX Page, an APEX Human Task, or a Simple Form
BPMN user task objects are used for an online task to be performed by a user. This is usually implemented as one (or more) APEX pages in an APEX application. However, you have a choice as to how these pages are implemented. Currently, the following userTask types are implemented:
- APEX Page UserTask. This is a task that you build as a standard page in an APEX application, and then add calls to the Flows for APEX workflow engine using our plugins or your own PL/SQL API calls. More Info
- APEX Human Tasks (APEX Approval Tasks or APEX Action Tasks). This is a task that is implemented using the APEX Human Task functionality, present in APEX v22.1 onwards, where the task is managed by APEX itself. More Info
- APEX Simple Form . This is a new task type created for Flows for APEX v24.1 to collect simple information from the process user, where the information required and presentation requirements are specified in a simple JSON definition, optionally with AI assistence. These can be built without APEX developer skills. More Info]
User tasks are usually assigned to one or more potential users, and can be claimed or reserved by one specific user. The potential and claimed tasks of a user appear in their Task List. Flows for APEX tasks can be combined with other APEX tasks, so that a user has a unified task list.
The userTask type and all of the task settings are configured in the modeler properties panel. For information on how to define all of the settings for user tasks, click the βMore Infoβ links for each task type above.
3. bpmn:scriptTask - Runs a PL/SQL script
A BPMN script task runs a user supplied PL/SQL function. Good practice would be to have this call an existing procedure or package, which implements your application logic. More Info
4. bpmn:serviceTask - for running external services
Currently BPMN service tasks can be used to call the following services:
- Calling Generative AI Services via APEX AI. π More Info
- Sending Mail defined declaratively in your process model.
- Sending Mail using an APEX_MAIL template.
- Running a PL/SQL script to call any other service, using custom PL/SQL. More Info
π‘ Tip: Do I use a PL/SQL Script Task or a PL/SQL Service Task?
While the underlying implementation is shared, generally you should use a Script Task when the task is just implemented locally by a script, whereas a BPMN Service Task uses some external service to perform the task.
5. bpmn:manualTasks - for non-IT tasks
BPMN manual tasks do not currently have any special functionality and currently behave like a standard (none) bpmn:task object.
6. bpmn:businessRuleTask - for automated decision making
Currently a BPMN business rule task can be used for the following services:
- Running a PL/SQL script to run your own businessRuleTask, including to call AI / ML services inside your Oracle database. More Info
7. bpmn:sendTask - for sending a message to another process instance
The BPMN send task is used for sending a message to another process using BPMN messageFlow. These messages can be used to start, stop, or synchronize process steps across processes, and can also be used to send information as a payload
to another process.
Flows for APEX messageFlow uses a standard message format to communicate between processes, which is described in detail here. Messages can be sent using either send tasks or message throw events, and can be received or caught by receive tasks or message catch events.
For information on configuring the messaging properties of send or receive tasks, see the documentation for message events.
If you decide not to use the declarative Basic APEX Message
format that is built into these activity and event types, you can use sendTask to run your own PL/SQL script to send a message - but this is only supported on SendTask (not receiveTask or the throw and catch message events). More Info
8 bpmn:receiveTask - for receiving a message from another process instance.
A BPMN receive task is configured to wait to receive a Basic APEX Message
formatted messageFlow, and then on receipt, progress a workflow. Optionally, a message payload can be included to send information between the processes. More information about MessageFlow, see here.
For information on configuring the messaging properties of send or receive tasks, see the documentation for message events.