Claims
- 1. A method comprising:
specifying a task set including workflow tasks; specifying a constraint set including constraints that specify how the tasks within the task set may be implemented with respect to one another, to thereby define valid subsets of the task set, wherein the constraint set ensures that each task may be implemented in at least one valid subset; initiating a workflow that requires at least one of the tasks; assembling a subset of the tasks, the subset matching one of the valid subsets; and implementing the subset within the workflow.
- 2. The method of claim 1 wherein specifying the constraint set comprises determining a minimized specification of the constraint set.
- 3. The method of claim 2 wherein determining the minimized specification comprises removing redundant constraints from the constraint set.
- 4. The method of claim 2 wherein determining the minimized specification comprises reducing elements of the constraint specification based on transitivities associated with the constraints.
- 5. The method of claim 2 wherein determining the minimized specification comprises removing a conflict between the constraints.
- 6. The method of claim 5 wherein removing the conflict comprises:
translating the tasks and constraints into a graph; and traversing the graph to determine a conflict-free constraint specification.
- 7. The method of claim 6 wherein translating the tasks and constraints comprises translating the tasks and constraints into a directed, acyclic graph.
- 8. The method of claim 5 wherein removing the conflict comprises:
forming truth tables, each truth table associated with one of the constraints; and removing the conflict based on the truth tables.
- 9. The method of claim 1 wherein specifying the constraint set comprises accepting user input for removing a conflict between two constraints within the constraint set.
- 10. The method of claim 1 wherein specifying the constraint set comprises specifying a structural constraint that imposes a restriction on how tasks are included within the valid subsets.
- 11. The method of claim 1 wherein specifying the constraint set comprises specifying a containment constraint that specifies conditions under which tasks are included within the valid subsets.
- 12. The method of claim 1 wherein assembling the subset of the tasks comprises:
outputting the tasks for display to a user; and accepting input identifying a selected task from the user for inclusion in the subset.
- 13. The method of claim 12 further comprising:
determining a reduced task set, based on the selected task and the constraints; outputting the reduced task set for display to the user; and accepting input identifying a second selected task from the user for inclusion in the subset.
- 14. The method of claim 1 wherein assembling the subset of the tasks comprises validating the subset, based on the constraints, to ensure that the subset matches one of the valid subsets.
- 15. A system comprising:
a process modeling tool operable to create a workflow process model, the process model including a configurable task set that includes tasks and constraints that define relationships between the tasks; a constraints validation engine operable to validate the tasks and the constraints such that each of the tasks are includable in at least one task subset without violating any of the constraints; and a workflow engine operable to copy the process model to thereby create an open instance, and further operable to activate the configurable task set during execution of the open instance, and to thereby compile and execute an instance template including a selected task subset of the tasks.
- 16. The system of claim 15 wherein the constraints validation engine is further operable to validate the instance template for conformance with the constraints.
- 17. The system of claim 15 wherein the workflow engine is operable to activate the configurable task set by outputting the tasks for display to a user, and is further operable to accept the selected task subset from the user.
- 18. The system of claim 17 wherein the workflow engine is operable to progressively accept the selected task subset from the user by outputting a revised task set for display to the user after accepting a selected task by the user.
- 19. The system of claim 18 wherein the constraints validation engine is operable to validate the revised task set based on the constraints.
- 20. The system of claim 15 wherein the constraints include a structural constraint that imposes a restriction on how tasks are included within the instance template.
- 21. The system of claim 15 wherein the constraints include a containment constraint that specifies conditions under which tasks are included within the instance template.
- 22. The system of claim 15 wherein the constraints validation engine is operable to provide a minimized specification of the constraints.
- 23. The system of claim 22 wherein the constraints validation engine provides the minimized specification based on a redundancy and a transitivity associated with the constraints.
- 24. The system of claim 22 wherein the constraints validation engine provides the minimized specification by removing conflicts between the constraints, based on user input.
- 25. The system of claim 15 wherein the process model includes a pre-configured workflow portion having pre-defined tasks and task relationships, in addition to the configurable task set.
- 26. The system of claim 15 further comprising a worklist manager operable to communicate with the workflow engine and thereby disseminate task information related to the instance template to workitem performers.
- 27. An apparatus comprising a storage medium having instructions stored thereon, the instructions including:
a first code segment for initiating execution of a workflow; a second code segment for encountering a build activity within the workflow that represents a sub-goal of the workflow, the build activity including both tasks and constraints that specify how subsets of the tasks may be compiled to form a control flow for achieving the sub-goal; a third code segment for outputting the tasks for viewing by a user on a display device; a fourth code segment for accepting a selected task that is selected from the tasks by the user; a fifth code segment for determining a reduced set of the tasks based on the selected task and the constraints; a sixth code segment for outputting the reduced set for viewing by the user; a seventh code segment for accepting a second selected task that is selected by the user from the reduced set; an eighth code segment for including the selected task and the second selected task within a sub-workflow; and a ninth code segment for replacing the build activity with the sub-workflow for implementation within the workflow.
- 28. The apparatus of claim 27 wherein the second code segment includes a tenth code segment for ensuring that the constraints permit each task to be included within at least one control flow.
- 29. The apparatus of claim 27 wherein the second code segment includes a tenth code segment for providing a minimized specification of the constraints by resolving conflicts between the constraints.
- 30. The apparatus of claim 29 wherein the tenth code segment accepts user input to resolve the conflicts.
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application claims priority to U.S. Application Serial No. 60/438,297, filed on Jan. 7, 2003, and titled FLEXIBLE WORKFLOW MANAGEMENT.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60438297 |
Jan 2003 |
US |