1. Field of the Invention
Embodiments of the present disclosure relate to systems and methods for software development, and particularly to a system and method for processing workflow tasks.
2. Description of Related Art
Authorization tasks are very common and frequent tasks in a workplace. Each task has a specified workflow, which is a depiction of a sequence of operations, declared as work of a person, work of a simple or complex mechanism, work of a group of persons, work of an organization, or machines. For example, a typical workflow of a task for authorizing a document may include: obtaining the document from a sponsor, determining the number of authorizers, delivering the document from one authorizer to another for authorization, and lastly, informing the sponsor of the authorization information.
In a normal workflow management software, each step (regarded as a work item) in a task can be processed using a computer so as to reduce manual work and improve process efficiency. However, if the workflow of a task has been changed, the previous version of a workflow management software cannot be used until a new version of the workflow management software is programmed, and the previous version of the workflow management software is covered by the new version of the workflow management software.
What is needed, therefore, is an improved system and method for processing workflow tasks.
A computer-implemented method for processing workflow tasks is provided. The method includes: receiving a user operation to start a task, wherein the task comprises one or more steps; determining if the user operation starts a new task according to a task status table, wherein the task status table comprises a current step in a workflow of the task, a task processing program for processing the task, and a version number of the task processing program; obtaining the version number of the task processing program from a configuration file if the user operation starts the new task, or obtaining the version number of the task processing program from the task status table if the user operation does not start the new task; sending the version number to a task processing server, the task processing server comprising one or more task processing programs with different version numbers; loading the task processing program for processing the user operation according to the received version number by the task processing server; recording processed results of the task processing program, and storing the processed results in the task status table.
Other systems, methods, features, and advantages of the present disclosure will become apparent to one with skill in the art upon examination of the following drawings and detailed description.
All of the processes described below may be embodied in, and fully automated via, software code modules executed by one or more general purpose computers or processors. The code modules may be stored in any type of computer-readable medium or other computer storage device. Some or all of the methods may alternatively be embodied in specialized computer hardware.
The database system 50 is configured for storing a task table and a task status table. In one embodiment, the task table is configured for storing a task identifier (ID) and one or more work items in a workflow of a task, wherein a work item represents a step in the workflow of the task. The task includes one or more steps to be processed in sequence. For example, a typical workflow of a task for authorizing a document may include the following steps: obtaining the document from a sponsor, determining the number of authorizers, delivering the document from one authorizer to another for authorization, and lastly, informing the sponsor of the authorization information. The task status table is configured for storing a current step in a workflow of a task, a task processing program for processing the task, and a version number of the task processing program. The database system 50 stores the task table and the task status table into a storage system. Depending on the embodiment, the storage system may be a hard disk drive, a Read Only Memory (ROM), or other forms of storage mediums.
The receiving module 301 is configured for receiving a user operation sent from the client computer 10 to start a step in a task, wherein the task comprises one or more steps to be processed in sequence. The user operations may include, for example, obtaining a document from a sponsor or delivering a document from one authorizer to another authorizer for authorization.
The determining module 302 is configured for determining if the user operation starts a new task according to the task status table in the database system 50. If the user operation is a first step in the task status table, the determining module 302 determines the user operation starts the new task, otherwise, the determining module 302 determines the user operation does not start the new task.
The obtaining module 303 is configured for obtaining a version number of a task processing program from the configuration file 305 if the user operation starts the new task, or obtaining the version number of the task processing program from the task status table if the user operation does not start the new task. The configuration file 305 is configured for storing a latest version number of the task processing program. The new version number of a task processing program increases linearly, for example from 1.0 to 2.0 where 2.0 is a newer version than 1.0.
The sending module 304 is configured for sending the version number to the task processing server 40.
The loading module 401 is configured for loading the task processing program for processing the user operation according to the received version number by the task processing server 40.
The recording module 402 is configured for recording processed results of the task processing program, and storing the processed results in the task status table. The processed results may include: the current step in a workflow of the task, the task processing program for processing the task, and the version number of the task processing program.
The obtaining module 303 is further configured for obtaining the version number of the task processing program from the configuration file 305 without determining if the user operation starts the new task.
In block S401, the receiving module 301 receives a user operation sent from the client computer 10 to start a step in a task, wherein the task comprises one or more steps to be processed in sequence.
In block S402, the determining module 302 determines if the user operation starts a new task according to a task status table in the database system 50, wherein the task status table comprises a current step in a workflow of a task, a task processing program for processing the task, and a version number of the task processing program. If the user operation is a first step in the task status table, the determining module 302 determines the user operation starts the new task, the procedure goes to block S404, otherwise, the determining module 302 determines the user operation does not start the new task, and the procedure goes to block S403.
In block S403, the obtaining module 303 obtains the version number of the task processing program from the task status table, then the procedure goes to block S405.
In block S404, the obtaining module 303 obtains the version number of the task processing program from the configuration file 305, then the procedure goes to block S405. The configuration file 305 is configured for storing a latest version number of the task processing program.
In block S405, the sending module 304 sends the version number to the task processing server 40.
In block S406, the loading module 401 loads the task processing program for processing the user operation according to the received version number by the task processing server 40.
In block S407, the recording module 402 records processed results of the task processing program, and storing the processed results in the task status table. The processed results may include: the current step in a workflow of the task, the task processing program for processing the task, and the version number of the task processing program.
In other embodiments, the block S402 and the block S403 can be removed, in other words, the obtaining module 303 obtains the version number of the task processing program from the configuration file 305 without determining if the user operation starts the new task.
It should be emphasized that the above-described embodiments of the present disclosure, particularly, any preferred embodiments, are merely possible examples of implementations, merely set forth for a clear understanding of the principles of the disclosure. Many variations and modifications may be made to the above-described embodiment(s) of the disclosure without departing substantially from the spirit and principles of the disclosure. All such modifications and variations are intended to be included herein within the scope of this disclosure and the present disclosure and protected by the following claims.
| Number | Date | Country | Kind |
|---|---|---|---|
| 200710203392.1 | Dec 2007 | CN | national |