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. |
+ | 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. |
- | 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 |
- | 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 |
+ | 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 |
- | 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. |