The present invention generally relates to enterprise computer systems and methods and more particularly to systems, methods and computer program products for facilitating flexible workflow task assignment to a work item queue for a member of an enterprise according to an assignment rule or set of assignment rules.
In today's technological environment, it is common for enterprises such as business organizations, schools, charitable organizations and government organizations to deploy private computer networks—intranets—to securely share such an enterprise's information or network operating system within that enterprise. The term “intranet” is used in contrast to “internet”, which is a network between and among individuals and enterprises, the most common of which is the global, public Internet. That is, an intranet is a network within an enterprise which sometimes refers only to an internal (private) website, but may be a more extensive part of the enterprise's information technology (IT) infrastructure. For example, in many enterprises, a member or an employee may work from home and gain access to the enterprise via a portal requiring additional security hurdles such as synchronous keys for entry. An enterprise intranet may host multiple private websites and constitute an important component and focal point of internal communication with, and collaboration among, individual computer users associated/affiliated with the enterprise (e.g., students within a university, co-workers within a company, members of a governmental department or the like).
As individual computer users associated/affiliated with the enterprise perform various computer-based activities while logged into the intranet, these users may utilize enterprise resource planning (ERP) client/server systems as provided by the enterprise. One such system known as the Dynamics ® AX 2009 ERP system available from Microsoft Corporation of Redmond, Wash. provides an enterprise workflow infrastructure among other features. Fundamentally, workflows consist of one or more workflow activities that represent items of work to be completed and involve an interrelationship between a human and a system, for example, with respect to a document which may be referred to herein as a business document. An example of a business document may be a purchase requisition for parts, products or services or the minutes of a board of directors meeting. Structured workflow activities may result in this known system by organizing a workflow runtime through an application object server (AOS) framework including communications, messaging, tracking, work items, expressions, configurations and metadata. A given business document such as a purchase requisition may require all of these: communications, messaging, tracking and the like. A given business document may have a structured human workflow. A workflow runtime structure may monitor a constant stream of, for example, message communications related to a particular workflow business document or related process and generally assist in controlling the workflow for the given business document. Similarly, a project or inventory management or other elements of an enterprise may require workflow management. By workflow management is intended the execution of automated business processes by a workflow infrastructure, for example, surrounding a business document.
In another context, that of planning for accomplishment of workflow activities in a timely manner to assure completion of an overall project, a so-called critical path method of analysis of a project is known which identifies the activities required to reach a common completion date for a project and assigns certain durations to each activity. This critical path method involves creating a list of all activities required to complete the project, estimating the time or duration that each activity will take to completion and identifying the dependencies between the activities. From practicing the method, one may determine the earliest and latest that each activity can start and finish without making the project longer.
Human workflow systems may incorporate the use of various assignment methods for tasks that the system may generate and the users to perform the tasks. One such method involves the ability to assign tasks to a workflow work item queue (or queue of work items, tasks or activities) rather than directly to a person. The term workflow work item queue will be more simply referred to herein as a work item queue. This work item queue approach is analogous to an assembly line in which a pool of workers surrounds a bin of unfinished goods. A worker can grab an item from the bin and finish it and move the finished goods to the next bin of the assembly line. In a business document or project related scenario, people, herein users, act on their tasks (to finish the unfinished goods) via their membership in the pool of surrounding users, i.e., membership of the work item queue. Configuring workflow to directly assign tasks or processes to a single specific work item queue provides limited flexibility. It may require the workflow to be reconfigured every time there is a change in the work item queue (in the extreme, when the bin is empty or is overflowing).
Thus, it may be known to provide enterprise workflow structure to certain activities, to identify activities, tasks or work items related to a business document's completion processes such as by using the critical path method) and to create a work item queue, but, given the foregoing, what are needed are more flexible systems, methods and computer program products for adapting existing workflow set-up and project planning runtime applications to determine an appropriate work item queue to assign a task using an assignment rule surrounding the created or selected work item queue out of a group of possible work item queues and establish a default work item queue when necessary.
This summary is provided to introduce a selection of concepts. These concepts are further described below in the Detailed Description. This summary is not intended to identify key features or essential features of the claimed subject matter, nor is this summary intended as an aid in determining the scope of the claimed subject matter.
The present invention meets the above-identified needs by setting up and providing run-time systems, methods and computer program products for adapting existing workflow and runtime applications, for example, related to a business document to determine appropriate work item queue to assign a task using an assignment rule surrounding the appropriate work item queue or set of rules for a group of related work item queues, for example, to a business document such as a purchase requisition.
In an embodiment, a set of assignment rules may be defined that may be based on a specific business document type. The assignment rules may be defined in the form of expressions such as business document requirements, for example, for processing a purchase requisition of a given type and having less than a predetermined monetary value. Given the expression being true for the task, then, an available work item queue from a plurality of available work item queues may be selected or one created and an assignment rule expressed. In a further embodiment, multiple sets of expressions and work item queue combinations may be created and ordered as a set or group. For instance, with the purchase requisition example, there may be certain requirements for one value of purchase requisition and different, more stringent requirements for a higher value of purchase requisition. These different assignment rules for purchase requisitions of different value may become a set of assignment rules/expressions for the given business document, a purchase requisition. Each set of assignment rules then may be assigned to a related group of work item queues.
In a further embodiment, a work item queue assignment may be selected at runtime such that the activated workflow locates and evaluates each assignment rule of an ordered set of assignment rules sequentially until “true” is returned and a work item queue selected. The workflow task or work item created, for example, for a business document comprising a purchase requisition for $2500, may require processing by a manager level employee, and so may be assigned to a work item queue associated with manager level employees. When “true” is returned for the expression of the ordered set of expressions for one value, then, one work item queue with manager level membership is selected, while, for example, the next rule/expression may require director level processing for a higher value purchase requisition and so on. A manager level employee may access the work item queue for processing one value of purchase requisition and a director level employee may access the work item queue for the higher value purchase requisition. The manager level and director level processing requirements form rules dictating selection of work item queues in sequence.
In a further embodiment, a flexible work item queue assignment using a business rule further includes a default work item queue if no other work queue returns a “true” or matches the ordered set of expressions. This default work item queue is accessible by employees with permission to access and so determine handing of tasks that are assigned to the default work queue. As defined herein, such a person may be identified herein as an administrator or owner of a work item queue.
In order to sa-up such a flexible workflow task assignment process, a method comprises creating and activating a work hem queue and, as necessary, a work item queue group. This may include defining a business document or workflow form and its assignment rules/conditions for completion of processing. Once a work item queue is created and activated, the method further comprises creating work item queue assignment rules. This may include defining as many instances of “true” assignment rules required for assignment to a work item queue as possible. Users may be added to one or more work item queues. Once the several work queues and expressions are defined and created, the set-up process further may comprise selecting or creating a “default” work item queue whereby, when the defined set of expressions, for example, for a given business document, are not returned “true,” the default work item queue is selected and the task assigned to the default work item queue. Now that all work item queues and the default work item queue are defined, one may configure the workflow to use flexible work item queue assignment. A final process of set-up of flexible workflow with assignment rules is making the workflow available for use, in a work item for a given business document may be submitted by a business user and processed accordingly.
A run-time environment of the configured flexible work item queue assignment process comprises evaluating a next assignment rule expression in a sequence of an ordered set of assignment rules. For example, an assignment rule may be related to processing a purchase requisition business document having a predetermined value. If the result of the expression is true, then, the task is assigned to the work item queue for the current expression. Then, a decision is made whether there exists additional assignment rules of an ordered set of assignment rules. If YES, then these are tested for True, for example, a next higher value level purchase requisition. The process proceeds until all expressions have been tested and tasks assigned to work item queues or the task is assigned to a default work item queue because no expressions have tested True.
Further features and advantages of the present invention, as well as the structure and operation of various embodiments of the present invention, are described in detail below with reference to the accompanying drawings.
The features and advantages of the present invention will become more apparent from the detailed description set forth below when taken in conjunction with the drawings in which like reference numbers indicate identical or functionally similar elements.
The present invention is directed to flexible systems, methods and computer program products for facilitating the collection, consolidating, storing and exposing of data within a computer network (especially an intranet) to allow for flexible workflow work item assignment according to assignment rules/conditions and the associated formation of a set of assignment rules and their expressions, for example, for a given business document associated with assignment rules/conditions associated with that business document. Firstly,
Referring first to
Intranet flexible workflow task assignment system 100 includes a plurality of users 102 (shown as users 102a-d in
In various embodiments, device 104 may be configured as a desktop 104a, a laptop 104b, a PDA 104c, a tablet or mobile computer 104d, an intelligent communications device or the like. Device 104, in order to access private network or intranet 106 may typically have to identify a user name and password, if not, enter further security information such as a secret key or fingerprint data to access intranet network 106. In accordance with an embodiment of a method of flexibly assigning workflow tasks or work items to work item queues at the request of an identified organization member by user name and password, the user name and password may be utilized by any of servers 108, 110 and 112 to access an application object server 116 or application object server 116 may be accessed directly by a client 104 as will be described further herein with reference to
As users 102 log into an organizational/enterprise intranet 106, they perform various computer-based tasks while logged into the organization/enterprise's intranet 106. Thus, there are constant streams of activities occurring such as navigating to URLs, opening and editing business documents, writing, opening and reading email and/or instant messages, and the like. These may be considered active processes of the organization member. All these data may be allocated into categories, for example: data and commands associated with setting up a process for flexible workflow assignment and operating a runtime application to automatically assign work items or tasks to work item queues or to a default work item queue as will be further described herein. With reference to
Referring now to
X++ may a special programming language similar to a managed language such as C# used with Dynamics AX. (Other programming languages may be used as well, for example, C++ and related languages, wherein X++ is described herein by way of example.) Continuing the discussion of
In an alternate embodiment to
In an alternate embodiment, an intranet administrator would have access to configuration, status and data retrieval server 114 via, a web service-based application programming interface (API) (e.g., Simple Object Access Protocol (SOAP) or RESTful). In such an embodiment, the intranet administrator may enforce privacy laws and business rules based on access credentials. For example, an unprivileged user might be allowed to retrieve the total number of specific documents being accessed within intranet 106, while an authorized user (a manager or director or owner of a work item queue) may retrieve more detailed information such as which user 102 accessed certain documents and when. This allows privacy protection while storing complete and detailed information as permitted by applicable privacy laws and business rules.
In various embodiments, configuration, status and data retrieval servers 114 allow for built-in support for enforcing privacy laws and business rules, including facilities for the following:
An example of a computer system 300 is shown in
Computer system 300 includes one or more processors, such as processor 304. The processor 304 may be connected to a communication infrastructure 306 (e.g., communications bus or network). Various software aspects are described in terms of this exemplary computer system. After reading this description, it will become apparent to a person skilled in the relevant art(s) how to implement the invention using other computer systems and/or architectures. Computer system 300 may represent a client device 104 possessed by an organization/enterprise member 102. Computer system 300 may similarly represent a server 108, 110, 112, 114 or 116 as introduced in
Database server 114 may be a SQL or other database server responsible for maintaining for example documents, organization charts, inventory data documents and the like for an enterprise (herein, business documents). As such, as a business document is processed such as a purchase requisition, workflow work item queue assignment rules and the like may be retrieved by application object server 116 for use in workflow management.
Computer system 300 can include a display interface 302 that forwards graphics, text and other data from the communication infrastructure 306 (or from a frame buffer not shown) for display on the display unit 330. A display interface may be what a user 102 sees on any one of devices 104. A user may type or click or use other form of data or command entry to input data/commands to a flexible workflow task assignment system according to assignment rules of the present invention.
Computer system 300 also includes a main memory 308, preferably random access memory (RAM) and may also include a secondary memory 310. The secondary memory 310 may include, for example, a hard disk drive 312 and/or a removable storage drive 314, representing a floppy disk drive, a magnetic tape drive, an optical disk drive, etc. The removable storage drive 314 reads from and/or writes to a removable storage unit 318 in a well known manner. That is, removable storage unit 318 may represent a floppy disk, magnetic tape, optical disk, etc. which is read by and written to by removable storage drive 314. As will be appreciated, the removable storage unit 318 may include a computer usable storage medium having stored therein computer software and/or data.
In alternative aspects, secondary memory 310 may include other similar devices for allowing computer programs or other instructions to be loaded into computer system 300. Such devices may include, for example, a removable storage unit 322 and an interface 320. Examples of such may include a program cartridge and cartridge interface (such as that found in video game devices), a removable memory chip (such as an erasable programmable read only memory (EPROM), or programmable read only memory (PROM)) and associated socket and other removable storage units 322 and interfaces 320, which allow software and data to be transferred from the removable storage unit 322 to computer system 300.
Computer system 300 may also include a communications interface 324. Communications interface 324 allows software and data to be transferred between computer system 300 and external devices. Examples of communications interface 324 may include a modem, a network interface (such as an Ethernet card), a communications port, a Personal Computer Memory Card International Association (PCMCIA) slot and card, etc. Software and data transferred via communications interface 324 are in the form of non-transitory signals 328 that flow over communications media 122, 124, 126, 128, 130, 132, 134, 136, 138, 140, 142 and 144 among others, not shown, which may be electronic, electromagnetic, optical or other signals capable of being received by communications interface 324. These signals 328 are provided to communications interface 324 via a communications path (e.g., channel) 326. This channel 326 of communications media 328 carries media signals 328 and may be implemented using wire or cable, fiber optics, a telephone line, a cellular link, an radio frequency (RF) link and other communications channels as explained above.
In this document, the terms “computer program medium” and “computer usable medium” are used to generally refer to media such as removable storage drive 314, a hard disk installed in hard disk drive 312 and signals 328. These computer program products provide software to computer system 300. The invention is directed to such computer program products.
Computer programs (also referred to as computer control logic) are stored in main memory 308 and/or secondary memory 310. Computer programs may also be received via communications interface 324. Such computer programs, when executed, enable the computer system 300 to perform the features of the present invention, as discussed herein. In particular, the computer programs, when executed, enable the processor 304 to perform the features of the present invention. Accordingly, such computer programs represent controllers of the computer system 300.
In an embodiment where the invention is implemented using software, the software may be stored in a computer program product and loaded into computer system 300 using removable storage units 318, 322, removable storage drive 314, hard drive 312 or interface 320 of secondary memory 310. The control logic (software when executed by the processor 304, causes the processor 304 to perform the functions of the invention as described herein.
Referring now to
Screens of
Referring now to process 420-1, there is shown a process of creating and activating a work item queue which may be associated with a business document. A work item queue, for example, may typically be associated with a workflow form or business document process such as a purchase requisition review process shown in exemplary screens
Work item queues typically have enterprise members or users associated with them. These may, for example, comprise users capable of and having the authority to perform a task allocated to a work item queue. There may be an owner or administrator of a queue, someone in an enterprise responsible for efficient operation of the work item queue in accordance with the assignment rules and conditions. This individual may assign more enterprise members to a work item queue during heavy demand periods and decrease membership for a work item queue during periods of sparse demand. The owner or administrator may have the authority to create a related work item queue, place a queue on hold, inactivate a queue or modify an existing work item queue from a client device 104 in communication with an application object server 116.
Referring briefly to
Referring briefly to
Referring briefly to
Referring briefly to
Referring back to
Referring now to
Once create rule 442 is selected, one may proceed to
Referring to
Referring back to FIG, 4, a next process 440-1 is associated with forming/selecting a default work item queue which would follow if expressions of the ordered set of expressions are not satisfied. One may select a default work item queue from an existing work queue set or create a new work item queue having its own owner or administrator. The owner or administrator of the default work item queue my evaluate the work and conditions and establish or select an appropriate default work item queue.
Referring again to
Referring again to
Referring now to
Referring first to process 510, this process 510 represents the beginning of runtime. Next referring to process 520, there is shown a first/next evaluation of an expression in sequence as, for example, defined by evaluation order of Evaluation order 452 of screen 450 or table 654 of
In the one embodiment, a flexible assignment of workflow tasks or work items according to assignment rules or conditions is embodied in the form of either a client-based application or a server-based application such that a special purpose computing device results from the installation or downloading of a related software application. In another embodiment, the invention may be implemented primarily in hardware using, for example, hardware components such as application specific integrated circuits (ASICs), special purpose devices and servers. Implementation of a hardware state machine so as to perform the functions described herein will be apparent to persons skilled in the relevant art(s).
As will be apparent to one skilled in the relevant art(s) after reading the description herein, the computer architecture shown in
In yet another embodiment, the invention is implemented using a combination of both hardware and software.
While various aspects of the present invention have been described above, it should be understood that they have been presented by way of example and not limitation. It will be apparent to persons skilled in the relevant art(s) that various changes in form and detail can be made therein without departing from the spirit and scope of the present invention. Thus, the present invention should not be limited by any of the above described exemplary aspects, but should be defined only in accordance with the following claims and their equivalents.
In addition, it should be understood that the figures in the attachments, which highlight the structure, methodology, functionality and advantages of the present invention, are presented for example purposes only. The present invention is sufficiently flexible and configurable, such that it may be implemented in ways other than that shown in the accompanying figures. For example, the systems, methods and computer program products for facilitating the collection of intranet document data while complying with applicable laws and regulations and business policies disclosed herein are also applicable to other networks such as internets.
Further, the purpose of the foregoing Abstract is to enable the U.S. Patent and Trademark Office and the public generally and especially the scientists, engineers and practitioners in the relevant art(s) who are not familiar with patent or legal terms or phraseology, to determine quickly from a cursory inspection the nature and essence of this technical disclosure. The Abstract is not intended to be limiting as to the scope of the present invention in any way.