Working with Queues
A Process queue is a database structure that holds work items that are
waiting to be completed for a specific step in the workflow. There are four
types of Process queues:
- User queues hold work items waiting to be processed by a specific
user (workflow participant or Tracker).
- Work queues hold work items that can be completed by any one of a
number of users, rather than by a specific participant, or work items that
can be completed by an automated process.
- System queues hold work items that are undergoing or waiting for
processing by Process Engine services. You will not be using, querying,
or displaying system queues for User Inbox development.
- Component queues hold items for Component Manager use only. Do not
query or display these queues!
As indicated, all work items for a particular step in a workflow reside
in either a User queue or a Work queue. The work items in a queue may be Step
Elements (records consisting of helper data and user-defined parameters),
Work Objects (each work object is a BLOB that consists of system fields,
helper data, and user-defined fields Note that the queue contains the
actual work object BLOB), or Queue Elements (each Queue Element contains
system fields that describe the work item and its state at a point in time).
Queue Elements are normally used for display purposes. For example, to enable
a user to query a queue and display a list of work items in that queue, you
would typically customize the User Inbox to query and retrieve that queue's
Queue Elements.
At a minimum, required User Inbox operations on queues include:
- Identifying the User and Work queues which may contain work items for this
workflow user or Tracker. Normally, there are at least three queues: two User
queues and at least one Work queue. Often, a user has access to more than
one Work queue.
- Displaying a list of queues
Displaying these queues so that the user can select which queue's work items
he/she wishes to view.
- Querying Queues and Displaying Query
Results Retrieve the work items by querying the queue that holds
those work items. You can query for VWWorkObjects, VWStepElements, and VWQueueElements.
For User Inboxes, you typically query a queue for Queue Elements (VWQueueElement)
in order to display the work items available in that queue. Normally, the
only circumstance under which you would query for work objects (VWWorkObject)
would be when you need to get all the data and expose those parts you are
interested in. Display the work items retrieved as a result of the query.
Once the work items have been retrieved and displayed, the user can select
a retrieved work item and open it (it will be either a Step assignment or a
Tracker assignment). For information, see Selecting
and Opening a Work Item.