Staffware Evaluation Results

Evaluation results for Staffware Process Suite version 10 against the workflow control-flow patterns

Pattern

Rating

Motivation

Sequence + Directly supported by arcs (drawn as lines from left to right) connecting steps.
Parallel Split + Supported through a step construct that has multiple outgoing arcs.
Synchronization + Supported through the wait step construct. Note that the wait step has one preceding step (solid line) and possibly multiple steps it is waiting for (dashed lines). The difference between the preceding step and the steps it is waiting for becomes only visible in a loop situation. In a loop the wait step only waits for the preceding step (solid line) and no longer has to wait for the other steps. The only way to get a "normal" synchronization is a loop is to explicitly reset the step in a loop using the "SETSETSTATUS" function.
Exclusive Choice + Supported through the condition construct modeling a binary decision. The decision is evaluated using a Boolean function and has only one or two outgoing arcs.

Simple Merge

+ Supported through a step construct that has multiple input arcs. Also a router can be used to model such a join. Note that Staffware only merges flows that are safe, i.e., if multiple triggers arrive at a step, only one trigger is retained.
Multi-Choice - Not supported. The condition construct can only model a binary decision.
Structured Synchronizing Merge - Not supported. The wait step synchronizes flows and all other steps get enabled after receiving the first trigger.
Multi-Merge - Not supported. It is not possible to trigger a step twice. Where this occurs, the second thread cancels the first twice.
Structured Discriminator - Not supported.
Arbitrary Cycles + In general, unstructured loops are supported although there are some syntactical limitations.
Implicit Termination + Directly supported. A workflow case terminates if all of its branches have terminated. A stop symbol can be used to indicate the end of each branch.
Multiple Instances without Synchronization + Staffware supported static and dynamic subprocedure steps. The static subprocedure step is simply a step corresponding to a subprocess. When Staffware processes a dynamic sub-procedure step, it looks at the array field that has been defined for the sub-procedures to start. This array field may contain no data (i.e. no sub-procedures need to be started) or multiple data elements (i.e. multiple sub-procedures need to be started) concurrently
Multiple Instances with a Priori Design-Time Knowledge + Supported using the dynamic subprocedure step.
Multiple Instances with a Priori Run-Time Knowledge + Supported using the dynamic subprocedure step.
Multiple Instances without a Priori Run-Time Knowledge - Not supported. The number of instances is based on the array values at the moment the step is executed and cannot be changed later.
Deferred Choice - Not supported. No state support in the process model. Although there is a workaround based on a parallel split and withdraw actions, it is not safe.
Interleaved Parallel Routing - Not supported. There is no way to interleave steps without specifying an order.
Milestone - Not supported. There is no notion of state.
Cancel Activity + Supported through the withdraw construct, i.e., a line entering a step from above.
Cancel Case - Not directly supported, steps can be called via API calls.
Structured Loop - Not supported. Loops can only be created in the graphical editor.
Recursion + Using the dynamic subprocedure step it is possible to call any procedure. However, it is unclear whether this is inadvertant rather than intended behaviour (i.e. a backdoor).
Transient Trigger + The event step construct allows external signals to trigger steps, cases and also to resume suspended steps.

Persistent Trigger

