Asynchronous and synchronous processing for workflow events
When an item is checked out into a collaboration area, a checkout event is posted to the workflow engine.
When a synchronous checkout is requested, it passes the waitForStatus flag as true to either the checkoutEntry() or checkoutEntries() script operations, or it invokes the checkoutAndWaitForStatus() Java™ API method.
If the checkout is synchronous and is called from a script or import; the event occurs inline, that is, the event is processed by the same thread, rather than occurring on the workflow engine. This process is fast because there is no background processing and assessing status is not required.
The workflow includes an extensive audit trail. Every attribute change at each workflow step for each collaboration area is stored in the database.
Script operation | Synchronous or asynchronous | Comments |
---|---|---|
HashMap
CollaborationArea:: checkOutEntry(Entry entry [, String stepPath] [, boolean waitForStatus]) HashMap CollaborationArea:: checkOutEntries(EntrySet entrySet [, String stepPath] [, boolean waitForStatus]) |
If waitForStatus is omitted, or false, effect is asynchronous. Otherwise the operation is performed synchronous. | Within a single transaction, if performed inline, the entry specified will be checked out when the transaction is committed. If performed asynchronously, at commit, the entry will be in a non-checked out state, but a pending checkout event is created, that when processed by the workflow engine, will result in the entry being checked out. |
Boolean
CollaborationArea:: releaseEntryInStep(Entry entry, String stepPath) |
Synchronous | Within a transaction, if performed inline, the entry will be released when the transaction is committed. |
Boolean
CollaborationArea:: reserveEntryInStep(IEntry entry, String stepPath [, String username]) |
Synchronous | Within a transaction, if performed inline, the entry will be reserved when the transaction is committed. |
Category new
Category(CategoryTree ctr, String path [, String delimiter] [, String primaryKey]) Category CategoryTree:: buildCategory(String path [, String delimiter] [, String primaryKey]) |
Synchronous (when applicable) | When ctr is an instance of a collaboration area, and ctr contains a category that matches the specified category path, this script operation acts to a check out that category. Within a transaction, the checkout (when performed), is performed inline. When the transaction is committed, the category will be in a checked out state. |
void
CollaborationArea:: dropEntries(EntrySet entrySet) void CollaborationArea:: dropEntry(Entry entry) |
Asynchronous | Within a transaction, the drop event is created. When the transaction is committed, the workflow engine processes the event, which causes the entry to be dropped. |
HashMap
CollaborationArea:: moveEntriesToNextStep (EntrySet entrySet, String stepPath, String exitValue) HashMap CollaborationArea:: moveEntryToNextStep (Entry entry, String stepPath, String exitValue) |
Asynchronous | Within a transaction, the event to move the entry is created. When the transaction is committed, the workflow engine processes the event, which causes the entry to be dropped. |
Boolean
CollaborationArea:: moveEntriesToColArea (EntrySet entrySet, String destColAreaName) Boolean CollaborationArea:: moveEntryToColArea (Entry entry, String destColAreaName) |
Asynchronous | Within a transaction, the move event is created. When the transaction is committed, the workflow engine processes the event, which causes the entry to be moved. |
Boolean
CollaborationArea:: publishEntriesToSrc Container (EntrySet entrySet) |
Asynchronous | Within a transaction, the interim checkin event is created. When the transaction is committed, the workflow engine processes the event, which causes the entry being copied into the source container. |
Boolean
CollaborationArea:: addEntryIntoColArea (Entry entry, String stepPath) |
Synchronous | Within a transaction, the specified entry will be added to the collaboration area. The addEntryIntoColArea script operation starts the BeginStep event for the entry that is added to the collaboration area. When the transaction is committed, the workflow engine will process the event. |