Workflow management system
5 claims: 2 independent, 3 dependent
- 1A workflow management system for supporting a business process in which a plurality of work items (28) are processed by a plurality of user objects (24) in accordance with business rules (30), wherein (a) the system includes a plurality of workpool objects (23), responsible for maintaining a plurality of work pools for storing work items (28) waiting to be processed, and (b) each of the user objects (24) contains its own set of business rules (30) specifying how this user object is to handle work item, characterised in that :each one of the business rules (30) associated with a user object comprises a next steps table, containing a set of process steps to be carried out by the user object, the next steps table being indexed by a key formed by combining a current process step number and a current user action identifier.
- 3A workflow management system according to either preceding claim wherein each of the workpool objects (23) has a number of workpool viewer objects (32) associated with it, for allowing respective users to view the work items held in that workpool object and to select one of those work items.
- 4A workflow management system according to Claim 3 wherein, when a work item is selected by a user through a workpool viewer object (32), the workpool viewer object informs the associated workpool object (23), and the workpool object then sends a copy of the selected work item to the user object (24) associated with that user.
Independent claims3
56 paragraphs, as filed
0001This invention relates to workflow management systems.
0002A workflow management system is a computer-implemented system for providing support for business processes. For example, such a system may be used in a manufacturing business, to support the process of handling orders from customers. Typically, such a system maintains a work pool, containing work items (such as customer orders) waiting to be processed, and allows a number of individual users (such as sales, accounts and purchasing personnel) to access the work items in the pool.
0003S.K.Sarin, "Object-oriented workflow technology in InConcert", Proceedings of IEEE COMPCON '96, pages 446-450, describes an object-oriented workflow management system in which a process consists of tasks (the individual units of work that comprise the process), roles (designating the participants that perform the tasks), and references to documents or other data objects that are manipulated by tasks in the process. A Process Manager allows the task structure of a process instance to be modified dynamically.
0004The object of the present invention is to provide a novel workflow management system in which changes to the process definition can be made in a safe and efficient manner.
Summary of the Invention
0005According to the invention there is provided a workflow management system for supporting a business process in which a plurality of work items are processed by a plurality of user objects in accordance with business rules ,wherein <ul id="ul0001" list-style="none" compact="compact"><li>(a) the system includes a plurality of workpool objects, responsible for maintaining a plurality of work pools for storing work items waiting to be processed, and</li><li>(b) each of the user objects contains its own set of business rules specifying how this user object is to handle work items, characterised in that : each one of the business rules associated with a user object comprises a next steps table, containing a set of process steps to be carried out by the user object, the next steps table being indexed by a key formed by combining a current process step number and a current user action identifier.</li></ul>
0006The fact that each of the user objects contains its own set of business rules facilitates the making of changes to the process definition in a safe and efficient manner, even while the system is running, since only those user objects that are affected by the change need be modified.
Brief Description of the Drawings
0007Figure 1 is a block diagram of a computer system incorporating a workflow management system.
0008Figure 2 is a block diagram showing the workflow management system in more detail.
Description of an Embodiment of the Invention
0009One workflow management system in accordance with the invention will now be described by way of example with reference to the accompanying drawings.
0010Figure 1 shows a computer system comprising a server computer 10, and a number of user terminals 11 connected to the server by way of a network 12. The server runs a workflow management system 13, which can access a database 14.
0011The work of the system is divided into units referred to herein as cases, which are processed independently of each other. For example, a case may correspond to a customer order. When a new case is introduced into the system, a data item, referred to herein as a business object, is created in the database. The business object contains all the business data relevant to that case (for example, order number, customer name, quantity, price and so on). The content of business objects may vary, and different business objects may be held in different database tables. A case may have a number of business objects associated with it, logically organised in a tree structure in which each object may have one or more subsidiary (child) objects. For example, a business object representing a customer order may have subsidiary business objects representing associated internal purchase orders.
0012Typically, each case will require a number of operations to be performed on the associated business object, by users or external tools. This is achieved by placing work items in a number of work pools. Each business object may have a number of work items associated with it, allowing a number of operations to be performed on a case in parallel. Users can view the contents of the work pools, and select work items for processing, according to predefined business rules. This processing may, in turn, generate further work items for the work pools.
Workflow management system
0013Figure 2 shows the workflow management system 13 in more detail.
0014The workflow management system comprises a number of active processing objects referred to herein as roles, each of which encapsulates its local data and represents an independent thread of execution. These roles include a SystemAdministrator role 21, an ObjectManager role 22, a number of WorkPool roles 23, a number of WorkPoolUser roles 24, a DBServer role 25, and an Alerts role 26. These various roles may conveniently be built using the role based process technology provided by the ICL Processwise Integrator, as described for example in the following reference: <ul id="ul0002" list-style="none" compact="compact"><li>"The Use of a Persistent Language in the Implementation of a Process Support System"</li><li>R.Mark Greenwood et al.</li><li>ICL Technical Journal, May 1992, page 109.</li></ul>
0015The SystemAdministrator role 21 is responsible for the introduction of users to the system, and for the creation, deletion and modification of the other roles.
0016The ObjectManager role 22 is responsible for managing the business objects. This role holds an internal table 27 containing a number of item records, one for each business object held in the database. Whenever a business object is created, a corresponding item record is also created, for referencing the business object. The item record contains information about the business object in a standard format. The tree structure of the business objects is represented by parent-child links in the corresponding item records. The ObjectManager role also provides a locking mechanism for locking the business objects, so as to allow only one user at a time to update a given object.
0017The WorkPool roles 23 are responsible for maintaining the work pools. One instance of the WorkPool role is created for each work pool in the system. Each WorkPool role instance holds an internal table 28 containing a set of work items, which form the work pool. It also holds an internal table 29, containing details of the users who are assigned to this work pool. For each user, the user table holds the user's full name, login name and password.
0018The WorkPoolUser roles 24 are responsible for processing the work items. One instance of the WorkPoolUser role is created for each user assigned to each work pool. In other words, each WorkPool role has a number of WorkPoolUser roles associated with it, one for each user assigned to that work pool, and each user has one WorkPoolUser role for each work pool that can be accessed by that user. A WorkPoolUser role may be associated with an external application rather than (or as well as) a human operator. Each WorkPoolUser role instance holds a set of business rules tables 30, specifying how this role is to handle work items, including when information about when to pass work to other roles.
0019The DBServer role 25 provides a common point of access to the database 14 for the other roles.
0020The Alerts role 26 handles deadlines for processing work items. It contains an internal table 31. In response to a registerAlert request from a WorkPoolUser role, it creates a record in this internal table, specifying the deadline date and time, and the work item to which the deadline relates. The Alerts role periodically monitors this table, to check whether any deadlines have expired. When a deadline expires, the Alerts role sends a timerEvent call to the appropriate WorkPool role, which in turn calls the appropriate WorkPoolUser role to handle the alert.
0021The system also includes a number of WorkPoolViewer objects 32, one for each user assigned to each work pool. Each WorkPoolViewer object enables a user to access a work pool, to view a list of all the work items currently in that work pool, and to select one of the work items for viewing or for action.
0022The system also includes a number of user agents 33, which provide interfaces between the workflow management system and the respective users.
Item records
0023As mentioned above, the ObjectManager role holds an item record for each business object in the database. The structure of an item record is as follows: <dl id="dl0001" compact="compact"><dt>id</dt><dd>The record identifier. This is the same as the database key of the corresponding business object.</dd><dt>type</dt><dd>The name of the database table in which the business object is held.</dd><dt>partOf</dt><dd>The identifier of the parent item record (if any).</dd><dt>children</dt><dd>A list of the identifiers of all the child item records (if any) for this record.</dd><dt>caseId</dt><dd>The identifier of the topmost parent of this family of item records.</dd><dt>summary</dt><dd>A description field.</dd><dt>workItems</dt><dd>A table of the work items associated with this business object. For each work item, the table contains a copy of the work item, the identity of the work pool in which the item is located, and the work pool type.</dd></dl>
Work items
0024As mentioned above, each WorkPool role holds a number of work items, constituting a work pool. The structure of each work item is as follows: <dl id="dl0002" compact="compact"><dt>id</dt><dd>Identifier. This is a reference, local to the work pool, which identifies the work item.</dd><dt>objID</dt><dd>Object identifier. This is a reference to the corresponding item record.</dd><dt>summary</dt><dd>A copy of the summary field in the corresponding item record.</dd><dt>workType</dt><dd>A copy of the type field in the corresponding item record.</dd><dt>priority</dt><dd>Indicates whether or not the user is required to take action on this work item.</dd><dt>date</dt><dd>Deadline date.</dd><dt>assignedTo</dt><dd>The name of the user to whom the work item is currently assigned.</dd><dt>state</dt><dd>The current state of the work item.</dd></dl>
0025As will be described, the "state" field of a work item determines the operations that are to be performed on it when it is selected by a user.
WorkPoolViewer
0026Whenever a user logs in to the system, that user's WorkPoolViewer sends a message to the associated WorkPool role, requesting it to supply a copy of its work pool. In response to this request, the WorkPool role copies its current set of work items to the WorkPoolViewer, where the items are displayed to the user. The displayed information for each work item is derived from the objID, summary, workType, state, priority, date, and assignedTo fields. As will be described, whenever the WorkPool role changes the content of any work item, it notifies all its associated WorkPoolViewers of the change, so that they can keep their displayed information up to date.
0027The WorkPoolViewer allows the user to select any one of the displayed work items, for example by clicking on the item with a mouse. The user may then either accept the selected work item, or simply request to view it. If the user accepts an item, the WorkPoolViewer sends an "accept" message to the WorkPool role. Alternatively, if the user requests to view an item, the WorkPoolViewer sends an "view" message to the WorkPool role. Both of these messages contain the identity of the selected work item.
WorkPool role
0028When a WorkPool role receives an "accept" message from a WorkPoolViewer, it performs the following operations. The WorkPool role first checks whether the selected work item is available for assignment, i.e. whether the assignedTo field of the work item is empty. If so, the assignedTo field is set to the login name of the user, and the WorkPool role then sends a manageWorkItem request to the WorkPoolUser role for this user. The request contains a copy of the work item, and an "assign" command. The WorkPool role also sends a copy of the updated work item to all its associated WorkPoolViewers, to notify them of this change.
0029If the WorkPool role receives a "view" message from a WorkPoolViewer, it performs the following operations. The WorkPool role sends a manageWorkItem request to WorkPoolUser role, containing a copy of the work item, and a "view" command. In this case the WorkPool role does not check or set the assignedTo field.
0030The WorkPool role can also receive a routeWorkItem request from any of the WorkPoolUser roles, specifying one of the following commands: "add", "replace", "release" and "delete". In response to an "add" command, the WorkPool role creates a new work item with a unique identifier in its internal table, and returns the identifier of the new work item to the calling WorkPoolUser role. In response to a "replace" command, the WorkPool role replaces an identified work item in its internal tables with an updated version of the work item, and sets the assignedTo field of the work item to the empty string. In response to a "release" command, the WorkPool role sets the assignedTo field of an identified work item to the empty string. In response to a "delete" command, the WorkPool role deletes an identified work item from its internal table. In each case, the WorkPool role notifies all the associated WorkPoolViewers of the change. In the case of the "replace", "release" and "delete" commands, if the identified work item is not present, the WorkPool role returns an error message to the caller.
0031The WorkPool role can also receive a timerEvent call from the Alerts role, to notify it that a deadline has expired in relation to a specified work item. In response to this call, the Workpool role locks the specified work item (on behalf of an arbitrarily chosen user), and then sends a manageWorkItem request to the WorkPoolUser role. The request contains the contents of the work item, and an "alert" command. If the identified work item is not present in the work pool, the alert is ignored.
WorkPoolUser role
0032When a WorkPoolUser role receives a manageWorkItem request from a WorkPool role, it performs the following actions.
0033The WorkPoolUser role first calls the ObjectManager role, requesting it fetch and lock the item record identified by the objID field of the work item. If the item record is not locked, the ObjectManager role will lock it and return a copy of the item record, including all the related work items. However, if the item record is already locked, an error message is returned.
0034The WorkPoolUser role then accesses its locally held business rules tables, using the "state" field of the work item as a key, to obtain the following information: <ul id="ul0003" list-style="dash" compact="compact"><li>A form to be displayed to the user.</li><li>An explanatory message for the user.</li><li>An action list for the user to select from.</li></ul>
0035The WorkPoolUser role also calls the DBServer role to fetch business data from the business object referenced by the item record, and also to fetch process data relevant to the current state.
0036The WorkPoolUser role then calls its associated user agent, requesting it to display the form, message and action list, with the data retrieved from the database in appropriate fields of the form. The user may then enter data, update fields, and select actions in the form. The form includes "OK" and "Cancel" buttons. If the user presses the "OK" button, the user agent returns the updated fields to the WorkPoolUser role, along with an "action" field specifying the action selected by the user.
0037When the WorkPoolUser role receives this information, it concatenates the "step" field of the work item with the "action" field returned by the user, to form a key. This key is used to access a nextSteps table in the business rules, so as to obtain a series of process steps to be carried out.
0038Each process step may involve creating a new work item in a target work pool, or replacing or deleting an existing work item in a target work pool. Creating, replacing or deleting a work item is performed by sending a routeWorkItem request containing an "add", "replace" or "delete" command to the appropriate WorkPool role. The target work pool may be the current work pool, or may be another specified work pool. When a work item is created, replaced or deleted, a request also is sent to the ObjectManager role, requesting it to update the list of work items in the corresponding item record. If the process step specifies a deadline for the work item, a registerAlert request is sent to the Alerts role, so as to set up a new deadline.
0039The particular sequence of steps depends on the particular business process being supported by the system. For example, when a work item representing a new sale is processed by a salesperson, the business rules may specify that a further work item, representing an invoicing task, should be created and placed in another work pool for access by an accounts clerk.
0040Finally, any business objects affected are updated by passing the object identifier, type and data table to the DBServer role, and the corresponding item records are updated by calling the ObjectManager role.
0041The WorkPoolUser role is then ready to accept another manageWorkItem request.
0042If permitted by its business rules, a WorkPoolUser role may also allow its user to create a new case, e.g. a salesperson may be permitted to create a new customer order, while an accounts clerk would not.
SystemAdministrator
0043When the workflow management system is installed, the SystemAdministrator role automatically customises the system for the particular business process being supported. The information for customising the system is supplied in a set of configuration files 34 and business rules files 35. The configuration files specify the required work pools and the users that are to be assigned to each of these work pools. The business rules files specify the business rules for the system.
0044The SystemAdministrator role first reads the configuration files, and creates a user agent object 33 for each user. It also creates a WorkPool role 23 for each required work pool, with the names of its users held in its internal table. The WorkPool roles are created as instances of a general WorkPool type.
0045Each WorkPool role instance then calls the SystemAdministrator role 21, requesting it to create a WorkPoolUser role 24 for each of its users. Each WorkPoolUser role is given a copy of the business rules relevant to its part in the behaviour of the overall process. The WorkPoolUser roles are created as instances of a general WorkPoolUser type. A WorkPoolViewer object 32 is also created for each user.
0046The SystemAdministrator role can also be called at any time, by a suitably authorised user, to modify the business rules in any WorkPoolUser role, to create new work pools, to introduce new users to the work pools, or to remove existing users from the work pools. For example, specialised roles can readily be created to cater for special requirements. These actions can be performed dynamically, while the application is running. This ability to dynamically modify the system is a consequence of the fact that each of the WorkPool roles stores its own internal list of users, and each of the WorkPoolUser roles stores its own internal business rules.
1 sheet
Sheet 1
Every citation, both ways
| Document | Relation | Office | Cited during |
|---|---|---|---|
| US7171664B2 | Cited by | United States of America | Applicant |
| WO9429804A | Cites | World Intellectual Property Organization (WIPO) | – |
| SARIN S K: "Object-oriented workflow technology in InConcert" DIGEST OF PAPERS OF THE COMPUTER SOCIETY COMPUTER CONFERENCE COMPCON,US,LOS ALAMITOS, IEEE COMP. SOC. PRESS, vol. CONF. 41, 1996, pages 446-450-450, XP002126042 ISBN: 0-8186-7414-8 | Non-patent | – | – |
| MARSHAK R T: "IBM'S FLOWMARK OBJECT-ORIENTED WORKFLOW FOR MISSION-CRITICAL APPLICATIONS" WORKGROUP COMPUTING REPORT,XX,XX, vol. 17, no. 5, 1 May 1994 (1994-05-01), pages 3-13, XP000568699 ISSN: 1057-8889 | Non-patent | – | – |
| GREENWOOD R M ET AL: "THE USE OF A PERSISTENT LANGUAGE IN THE IMPLEMENTATION OF A PROCESS SUPPORT SYSTEM" ICL TECHNICAL JOURNAL,GB,PETER PERGRINUS LTD. HITCHIN, vol. 8, no. 1, 1 May 1992 (1992-05-01), pages 108-129, XP000300983 | Non-patent | – | – |
5 members in 2 offices
Priority claims4
| Document | Office | Kind | Date |
|---|---|---|---|
| 9720166 | United Kingdom | A | |
| 9720166 | United Kingdom | – | |
| GB19970020166 | – | – | – |
| 9720166 | – | – | – |
Members5
| Document | Office | Kind | |
|---|---|---|---|
| EP0903678A2 | European Patent Office (EPO) | A2 | |
| EP0903678A3 | European Patent Office (EPO) | A3 | |
| EP0903678B1This record | European Patent Office (EPO) | B1 | |
| DE69812517D1 | Germany | D1 | |
| DE69812517T2 | Germany | T2 |
31 legal events, as 4 offices reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | Office | |
|---|---|---|---|
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Notification of lapseLapsedST | ST | FR | |
| Gb: european patent ceased through non-payment of renewal feeCeasedGBPC | GBPC | EP | |
| Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal feeWithdrawnR119 | R119 | DE | |
| Annual fee paid to national office [announced via postgrant information from national office to epo]GrantedPGFP | PGFP | EP | |
| Annual fee paid to national office [announced via postgrant information from national office to epo]GrantedPGFP | PGFP | EP | |
| Annual fee paid to national office [announced via postgrant information from national office to epo]GrantedPGFP | PGFP | EP | |
| No opposition filedOpposition26N | 26N | EP | |
| No opposition filed within time limitOppositionORIGINAL CODE: 0009261PLBE | PLBE | EP | |
| Information on the status of an ep patent application or granted ep patentGrantedSTATUS: NO OPPOSITION FILED WITHIN TIME LIMITSTAA | STAA | EP | |
| Fr: translation filedET | ET | EP | |
| Corresponds to:REF | REF | EP | |
| Designated contracting statesAK | AK | EP | |
| European patent grantedGrantedFG4D | FG4D | GB | |
| (expected) grantORIGINAL CODE: 0009210GRAA | GRAA | EP | |
| Despatch of communication of intention to grant a patentORIGINAL CODE: EPIDOS IGRAGRAH | GRAH | EP | |
| Despatch of communication of intention to grantORIGINAL CODE: EPIDOS AGRAGRAG | GRAG | EP | |
| Despatch of communication of intention to grant a patentORIGINAL CODE: EPIDOS IGRAGRAH | GRAH | EP | |
| Party data changed (applicant data changed or rights of an application transferred)RAP1 | RAP1 | EP | |
| Despatch of communication of intention to grantORIGINAL CODE: EPIDOS AGRAGRAG | GRAG | EP | |
| First examination report despatched17Q | 17Q | EP | |
| Designation fees paidDE FR GBAKX | AKX | EP | |
| Request for examination filed17P | 17P | EP | |
| Designated contracting statesAK | AK | EP | |
| Request for extension of the european patentAL;LT;LV;MK;RO;SIAX | AX | EP | |
| Search report despatchedORIGINAL CODE: 0009013PUAL | PUAL | EP | |
| Designated contracting statesAK | AK | EP | |
| Request for extension of the european patentAL;LT;LV;MK;RO;SIAX | AX | EP | |
| Public reference made under article 153(3) epc to a published international application that has entered the european phaseORIGINAL CODE: 0009012PUAI | PUAI | EP |
Numbers
- Publication
- 0903678
- Publication, DOCDB
- 0903678
- Publication, EPODOC
- EP0903678
- Application
- 98117821
- Application, DOCDB
- 98117821
- Application, EPODOC
- EP19980117821
Titles3
- German
- Arbeitsflussverwaltungssystem
- English
- Workflow management system
- French
- Système de gestion de flux de travail
Classification
- CPC, 1
- G06Q10/10
- IPC, 1
- G06Q10 00
Designated states3
- Contracting states, 3
- Germany
- France
- United Kingdom
