Work flow system, work flow processing method and work flow processing program
A work flow system executing a process comprising an activity which is a particular job and a transition which defines an order of the activities, includes a means for stopping the processes on execution; a means for editing the thus-stopped process; a means for checking a consistency of the thus-edited process; a means for determining a re-start position in the process; and a means for re-starting the process from the re-start position.
1. Field of the Invention
The present invention relates to a work flow system, and work flow processing method and program.
2. Description of the Related Art
Recently, a work flow system by which, when a plurality of persons in charge carry out a work via a communication network, a flow of documents and information to be exchanged thereamong is managed and automated for the purpose of achieving smooth work progress is known. In this connection, see the following documents:
‘Work flow system, developing so (1)’ by Haruo Hayami, Information Processing Society of Japan, Vol. 39, No. 11, pages 1160-1165 (1998);
‘Work flow system, developing so (2)’ by Haruo Hayami, Toshiaki Sakaguchi, Ryoichi Shibuya, Information Processing Society of Japan, Vol. 39, No. 12, pages 1258-1263 (1998); and
‘Work flow system, developing so (3)’ by Haruo Hayami, Ryoichi Shibuya, Nobuo Suzuki, Junichi Ikoma, Yosuke Terashita, Naoki Ueno, Satoru Kaneko, Kiyoshi Hayashi, Information Processing Society of Japan, Vol. 40, No. 5, pages 507-513 (1999);
SUMMARY OF THE INVENTIONThe work flow system mentioned above may have a problem that, only a fixed work flow defined by a system manager previously is executed, and a flexible response such as preceding an actual work in a manner different from the defined work flow may not be achieved.
In order to solve such a problem, the inventor has proposed a manner of changing a process flexibly on execution, by adding, suspending or anticipating an activity in a process on execution (see Japanese Patent Application No. 2005-9265).
However, in this method, a range of modifying the process is limited to adding, suspending and anticipating of an activity, and deleting an activity is not allowed. As a result, a user's demand may not be satisfactorily satisfied.
The present invention has been devised in consideration of the situation, and an object of the present invention is to provide a work flow system, a work flow processing method and a work flow processing program by which a process on execution can be freely modified.
In order to achieve the object, according to a first aspect of the present invention, a work flow system executing a process including an activity which is a particular job and a transition which defines an order of the activities, includes: a part of stopping the process on execution; a part of editing the thus-stopped process; a part of checking consistency of the thus-edited process; a part of determining a re-start position in the process; and a part of re-starting the process from the re-start position.
According to a second aspect of the present invention, the part of checking consistency of the process may check consistency from existence/absence and a specific value of a process variable read or updated by the activity, and existence/absence of an operation right of a task performing person for the process variable.
According to a third aspect of the present invention, the part of checking consistency of the process may determine whether or not all the possible cases when OR operation is made among parallel transitions' ignition conditions are covered, for a case of the transitions.
According to a fourth aspect of the present invention, the part of checking consistency of the process may give an alarm when finding out any activity which has no possibility of being executed, may not allow editing completion and require re-editing.
According to a fifth aspect of the present invention, the part of checking consistency of the process may determine that an error occurs when an end activity cannot be reached, may not allow editing completion and require re-editing.
According to a sixth aspect of the present invention, the part of determining the re-start position in the process may trace the transitions and the activities from the first activity included in the process, read a change history of the process variable, and, determine the activity or the transition as the re-start position when the activity or the transition has no experience of meeting a termination condition.
According to a seventh aspect of the present invention, the part of determining the re-start position in the process may determine that the process is finished when determining that the activity which has an experience of meeting the termination condition is the last activity.
According to an eighth aspect of the present invention, the part of stopping the process may stop the process by setting the process in a suspended state.
According to a ninth aspect of the present invention, the part of stopping the process may stop the process by setting the process in a terminated state.
According to a tenth aspect of the present invention, contents of editing carried out by the part of editing the process may include change of all the components of the process comprising addition, deletion, change in an order of the activities, addition and deletion of the process variables, change of process termination condition, and change of values of the process variables.
According to an eleventh aspect of the present invention, the part of editing the process may increment a count value of the process variable read or updated by the activity or the transition when adding the activity or the transition, decrement a count value of the process variable read or updated by the activity or the transition when deleting the activity or the transition, and, delete the process variable having the count value being zero.
According to a twelfth aspect of the present invention, the work flow system may further include a part of checking a right of an editor, which checks the right according to an access control list including, for each object included in the process, a user or group which is allowed to edit, and access control indicating the operation right.
According to a thirteenth aspect of the present invention, the work flow system may further include a part of converting a process instance flow obtained from editing and materializing the same into a process definition, and register the process definition for the purpose of reuse.
According to a fourteenth aspect of the present invention, a work flow processing method for executing a process including an activity which is a particular job and a transition which defines an order of the activities, includes the steps of: stopping the processes on execution; editing the thus-stopped process; checking a consistency of the thus-edited process; determining a re-start position in the process; and re-starting the process from the re-start position.
According to a fifteenth aspect of the present invention, a work flow processing program for causing a computer to execute a process including an activity which is a particular job and a transition which defines an order of the activities, includes instructions for causing the program to execute the steps of: stopping the processes on execution; editing the thus-stopped process; checking a consistency of the thus-edited process; determining a re-start position in the process; and re-starting the process from the re-start position.
In the work flow system, work flow processing method and work flow processing program according to the present invention, a process is edited after the process is toped, consistency of the process is checked, a re-start position of the process is determined, and the, the process is re-started therefrom. Accordingly, a situation in which a user improperly modifies the process can be avoided, and the process on execution can be freely modified in a condition in which the process executability is ensured.
Other objects and further features of the present invention will become more apparent from the following detailed description when read in conjunction with the accompanying drawings:
BRIEF DESCRIPTION OF DRAWINGS
Below, a preferable embodiment of the present invention is described with reference to figures:
<Process Abstract>
A process is a flow of processing for performing a work (which may be called a job or a task). For the process, process variables describing a state of the process are defined. The process variable is used as an activity start condition, termination condition, transition ignition condition, or process termination condition. The activity start condition and termination condition are those for setting and terminating each activity. The transition ignition condition is used mainly for determining a branch connection for branching off to one of a plurality of activities. The process termination condition is used for determining whether or not the process entirety is finished. It is noted that, the process variable's value is held unless it is explicitly changed, before and after a change of a process instance flow, mentioned later.
The activity is a particular job included in the process. The activity may have a state such as: not yet executed, completed, waiting for begin processed, or such. Change among the states may indicate a progressing state of the process. The activity has start condition and termination condition, which are described by a conditional formula with the use of the process variables. An execution result of the activity is stored in the process variable, and the processes variable's change history is stored as a log.
The transition defines an order of processing between the activities. The transition has a state whereby a state transition condition of the activity connecting thereto is determined. A condition for changing from one activity to another activity is called the transition ignition condition. The transition ignition condition is described mainly in a conditional formula with the use of the process variables.
The flow shows a flow chart expressed by the activities and transitions.
The process definition is a template of the process and defines a flow of the process before being executed.
The process instance is a materialized form of the process definition, and includes the contents of the job.
The process instance flow is a flow of the process on execution. The process instance flow is a flow definition of the process instance, and is the same as the original process definition. However, in the present invention, the process instance flow and the process definition are regarded as different substances, and are those which can be operated separately. That is, when the process instance flow is modified, the modification is not reflected by the process definition. Further, when the process definition is modified, the process (process instance) converted into a form of an instance is not reflected therefrom.
<System Configuration>
The input device 101 includes a keyboard, a mouse and so forth, and is used by a user for inputting various sorts of operation signals to the client or the server. The display device 102 is used for displaying various sorts of information to the user. The interface device 108 is an interface for connecting the client or the server to the communication network or such.
A program corresponding to software described later is provided to the client or the server by means of the recording medium 104 such as a CD-ROM for example, or is downloaded via the communication network. The recording medium 104 is set in the drive device 103, and the program is installed in the HDD 109 via the drive device 103.
The ROM 105 stores data. The RAM 106 stores a program or such read from the HDD 109 when the client or the server is started up. The CPU 107 executes processing according to the program stored in the RAM 106 read from the HDD 109.
The process definition tool 11 carries out process defining, which registers the process definition in the process definition database 22 via the process definition managing part 21, or obtains the process definition therefrom. The process defining tool 11 also extracts the process instance flow from the process instance database 24, edits the process instance flow thus extracted for example, and registers the same as the process definition in the process definition database 22 via the process definition managing part 21.
The process definition managing part 21 manages the process definitions stored in the process definition database 22. The process definition managing part 21 responds to a request from the process defining tool 11, to obtain the process definition from the process definition database 22, or register the process definitions in the process definition database 22.
The process definition database 22 stores process definitions, and includes a various sorts of tables described later.
The process execution editing tool 12 is a tool for editing the process instance flow, that is, it obtains the process instance flow from the process instance database 24 via the work flow engine 23, stores the process instance flow, thus edited, in the process instance database 24 via the work flow engine 23, and thus updates the process instance flow. It is noted that editing of the process instance flow may include change of any one of all the components of the process, i.e., adding, deleting or change in the order of the activities, adding or deleting of the process variable, change in the process termination condition, and change in the value of the process variable.
The work flow application 13 executes the activity, i.e., obtains the process information or the process status from the process instance database 24 via the work flow engine 23, or updates the process variables. Further, the work flow application 13 obtains the process definition from the process definition database 22 via the work flow engine 23, generates the process instance based on the process definition, or stores the process thus converted into the instance in the process instance database 24.
The work flow engine 23 responds to a request from the work flow application 13, to obtain the process definition form the process definition database 22, generates the process instance based on the process definition, and stores the same in the process instance database 22, or, responds to a request from the work flow application 13, to obtain the process information of the process instance from the process instance database 22, or updates the process variable of the processes instance stored in the process instance database 24.
The work flow engine 23 responds to a request from the process execution editing tool 12 of the process defining tool 11, to extract the process instance flow from the process instance database 24, or, responds to a request from the process execution editing tool 12, to update the process instance flow stored in the process instance database 24. Further, the work flow engine 23 responds to a process instance updating request or such from the process execution editing tool 12, to read an access right or such for a process object stored and managed in the process object ACL database 25, and determine whether or not a valid access right exists in the requesting user or group.
The process instance database 24 stores process instances, and have various sorts of tables described later.
The process object ACL database 25 stores the access rights for the process objects and so forth, and manages them.
It is noted that, as described above, the process defining tool 11, the process execution editing tool 12, the work flow application 13 and so forth are mounted in the client, while the process definition managing part 21, the process definition database 22, the work flow engine 23, the process instance database 24, the process object ACL database 25 and so forth are mounted in the server. Further, the process defining tool 11, the process execution editing tool 12, the work flow application 13, the process definition managing part 21, the process definition database 22, the work flow engine 23, the process instance database 24, the process object ACL database 25 and so forth may be mounted as Web services. When such a configuration is taken, communication is made between the client and the server according to SOAP (simple object access protocol) or such based on XML (extensible markup language) or HTTP (hypertext transfer protocol).
<Operation>
First, when a user requests the work flow application 13 for obtaining a process definition list (Step S1), the work flow application 13 requests the process definition managing part 21 for the process definition list (Step S2), and the process definition managing part 21 obtains the process definition list from the process definition database 22 (Step S3). The thus-obtained process definition list is sent to the work flow application 13 as a response, and is displayed by means of the work flow application in such a condition that the user can select therefrom.
Next, when the user selects a desired process definition and requests generation of a process instance (Step S4), the work flow application 13 requests the process definition from the process definition managing part 21 (Step S5), which then obtains the process definition from the process definition database 22 (Step S6). The thus-obtained process definition is sent to the work flow application 13 as a response, and the work flow application 13 then sets a parameter of the process definition (Step S7), and then, requests the work flow engine 13 for generation of the process instance (Step S8). The work flow engine 13 registers the process instance in the process instance database 24, and thus, generates the process instance (Step S9). The matter that the process instance is thus generated is then sent to the work flow application 13 as a response.
The, the work flow application 13 requests the work flow engine 13 for starting of execution of the process (Step S10), and thus, execution of the process is started. After that, according to a work flow defined by the process definition, task processing is carried out.
In
The process execution editing tool 12 carries out editing on the process definition thus obtained (Step S14), and requests the work flow engine 23 for updating the process definition (Step S15).
The work flow engine 23 converts the process definition thus obtained from the process execution editing tool 12 into the form of internal expression of the process instance database 24 (Step S16), and thus carries out updating of the process instance flow on the process instance database 24 (Step S17). Then, the once stopped process is re-started, and thus, the work flow thus changed through the editing is validated.
The work flow application 13 starts up the process execution editing tool 12 (Step S24), which then obtains the process instance flow from the process instance database 24 via the work flow engine 23 (Steps S25, S26), and displays the process instance flow (Step S27).
The user carries out editing operation on the process instance flow by means of the process execution editing tool 12 (Step S28).
(1) In the ‘add’ menu 12a, ‘activity’ is selected.
(2) From the application list 12b, ‘document creation’ is selected.
(3) The activity setting window 12c is displayed.
(4) A parameter (title: ‘patent document creation’ or such) is set in the activity setting window 12c, and the ‘OK’ button is pressed.
(5) In the ‘Flow View’ window 12e, the activity ‘patent document creation’ is displayed.
(6) In the ‘add’ menu 12a, ‘transition’ is selected, and the transition 12g is added.
(7) ‘Complete edition’ 12h is selected.
When the processing is started in response to a request for adding the activity (Step S41), selection by the work flow application is accepted (Step S42), and the activity instance is produced (Step S43). On this occasion, in order to display a list from which the selection of the work flow application is made possible, the application definition reading table 227 (
Then, as the necessity arises, a new process variable or activity variable is produced (Step S44). On this occasion, the process variable definition table 224 (
Then, as to the existing or newly produced process variable or activity variable, allocation to the selected parameter of the work flow application is carried out (Step S45). On this occasion, updating of the process variable table 244, the activity variable table 245 and the process variable reading table 247 (
Next, the process variable reading information is updated (Step S46). On this occasion, the process reading table 247 is updated.
Next, adding and setting of the transition are carried out (Step S47). On this occasion, the transition table 243 (
Next, the reading count or the reading updating count of the corresponding one of the process variables read or updated by the added activity or transition is incremented (added by one) (Step S48). On this occasion, the process variable table 244 is updated accordingly.
When the processing is started (Step S51), selection of the activity to delete is accepted (Step S52), and the activity instance is deleted (Step S53). On this occasion, the activity table 242 and the activity variable table 245 are updated accordingly.
Next, the reading count or the reading updating count of the corresponding one of the process variables read or updated by the deleted activity is decremented (subtracted by one) (Step S54). On this occasion, the process variable table 244 is updated accordingly.
Next, the transitions connected before and after the deleted activity are deleted (Step S55). On this occasion, the transition table 243 is updated accordingly.
Next, the reading counts of the process variables read by the deleted transitions are decremented (Step S56). On this occasion, the process variable table 244 is updated accordingly.
Next, a new transition is added (Step S57). On this occasion, the transition table 243 is updated accordingly.
Next, the reading count of the process variable read by the added transition is incremented (Step S58). On this occasion, the process variable table 244 is updated accordingly.
Next, the process variable having both the reading count and the reading updating count being ‘0’ is deleted (Step S59). On this occasion, the process variable table 244 is updated accordingly. Thus, by deleting the process variable read neither by any activity nor by any transition, it is possible to create a state in which no unnecessary process variable for reuse is included. It is noted that, as to the process variable unique to the process, the initial value of the reading count is previously set as ‘1’, and thus, it is not deleted even when all the reading activities or transitions are deleted.
Returning to
The work flow engine 23 receiving this request checks the process object ACL database 25 as to whether or not the user (editor) has the right to change the process instance flow (Step S31). When the user does not have the changing right, the user is notified of that the user does not have the changing right. Thus, the process is prevented from being changed by the user who does not have the right.
On the other hand, when the check for the changing right results in success, the work flow engine 23 then makes a check for consistency (executability) of the process instance flow (Step S32).
In
(1) existence/absence of the process variable;
(2) the value of the process variable (whether or not the value of the final activity which has updated the process variable falls within the effective range of the activity or the transition);
(3) whether or not the task performing person who is allocated to this activity has the operation right on this process variable; and
(4) in a case of the transition, whether or not, all the possible cases of the process variable are covered when OR operation is carried out on the parallel transitions' ignition conditions.
Then, when any activity which has no possibility of being executed is found out, an alarm is given, and re-editing is requested (Step S63).
Further, when the end activity cannot be reached, an error determination is made, and re-editing is required (Step S64).
Thereby, it is possible to avoid unnecessary change of the process, and executability can be ensured.
When the processing is started in Step S101 of
Then, it is determined whether or not the process variable exists from the process variable table 244, and also, from the access control list table 251, the right of the task performing person for the process variable is checked (Step S105).
When the process variable does not exist or the right has a fault (No in Step S106), it is determined that consistency fault occurs (Step S107), and the processing is finished (Step S108).
On the other hand, when the process variable exists and the right has no fault (Yes in Step S106), the possible value of the process variable is obtained from the memory (Step S109). When the value can be obtained (Yes in Step S110), the process variable definition ID of the process variable is obtained, the effective value of the process variable is obtained from the activity ID and the process definition ID (Step S111). When the value can be obtained (Yes in Step S112), AND operation is carried out between the process variable effective value range and the process variable possible value, and the operation result is stored in the memory as the possible value (Step S113). When the value cannot be obtained (No in Step S110 or S112), no particular processing is carried out.
Next, it is determined in Step S114 whether or not the possible value of the process variable stored in the memory does not meet the activity start condition. When the condition is not met (NG in Step S114), it is determined that consistency fault occurs (Step S107), and the processing is finished (Step S108).
When the condition is met (OK in Step S114), the next process variable is obtained (Step S115). When the value can be obtained (Yes in Step S116), the selection of the process variable read by the activity (Step S104) is returned to.
When the value cannot be obtained (No in Step S116), the process variable possible value stored in the memory is updated by the termination condition of the activity (Step S117), and the next transition is obtained (Step S118).
Then, it is determined in Step S119 whether or not the possible value of the process variable stored in the memory meets the ignition condition of the transition. When the condition is not met (NG in Step S119), it is determined that consistency fault occurs (Step S120), and the processing is finished (Step S121).
When the condition is met (OK in Step S119), the possible value of the process variable stored in the memory is updated by the ignition condition of the transition (Step S122), and the next activity is obtained (Step S123).
When the activity can be obtained (Yes in Step S124), the first step of obtaining the activity (Step S103) is returned to. When the activity cannot be obtained (No in Step S124), it is determined that no consistency fault occurs (Step S125), and the processing is finished (Step S126).
Returning to
In
When the condition has ever been met (Yes in Step S76), the activity subsequent to the transition is obtained (Step S79), the process variable updating history table 246 is read, and, it is determined in Steps S80, S81 whether or not the activity termination condition has been ever met. When the condition has never been met (No in Step S81), the activity is determined as the re-start position (Step S82), and the processing is finished (Step S78).
When the activity termination condition has ever been met (Yes in Step S81), it is determined in Step S83 whether or not the activity is the last activity. When it is the last activity (Yes in Step S83), it is determined that the process is finished (Step S84), and the current processing is finished (Step S78).
When it is not the last activity (No in Step S83), the Step S74 of obtaining the transition subsequent to the activity is returned to, and the processing is continued.
Returning to
In
In
In
In
(1) From ‘import’ menu 11a, the process instance flow is selected, and as a result, a right pane changes into process instance list 11b;
(2) From the process instance list 11b, the desired process instance is selected, and ‘OK’ button is pressed; as a result, the process instance flow is displayed in a left ‘Flow View’ window lid, and the process instance list 11b is closed;
(3) The process instance flow displayed in the ‘Flow View’ window 11d is edited by the user, then ‘add’ menu lie is selected, and processing of registering the process instance flow in the process definition database 22 via the process definition managing part 21 as the process definition is carried out.
As described above, according to the present invention, a process is edited in a state in which the process is stopped, an editor's right and process consistency are checked, the process re-start position is determined, and re-start is made. Accordingly, it is possible to avoid improper change of the process by an end user, the process on execution can be freely changed while executability thereof is ensured.
Further, from execution records of the activities, an improved work flow can be produced, and can be reused.
Further, by managing a progress of a process by the process variables, the process progress situation which can be flexibly modified can be statistically managed. In other words, from the process variables, a check list for evaluating the process progress can be produced.
The preferable embodiment of the present invention has been described above. Although the present invention has been described as the specific embodiment, the specific embodiment may be modified or changed in various manners without departing from the broad concept and scope of the present invention recited the claims below. That is, the present invention is not limited to by the description of the embodiment and accompanying drawings.
The present application is based on Japanese Priority Applications Nos. 2005-154261 and 2006-130553, filed on May 26, 2005 and May 9, 2006, respectively, the entire contents of which are hereby incorporated herein by reference.
Claims
1. A work flow system executing a process comprising an activity which is a particular job and a transition which defines an order of the activities, comprising:
- a part of stopping the process on execution;
- a part of editing the thus-stopped process;
- a part of checking consistency of the thus-edited process;
- a part of determining a re-start position in the process; and
- a part of re-starting the process from the re-start position.
2. The work flow system as claimed in claim 1, wherein:
- said part of checking consistency of the process checks consistency from existence/absence and a specific value of a process variable read or updated by the activity, and existence/absence of an operation right of a task performing person for the process variable.
3. The work flow system as claimed in claim 2, wherein:
- said part of checking consistency of the process determines whether or not all the possible cases when OR operation is made among parallel transitions' ignition conditions are covered, for a case of the transitions.
4. The work flow system as claimed in claim 2, wherein:
- said part of checking consistency of the process gives an alarm when finding out any activity which has no possibility of being executed, does not allow editing completion and requires re-editing.
5. The work flow system as claimed in claim 2, wherein:
- said part of checking consistency of the process determines that an error occurs when an end activity cannot be reached, does not allow editing completion and requires re-editing.
6. The work flow system as claimed in claim 1, wherein:
- said part of determining the re-start position in the process traces the transitions and the activities from the first activity included in the process, reads a change history of the process variables, and, determines the activity or the transition as the re-start position when said activity or said transition has no experience of meeting a termination condition.
7. The work flow system as claimed in claim 6, wherein:
- said part of determining the re-start position in the process determines that the process is finished when determining that the activity which has an experience of meeting the termination condition is the last activity.
8. The work flow system as claimed in claim 1, wherein:
- said part of stopping the process stops the process by setting the process in a suspended state.
9. The work flow system as claimed in claim 1, wherein:
- said part of stopping the process stops the process by setting the process in a terminated state.
10. The work flow system as claimed in claim 1, wherein:
- contents of editing carried out by said part of editing the process comprises change of all the components of the process comprising addition, deletion, change in an order of the activities, addition and deletion of the process variables, change of a process termination condition, and change of values of the process variables.
11. The work flow system as claimed in claim 1, wherein:
- said part of editing the process increments a count value of the process variable read or updated by the activity or the transition when adding the activity or the transition, decrements a count value of the process variable read or updated by the activity or the transition when deleting the activity or the transition, and, deletes said process variable having the count value being zero.
12. The work flow system as claimed in claim 1, further comprising a part of checking a right of an editor, which checks the right according to an access control list comprising, for each object included in the process, a user or group which is allowed to edit, and access control indicating the operation right.
13. The work flow system as claimed in claim 1, comprising a part of converting a process instance flow obtained from editing and materializing the same into a process definition, and registers the process definition for the purpose of reuse.
14. A work flow processing method for executing a process comprising an activity which is a particular job and a transition which defines an order of the activities, comprising the steps of:
- stopping the process on execution;
- editing the thus-stopped process;
- checking consistency of the thus-edited process;
- determining a re-start position in the process; and
- re-starting the process from the re-start position.
15. A work flow processing program for causing a computer to execute a process comprising an activity which is a particular job and a transition which defines an order of the activities, said program comprising instructions for causing the program to execute the steps of:
- stopping the process on execution;
- editing the thus-stopped process;
- checking consistency of the thus-edited process;
- determining a re-start position in the process; and
- re-starting the process from the re-start position.
Type: Application
Filed: May 18, 2006
Publication Date: Jan 4, 2007
Inventor: Yoshiro Matsui (Saitama)
Application Number: 11/435,747
International Classification: G06F 9/44 (20060101);