- Not supported. However, by adding a dummy step, a transient trigger can be made persistent.
Cancel Region - Not supported. Although steps can withdrawn (providing they have not already commenced), it is not possible to specify a region, i.e., a withdraw for each individual step is required and complications may occur in regard to routing elements (e.g., wait steps).
Cancel Multiple Instance Activity + It is possible to withdraw subprocedure steps. However, in this case the sub-procedure is terminated prematurely without transferring any data back.
Complete Multiple Instance Activity - Not supported.
Blocking Discriminator - Not supported. Only the XOR-join and AND-join are possible using normal steps and wait steps respectively.
Cancelling Discriminator - Not supported.
Structured N-out-of-M Join - Not supported.
Blocking N-out-of-M Join - Not supported.
Cancelling N-out-of-M Join - Although simple versions of this pattern (e.g. 1-out-of-2 join) can constructed using withdrawn action, the solution is not safe and does not scale up well to more complex joins.
Generalised AND-Join - Not supported. Although join constructs require triggering on all branches, subsequent triggers received on branches before the join has completed are lost.
Static Partial Join for Multiple Instances - Not supported. The dynamic subprocedure is specified using an array. It is only stopped after a failure or a withdraw of the complete subprocedure. There is no way to pass on control either.
Cancelling Partial Join for Multiple Instances - Not supported.
Dynamic Partial Join for Multiple Instances - Not supported.
Acyclic Synchronizing Merge - Not supported. The concept of a step waiting for all preceding activities to finish when they are optional is not possible in any form.
General Synchronizing Merge - Not supported.
Critical Section - Not supported. Since Staffware always immediately schedules subsequent activities, there is no way of temporarily blocking them. Note that withdrawing a step does not solve the problem.
Interleaved Routing - Not supported. The only way to model this is to enumerate sequences and explicitly select paths through conditions.
Thread Merge - No support for user-specified thread merging. The system automatically merges distinct control threads which reach the same step in a process instance.
Thread Split - No support for user-specified thread merging. The system automatically merges distinct control threads which reach the same step in a process instance.
Explicit Termination - Not supported. A workflow case terminates when all of its branches have terminated.

Evaluation results for Staffware Process Suite version 9 against the workflow resource patterns

Pattern

Rating

Motivation

Direct Allocation + Directly supported
Role-Based Allocation + Directly supported
Deferred Allocation + Directly supported
Authorisation - Not supported

Seperation of Duties

- Not supported
Case Handling - Not supported
Retain Familiar - Not supported
Capability Based Allocation - Not supported
History Based Allocation - Not supported
Organisational Allocation +/- Partial support for roles and groups
Automatic Execution + Directly supported via automatic steps
Distribution by Offer - Single Resource - Not supported
Distribution by Offer - Multiple Resources + Directly supported for group queues.
Distribution by Allocation - Single Resource + Directly supported where a single resource is identified during resource selection for a work item.
Random Allocation - Not supported
Round Robin Allocation - Not supported
Shortest Queue - Not supported
Early Distribution - Not supported
Distribution on Enablement + Directly supported as standard means of work item distribution
Late Distribution - Not supported
Resource-Initiated Allocation - Not supported
Resource-Initated Execution - Allocated Work Item + Directly supported as a standard consequence of starting an item on a work queue.
Resource-Initiated Execution - Offered Work Item + Directly supported for group queues

System Determined Work Queue Content

+ Directly supported with work items ordered by priority
Resource-Determined Work Queue Content + Directly supported through resource-specific work queue customisation and filtering
Selection Autonomy + Directly supported as the standard means for a resource to select the next work item
Delegation + Directly supported through task forwarding
Escalation + Directly supported through withdraw actions and re-allocating another instance of the same task
Deallocation - Not supported
Stateful Reallocation +/- Only supported for pending (not started) activities
Stateless Reallocation - Not supported
Suspension/Resumption +/- Supported for activities that have forms associated with them
Skip - Not supported
Redo - Not supported
Pre-Do - Not supported
Commencement on Creation - Not supported
Commencement on Allocation - Not supported
Piled Execution - Not supported
Chained Execution - Not supported
Configurable Unallocated Work Item Visibility - Not supported
Configurable Allocated Work Item Visibility - Not supported
Simultaneous Execution + Directly supported. All resources can execute multiple activities simultaneously.
Additional Resources - Not supported

Evaluation results for Staffware Process Suite version 9 against the workflow data patterns

Pattern

Rating

Motivation

