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 |
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 |
Synchronous | Within a transaction, if performed inline, the entry will be released when the transaction is committed. |
Boolean |
Synchronous | Within a transaction, if performed inline, the entry will be reserved when the transaction is committed. |
Category new |
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 |
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 |
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 |
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 |
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 |
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. |