Oracle Workflow queue APIs can be called by an application program or a workflow function in the runtime phase to handle workflow Advanced Queues processing.
Note: Although these APIs will continue to be supported for backward compatibility, customers using Oracle Workflow Release 12 should use the Business Event System rather than the queue APIs to integrate with Oracle Advanced Queuing.
In Oracle Workflow, an 'outbound' and an 'inbound' queue are established. A package of data on the queue is referred to as an event or a message.
Note: An event in this context is different from the business events associated with the Business Event System, and a message in this context is different from the messages associated with notification activities.
Events are enqueued in the outbound queue for agents to consume and process. These agents may be any application that is external to the database. Similarly an agent may enqueue some message to the inbound queue for the Workflow Engine to consume and process. The outbound and inbound queues facilitate the integration of external activities into your workflow processes.
Note: Background engines use a separate 'deferred' queue.
All Oracle Workflow queue APIs are defined in a PL/SQL package called WF_QUEUE. You must execute these queue APIs from the same Oracle Workflow account since the APIs are account dependent.
Important: In using these APIs, we assume that you have prior knowledge of Oracle Advanced Queuing concepts and terminology. Refer to the Oracle Streams Advanced Queuing User's Guide and Reference for more information on Advanced Queues.
The following APIs are for developers who wish to write to the inbound queue by creating messages in the internal stack rather than using WF_QUEUE.EnqueueInbound(). The internal stack is purely a storage area and you must eventually write each message that you create on the stack to the inbound queue.
Note: For efficient performance, you should periodically write to the inbound queue to prevent the stack from growing too large.
Oracle Workflow queues use the datatype system.wf_payload_t to define the payload for any given message. The payload contains all the information that is required about the event. The following table lists the attributes of system.wf_payload_t.
System.wf_payload_t Attributes
| Attribute Name | Datatype | Description |
|---|---|---|
| ITEMTYPE | VARCHAR2(8) | The item type of the event. |
| ITEMKEY | VARCHAR2(240) | The item key of the event. |
| ACTID | NUMBER | The function activity instance ID. |
| FUNCTION_NAME | VARCHAR2(200) | The name of the function to execute. |
| PARAM_LIST | VARCHAR2(4000) | A list of "value_name=value" pairs. In the inbound scenario, the pairs are passed as item attributes and item attribute values. In the outbound scenario, the pairs are passed as all the attributes and attribute values of the function (activity attributes). |
| RESULT | VARCHAR2(30) | An optional activity completion result. Possible values are determined by the function activity's Result Type or can be an engine standard result. |