Task Data - Not supported
Block Data + Directly supported - each (sub)procedure can maintain a distinct set of data fields
Scope Data - Not supported
Multiple Instance Data +/- Only scenerio supported is multiple task triggering but there is not direct means of ensuring data independence of each invocation
Case Data +/- Main workflow procedure can maintain data fields for each case but they must be explicitly passed to sub-workflows
Folder Data - Not supported
Workflow Data + Supported through tables and lists
Environment Data + Supported through script functions and Automatic Steps
Task to Task + Data interaction between tasks is based on use of common block-level data fields
Block Task to SubWorkflow Decomposition + Indirectly supported via field mappings
SubWorkflow Decomposition to Block Task + Indirectly supported via field mappings
To Multiple Instance Task - Multiple instance tasks not supported
From Multiple Instance Task - Multiple instance tasks not supported
Case to Case +/- Achievable via script functions
Task to Environment - Push-Oriented + Directly supported via Automatic Steps and script functions
Environment to Task - Pull-Oriented + Directly supported via Automatic Steps and script functions
Environment to Task - Push-Oriented +/- Indirectly supported by Event Steps
Task to Environment - Pull-Oriented +/- Indirectly supported by EIS Reports and EIS Case Data extraction facility
Case to Environment - Push-Oriented - Not supported
Environment to Case - Pull-Oriented - Not supported
Environment to Case - Push-Oriented +/- Limited supported for passing parameters at case commencement
Case to Environment - Pull-Oriented - Not supported

Workflow to Environment - Push-Oriented

- Not supported
Environment to Workflow - Pull-Oriented +/- Indirect support for importing tables and lists via the swutil function
Environment to Workflow - Push-Oriented - Not supported
Workflow to Environment - Pull-Oriented + Access to table and field data is supported via the swutil function
Data Transfer by Value - Incoming - Not supported
Data Transfer by Value - Outgoing - Not supported
Data Transfer - Copy In/Copy Out - Not supported
Data Transfer by Reference - Unlocked + Achievable via fields
Data Transfer by Reference - With Lock - Not supported
Data Transformation - Input +/- Supported via form initial function for tasks that have forms
Data Transformation - Output +/- Supported via form release function for tasks that have forms
Task Precondition - Data Existence + Uninitialised fields can be detected via the SW_NA value. Initial scripts can be used to set default values for missing parameters where tasks have forms. Conditional actions can be used to skip tasks where required parameters are missing
Task Precondition - Data Value + Initial scripts can be used to delay invocation depending on parameter values where tasks have forms. Conditional actions can be used to skip tasks where parameter values are not equal to specified values
Task Postcondition - Data Existence +/- Indirectly achievable via validation functions linked to release form commands
Task Postconditon - Data Value +/- Indirectly achievable via validation functions linked to release form commands
Event-Based Task Trigger + Events are directly supported. New workflow cases can also be externally invoked
Data-Based Task Trigger - Not supported
Data-Based Routing +/- Only exclusive choice supported

Evaluation results for Staffware Process Suite version 9 against the workflow exception handling patterns

Pattern

Explanation

Work Item Deadline

OCO-CWC-COM Work items offered to group memebers are not necessarily withdrawn when a deadline expires but a compensating work item can be initiated.
ACA-CWC-COM Work items allocated to a user are not necessarily withdrawn when a deadline expires but a compensating work item can be initiated.
OFF-CWC-COM A withdraw action can be specified for a work item offered to a group when a deadline expires.
AFF-CWC-COM A withdraw action can be specified for a work item allocated to a user when a deadline expires.
SCE-CWC-COM A work item in process can be continued when its deadline expires.

External Trigger

OCO-CWC-COM An event step work item can be triggered by an external signal as a compensation activity. The current work item is unaffected.
ACA-CWC-COM An event step work item can be triggered by an external signal as a compensation activity. The current work item is unaffected.
SCE-CWC-NIL An event step work item can suspend until an external trigger is received.
SCE-CWC-COM An event step work item can be triggered by an external signal as a compensation activity. The current work item is unaffected.