WO2000079350A1 - Process automation - Google Patents

Process automation Download PDF

Info

Publication number
WO2000079350A1
WO2000079350A1 PCT/US2000/017247 US0017247W WO0079350A1 WO 2000079350 A1 WO2000079350 A1 WO 2000079350A1 US 0017247 W US0017247 W US 0017247W WO 0079350 A1 WO0079350 A1 WO 0079350A1
Authority
WO
WIPO (PCT)
Prior art keywords
process flow
command
executed
software
commands
Prior art date
Application number
PCT/US2000/017247
Other languages
French (fr)
Other versions
WO2000079350A9 (en
Inventor
Mark Lawrence
Original Assignee
Privity Ventures, Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Privity Ventures, Inc. filed Critical Privity Ventures, Inc.
Priority to AU57601/00A priority Critical patent/AU5760100A/en
Publication of WO2000079350A1 publication Critical patent/WO2000079350A1/en
Publication of WO2000079350A9 publication Critical patent/WO2000079350A9/en

Links

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • G05B19/0426Programming the control sequence
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/23Pc programming
    • G05B2219/23258GUI graphical user interface, icon, function bloc editor, labview
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/23Pc programming
    • G05B2219/23323Select between entry and execution of program

Definitions

  • This disclosure relates to process automation.
  • An employer typically requires each of the employer's employees to perform certain tasks as a part of that employee's job. Often, an employer will employ several employees that perform the same task. However, each of the employees may perform this task in a different manner. The manner in which some employees perform the task may be better, from the employer's perspective, than the manner in which other employees perform that task. For example, more experienced employees may have knowledge that allows them to perform the task more efficiently than less experienced employees.
  • employers attempt to have a more experienced employee, such as a supervisor, impart that employee's knowledge for performing a given task to a new or less experienced employee.
  • a more experienced employee such as a supervisor
  • the employer may have the more experienced employee train the less experienced employee.
  • the effectiveness of such an approach depends, in part, on the more experienced employee having the time and ability to communicate that employee's knowledge effectively and the employer's ability to retain the more experienced employee.
  • an employer may wish that all employees performing a given task perform that task in a uniform manner. For example, government regulations may require that a given task be performed in a particular manner. In other situations, the employer may desire that the employees perform a given task in a manner that the employer has determined to be optimal. This is often referred to as using a "best practice" to perform a given task.
  • an employer typically creates a process for performing the task. The process defines the steps the employee is to take in performing the task. The employer typically promulgates such a process in written form so that employees may learn the process by reading it. Also, an employee may refer to the written process when the employee has a question about how to perform some aspect of the process. In many cases, an employee that performs several
  • an employee In order to complete a given task, an employee often must interact with one or more computer systems. For example, the employee may use a computer system to look up information the employee needs to complete a task. Also, the task may require that the employee input data into such a computer system. For example, an employee who works in a call center responding to customer inquiries may need to know how to use a computer system to access and/or update customer information stored in the system. In some instances, an employee may need to know how to use several computer systems in order to complete a given task. Often, the various computer systems an employee needs to know how to use in order to complete the various tasks that are a part of the employee's job are quite different. For example, the employee may need to know how to use computer systems maintained by the employer (e.g., a billing system) as well as external computer systems maintained by entities other than the employer (e.g., package tracking systems accessible over the Internet).
  • the employer e.g., a billing system
  • external computer systems maintained by entities other than the employer e.g.
  • process flow editing software can be tangibly stored on a computer-readable medium.
  • the process flow editing software can include instructions for causing a computer having a display and an input device operatively coupled to a cursor displayed on the display to select a process flow to be edited.
  • the process flow can include a plurality of commands, each command operable to cause the process flow editing software to perform a specified action when executed by the process flow execution software.
  • the process flow editing software also can include instructions that cause the computer to display a visual representation of the process flow and display a new command user interface control.
  • the process flow editing software also can include instructions for causing the computer to add a new command to the process flow and receive an indication of where the new command is to be executed in the process flow, if the new command user interface control is actuated.
  • the process flow editing software can further include instructions that cause the computer to delete at least one command from the process flow.
  • the process flow can include ordering data that indicates the order in which the commands in the process flow are to be executed. At least one command can have an associated option to control the execution of the command.
  • the process flow editing software can further include instructions that cause the computer to display an option associated with at least one command.
  • the process flow editing software can further include instructions that cause the computer to receive a change to the option, and apply the change to the option, if a user changes the option.
  • the visual representation of the process flow can be a flow chart.
  • the new command user interface control can be a new command icon and a user can actuate the new command icon by clicking on the new command icon.
  • the indication of where the new command is to be executed in the process flow can be received when the user connects the new command to the flow chart.
  • the process flow editing software can include the process flow execution software.
  • At least one of the commands when executed by the process flow execution software, can be operable to cause the process flow execution software to do at least one of the following: modify a property of a user interface (e.g., by opening, closing, or moving a window), retrieve first data (e.g., data retrieved from a database), output content (e.g., displaying text and/or a graphic and/or playing video or audio data), receive input from a user, execute a program (e.g., a macro, script, and/or application software such as a spreadsheet), generate an output (e.g., a document, email, and/or database transaction), and evaluate a function used to determine which command to execute next.
  • modify a property of a user interface e.g., by opening, closing, or moving a window
  • retrieve first data e.g., data retrieved from a database
  • output content e.g., displaying text and/or a graphic and/or playing video or audio data
  • receive input from a user execute
  • process execution software can be tangibly stored on a computer-readable medium and include instructions that cause a computer having a display and an input device operatively coupled to a cursor displayed on the display to retrieve a stored process flow from a process flow library.
  • the process flow can include a plurality of commands, each command being operable to cause the process flow execution software to perform a specified action.
  • the process flow can also include ordering data that indicates the order in which the commands in the process flow are to be executed.
  • the process flow execution software also can include instructions that cause the computer to determine a next command to execute based on the ordering data and to execute the next command.
  • At least one command can have an associated option to control the execution of the command.
  • at least one of the commands when executed by the process flow execution software, can be operable to cause the process flow execution software to perform at least one of the following: retrieve first data (e.g., data retrieved from a database), output content (e.g., by displaying text or a graphic and/or by playing video and/or audio data), receive input from a user, generate an output (e.g., a document, email, and/or database transaction), execute a program (e.g., a macro, script, and/or application software such as a spreadsheet), and evaluate a function used to determine which command to execute next.
  • retrieve first data e.g., data retrieved from a database
  • output content e.g., by displaying text or a graphic and/or by playing video and/or audio data
  • receive input from a user generate an output (e.g., a document, email, and/or database transaction)
  • execute a program e.g
  • the process flow library in such an implementation can store a plurality of process flows.
  • the plurality of process flows can include at least one process flow from a plurality of departments of an organization.
  • the process flow library can be made accessible over a computer network.
  • a method can feature selecting a process flow that includes a plurality of commands. Each command can be operable to cause process flow execution software to perform a specified action when the command is executed by the process flow execution software.
  • the method also can feature displaying a visual representation of the process flow and displaying a new command user interface control.
  • the method can include adding a new command to the process flow, and receiving an indication of where the new command is to be executed in the process flow, if the new command user interface control is actuated.
  • Advantageous implementations of such a method include one or more of the following features.
  • the process flow can include ordering data that indicates the order in which the commands in the process flow are to be executed. At least one command can have an associated option to control the execution of the command.
  • the method can further feature displaying the option associated with at least one command.
  • the method can also include receiving a change to the option, and applying the change to the option, if a user changes the option.
  • the visual representation of the process flow can be a flow chart.
  • the new command user interface control can be a new command icon. A user can actuate the new command icon by clicking on the new command icon. Also, the indication of where the new command is to be executed in the process flow can be received when the user connects the new command to the flow chart.
  • At least one of the commands when executed by the process flow execution software, can be operable to cause the process flow execution software to do at least one of the following: retrieve first data (e.g., data retrieved from a database), output content (e.g., by displaying text or a graphic and/or by playing video and/or audio data), receive input from a user, generate an output (e.g., a document, email, and/or database transaction), execute a program (e.g., a macro, script, and/or application software such as a spreadsheet), and evaluate a function used to determine which command to execute next.
  • a method can feature retrieving a stored process flow from a process flow library.
  • the process flow can include a plurality of commands, each command operable to cause a specified action to occur when the command is executed.
  • the process flow can also include ordering data that indicates the order in which the commands in the process flow are to be executed.
  • the method can also feature determining a next command to execute based on the ordering data, and executing the next command.
  • At least one command can have an associated option to control the execution of the command.
  • At least one of the commands can cause at least one of the following actions to occur when executed: retrieval of first data (e.g., data retrieved from a database), output of content (e.g., by displaying text or a graphic and/or by playing video and/or audio data), receipt of input from a user, generation of an output (e.g., a document, email, and/or database transaction), execution of a program (e.g., a macro, script, and/or application software such as a spreadsheet), and evaluation of a function used to determine which command to execute next.
  • first data e.g., data retrieved from a database
  • output of content e.g., by displaying text or a graphic and/or by playing video and/or audio data
  • receipt of input from a user generation of an output (e.g., a document, email, and/or database transaction)
  • execution of a program e.g., a macro
  • a method of assisting an operator complete a task can feature creating a process flow that, when executed, guides the operator in performing the task.
  • the method can also feature storing the process flow, making the process flow available to the operator, and executing the process flow.
  • the process flow can be created in a visual manner.
  • the process flow can be stored in a process flow library.
  • the process flow can be made available by making the process flow library accessible over a computer network.
  • the process flow can be created by a first user, and the process flow can be executed by a second user.
  • a method can feature creating a plurality of process flows.
  • Each process flow can include a plurality of commands, and each command can be operable to cause a specified action to occur when executed.
  • each process flow can generate an output.
  • the method can feature executing a next one of the process flows when the output of a previously executed process flow is received.
  • the process flows can be stored in a process flow library. At least one of the process flows can be associated with each of a plurality of departments of an organization.
  • Process automation software can be used to guide a user in completing a given task.
  • the process automation software can be operated in a first mode (referred to here as "author” mode) in order to create a "process flow.”
  • a process flow is a series of commands that can be executed by the process automation software while the process automation software operates in a second mode, referred to here as the "operator mode.”
  • a process flow can contain commands that cause the process automation software to retrieve and display information, prompt the operator to take some action, and generate an output such as file or document.
  • Most of the commands have one or more "options" that can be set by the author in order to control the action performed by that command.
  • the process flow also can contain ordering data that is used to determine which command is to be executed next. For example, for branching commands, the ordering data indicates which of several possible commands should be executed next.
  • the ordering data and branching commands allow the author to control the flow of execution of the process flow and can be used to implement a "business rule."
  • a business rule is decision making logic used to control how a task is completed.
  • the process automation software can be configured to work with a wide range of commands, options, and business rules so that the process automation software can provide a flexible tool for automating and standardizing a wide variety of tasks.
  • the process automation software allows an author to create a process flow in visual manner by manipulating various graphical user interface controls. In this way, the author can create a process flow in a user-friendly manner without having to learn and use a programming language.
  • the process automation software can also be used by the author to update or otherwise amend the process.
  • the user-friendly nature of the process automation tool allows the person who is most experienced in completing a given task to create and update a process flow without requiring the use of a computer programmer.
  • the process automation software executes the commands in the process flow, which can guide a user of the process automation software (referred to here as the "operator") in completing a task.
  • the process flow can be created so as to provide the operator with step-by-step information that the operator needs in order to perform the task in a desired manner (e.g., in accordance with a government or other regulation and/or in accordance with a best practice).
  • a desired manner e.g., in accordance with a government or other regulation and/or in accordance with a best practice.
  • commands and business rules that check for errors can be included in the process flow. This can reduce the amount of errors that occur while performing the task.
  • the process flow can be created (by including appropriate commands in the process flow) to access any databases, files, application programs, or other data sources needed in order to complete the task.
  • the operator need not know how to access and manipulate the underlying databases, files, application programs, or other data sources in order to complete the task; instead, the process flow is created so as to provide an easy-to-use front end to such data sources.
  • the process automation software is especially well suited for use in distributed systems where, for example, a wide variety of databases, files, application programs, or other data sources are made available over one or more networks. Therefore, by using the process automation software, an operator who does not have the required knowledge to access and manipulate such databases, files, application programs, or other data sources can nevertheless use the process automation software to complete the task. Moreover, creation of such process flows can reduce training time and costs.
  • an operator can complete a wider range of tasks since the operator can use the process automation software to execute process flows that provide step-by-step instructions for completing unfamiliar tasks.
  • Process flows created using the process automation software can be made available over a network. This allows several operators to search for, access, and execute the process flows. Also, this allows several authors to access and edit the process flows as needed. In this way, the most-up-to-date process flows can be used to execute a given task.
  • FIG. 1 is a block diagram of a system in which a client computer runs process automation software.
  • FIG. 2 is flow diagram of a method of editing a process flow.
  • FIG. 3A-3G are screenshots of one embodiment of the process automation software implementing the method shown in FIG. 2.
  • FIG. 4 is a flow diagram of a method of executing a process flow.
  • FIG. 5 is flow diagram of one approach to executing a command.
  • FIGS. 6A-6E are screenshots of one embodiment of the process automation software that implements methods shown in FIGS 4 and 5.
  • FIG. 7 is a flow diagram of a method of assisting an operator in completing a task.
  • FIG. 8 is a flow diagram of a method of automating a workflow.
  • Like reference symbols in the various drawings indicate like elements.
  • FIG. 1 is a block diagram of a system 100 in which a client computer 102 runs process automation software 104.
  • the process automation software 104 operates in two modes. In a first mode, a first user of the process automation software 104 can use the process automation software 104 to create a "process flow.” The first mode is referred to here as “author mode”, and the first user is referred to here as the "author.”
  • a process flow is a series of commands that can be executed by the process automation software 104 while the process automation software operates in a second mode, referred to here as the "operator mode.” While in operator mode, the process automation software 104 executes the commands in the process flow, which guide a user of the process automation software 104 (referred to here as the "operator") in completing a task.
  • the author and the operator can be the same or different people, depending on the application. Several different types of commands can be included in a process flow.
  • a process flow can contain commands that cause the process automation software 104 to modify a property of a user interface element, retrieve data, output content (e.g., by displaying text and/or a graphic and/or by playing video and/or audio data), prompt the operator to take some action, execute other programs (e.g., a program implemented as a macro, script, or application program such as a spreadsheet), and generate an output (e.g., a document, email, or database transaction).
  • commands that cause the process automation software 104 to modify a property of a user interface element, retrieve data, output content (e.g., by displaying text and/or a graphic and/or by playing video and/or audio data), prompt the operator to take some action, execute other programs (e.g., a program implemented as a macro, script, or application program such as a spreadsheet), and generate an output (e.g., a document, email, or database transaction).
  • output content e.g., by displaying text and/or a graphic and/or by
  • commands have one or more "options" that can be set by the author in order to control the action performed by that command.
  • an option can specify the location of a file that a given command loads or saves.
  • Other options can specify content that is to be output.
  • a command can include an option that specifies a text message that is to be displayed and a window (or other user interface element) in which the message is to be displayed.
  • Example commands that can be included in a process flow for execution by the process automation software 104, along with their corresponding options, are described in APPENDIX A.
  • the process flow also contains information indicative of the order in which the commands are to be executed. Such information is referred to here as "ordering data.”
  • the ordering data indicates, for each command, which command is to be executed next (referred to here as the "next command"). For most commands, the ordering data will indicate that a single command is the next command in the process flow. For other commands (referred to here as “branching commands”), the ordering data will indicate that there are two or more possible commands that can be the next command.
  • Such a branching command has an associated function (also referred to here as a "test") that is evaluated in order to determine which of the possible commands is the next command. Each possible command is associated with one of the values that can result from evaluating the function.
  • the branching command is executed, the next command after the branching command is determined by evaluating the function and selecting the possible command associated with the result returned by the function.
  • the ordering data and branching commands allow the author to control the flow of execution of the process flow.
  • Ordering data and branching commands can be used to implement a "business rule.”
  • a business rule is decision making logic used to control how a task is completed. For example, a business rule may be defined that requires an operator to determine the state in which a customer lives, and then, if the customer lives in a certain state, ask the customer a series of questions pertaining only to customers living in that state.
  • Business rules can also be used to implement error checks in the process flow.
  • business rules can be implemented in other ways, for example, by using external programs such as spreadsheets to analyze data.
  • the system 100 also includes a process flow library 106, in which several process flows 107 can be stored.
  • the process flow library 106 can be stored on media that is local to the client computer 102 and/or, as shown in FIG. 1 , be stored on media that is accessible over a computer network such as an internal network 108 (e.g., a local area network and/or a wide area network).
  • the process flow library 106 is stored on media that is accessible via the internal network 108 by several different client computers 102 (only one of which is shown in FIG. 1) so that multiple users can access, edit, and/or execute the process flows 107 stored in the process flow library 106.
  • the process automation software 104 can interact with office automation applications that can be executed on the client computer 102.
  • the process automation software 104 can interact with a spreadsheet program 109, a word processing program 110, a database program 112, a graphic design program 114, a presentation program 116, and a browser 118.
  • a process flow can cause the process automation software 104 to interact with an operating system 120 running on the client computer 102.
  • the process automation software 104 can interact with these programs, for example, by causing these programs to be executed by the client computer 102, causing a particular file or database to be loaded or otherwise accessed, retrieving data from the file or database, inputting or updating data included in the file or database, and/or causing at least a portion of the file or database to be printed or e-mailed.
  • These programs can be stored on media that is local to the client computer 102 and/or media that is accessible over a computer network (e.g., the internal network 108) to which the client computer 102 is connected.
  • the process automation software 104 can interact with internal systems 122 (e.g., databases or back office systems) that are accessible over the internal network 108 and/or external systems 124 that are accessible over an external network 126 such as the Internet.
  • internal systems 122 e.g., databases or back office systems
  • external systems 124 that are accessible over an external network 126 such as the Internet.
  • a process flow can cause the process automation software 104 to retrieve and/or update information stored in a database included in an internal system 122 or an external system 124.
  • the process automation software 104 also can interact with a device 128 that is directly connected to the client computer 102 and/or a device 130 that is accessible to the client computer 102 over the internal network 108 and/or the external network 126.
  • a device 128 that is directly connected to the client computer 102 and/or a device 130 that is accessible to the client computer 102 over the internal network 108 and/or the external network 126.
  • Such devices can include, for example, printers, plotters, and fax machines.
  • FIG. 2 is flow diagram of a method 200 of editing a process flow using the process automation software 104.
  • the process automation software 104 operates in author mode when editing a process flow.
  • the method 200 includes selecting a process flow to edit (block 202).
  • the author can use the process automation software 104 to create and edit a new process flow or to edit a process flow saved in the process flow library 106.
  • a visual representation of the edited process flow is displayed (block 204).
  • the current options associated with one or more of the commands of the process flow are displayed (block 206).
  • the method 200 also includes displaying one or more user interface controls (referred to here as the "new command user interface controls") that the author can actuate in order to add a new command to the edited process flow (block 208).
  • the author actuates one of the new command user interface controls (which is checked in block 210)
  • a new command is added to the process flow (block 212) and an indication of where in the process flow the new command is to be executed is received (block 214). This indication is used to update the ordering data to indicate when the new command will be executed.
  • the author can specify what type of command the new command is when the author actuates a new command user interface control. For example, each type of command that can be added to the process flow can have a different new command user interface control associated with that command. In order to add a command to the process flow, the author actuates the new command user interface control associated with the particular type of command the author wishes to add to the process flow. Alternatively, or in addition, the author can specify what type of command the new command is after the new command has been added to the process flow. For example, the process automation software 104 can be configured so that one of the options that is displayed for a selected command is the command type.
  • the command type for the selected command can be displayed using a user interface control that the author can actuate in order to change the command type for the selected command.
  • the process 200 then loops back to block 202 where the process automation software 104 displays a visual representation of the edited process flow (including the newly added command), the one or more new command user interface controls, and the current options for one or more commands.
  • the author changes an option of a given command (which is checked in block 216), then the change is received (block 218) and the change is applied to the command (block 220). Then, the method 200 loops back to block 202.
  • the author deletes a selected command (which is checked in block 222), then the command is deleted from the process flow (block 224). For example, the author can select a command (e.g., by selecting a user interface control associated with the command) and then delete the selected command (e.g., by pressing the DELETE key on the keyboard or selecting a "Delete" option form a menu). Then, the method 200 loops back to block 202.
  • FIGS. 3A-3G are screenshots of one embodiment of process automation software 104 that implements method 200.
  • the embodiment shown in FIGS. 3A-3G includes a user interface 300.
  • the user interface 300 includes a process directory window 302 in which the names 304 of process flows that can be edited are displayed.
  • the author can select a process flow to edit by using a mouse or other input device to "double click" on the name 304 of the process flow (or by using a keyboard equivalent).
  • the author can create a new process flow by selecting a "New" menu item 306 (shown in FIG. 3B) from a "File" menu 308 included in a main menu bar 310 of the user interface 300.
  • the process automation software 104 displays a conventional dialog box (not shown) in which the author can type a name for the new process.
  • the user interface 300 displays a process overview window 312 (shown in FIG. 3C) in which an overview of the selected process flow is displayed in outline form.
  • the process overview window 312 includes text headings 314 associated with the name of the selected process flow and any milestones included in the process flow. Milestones are identified in a process flow using the milestone command, which is described in APPENDIX A.
  • the user interface 300 can include a flow chart window 316 in which a visual representation of the process flow can be displayed as a flow chart 318.
  • the flow chart 318 includes a flow chart symbol 322 for each command in the process flow.
  • Each flow chart symbol 322 includes a label 324 describing the type of command associated with that flow chart symbol 322.
  • the type of command associated with each flow chart symbol can be indicated using flow chart symbols having differing shapes and/or colors, in which case each type of command would have a different symbol shape and/or color.
  • the user interface 300 also includes a command options window 326.
  • the command options window 326 includes user interface controls 328.
  • the user interface controls 328 display the current options associated with a selected command in the process flow. Which options are displayed in the command options window 326 depends on what type of command is selected.
  • a command in the process flow can be selected by clicking on the flow chart symbol 322 associated with that command.
  • the flow chart symbol 322 associated with the selected command can be visually indicated by highlighting that flow chart symbol 322.
  • the selected command shown in FIG. 3C is a "Display in Operator Window" command, which causes a message to be displayed in a specified window when the command is executed.
  • the options for such a "Display in Operator Window” command include the text of a message to be displayed and a selection of a window in which to display the message.
  • the command options window 326 includes a command type user interface control 330 that displays the command type of the selected command, a window user interface control 332 that displays which window the text message is to be displayed in when the command is executed, and a text message user interface control 334 that displays the text message that is to be displayed when the command is executed.
  • the options for such a "Display in Operator Window” can also include options that specify formatting properties of the message (e.g., font, size, underling, etc.).
  • the author can change the value of an option displayed in the command options window 326 by actuating the appropriate user interface control 328 in order to set the option to a desired value.
  • the author can change the command type for the selected command by actuating the command type user interface control 330.
  • the author can actuate the command type user interface control 330 in order to change the command type of the selected command from a "Display in Operator Window” type command to a "Write to Process Output" type command, as shown in FIG. 3D.
  • the user interface controls 328 displayed in the command options window 326 are changed to display the options associated with the new command type.
  • the command options window 326 also includes an "Apply" button 327 and a "Reset” button 329.
  • the author can apply any changes the author has made to the options associated with the selected command by actuating the "Apply” button 327.
  • the author can cancel any changes the author has made to the selected command since the "Apply” button 327 was last actuated.
  • the user interface 300 also includes a new command control 336.
  • the author can add a new command to the process flow by using a mouse or other input device attached to the client computer 102 to click on the new command control 336.
  • a new command control 336 When the user clicks on the new command control 336, a new flow chart symbol 338 corresponding to the new command is displayed, and then the author can drag and drop the new flow chart symbol 338 into the flow chart window 316, as shown in FIG. 3E.
  • the author then can indicate where in the process flow the new command is to be executed by "connecting" the new flow chart symbol 338 to another flow chart symbol 322 in the flow chart 318.
  • the user first clicks on a flow chart symbol 340 associated with a command that the new command is to follow in the process flow.
  • the author clicks on the new flow chart symbol 338.
  • a line 342 connecting the flow chart symbol 340 and the new flow chart symbol 338 is displayed, as shown in FIG. 3F.
  • a new command control can be incorporated into the visual representation of the process flow.
  • the flow chart symbols 322 can include a new command diamond 337, shown in FIG. 3D.
  • the author can add a new command to the process flow in between the commands associated with flow chart symbols 333 and 335 by clicking on the new command diamond 337.
  • This causes the process automation software to insert a new command in the process flow after the command associated with flow chart symbol 333 and before the command associated with flow chart symbol 335.
  • a new flow chart symbol (not shown) associated with the new command is displayed in between, and connected to, flow chart symbols 333 and 335.
  • the options associated with the new command are set to default values. For example, as shown in FIG. 3F, when the new flow chart symbol 338 is added to the flow chart 318, the command type of the new command is set to a "No Action" command type, which has no other options.
  • the author can then actuate the command type user interface control 330 to change the command type.
  • the author can change the command type to a "Display in Operator Window” command type, in which case the user interface controls 328 displayed in the command options window 326 change accordingly, as shown in FIG. 3G.
  • the author can change the options associated with a "Display in Operator Window” type command by actuating appropriate user interface controls 328, as described above.
  • the author can delete a selected command, e.g., by pressing the DELETE key on the keyboard or by using the mouse or other input device to select a "Delete" menu item.
  • the user interface 300 includes conventional user interface controls for allowing the author to save the edited process flow and to exit the process automation software 104.
  • the "File" menu 308 includes a "Save” item 350 that the author can select to save the edited process flow, a "Save As” item 352 that the author can select to save the edited process flow under a different name, a "Close” item 354 that the author can select to close the edited process flow, and an "Exit” item 356 that the author can select in order to exit the process automation software 104.
  • FIG. 4 is a flow diagram of a method 400 of executing a process flow using the process automation software 104. First, a saved process flow is retrieved (block 402).
  • the operator can select a process flow from the process flow library 106.
  • the process flow library 106 can include process flows relating to many different tasks.
  • the process flow library 106 can contain process flows relating to various functional areas of an organization.
  • the process flow library 106 can contain process flows for completing tasks in functional areas such as accounting, contracts, customer service, engineering, human resources, legal, marketing, management information systems (MIS), operations, programs, repair, sales, technical support and/or international.
  • the process automation software 104 can be used to provide a centralized repository of process knowledge for an organization.
  • the method 400 determines which command is to be executed based on the ordering data (block 404). For example, a process flow's business rules will identify a command that is to be executed first. Then, the identified command is executed (block 406). If the process flow is complete (which is checked in block 408), the process flow stops; otherwise the method 400 loops back to block 404 to identify and execute the next command in the process flow.
  • FIG. 5 is flow diagram of one approach to executing a command.
  • the process automation software 104 identifies the type of command to be executed (block 502). If the command is of a type that modifies a property of a user interface element (which is checked in block 504), then the property of the user interface element is modified as specified by the options associated with that command (block 506). For example, a command may cause a window to be opened, closed, sized, or moved and/or specify a label, color, or other attribute of a user interface element.
  • the command is a branching command (which is checked in block 508), then the function associated with that branching command is evaluated so that the next command to be executed can be identified (block 510).
  • the command is of a type that retrieves data (which is checked in block 512)
  • the data specified by the options associated with that command is retrieved (block 514).
  • the options associated with the command can include a filename from which data is to be loaded.
  • such options can include parameters needed to locate and access data stored on an internal system 122 or an external system 124.
  • the options can include a user name and password needed to access the database and table and field names that specify what data is to be retrieved from the database.
  • the command is of a type that receives operator input (which is checked in block 516)
  • operator input is received (block 518).
  • the options associated with the command can specify that the operator input is to be received from a particular user interface object or control (e.g., a window, dialog, or button), the keyboard, or other device by which the operator can provide input.
  • command is of a type that executes another program (which is checked in blocked 520)
  • program specified by the options associated with that command is executed (block 522). For example, a macro, script, or application such as a spreadsheet can be executed.
  • the command is of a type that outputs content (which is checked in blocked 524), then the content specified by the options associated with that command is outputted (block 526).
  • the content can be any type of data that can be processed by the client computer.
  • the options associated with the command can specify text or a graphic that is to be displayed.
  • such a command can play or otherwise output video and/or audio data.
  • the options associated with such a command can specify that data retrieved in block 514 and/or input received from the user in block 518 is to be displayed.
  • the options also can specify how such content is to be output (e.g., by specifying the formatting or location at which text and/or a graphic is to be displayed and/or by specifying the volume or speed at which video and/or audio data is to be played).
  • the command is of a type that generates output (which is checked in block 528), then the output specified by the options associated with that command is generated (block 530).
  • the command may be of a type that edits a document.
  • the associated options would specify the filename for the document and the content that is to be added to the document.
  • the content can be predefined and/or based on retrieved data or operator input.
  • Other types of commands that generate output include commands that create an email message that is sent to a specified email address, print a document, and insert or update data stored in an internal system 122 or external system 124.
  • the command is of a type that requires other processing to occur (which is checked in block 532), then such other processing is performed as specified by the options associated with that command (block 534).
  • FIGS. 6A-6E are screenshots of one embodiment of process automation software 104 that implements methods 400 and 500.
  • the embodiment shown in FIGS. 6A-6E includes a user interface 600.
  • the user interface 600 includes a process directory window 602 in which the names 604 of process flows that can be executed are displayed. The operator can select a process flow to execute by using a mouse or other input device to "double click" on the name 604 of the process flow (or by using
  • one or more commands in the selected process flow can specify various properties of the user interface 600. Those properties of the user interface 600 that are not specified by commands in the process flow can be set to default settings.
  • commands in the selected process flow and/or appropriate default settings cause the user interface 600 to display a process overview window 606 (shown in FIG. 6B).
  • An overview of the selected process flow can be displayed in outline form within the process overview window 606.
  • the process overview window 606 includes text headings 608 associated with the name of the selected process flow and any milestones included in the selected process flow. In the embodiment shown in FIGS.
  • the operator can change the order in which the commands in the process flow are executed by clicking on a text heading 608 shown in the process overview window 606.
  • a text heading 608 shown in the process overview window 606.
  • execution of the process flow continues from the command associated with that text heading 608. For example, if the operator clicks on the "Complete Application Form” text heading shown in FIG. 6B, then execution of the process flow continues from the "Milestone" command associated with the "Complete Application Form” text heading 608.
  • Commands in the selected process flow and/or appropriate default settings can open a help window 610.
  • Commands can be included in the process flow (e.g., a "Display in Operator Window” command) that, when executed, display messages in the help window 610.
  • messages providing "help" information about the task to be completed in accordance with the selected process flow are displayed in the help window 610.
  • the process automation software 104 can execute a "Display in Operator Window” command that causes the message "We will help the customer determine if he or she is eligible to apply for this program.” to be displayed in the help window 610.
  • the next-step window 612 includes a next-step text portion 605 in the upper part of the next-step window 612, a prompt text portion 607 in the middle part of the next-step window 612, and an input portion 609 in the lower part of the next-step window 612.
  • Commands can be included in the process flow (e.g., a "Display in Operator Window” command) that, when executed, display messages in the next-step text portion 605.
  • a message relating to the next step needed to complete the task is displayed in the next-step text portion 605.
  • the process automation software 104 can execute a "Display in Operator Window” command that causes the message "The first thing you must do is ask the customer what his or her gross income was last year.” to be displayed in the next-step text portion 605.
  • Commands can be included in the process flow (e.g., a "Display in Operator Window” command) that, when executed, display messages in the prompt portion 607 of the next-step window 612.
  • messages explaining what type of input is to be supplied by the operator are displayed in the prompt portion 607.
  • the process automation software 104 can execute a "Display in Operator Window” command that causes the message "Please enter the customer's gross income and press ENTER.” to be displayed in the prompt portion 607.
  • other commands e.g., an "Input from Operator” command
  • the operator enters data representing a customer's gross income (that is, "60000") into the input portion 609 and presses the ENTER key on the keyboard. Then, the process automation software 104 can execute an "Input from Operator" command to receive the input from the input portion 609.
  • Commands in the selected process flow and/or appropriate default settings can open a process output window 614.
  • Commands can be included in the process flow (e.g., a "Write User Input to Process Output" command) that, when executed, cause the process automation software 104 to generate process output.
  • the process output can, for example, be a document or an email.
  • the process output generated by such commands can be displayed in the process output window 614.
  • the process automation software 104 can be configured so that the operator can directly edit the process output shown in the process output window 614 (e.g., using conventional text and/or graphic editing tools). For example, as shown in FIG. 6D, the process automation software 104 can execute a "Display in Operator Window" command that causes the message "The customer is eligible for the program.
  • the process automation software 104 can execute another "Display in Operator Window” command that causes the message "First, we need to ask the customer for his or her name.” in the next-step text portion 605 of the next-step window 612.
  • the process automation software 104 can execute a "Display in Operator Window” command that causes the message "Please type the customer's name and press ENTER.” to be displayed in the prompt portion 607 of the next-step window 612.
  • the operator then enters the customer's name (that is, "Joe Smith") in the input portion 609 of the next-step window 612 and presses the ENTER key on the keyboard.
  • the process automation software 104 executes an "Input from Operator” command to receive the input from the input portion of the next-step window 612 and a "Write User Input to Process Output” command to insert the customer's name into a form displayed in the process output window 614, as shown in FIG. 6E.
  • FIG. 7 is a flow diagram of a method 700 of assisting an operator in completing a task.
  • a process flow is created for the task (block 702).
  • the process flow when executed, guides the user executing the process (i.e., the operator) in completing the task.
  • the process flow can be created by an author using the process automation software 104, as described above in connection with FIGS. 2 and 3A-3G.
  • the process automation software 104 allows an author to create a process flow in a visual manner without having to use a programming language.
  • the process flow can be created so as to guide the operator in completing the task in accordance with a best practice for completing the task.
  • the process flow can be created so as to guide the operator in completing the task in accordance with a government or other regulation that specifies how a given task must be completed.
  • the process flow is stored (block 704).
  • the process flow can be stored in a process flow library 106.
  • the process flow is then made available to the operator (block 706).
  • the process flow library 106 can be placed on an internal network 108 and/or an external network 126 so that the process flows 107 contained in the process flow library can be accessed by the operator.
  • the operator can execute the process flow (block 708).
  • the process flow can be executed using the process automation software 104 as described above in connection with FIGS. 4, 5, and 6A-6E.
  • a workflow is a series tasks in which the output of one task is used as an input to another task.
  • the tasks completed in such a workflow may span multiple functional areas of an organization.
  • a process flow for each of the tasks to be completed in the workflow are created (block 802).
  • the process flows can be created by one or more authors using the process automation software 104, as described above in connection with FIGS. 2 and 3A-3G.
  • the first process flow in the workflow is executed by an operator (block 804).
  • the process flow can be executed using the process automation software 104 as described above in connection with FIGS. 4, 5, and 6A-6E.
  • One of the outputs generated by the process flow is used as an input to another process flow in the workflow.
  • a workflow can include three tasks, each of which is performed by a member of a different department of an organization.
  • One task can be completed by a member of a customer service department and involves receiving a telephone call from a customer reporting the customer's need for service.
  • the output of this task can be a "trouble ticket" that identifies information that is needed to dispatch a technician to provide service to the customer.
  • the second task can be completed by a member of a dispatch department and involves receiving and reviewing the "trouble ticket” and then assigning a technician to provide service to the customer.
  • the output of this task can include a "work order" identifying the customer, the service to be performed, and who is to perform the service.
  • the third task can be completed by a member of the service department and involves receiving and reviewing the work order and then providing the specified service to the customer.
  • the output of this task can include a notification, sent to the customer service department and the dispatch department that the specified service has been provided.
  • a first process flow can be created that, when executed, guides an operator in completing the customer service task.
  • the output generated by the first process flow can be a trouble ticket that is emailed or otherwise sent to the dispatch department.
  • a second process flow can be created that, when executed, guides an operator in completing the dispatch task.
  • the output generated by the second process flow can be a work order that is emailed or otherwise sent to the service department.
  • a third process flow can be created that, when executed, guides an operator in completing the service task.
  • the output generated by the third process flow can be a notification that is emailed or otherwise sent to the customer service and dispatch departments in order to notify those departments that service has been provided to the customer.
  • Each of the process flows can be executed in turn in accordance with method 800 when the output generated by previous process flow has been received. In this way, the process automation tool 104 can provide user-friendly, flexible approach to creating workflows.
  • the invention can be implemented in digital electronic circuitry, or in computer hardware, firmware, software, or in combinations of them.
  • Apparatus of the invention can be implemented in a computer program product tangibly embodied in a machine-readable storage device for execution by a programmable processor; and method operations of the invention can be performed by a programmable processor executing a program of instructions to perform functions of the invention by operating on input data and generating output.
  • the invention can be implemented advantageously in one or more computer programs that are executable on a programmable system including at least one programmable processor coupled to receive data and instructions from, and to transmit data and instructions to, a data storage system, at least one input device, and at least one output device.
  • Each computer program can be implemented in a high-level procedural or object-oriented programming language, or in assembly or machine language if desired; and in any case, the language can be a compiled or interpreted language.
  • the programs can be implemented as standalone executable programs and/or as browser- based programs.
  • Suitable processors include, by way of example, both general and special purpose microprocessors.
  • a processor will receive instructions and data from a read-only memory and/or a random access memory.
  • a computer will include one or more mass storage devices for storing data files; such devices include magnetic disks, such as internal hard disks and removable disks; magneto-optical disks; and optical disks.
  • Storage devices suitable for tangibly embodying computer program instructions and data include all forms of non- volatile memory, including by way of example semiconductor memory devices, such as EPROM, EEPROM, and flash memory devices; magnetic disks such as internal hard disks and removable disks; magneto-optical disks; and CD-ROM disks. Any of the foregoing can be supplemented by, or incorporated in, ASICs (application-specific integrated circuits).
  • semiconductor memory devices such as EPROM, EEPROM, and flash memory devices
  • magnetic disks such as internal hard disks and removable disks
  • magneto-optical disks and CD-ROM disks.
  • CD-ROM disks CD-ROM disks
  • the invention can be implemented on a computer system having a display device such as a monitor or LCD screen for displaying information to the user and a keyboard and a pointing device such as a mouse or a trackball by which the user can provide input to the computer system.
  • the computer system can be programmed to provide a graphical user interface through which computer programs interact with users.

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Stored Programmes (AREA)

Abstract

Process automation software (100) in which a client computer (102) runs process automation software (104). The process automation software (104) operates in two modes. In a first mode (author mode), a first user (author) of the process automation software (104) can use the process automation software (104) to create a process flow. A process flow is a series of commands that can be executed by the process automation software (104) while the process automation software operates in a second mode (operator mode). While in operator mode, the process automation software executes the commands in the process flow, which guide a user of the process automation software in completing a task. The author and the operator can be the same or different people.

Description

PROCESS AUTOMATION BACKGROUND
This disclosure relates to process automation.
An employer typically requires each of the employer's employees to perform certain tasks as a part of that employee's job. Often, an employer will employ several employees that perform the same task. However, each of the employees may perform this task in a different manner. The manner in which some employees perform the task may be better, from the employer's perspective, than the manner in which other employees perform that task. For example, more experienced employees may have knowledge that allows them to perform the task more efficiently than less experienced employees.
Often, employers attempt to have a more experienced employee, such as a supervisor, impart that employee's knowledge for performing a given task to a new or less experienced employee. For example, the employer may have the more experienced employee train the less experienced employee. The effectiveness of such an approach depends, in part, on the more experienced employee having the time and ability to communicate that employee's knowledge effectively and the employer's ability to retain the more experienced employee.
Moreover, an employer may wish that all employees performing a given task perform that task in a uniform manner. For example, government regulations may require that a given task be performed in a particular manner. In other situations, the employer may desire that the employees perform a given task in a manner that the employer has determined to be optimal. This is often referred to as using a "best practice" to perform a given task. To help employees perform a given task in accordance with an applicable government regulation or best practice, an employer typically creates a process for performing the task. The process defines the steps the employee is to take in performing the task. The employer typically promulgates such a process in written form so that employees may learn the process by reading it. Also, an employee may refer to the written process when the employee has a question about how to perform some aspect of the process. In many cases, an employee that performs several
l - different tasks as a part of that employee's job must learn and perform several tasks, one for each of the tasks that are a part of the employee's job.
In order to complete a given task, an employee often must interact with one or more computer systems. For example, the employee may use a computer system to look up information the employee needs to complete a task. Also, the task may require that the employee input data into such a computer system. For example, an employee who works in a call center responding to customer inquiries may need to know how to use a computer system to access and/or update customer information stored in the system. In some instances, an employee may need to know how to use several computer systems in order to complete a given task. Often, the various computer systems an employee needs to know how to use in order to complete the various tasks that are a part of the employee's job are quite different. For example, the employee may need to know how to use computer systems maintained by the employer (e.g., a billing system) as well as external computer systems maintained by entities other than the employer (e.g., package tracking systems accessible over the Internet).
SUMMARY
In general, in one aspect, process flow editing software can be tangibly stored on a computer-readable medium. The process flow editing software can include instructions for causing a computer having a display and an input device operatively coupled to a cursor displayed on the display to select a process flow to be edited. The process flow can include a plurality of commands, each command operable to cause the process flow editing software to perform a specified action when executed by the process flow execution software. The process flow editing software also can include instructions that cause the computer to display a visual representation of the process flow and display a new command user interface control. The process flow editing software also can include instructions for causing the computer to add a new command to the process flow and receive an indication of where the new command is to be executed in the process flow, if the new command user interface control is actuated.
Advantageous implementations of such process flow editing software include one or more of the following features. The process flow editing software can further include instructions that cause the computer to delete at least one command from the process flow. The process flow can include ordering data that indicates the order in which the commands in the process flow are to be executed. At least one command can have an associated option to control the execution of the command. The process flow editing software can further include instructions that cause the computer to display an option associated with at least one command. Also, the process flow editing software can further include instructions that cause the computer to receive a change to the option, and apply the change to the option, if a user changes the option.
Also, the visual representation of the process flow can be a flow chart. In such an implementation, the new command user interface control can be a new command icon and a user can actuate the new command icon by clicking on the new command icon. Furthermore, the indication of where the new command is to be executed in the process flow can be received when the user connects the new command to the flow chart. Moreover, the process flow editing software can include the process flow execution software. In such an embodiment, at least one of the commands, when executed by the process flow execution software, can be operable to cause the process flow execution software to do at least one of the following: modify a property of a user interface (e.g., by opening, closing, or moving a window), retrieve first data (e.g., data retrieved from a database), output content (e.g., displaying text and/or a graphic and/or playing video or audio data), receive input from a user, execute a program (e.g., a macro, script, and/or application software such as a spreadsheet), generate an output (e.g., a document, email, and/or database transaction), and evaluate a function used to determine which command to execute next. In another aspect, process execution software can be tangibly stored on a computer-readable medium and include instructions that cause a computer having a display and an input device operatively coupled to a cursor displayed on the display to retrieve a stored process flow from a process flow library. The process flow can include a plurality of commands, each command being operable to cause the process flow execution software to perform a specified action. The process flow can also include ordering data that indicates the order in which the commands in the process flow are to be executed. The process flow execution software also can include instructions that cause the computer to determine a next command to execute based on the ordering data and to execute the next command.
Advantageous implementations of such process execution software include one or more of the following features. At least one command can have an associated option to control the execution of the command. Also, at least one of the commands, when executed by the process flow execution software, can be operable to cause the process flow execution software to perform at least one of the following: retrieve first data (e.g., data retrieved from a database), output content (e.g., by displaying text or a graphic and/or by playing video and/or audio data), receive input from a user, generate an output (e.g., a document, email, and/or database transaction), execute a program (e.g., a macro, script, and/or application software such as a spreadsheet), and evaluate a function used to determine which command to execute next.
The process flow library in such an implementation can store a plurality of process flows. The plurality of process flows can include at least one process flow from a plurality of departments of an organization. Also, the process flow library can be made accessible over a computer network.
In another aspect, a method can feature selecting a process flow that includes a plurality of commands. Each command can be operable to cause process flow execution software to perform a specified action when the command is executed by the process flow execution software. The method also can feature displaying a visual representation of the process flow and displaying a new command user interface control. Moreover, the method can include adding a new command to the process flow, and receiving an indication of where the new command is to be executed in the process flow, if the new command user interface control is actuated. Advantageous implementations of such a method include one or more of the following features. The process flow can include ordering data that indicates the order in which the commands in the process flow are to be executed. At least one command can have an associated option to control the execution of the command. The method can further feature displaying the option associated with at least one command. In such an implementation, the method can also include receiving a change to the option, and applying the change to the option, if a user changes the option. Furthermore, the visual representation of the process flow can be a flow chart. In such an implementation, the new command user interface control can be a new command icon. A user can actuate the new command icon by clicking on the new command icon. Also, the indication of where the new command is to be executed in the process flow can be received when the user connects the new command to the flow chart.
Moreover, at least one of the commands, when executed by the process flow execution software, can be operable to cause the process flow execution software to do at least one of the following: retrieve first data (e.g., data retrieved from a database), output content (e.g., by displaying text or a graphic and/or by playing video and/or audio data), receive input from a user, generate an output (e.g., a document, email, and/or database transaction), execute a program (e.g., a macro, script, and/or application software such as a spreadsheet), and evaluate a function used to determine which command to execute next. In another aspect, a method can feature retrieving a stored process flow from a process flow library. The process flow can include a plurality of commands, each command operable to cause a specified action to occur when the command is executed. The process flow can also include ordering data that indicates the order in which the commands in the process flow are to be executed. The method can also feature determining a next command to execute based on the ordering data, and executing the next command.
Advantageous implementations of such a method include one or more of the following features. At least one command can have an associated option to control the execution of the command. At least one of the commands can cause at least one of the following actions to occur when executed: retrieval of first data (e.g., data retrieved from a database), output of content (e.g., by displaying text or a graphic and/or by playing video and/or audio data), receipt of input from a user, generation of an output (e.g., a document, email, and/or database transaction), execution of a program (e.g., a macro, script, and/or application software such as a spreadsheet), and evaluation of a function used to determine which command to execute next.
In another aspect, a method of assisting an operator complete a task can feature creating a process flow that, when executed, guides the operator in performing the task. The method can also feature storing the process flow, making the process flow available to the operator, and executing the process flow.
Advantageous implementations of such a method include one or more of the following features. The process flow can be created in a visual manner. The process flow can be stored in a process flow library. In such an implementation, the process flow can be made available by making the process flow library accessible over a computer network. The process flow can be created by a first user, and the process flow can be executed by a second user.
In another aspect, a method can feature creating a plurality of process flows. Each process flow can include a plurality of commands, and each command can be operable to cause a specified action to occur when executed. Also, each process flow can generate an output. In addition, the method can feature executing a next one of the process flows when the output of a previously executed process flow is received.
Advantageous implementations of such a method include one or more of the following features. The process flows can be stored in a process flow library. At least one of the process flows can be associated with each of a plurality of departments of an organization.
Advantages that can be seen in implementations of the invention include one or more of the following. Process automation software can be used to guide a user in completing a given task. The process automation software can be operated in a first mode (referred to here as "author" mode) in order to create a "process flow." A process flow is a series of commands that can be executed by the process automation software while the process automation software operates in a second mode, referred to here as the "operator mode." Several different types of commands can be included in a process flow. For example, a process flow can contain commands that cause the process automation software to retrieve and display information, prompt the operator to take some action, and generate an output such as file or document. Most of the commands have one or more "options" that can be set by the author in order to control the action performed by that command.
The process flow also can contain ordering data that is used to determine which command is to be executed next. For example, for branching commands, the ordering data indicates which of several possible commands should be executed next. The ordering data and branching commands allow the author to control the flow of execution of the process flow and can be used to implement a "business rule." A business rule is decision making logic used to control how a task is completed. The process automation software can be configured to work with a wide range of commands, options, and business rules so that the process automation software can provide a flexible tool for automating and standardizing a wide variety of tasks.
In author mode, the process automation software allows an author to create a process flow in visual manner by manipulating various graphical user interface controls. In this way, the author can create a process flow in a user-friendly manner without having to learn and use a programming language. The process automation software can also be used by the author to update or otherwise amend the process. The user-friendly nature of the process automation tool allows the person who is most experienced in completing a given task to create and update a process flow without requiring the use of a computer programmer.
While in operator mode, the process automation software executes the commands in the process flow, which can guide a user of the process automation software (referred to here as the "operator") in completing a task. The process flow can be created so as to provide the operator with step-by-step information that the operator needs in order to perform the task in a desired manner (e.g., in accordance with a government or other regulation and/or in accordance with a best practice). By using such a process flow, the operator can perform the task in a more consistent manner and/or using less time. Also, commands and business rules that check for errors can be included in the process flow. This can reduce the amount of errors that occur while performing the task.
The process flow can be created (by including appropriate commands in the process flow) to access any databases, files, application programs, or other data sources needed in order to complete the task. In this way, the operator need not know how to access and manipulate the underlying databases, files, application programs, or other data sources in order to complete the task; instead, the process flow is created so as to provide an easy-to-use front end to such data sources. The process automation software is especially well suited for use in distributed systems where, for example, a wide variety of databases, files, application programs, or other data sources are made available over one or more networks. Therefore, by using the process automation software, an operator who does not have the required knowledge to access and manipulate such databases, files, application programs, or other data sources can nevertheless use the process automation software to complete the task. Moreover, creation of such process flows can reduce training time and costs.
Also, an operator can complete a wider range of tasks since the operator can use the process automation software to execute process flows that provide step-by-step instructions for completing unfamiliar tasks.
Process flows created using the process automation software can be made available over a network. This allows several operators to search for, access, and execute the process flows. Also, this allows several authors to access and edit the process flows as needed. In this way, the most-up-to-date process flows can be used to execute a given task.
The details of one or more embodiments of the invention are set forth in the accompanying drawings and the description below. Other features and advantages of the invention will become apparent from the description, the drawings, and the claims.
DESCRIPTION OF DRAWINGS
FIG. 1 is a block diagram of a system in which a client computer runs process automation software.
FIG. 2 is flow diagram of a method of editing a process flow.
FIG. 3A-3G are screenshots of one embodiment of the process automation software implementing the method shown in FIG. 2.
FIG. 4 is a flow diagram of a method of executing a process flow. FIG. 5 is flow diagram of one approach to executing a command.
FIGS. 6A-6E are screenshots of one embodiment of the process automation software that implements methods shown in FIGS 4 and 5.
FIG. 7 is a flow diagram of a method of assisting an operator in completing a task. FIG. 8 is a flow diagram of a method of automating a workflow. Like reference symbols in the various drawings indicate like elements.
DETAILED DESCRIPTION
FIG. 1 is a block diagram of a system 100 in which a client computer 102 runs process automation software 104. In one implementation, the process automation software 104 operates in two modes. In a first mode, a first user of the process automation software 104 can use the process automation software 104 to create a "process flow." The first mode is referred to here as "author mode", and the first user is referred to here as the "author."
A process flow is a series of commands that can be executed by the process automation software 104 while the process automation software operates in a second mode, referred to here as the "operator mode." While in operator mode, the process automation software 104 executes the commands in the process flow, which guide a user of the process automation software 104 (referred to here as the "operator") in completing a task. The author and the operator can be the same or different people, depending on the application. Several different types of commands can be included in a process flow. For example, a process flow can contain commands that cause the process automation software 104 to modify a property of a user interface element, retrieve data, output content (e.g., by displaying text and/or a graphic and/or by playing video and/or audio data), prompt the operator to take some action, execute other programs (e.g., a program implemented as a macro, script, or application program such as a spreadsheet), and generate an output (e.g., a document, email, or database transaction).
Most of the commands have one or more "options" that can be set by the author in order to control the action performed by that command. For example, an option can specify the location of a file that a given command loads or saves. Other options can specify content that is to be output. For example, a command can include an option that specifies a text message that is to be displayed and a window (or other user interface element) in which the message is to be displayed. Example commands that can be included in a process flow for execution by the process automation software 104, along with their corresponding options, are described in APPENDIX A. The process flow also contains information indicative of the order in which the commands are to be executed. Such information is referred to here as "ordering data."
In one implementation, the ordering data indicates, for each command, which command is to be executed next (referred to here as the "next command"). For most commands, the ordering data will indicate that a single command is the next command in the process flow. For other commands (referred to here as "branching commands"), the ordering data will indicate that there are two or more possible commands that can be the next command. Such a branching command has an associated function (also referred to here as a "test") that is evaluated in order to determine which of the possible commands is the next command. Each possible command is associated with one of the values that can result from evaluating the function. When the branching command is executed, the next command after the branching command is determined by evaluating the function and selecting the possible command associated with the result returned by the function. The ordering data and branching commands allow the author to control the flow of execution of the process flow.
Ordering data and branching commands can be used to implement a "business rule." A business rule is decision making logic used to control how a task is completed. For example, a business rule may be defined that requires an operator to determine the state in which a customer lives, and then, if the customer lives in a certain state, ask the customer a series of questions pertaining only to customers living in that state. Business rules can also be used to implement error checks in the process flow. In addition to using ordering data and branching commands, business rules can be implemented in other ways, for example, by using external programs such as spreadsheets to analyze data.
The system 100 also includes a process flow library 106, in which several process flows 107 can be stored. The process flow library 106 can be stored on media that is local to the client computer 102 and/or, as shown in FIG. 1 , be stored on media that is accessible over a computer network such as an internal network 108 (e.g., a local area network and/or a wide area network). In one implementation, the process flow library 106 is stored on media that is accessible via the internal network 108 by several different client computers 102 (only one of which is shown in FIG. 1) so that multiple users can access, edit, and/or execute the process flows 107 stored in the process flow library 106.
The process automation software 104 can interact with office automation applications that can be executed on the client computer 102. For example, as shown in FIG. 1 , the process automation software 104 can interact with a spreadsheet program 109, a word processing program 110, a database program 112, a graphic design program 114, a presentation program 116, and a browser 118. In addition, a process flow can cause the process automation software 104 to interact with an operating system 120 running on the client computer 102. The process automation software 104 can interact with these programs, for example, by causing these programs to be executed by the client computer 102, causing a particular file or database to be loaded or otherwise accessed, retrieving data from the file or database, inputting or updating data included in the file or database, and/or causing at least a portion of the file or database to be printed or e-mailed. These programs can be stored on media that is local to the client computer 102 and/or media that is accessible over a computer network (e.g., the internal network 108) to which the client computer 102 is connected.
The process automation software 104 can interact with internal systems 122 (e.g., databases or back office systems) that are accessible over the internal network 108 and/or external systems 124 that are accessible over an external network 126 such as the Internet. For example, a process flow can cause the process automation software 104 to retrieve and/or update information stored in a database included in an internal system 122 or an external system 124.
The process automation software 104 also can interact with a device 128 that is directly connected to the client computer 102 and/or a device 130 that is accessible to the client computer 102 over the internal network 108 and/or the external network 126. Such devices can include, for example, printers, plotters, and fax machines.
FIG. 2 is flow diagram of a method 200 of editing a process flow using the process automation software 104. The process automation software 104 operates in author mode when editing a process flow. The method 200 includes selecting a process flow to edit (block 202). For example, the author can use the process automation software 104 to create and edit a new process flow or to edit a process flow saved in the process flow library 106. Next, a visual representation of the edited process flow is displayed (block 204). In addition, the current options associated with one or more of the commands of the process flow are displayed (block 206).
The method 200 also includes displaying one or more user interface controls (referred to here as the "new command user interface controls") that the author can actuate in order to add a new command to the edited process flow (block 208). When the author actuates one of the new command user interface controls (which is checked in block 210), then a new command is added to the process flow (block 212) and an indication of where in the process flow the new command is to be executed is received (block 214). This indication is used to update the ordering data to indicate when the new command will be executed.
The author can specify what type of command the new command is when the author actuates a new command user interface control. For example, each type of command that can be added to the process flow can have a different new command user interface control associated with that command. In order to add a command to the process flow, the author actuates the new command user interface control associated with the particular type of command the author wishes to add to the process flow. Alternatively, or in addition, the author can specify what type of command the new command is after the new command has been added to the process flow. For example, the process automation software 104 can be configured so that one of the options that is displayed for a selected command is the command type. In such a configuration, the command type for the selected command can be displayed using a user interface control that the author can actuate in order to change the command type for the selected command. The process 200 then loops back to block 202 where the process automation software 104 displays a visual representation of the edited process flow (including the newly added command), the one or more new command user interface controls, and the current options for one or more commands.
If the author changes an option of a given command (which is checked in block 216), then the change is received (block 218) and the change is applied to the command (block 220). Then, the method 200 loops back to block 202. If the author deletes a selected command (which is checked in block 222), then the command is deleted from the process flow (block 224). For example, the author can select a command (e.g., by selecting a user interface control associated with the command) and then delete the selected command (e.g., by pressing the DELETE key on the keyboard or selecting a "Delete" option form a menu). Then, the method 200 loops back to block 202.
When the author is done editing the process flow (which is checked in block 226), the edited process flow is saved (block 228). For example, the edited process flow can be saved in the process flow library 106. FIGS. 3A-3G are screenshots of one embodiment of process automation software 104 that implements method 200. The embodiment shown in FIGS. 3A-3G includes a user interface 300. As shown in FIG. 3 A, the user interface 300 includes a process directory window 302 in which the names 304 of process flows that can be edited are displayed. The author can select a process flow to edit by using a mouse or other input device to "double click" on the name 304 of the process flow (or by using a keyboard equivalent). Alternatively, the author can create a new process flow by selecting a "New" menu item 306 (shown in FIG. 3B) from a "File" menu 308 included in a main menu bar 310 of the user interface 300. After selecting the "New" item 306, the process automation software 104 displays a conventional dialog box (not shown) in which the author can type a name for the new process.
After the author has selected a process flow to edit, the user interface 300 displays a process overview window 312 (shown in FIG. 3C) in which an overview of the selected process flow is displayed in outline form. The process overview window 312 includes text headings 314 associated with the name of the selected process flow and any milestones included in the process flow. Milestones are identified in a process flow using the milestone command, which is described in APPENDIX A.
In addition, the user interface 300 can include a flow chart window 316 in which a visual representation of the process flow can be displayed as a flow chart 318. The flow chart 318 includes a flow chart symbol 322 for each command in the process flow. Each flow chart symbol 322 includes a label 324 describing the type of command associated with that flow chart symbol 322. Alternatively, the type of command associated with each flow chart symbol can be indicated using flow chart symbols having differing shapes and/or colors, in which case each type of command would have a different symbol shape and/or color.
The user interface 300 also includes a command options window 326. The command options window 326 includes user interface controls 328. The user interface controls 328 display the current options associated with a selected command in the process flow. Which options are displayed in the command options window 326 depends on what type of command is selected. A command in the process flow can be selected by clicking on the flow chart symbol 322 associated with that command. The flow chart symbol 322 associated with the selected command can be visually indicated by highlighting that flow chart symbol 322. For example, the selected command shown in FIG. 3C is a "Display in Operator Window" command, which causes a message to be displayed in a specified window when the command is executed. The options for such a "Display in Operator Window" command include the text of a message to be displayed and a selection of a window in which to display the message. When the selected command is a "Display in Operator Window" type command, the command options window 326 includes a command type user interface control 330 that displays the command type of the selected command, a window user interface control 332 that displays which window the text message is to be displayed in when the command is executed, and a text message user interface control 334 that displays the text message that is to be displayed when the command is executed. In other implementations, the options for such a "Display in Operator Window" can also include options that specify formatting properties of the message (e.g., font, size, underling, etc.).
The author can change the value of an option displayed in the command options window 326 by actuating the appropriate user interface control 328 in order to set the option to a desired value. For example, the author can change the command type for the selected command by actuating the command type user interface control 330. The author can actuate the command type user interface control 330 in order to change the command type of the selected command from a "Display in Operator Window" type command to a "Write to Process Output" type command, as shown in FIG. 3D. When the command type is changed, the user interface controls 328 displayed in the command options window 326 are changed to display the options associated with the new command type. The command options window 326 also includes an "Apply" button 327 and a "Reset" button 329. The author can apply any changes the author has made to the options associated with the selected command by actuating the "Apply" button 327. By actuating the "Reset" button 329, the author can cancel any changes the author has made to the selected command since the "Apply" button 327 was last actuated.
The user interface 300 also includes a new command control 336. The author can add a new command to the process flow by using a mouse or other input device attached to the client computer 102 to click on the new command control 336. When the user clicks on the new command control 336, a new flow chart symbol 338 corresponding to the new command is displayed, and then the author can drag and drop the new flow chart symbol 338 into the flow chart window 316, as shown in FIG. 3E.
The author then can indicate where in the process flow the new command is to be executed by "connecting" the new flow chart symbol 338 to another flow chart symbol 322 in the flow chart 318. For example, the user first clicks on a flow chart symbol 340 associated with a command that the new command is to follow in the process flow. Then, the author clicks on the new flow chart symbol 338. A line 342 connecting the flow chart symbol 340 and the new flow chart symbol 338 is displayed, as shown in FIG. 3F. In addition, or instead, a new command control can be incorporated into the visual representation of the process flow. For example, the flow chart symbols 322 can include a new command diamond 337, shown in FIG. 3D. The author can add a new command to the process flow in between the commands associated with flow chart symbols 333 and 335 by clicking on the new command diamond 337. This causes the process automation software to insert a new command in the process flow after the command associated with flow chart symbol 333 and before the command associated with flow chart symbol 335. A new flow chart symbol (not shown) associated with the new command is displayed in between, and connected to, flow chart symbols 333 and 335. When a new command is added to the process flow, the options associated with the new command are set to default values. For example, as shown in FIG. 3F, when the new flow chart symbol 338 is added to the flow chart 318, the command type of the new command is set to a "No Action" command type, which has no other options. The author can then actuate the command type user interface control 330 to change the command type. For example, the author can change the command type to a "Display in Operator Window" command type, in which case the user interface controls 328 displayed in the command options window 326 change accordingly, as shown in FIG. 3G. The author can change the options associated with a "Display in Operator Window" type command by actuating appropriate user interface controls 328, as described above.
In addition, the author can delete a selected command, e.g., by pressing the DELETE key on the keyboard or by using the mouse or other input device to select a "Delete" menu item.
The user interface 300 includes conventional user interface controls for allowing the author to save the edited process flow and to exit the process automation software 104. For example, as shown in FIG. 3B, the "File" menu 308 includes a "Save" item 350 that the author can select to save the edited process flow, a "Save As" item 352 that the author can select to save the edited process flow under a different name, a "Close" item 354 that the author can select to close the edited process flow, and an "Exit" item 356 that the author can select in order to exit the process automation software 104. FIG. 4 is a flow diagram of a method 400 of executing a process flow using the process automation software 104. First, a saved process flow is retrieved (block 402). For example, the operator can select a process flow from the process flow library 106. The process flow library 106 can include process flows relating to many different tasks. For example, the process flow library 106 can contain process flows relating to various functional areas of an organization. For example, the process flow library 106 can contain process flows for completing tasks in functional areas such as accounting, contracts, customer service, engineering, human resources, legal, marketing, management information systems (MIS), operations, programs, repair, sales, technical support and/or international. Thus, the process automation software 104 can be used to provide a centralized repository of process knowledge for an organization. Then, the method 400 determines which command is to be executed based on the ordering data (block 404). For example, a process flow's business rules will identify a command that is to be executed first. Then, the identified command is executed (block 406). If the process flow is complete (which is checked in block 408), the process flow stops; otherwise the method 400 loops back to block 404 to identify and execute the next command in the process flow.
FIG. 5 is flow diagram of one approach to executing a command. First, the process automation software 104 identifies the type of command to be executed (block 502). If the command is of a type that modifies a property of a user interface element (which is checked in block 504), then the property of the user interface element is modified as specified by the options associated with that command (block 506). For example, a command may cause a window to be opened, closed, sized, or moved and/or specify a label, color, or other attribute of a user interface element.
If the command is a branching command (which is checked in block 508), then the function associated with that branching command is evaluated so that the next command to be executed can be identified (block 510).
If the command is of a type that retrieves data (which is checked in block 512), then the data specified by the options associated with that command is retrieved (block 514). For example, the options associated with the command can include a filename from which data is to be loaded. Also, such options can include parameters needed to locate and access data stored on an internal system 122 or an external system 124. For example, so that the process automation software 104 can access a database included in an internal system 122 or an external system 124, the options can include a user name and password needed to access the database and table and field names that specify what data is to be retrieved from the database.
If the command is of a type that receives operator input (which is checked in block 516), then operator input is received (block 518). For example, the options associated with the command can specify that the operator input is to be received from a particular user interface object or control (e.g., a window, dialog, or button), the keyboard, or other device by which the operator can provide input.
If the command is of a type that executes another program (which is checked in blocked 520), then program specified by the options associated with that command is executed (block 522). For example, a macro, script, or application such as a spreadsheet can be executed.
If the command is of a type that outputs content (which is checked in blocked 524), then the content specified by the options associated with that command is outputted (block 526). The content can be any type of data that can be processed by the client computer. For example, the options associated with the command can specify text or a graphic that is to be displayed. In addition, such a command can play or otherwise output video and/or audio data. The options associated with such a command can specify that data retrieved in block 514 and/or input received from the user in block 518 is to be displayed. The options also can specify how such content is to be output (e.g., by specifying the formatting or location at which text and/or a graphic is to be displayed and/or by specifying the volume or speed at which video and/or audio data is to be played).
If the command is of a type that generates output (which is checked in block 528), then the output specified by the options associated with that command is generated (block 530). For example, the command may be of a type that edits a document. For such a command, the associated options would specify the filename for the document and the content that is to be added to the document. The content can be predefined and/or based on retrieved data or operator input. Other types of commands that generate output include commands that create an email message that is sent to a specified email address, print a document, and insert or update data stored in an internal system 122 or external system 124. In addition, if the command is of a type that requires other processing to occur (which is checked in block 532), then such other processing is performed as specified by the options associated with that command (block 534).
FIGS. 6A-6E are screenshots of one embodiment of process automation software 104 that implements methods 400 and 500. The embodiment shown in FIGS. 6A-6E includes a user interface 600. As shown in FIG. 6 A, the user interface 600 includes a process directory window 602 in which the names 604 of process flows that can be executed are displayed. The operator can select a process flow to execute by using a mouse or other input device to "double click" on the name 604 of the process flow (or by using a keyboard equivalent). ~ „„,-«««
WO 00/79350
After the author has selected a process flow to execute, one or more commands in the selected process flow can specify various properties of the user interface 600. Those properties of the user interface 600 that are not specified by commands in the process flow can be set to default settings. In the example, shown in FIGS. 6B-6E, commands in the selected process flow and/or appropriate default settings cause the user interface 600 to display a process overview window 606 (shown in FIG. 6B). An overview of the selected process flow can be displayed in outline form within the process overview window 606. The process overview window 606 includes text headings 608 associated with the name of the selected process flow and any milestones included in the selected process flow. In the embodiment shown in FIGS. 6A-6F, the operator can change the order in which the commands in the process flow are executed by clicking on a text heading 608 shown in the process overview window 606. When the operator clicks on a text heading 608, execution of the process flow continues from the command associated with that text heading 608. For example, if the operator clicks on the "Complete Application Form" text heading shown in FIG. 6B, then execution of the process flow continues from the "Milestone" command associated with the "Complete Application Form" text heading 608.
Commands in the selected process flow and/or appropriate default settings can open a help window 610. Commands can be included in the process flow (e.g., a "Display in Operator Window" command) that, when executed, display messages in the help window 610. Preferably, messages providing "help" information about the task to be completed in accordance with the selected process flow are displayed in the help window 610. For example, as shown in FIG. 6B, the process automation software 104 can execute a "Display in Operator Window" command that causes the message "We will help the customer determine if he or she is eligible to apply for this program." to be displayed in the help window 610.
Commands in the selected process flow and/or appropriate default settings can open a next-step window 612. The next-step window 612 includes a next-step text portion 605 in the upper part of the next-step window 612, a prompt text portion 607 in the middle part of the next-step window 612, and an input portion 609 in the lower part of the next-step window 612. Commands can be included in the process flow (e.g., a "Display in Operator Window" command) that, when executed, display messages in the next-step text portion 605. Preferably, a message relating to the next step needed to complete the task is displayed in the next-step text portion 605. For example, as shown in FIG. 6B, the process automation software 104 can execute a "Display in Operator Window" command that causes the message "The first thing you must do is ask the customer what his or her gross income was last year." to be displayed in the next-step text portion 605.
Commands can be included in the process flow (e.g., a "Display in Operator Window" command) that, when executed, display messages in the prompt portion 607 of the next-step window 612. Preferably, messages explaining what type of input is to be supplied by the operator are displayed in the prompt portion 607. For example, as shown in FIG. 6B, the process automation software 104 can execute a "Display in Operator Window" command that causes the message "Please enter the customer's gross income and press ENTER." to be displayed in the prompt portion 607. In addition, other commands (e.g., an "Input from Operator" command) cause the process automation software 104 to receive data input by the operator into the input portion 609 of the next-step window 612. For example, as shown in FIG. 6C, the operator enters data representing a customer's gross income (that is, "60000") into the input portion 609 and presses the ENTER key on the keyboard. Then, the process automation software 104 can execute an "Input from Operator" command to receive the input from the input portion 609.
Commands in the selected process flow and/or appropriate default settings can open a process output window 614. Commands can be included in the process flow (e.g., a "Write User Input to Process Output" command) that, when executed, cause the process automation software 104 to generate process output. The process output can, for example, be a document or an email. The process output generated by such commands can be displayed in the process output window 614. In addition, the process automation software 104 can be configured so that the operator can directly edit the process output shown in the process output window 614 (e.g., using conventional text and/or graphic editing tools). For example, as shown in FIG. 6D, the process automation software 104 can execute a "Display in Operator Window" command that causes the message "The customer is eligible for the program. Now we will help the customer complete the application form." to be displayed in the help window 610. In addition, the process automation software 104 can execute another "Display in Operator Window" command that causes the message "First, we need to ask the customer for his or her name." in the next-step text portion 605 of the next-step window 612.
Then, the process automation software 104 can execute a "Display in Operator Window" command that causes the message "Please type the customer's name and press ENTER." to be displayed in the prompt portion 607 of the next-step window 612. The operator then enters the customer's name (that is, "Joe Smith") in the input portion 609 of the next-step window 612 and presses the ENTER key on the keyboard. The process automation software 104 executes an "Input from Operator" command to receive the input from the input portion of the next-step window 612 and a "Write User Input to Process Output" command to insert the customer's name into a form displayed in the process output window 614, as shown in FIG. 6E.
FIG. 7 is a flow diagram of a method 700 of assisting an operator in completing a task. First, a process flow is created for the task (block 702). The process flow, when executed, guides the user executing the process (i.e., the operator) in completing the task. The process flow can be created by an author using the process automation software 104, as described above in connection with FIGS. 2 and 3A-3G. In particular, the process automation software 104 allows an author to create a process flow in a visual manner without having to use a programming language. The process flow can be created so as to guide the operator in completing the task in accordance with a best practice for completing the task. In addition, or instead, the process flow can be created so as to guide the operator in completing the task in accordance with a government or other regulation that specifies how a given task must be completed. Then, the process flow is stored (block 704). For example, the process flow can be stored in a process flow library 106. The process flow is then made available to the operator (block 706). For example, the process flow library 106 can be placed on an internal network 108 and/or an external network 126 so that the process flows 107 contained in the process flow library can be accessed by the operator. Then, the operator can execute the process flow (block 708). The process flow can be executed using the process automation software 104 as described above in connection with FIGS. 4, 5, and 6A-6E. FIG. 8 is a flow diagram of a method 800 of automating a workflow. A workflow is a series tasks in which the output of one task is used as an input to another task. The tasks completed in such a workflow may span multiple functional areas of an organization. First, a process flow for each of the tasks to be completed in the workflow are created (block 802). The process flows can be created by one or more authors using the process automation software 104, as described above in connection with FIGS. 2 and 3A-3G. Then, the first process flow in the workflow is executed by an operator (block 804). The process flow can be executed using the process automation software 104 as described above in connection with FIGS. 4, 5, and 6A-6E. One of the outputs generated by the process flow is used as an input to another process flow in the workflow.
When the output from a previous process flow in the workflow is received (which is checked in block 806), the next process flow in the workflow can be executed (block 808). One of the outputs generated by this process flow can be used as an input to another process flow in the workflow unless the process flow is the last process flow in the workflow. The last process flow in the workflow can generate an output that provides a notification that the last task in the work flow is complete. If the process flow is the last process in the workflow (which is checked in block 810), then process stops; otherwise, the process 800 loops back to block 806. For example, a workflow can include three tasks, each of which is performed by a member of a different department of an organization. One task can be completed by a member of a customer service department and involves receiving a telephone call from a customer reporting the customer's need for service. The output of this task, for example, can be a "trouble ticket" that identifies information that is needed to dispatch a technician to provide service to the customer.
The second task can be completed by a member of a dispatch department and involves receiving and reviewing the "trouble ticket" and then assigning a technician to provide service to the customer. The output of this task, for example, can include a "work order" identifying the customer, the service to be performed, and who is to perform the service.
The third task can be completed by a member of the service department and involves receiving and reviewing the work order and then providing the specified service to the customer. The output of this task, for example, can include a notification, sent to the customer service department and the dispatch department that the specified service has been provided.
In such an example, a first process flow can be created that, when executed, guides an operator in completing the customer service task. The output generated by the first process flow can be a trouble ticket that is emailed or otherwise sent to the dispatch department. A second process flow can be created that, when executed, guides an operator in completing the dispatch task. The output generated by the second process flow can be a work order that is emailed or otherwise sent to the service department. A third process flow can be created that, when executed, guides an operator in completing the service task. The output generated by the third process flow can be a notification that is emailed or otherwise sent to the customer service and dispatch departments in order to notify those departments that service has been provided to the customer. Each of the process flows can be executed in turn in accordance with method 800 when the output generated by previous process flow has been received. In this way, the process automation tool 104 can provide user-friendly, flexible approach to creating workflows.
The invention can be implemented in digital electronic circuitry, or in computer hardware, firmware, software, or in combinations of them. Apparatus of the invention can be implemented in a computer program product tangibly embodied in a machine-readable storage device for execution by a programmable processor; and method operations of the invention can be performed by a programmable processor executing a program of instructions to perform functions of the invention by operating on input data and generating output. The invention can be implemented advantageously in one or more computer programs that are executable on a programmable system including at least one programmable processor coupled to receive data and instructions from, and to transmit data and instructions to, a data storage system, at least one input device, and at least one output device. Each computer program can be implemented in a high-level procedural or object-oriented programming language, or in assembly or machine language if desired; and in any case, the language can be a compiled or interpreted language. For example, the programs can be implemented as standalone executable programs and/or as browser- based programs. Suitable processors include, by way of example, both general and special purpose microprocessors. Generally, a processor will receive instructions and data from a read-only memory and/or a random access memory. Generally, a computer will include one or more mass storage devices for storing data files; such devices include magnetic disks, such as internal hard disks and removable disks; magneto-optical disks; and optical disks. Storage devices suitable for tangibly embodying computer program instructions and data include all forms of non- volatile memory, including by way of example semiconductor memory devices, such as EPROM, EEPROM, and flash memory devices; magnetic disks such as internal hard disks and removable disks; magneto-optical disks; and CD-ROM disks. Any of the foregoing can be supplemented by, or incorporated in, ASICs (application-specific integrated circuits).
To provide for interaction with a user, the invention can be implemented on a computer system having a display device such as a monitor or LCD screen for displaying information to the user and a keyboard and a pointing device such as a mouse or a trackball by which the user can provide input to the computer system. The computer system can be programmed to provide a graphical user interface through which computer programs interact with users.
The invention has been described in terms of particular embodiments. Other embodiments are within the scope of the following claims. For example, the described method operations can be performed in a different order and still achieve desirable results. Also, other forms of input and output can be used. For example, voice, gesture, and/or handwriting recognition technology can be used to allow voice, gesture, and/or handwriting input to be used in both operator and author modes.
APPENDIX A
Figure imgf000027_0001
Figure imgf000028_0001
Figure imgf000029_0001
Figure imgf000030_0001

Claims

WHAT IS CLAIMED IS:
1. Process flow editing software, tangibly stored on a computer-readable medium, comprising instructions that cause a computer having a display and an input device operatively coupled to a cursor displayed on the display to: select a process flow to be edited, the process flow including a plurality of commands, each command operable to cause the process automation software to perform a specified action when executed by the process flow execution software; display a visual representation of the process flow; display a new command user interface control; and if the new command user interface control is actuated, then: add a new command to the process flow; and receive an indication of where the new command is to be executed in the process flow.
2. The process flow editing software of claim 1 , further comprising instructions that cause the computer to delete at least one command from the process flow.
3. The process flow editing software of claim 1, wherein the process flow includes ordering data that indicates the order in which the commands in the process flow are to be executed.
4. The process flow editing software of claim 1 , wherein at least one command has an associated option to control the execution of the command.
5. The process flow editing software of claim 4, further comprising instructions that cause the computer to: display the option associated with at least one command.
6. The process flow editing software of claim 5, further comprising instructions that cause the computer to: if a user changes the option, receive a change to the option; and apply the change to the option.
7. The process flow editing software of claim 1 , wherein the visual representation of the process flow is a flow chart.
8. The process flow editing software of claim 7, wherein the new command user interface control is a new command icon, wherein a user actuates the new command icon by clicking on the new command icon.
9. The process flow editing software of claim 8, wherein the indication of where the new command is to be executed in the process flow is received when the user connects the new command to the flow chart.
10. The process flow editing software of claim 1 , wherein the process editing software includes the process flow execution software.
11. The process flow editing software of claim 10, wherein at least one of the commands, when executed by the process flow execution software, is operable to cause the process flow execution software to do at least one of the following: modify a property of a user interface; retrieve first data; output content; receive input from a user; execute a program; generate an output; and evaluate a function used to determine which command to execute next.
12. The process flow editing software of claim 11 , wherein the first data is retrieved from a database.
13. The process flow editing software of claim 11 , wherein the output includes at least one of a document, an email, and a database transaction.
14. Process flow execution software, tangibly stored on a computer- readable medium, comprising instructions that cause a computer having a display and an input device operatively coupled to a cursor displayed on the display to: retrieve a stored process flow from a process flow library, the process flow including: a plurality of commands, each command operable to cause the process flow execution software to perform a specified action; and ordering data that indicates the order in which the commands in the process flow are to be executed; determine a next command to execute based on the ordering data; and execute the next command.
15. The process flow execution software of claim 14, wherein at least one command has an associated option to control the execution of the command.
16. The process flow execution software of claim 14, wherein at least one of the commands, when executed by the process flow execution software, is operable to cause the process flow execution software to perform at least one of the following: modify a property of a user interface; retrieve first data; output content; receive input from a user; execute a program; generate an output; and evaluate a function used to determine which command to execute next.
17. The process flow execution software of claim 16, wherein the first data is retrieved from a database.
18. The process flow execution software of claim 16, wherein the output includes at least one of a document, an email, and a database transaction.
19. The process flow execution software of claim 1 A, wherein the process flow library stores a plurality of process flows.
20. The process flow execution software of claim 19, wherein the plurality of process flows include at least one process flow from a plurality of department of an organization.
21. The process flow execution software of claim 14, wherein the process flow library is accessible over a computer network.
22. A method comprising: selecting a process flow, the process flow including a plurality of commands, each command operable to cause process flow execution software to perform a specified action when the command is executed by the process flow execution software; displaying a visual representation of the process flow; displaying a new command user interface control; and if the new command user interface control is actuated, then: adding a new command to the process flow; and receiving an indication of where the new command is to be executed in the process flow.
23. The method of claim 22, wherein the process flow includes ordering data that indicates the order in which the commands in the process flow are to be executed.
24. The method of claim 22, wherein at least one command has an associated option to control the execution of the command.
25. The method of claim 24, further comprising: displaying the option associated with at least one command.
26. The method of claim 25, further comprising: if a user changes the option, receiving a change to the option; and applying the change to the option.
27. The method of claim 22, wherein the visual representation of the process flow is a flow chart.
28. The method of claim 27, wherein the new command user interface control is a new command icon, wherein a user actuates the new command icon by clicking on the new command icon.
29. The method of claim 28, wherein the indication of where the new command is to be executed in the process flow is received when the user connects the new command to the flow chart.
30. The method of claim 22, wherein at least one of the commands, when executed by the process flow execution software, is operable to cause the process flow execution software to do at least one of the following: modify a property of a user interface; retrieve first data; output content; receive input from a user; execute a program; generate an output; and evaluate a function used to determine which command to execute next.
31. The method of claim 30, wherein the first data is retrieved from a database.
32. The method of claim 30, wherein the output includes at least one of a document, an email, and a database transaction.
33. A method comprising: retrieving a stored process flow from a process flow library, the process flow including: a plurality of commands, each command operable to cause a specified action to occur when the command is executed; and ordering data that indicates the order in which the commands in the process flow are to be executed; determining a next command to execute based on the ordering data; and executing the next command.
34. The method of claim 33, wherein at least one command has an associated option to control the execution of the command.
35. The method of claim 33, wherein at least one of the commands causes at least one of the following actions to occur when executed: modification of a property of a user interface; retrieval of first data; output of content; receipt of input from a user; execution of a program; generation of an output; and evaluation of a function used to determine which command to execute next.
36. The method of claim 35, wherein the first data is retrieved from a database.
37. The method of claim 35, wherein the output includes at least one of a document, an email, and a database transaction.
38. A method of assisting an operator complete a task, the method comprising: creating a process flow that, when executed, guides the operator in performing the task; storing the process flow; making the process flow available to the operator; and executing the process flow.
39. The method of claim 38, wherein the process flow is created in a visual manner.
40. The method of claim 38, wherein the process flow is stored in a process flow library.
41. The method of claim 40, wherein the process flow is made available by making the process flow library accessible over a computer network.
42. The method of claim 38, wherein the process flow is created by a first user, and the process flow is executed by a second user.
43. A method comprising: creating a plurality of process flows, each process flow including a plurality of commands, each command operable to cause a specified action to occur when executed, wherein each process flow generates an output; and when the output of a previously executed process flow is received, executing a next one of the process flows.
44. The method of claim 43, wherein the process flows are stored in a process flow library.
45. The method of claim 43, wherein at least one of the process flows is associated with each of a plurality of departments of an organization.
PCT/US2000/017247 1999-06-22 2000-06-22 Process automation WO2000079350A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU57601/00A AU5760100A (en) 1999-06-22 2000-06-22 Process automation

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14047999P 1999-06-22 1999-06-22
US60/140,479 1999-06-22

Publications (2)

Publication Number Publication Date
WO2000079350A1 true WO2000079350A1 (en) 2000-12-28
WO2000079350A9 WO2000079350A9 (en) 2002-06-13

Family

ID=22491417

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2000/017247 WO2000079350A1 (en) 1999-06-22 2000-06-22 Process automation

Country Status (2)

Country Link
AU (1) AU5760100A (en)
WO (1) WO2000079350A1 (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103218677A (en) * 2012-01-20 2013-07-24 广州从兴电子开发有限公司 Automatic dispatch control method, automatic dispatch control device and automatic dispatch control system for processes
US8527327B1 (en) 2010-03-21 2013-09-03 Mark Lawrence Method and apparatus to manage project control
US8548868B1 (en) 2010-04-26 2013-10-01 Mark Lawrence Method and apparatus to aggregrate demand for buyer specified goods and services
US9015222B2 (en) 2008-09-24 2015-04-21 Edgeverve Systems Limited Method and system for managing one or more processes in a business center
CN110531977A (en) * 2019-09-04 2019-12-03 香港大德昌龙生物科技有限公司 Automation control method, device, computer equipment and the storage medium of instrument
CN111861047A (en) * 2019-04-08 2020-10-30 阿里巴巴集团控股有限公司 Data processing control method and computing device

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5105362A (en) * 1987-04-03 1992-04-14 Mitsubishi Denki Kabushiki Kaisha Method for producing semiconductor devices
US5287488A (en) * 1989-03-31 1994-02-15 Hitachi, Ltd. Software design supporting method for classifying portions possibly affected by a modification into those portions that can and cannot be automatically modified
US5694325A (en) * 1990-08-14 1997-12-02 Kabushiki Kaisha Toshiba Semiconductor production system
US6055369A (en) * 1997-05-06 2000-04-25 Hitachi Software Engineering Co., Ltd. Apparatus for visual programming with screen flow

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5105362A (en) * 1987-04-03 1992-04-14 Mitsubishi Denki Kabushiki Kaisha Method for producing semiconductor devices
US5287488A (en) * 1989-03-31 1994-02-15 Hitachi, Ltd. Software design supporting method for classifying portions possibly affected by a modification into those portions that can and cannot be automatically modified
US5694325A (en) * 1990-08-14 1997-12-02 Kabushiki Kaisha Toshiba Semiconductor production system
US6055369A (en) * 1997-05-06 2000-04-25 Hitachi Software Engineering Co., Ltd. Apparatus for visual programming with screen flow

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9015222B2 (en) 2008-09-24 2015-04-21 Edgeverve Systems Limited Method and system for managing one or more processes in a business center
US8527327B1 (en) 2010-03-21 2013-09-03 Mark Lawrence Method and apparatus to manage project control
US8548868B1 (en) 2010-04-26 2013-10-01 Mark Lawrence Method and apparatus to aggregrate demand for buyer specified goods and services
CN103218677A (en) * 2012-01-20 2013-07-24 广州从兴电子开发有限公司 Automatic dispatch control method, automatic dispatch control device and automatic dispatch control system for processes
CN111861047A (en) * 2019-04-08 2020-10-30 阿里巴巴集团控股有限公司 Data processing control method and computing device
CN110531977A (en) * 2019-09-04 2019-12-03 香港大德昌龙生物科技有限公司 Automation control method, device, computer equipment and the storage medium of instrument
CN110531977B (en) * 2019-09-04 2023-08-11 香港大德昌龙生物科技有限公司 Automatic control method and device for instrument, computer equipment and storage medium

Also Published As

Publication number Publication date
AU5760100A (en) 2001-01-09
WO2000079350A9 (en) 2002-06-13

Similar Documents

Publication Publication Date Title
US10248387B2 (en) Integrated system for software application development
US10540636B2 (en) Method and apparatus for providing process guidance
JP5255443B2 (en) Specify, set, and discover parameters for spreadsheet documents
US7657831B2 (en) Creating and customizing a workflow process from a document
JP4303617B2 (en) System and method for defining a process structure for task execution
US6828988B2 (en) Interactive tooltip
KR100991036B1 (en) Providing contextually sensitive tools and help content in computer-generated documents
US6335738B1 (en) Method and tool for generating and displaying a descriptive annotation of selected application data
US20060090071A1 (en) Systems and methods for project management
US5655086A (en) Configurable electronic performance support system for total quality management processes
US7669138B2 (en) Interacting with a computer-based management system
WO2011083302A1 (en) A method and system for implenting definable actions
EP1922604A2 (en) Command user interface for displaying selectable functionality controls in a database application
US6959429B1 (en) System for developing data collection software applications
CN107578217B (en) Working electronic flow autonomous generation method and device and office management system
US6243613B1 (en) N-dimensional material planning method and system with corresponding program therefor
US20080059437A1 (en) Data mining system
US11120200B1 (en) Capturing unstructured information in application pages
JP2003141320A (en) Project management system, program and recording medium
US7774755B2 (en) Quick-creating objects in an application
US20120310711A1 (en) System using feedback comments linked to performance document content
EP1619618A1 (en) Method, computer system and computer program product for running a business application
Puerta et al. The UI pilot: a model-based tool to guide early interface design
Assad et al. Project management using a microcomputer
WO2000079350A1 (en) Process automation

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CR CU CZ DE DK DM DZ EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG US UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

AK Designated states

Kind code of ref document: C2

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CR CU CZ DE DK DM DZ EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG US UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: C2

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

COP Corrected version of pamphlet

Free format text: PAGES 1/18-18/18, DRAWINGS, REPLACED BY NEW PAGES 1/17-17/17; DUE TO LATE TRANSMITTAL BY THE RECEIVING OFFICE

122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase

Ref country code: JP