Source: https://patents.google.com/patent/US20060200476?oq=6819670
Timestamp: 2018-03-20 22:45:27
Document Index: 585393081

Matched Legal Cases: ['ART1', 'ART1', 'ART1', 'ART1', 'ART1', 'ART1']

US20060200476A1 - Creating, storing and viewing process models - Google Patents
Creating, storing and viewing process models Download PDF
US20060200476A1
US20060200476A1 US11287547 US28754705A US2006200476A1 US 20060200476 A1 US20060200476 A1 US 20060200476A1 US 11287547 US11287547 US 11287547 US 28754705 A US28754705 A US 28754705A US 2006200476 A1 US2006200476 A1 US 2006200476A1
US11287547
US7917555B2 (en )
Josh Honeyman
Madan Natu
Michael Ehrenberg
Nicholas Lowe
Cary Rohwer
G06F17/30259—Information retrieval; Database structures therefor ; File system structures therefor in image databases based on features automatically derived from the image data using shape and object relationship
The location of a drawing of an activity, a property of an element in the drawing and the structural relationship of elements in the drawing are stored in a database. The database is accessed to form a user interface that provides a hierarchical representation of activities and the elements within activities.
Business applications are computer programs that are designed to assist in performing one or more business tasks that form part of an overall business process. Before such applications can be written, a business analyst typically studies the business and creates a model of the processes used in the business.
Currently, the processes are documented using a technical drawing program such as Visio® produced by Microsoft Corporation. In particular, the technical drawing program is used to place shapes representing tasks, events, or decision points, and arrows that connect these shapes into a document to produce a flow diagram representing the process. While defining a business process in a technical drawing program is intuitive, it is difficult to access the information contained in the drawing without opening the technical drawing document. In addition, the amount of information about the elements in the process is quite limited.
This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter
FIG. 1 is a block diagram of one computing environment in which some embodiments of the present invention may be practiced.
FIG. 2 is a block diagram of an alternative computing environment in which some embodiments of the present invention may be practiced.
FIG. 3 is an object model of process elements.
FIG. 4 is an object model of an event element.
FIG. 5 is a flow diagram of a method of creating and storing activity documents with metadata.
FIG. 6 is a block diagram of elements used to create and store activity documents, structures, and metadata.
FIG. 7 is a sample screen shot of a technical drawing program for creating activity diagrams and related metadata.
FIG. 8 is a sample process flow diagram with metadata.
FIG. 9 is a programming object model.
FIG. 10 is a collection of tables found in a database storing a process structure, diagrams and metadata.
FIG. 11 is an example of a work model explorer user interface.
FIG. 12 is a flow diagram of a method for displaying a hierarchical view of process elements.
FIG. 13 is a flow diagram of a method of viewing a process element selected from the explorer view.
FIG. 14 is a method for viewing process documents across a network.
FIG. 1 illustrates an example of a suitable computing system environment 100 on which embodiments may be implemented. The computing system environment 100 is only one example of a suitable computing environment and is not intended to suggest any limitation as to the scope of use or functionality of the invention. Neither should the computing environment 100 be interpreted as having any dependency or requirement relating to any one or combination of components illustrated in the exemplary operating environment 100.
With reference to FIG. 1, an exemplary system for implementing some embodiments includes a general-purpose computing device in the form of a computer 110. Components of computer 110 may include, but are not limited to, a processing unit 120, a system memory 130, and a system bus 121 that couples various system components including the system memory to the processing unit 120. The system bus 121 may be any of several types of bus structures including a memory bus or memory controller, a peripheral bus, and a local bus using any of a variety of bus architectures. By way of example, and not limitation, such architectures include Industry Standard Architecture (ISA) bus, Micro Channel Architecture (MCA) bus, Enhanced ISA (EISA) bus, Video Electronics Standards Association (VESA) local bus, and Peripheral Component Interconnect (PCI) bus also known as Mezzanine bus.
Input/output components 206 include a variety of input devices such as a touch-sensitive screen, buttons, rollers, and a microphone as well as a variety of output devices including an audio generator, a vibrating device, and a display. The devices listed above are by way of example and need not all be present on mobile device 200. In addition, other input/output devices may be attached to or found with mobile device 200.
A process modeling system is provided that allows business analysts to define business processes using a technical drawing program to draw the structures of the processes and to define metadata for elements in the processes. The structure, drawings and metadata are stored in a database that may be explored to produce a hierarchical view of the elements in the processes.
An activity diagram can be for a process, task or a step. Steps are the smallest measure of an activity and can be combined using events, gateways and flows to form a task. An event can trigger the processing of one or more steps or return a result after a series of steps. Gateways can either be used to direct the process down one of two flow paths or can be used to join two flow paths into a single path. Flows are connections between elements that indicate the flow of the process from one element to the next. Tasks are generally sequences of steps that are performed by a single persona or model user in a business. Sequences of tasks are joined together by events, gateways and flows to form a process. One process may be embedded in another process as a sub-process.
FIGS. 3 and 4 provide an object model that describes how the elements of a process are interrelated in some embodiments. In this object model, a process is decomposed into tasks, events, gateways and flows. Tasks in turn are decomposed into steps, events, gateways and flows. In FIG. 3, the basic elements found in a process document are a process 300, task 302, steps 304, events 306, gateway 308, and flows 310. A step 304 is an individual action taken within a task. A sequence of steps that make up a task are connected together along with gateways 308 and events 306 by flows 310. Events 306 indicate the beginning or end of an activity or a pause in an activity that resumes after some trigger. Gateways 308 can either be decision junctions or join junctions. A decision junction provides an expression that is evaluated to determine which of two flow paths to follow after the gateway 308. A join gateway merges two or more flow connections together to form a single flow path to the next step. Flows 310 are connections between elements that indicate the flow of the process from one element to the next. Flows 310 that occur after a gateway 308 include a property for the value of the expression that will cause the process to follow the path represented by the flow.
Tasks 302 are generally sequences of steps that are performed by a single persona or model user in a business. Sequences of tasks 302 are joined together along with events 306 and gateways 308 by flows 310 to form a process 300. One process may be embedded in another process as a sub-process.
As shown in FIG. 3, processes 300 do not link directly to tasks 302, events 306 or gateways 308. Similarly, tasks do not link directly to steps 304, events 306 or gateways 308. Instead, processes 300 link to task references 312, event references 316, and gateway references 318. Task references 312, event references 316, and gateway references 318 in turn link to task 302, event 306, and gateway 308, respectively. Similarly, tasks, such as business task 320, link to step reference 322, event reference 316 and gateway reference 318, which in turn link to step 304, event 306, and gateway 308, respectively.
Task reference 312, step reference 322, event reference 316 and gateway reference 318 allow multiple activities to reference the same elements without repeating the properties of the elements in the database. It also allows an activity to be defined before the underlying elements have been fully defined. Thus, the process may be defined by placing a task reference, an event reference or a gate reference in the process and then later defining a task event or gateway to satisfy that reference.
FIG. 4 shows a more detailed object model for the event element 306 of FIG. 3. In FIG. 4, an event 306 can refer to a trigger 400 or a result 402. Examples of possible triggers include error trigger 404, message trigger 406, rule trigger 408 and timer trigger 410. An error trigger 404 triggers an event when an error occurs. A rule trigger 408 triggers an event when a rule expression is satisfied. A timer trigger 410 triggers an event when an elapsed time or a particular time occurs. A message trigger 406 triggers an event when a particular message is received. In FIG. 4, two types of results 402 are provided including a message result 412 and an error result 414. An error result 414 issues an error when event 406 is reached. Message result 412 issues a message when event 406 is reached.
FIG. 5 provides a flow diagram for creating and storing information about business activities including processes, tasks and steps. FIG. 6 provides a block diagram of elements used in the process of FIG. 5.
At step 500 of FIG. 5, technical drawing application 600 of FIG. 6 is used to produce activity documents with properties 602. FIG. 7 provides an example user interface in a technical drawing application 600 that can be used to form the process documents and properties. In FIG. 7, a drawing pane 700, a stencil 702, and a properties pane 704 are shown. In some embodiments, templates are provided for drawing pane 700 with a separate template for processes, tasks, and steps.
Elements are added to drawing pane 700 from stencil 702, which includes selectable examples of elements that may be placed into drawing pane 700. For example, by placing the cursor on one of the elements in stencil 702, pressing a button on the mouse, and moving the mouse, the element in the stencil will be selected and dragged into a position on pane 700. When the mouse button is released, the element will be fixed in position in pane 700. Stencil 702 can include elements such as a sub-process box 706, a task box 708, a step box 710, a start event 712, an intermediate event 714, an end event 716, a decision gateway 718, and a sequence flow 720. Other elements may be provided in stencil 702, including multiple versions of the same type of element with different properties.
Properties pane 704 provides a list of metadata for a selected element in drawing pane 700. If no element within drawing pane 700 is selected, properties pane 704 includes metadata for the process, task, or step represented by the drawing document in pane 700. The element represented by the document, as well as each of the elements in the template, has a model ID. The model ID for an element uniquely identifies the element and the collection of metadata defined in the properties pane for the element.
Sub-processes, tasks, and steps that are found within another process or task are separately defined in another drawing document. The model ID for that drawing document corresponds to the model ID of the process, task, or step element in the parent document.
Elements that have been defined by setting certain metadata properties in properties pane 704 may be copied into other documents by selecting the element from a current document, copying the element using a copy command, and pasting the element into another document. If the model ID of the element is not changed when it is placed in the new document, both documents will reference the same element with the same collection of properties.
FIG. 8 provides an example of a process diagram with associated metadata for a process with a model ID TOPPROCESS. In FIG. 8, the metadata for TOPPROCESS is metadata 900 and includes the model ID TOPPROCESS, a ROOT? parameter which is set to TRUE to indicate that this a root process for a process group and a process group parameter that is set equal to BILLING to indicate that this root process is part of the BILLING group. The process of FIG. 8 begins with start event 802, which has metadata 804. Metadata 804 includes a model ID of START1 and an event type of START. This start event is triggered by a RULE TRIGGER known as BusinessRule1. Thus, when the rule trigger BusinessRule1 is true, start event 802 is triggered.
Flow 806 extends from start event 802 and is defined by metadata 808. Metadata 808 indicates that flow 806 has a model ID of FLOW1, that it extends from the START1 and that it extends to a PROCESSA element. The metadata also indicates that this flow is a SEQUENCE flow.
Flow 806 extends to sub-process 810. Sub-process 810 has metadata 812 that indicates that the model ID for the sub-process is PROCESSA and that it is part of the BILLING process group. The metadata also indicates that process 810 is not a root process and as such is a sub-process. The metadata also indicates that process 810 is not an end-to-end process.
A flow 814 extends from process 810 and has metadata 816. Metadata 816 indicates that flow 814 has a model ID of FLOW2, that it extends from an element with a model ID of PROCESSA and that it extends to an element with a model ID of GATEWAY1. Metadata 816 further indicates that flow 814 is a sequence flow.
Flow 814 extends to gateway 818, which has metadata 820. Metadata 820 indicates that gateway 818 has a model ID of GATEWAY1 and is a DECISION type gateway. Metadata 820 also identifies an expression that is evaluated when the process reaches gateway 818. In particular, the expression is the combination of two Boolean values REQUIRES_MGR and APPROVED_BELOW. These two Boolean values are ANDed together in the expression. Two flows 822 and 824 extend from gateway 818. Flow 822 has metadata 826 and flow 824 has metadata 828.
Metadata 826 indicates that flow 822 has a model ID of FLOW3, that it extends from an element with model ID GATEWAY1 to an element with model ID PROCESSB and that it is a SEQUENCE flow. The EXPRESSION VALUE parameter of metadata 826 that flow 822 is followed when the expression in GATEWAY 818 has a value of TRUE.
Flow 822 extends to sub-process 830, which has metadata 832. Metadata 832 indicates that sub-process 830 has a model ID of PROCESSB, is a member of the BILLING process group, and is not a root process. Metadata 832 further indicates that process 830 is not an end-to-end process.
Flow 834 extends from process 830 and has metadata 836. Metadata 836 indicates that flow 834 has a model ID of FLOW5, that it extends from an element with a model ID of PROCESSB and extends to an element with a model ID END1. Metadata 836 further indicates that flow 834 is a SEQUENCE flow.
Metadata 828, for flow 824, which extends from gateway 818, indicates that flow 824 has a model ID of FLOW4, that it extends from an element with a model ID of GATEWAY1 and extends to an element with a model ID of END1 and that it is a SEQUENCE flow. Further, metadata 828 indicates that flow 824 is followed in the process when the expression in metadata 820 for gateway 818 is false.
Flows 824 and 834 end at end event 840, which has metadata 842. Metadata 842 indicates that end event 840 has a model ID of END1, and is an end type event. In addition, it indicates that end event 840 produces a MESSAGE result type that is called APPROVALSTATE.
As can be seen from the example above, the properties metadata includes properties of the elements such as Gateway Type, and Trigger Type as well as structural relationship information that describes how the elements of the process are structurally related to each other in the drawing.
Under one embodiment, the elements have the following properties:
Shapes/ Metadata Property Remarks/
Diagram Category (Metadata) Comments
Process Workflow ID Coding based on MCT
and Guidelines. There will
Subprocess not be a shape for
this. All the custom
properties will be
entered into the
ThePage properties of
the Visio diagram
using the Work Model
Process Template. The
shape will have only
“ID” for doing the
Process Workflow Name Name of the
and subprocess attribute
Subprocess instance. For example,
“Record Invoice”.
Should match the text
on the shape.
Process Workflow Description Additional description
and about the subprocess.
Process Workflow Loop Condition Indicates the entire
and flow contained within
Subprocess a sub-process is
repeated based on a
loop condition. While
the loop condition
evaluates to true or
until the loop
condition evaluates to
false, the sub-process
Process Workflow Ad Hoc Indicates that the
and contained activities
Subprocess have no sequence.
This means that the
activities contained
within an ad-hoc sub-
process can be
executed in any order
with any frequency.
The order, frequency
and completion of an
ad-hoc sub-process are
person who performs
Process Business Process Class A process
and Logic classification that
Subprocess defines the
processes's behavior
and/or role in
transforming process
inputs into required
outputs. This is
needed at the sub-
process, if we don't
have a way to record
this custom property
basic diagram level.
Process Business Process Group Work represented by a
and Logic group of processes
Subprocess that transforms an
input into an output
to achieve a predefined,
business goal. This is
Process Business Preconditions State of an object
and Logic after an event or
Subprocess message has been
detected/received.
Process Business Enabling
and Logic factors
Process Business KPI A predefined,
and Logic quantifiable
Subprocess measurement that can
towards its business
Process Business Department
Process Business Persona Process Owner - input
and Logic is MBS Persona
Process Business Postconditions
Process Business Primary Input Abstract objects such
and Logic Entity as class definitions
Subprocess or schema that capture
important Master data
of an ERP system.
Business data (i.e.
attributes, fields,
properties, rules and
business logic with
respect to the
business entities)
being exchanged in
Process Business Input Type To define if it is a
and Logic single entity, or a
Subprocess collection
Process Business Primary Output Abstract objects such
Process Business Output Type To define if it is a
Process Business Input An artifact that has
and Logic Artifacts been created by
Subprocess someone or some
process. These are
mostly system
artifacts, such as
forms and reports,
which serve as
inputs/outputs to a
Process Business Output An artifact that has
Process Business User Defined Three User defined
and Logic Attribute 1 fields have been
Subprocess created for all shapes -
for extensibility
and product line
Process Business User Defined
and Logic Attribute 2
and Logic Attribute 3
Task Workflow ID The Custom Properties
will be defined on the
ThePage rather than
the shape of the Visio
diagram using the Work
Model Task template..
The shape will have
only “ID” for doing
the association with
the parent process
Task Workflow Name Name of the task
attribute. For
example, “Post bank
deposit”. Should match
the text on the shape.
Task Workflow Description Additional description
about the task.
Task Workflow Loop Condition Indicates the entire
flow contained within
a task is repeated
based on a loop
condition. While the
loop condition
false, the task is
Task Workflow Ad Hoc Indicates that the
contained activities
have no sequence.
Task Workflow Task Type Work Item is manual or
else it is business
task (Automated or
semi-automated)
Task Workflow Approval Indicates the ability
for the end user of
the system to add an
approval around the
task. Placement of the
approval needs to be
specified (before or
after the task).
Task Workflow Schedulable The ability for the
end user of the system
to schedule the
Task Workflow Required Within the sub-process
flow, the task must be
completed if Required
Task Business Persona MBS persona
Logic Need the ability to
assign multiple
Task Business Preconditions
Task Business KPI
Task Business Postconditions
Task Business Primary Input Abstract objects such
Logic Entity as class definitions
or schema that capture
Task Business Input Type To define if it is a
Logic single entity, or a
Task Business Primary Output Abstract objects such
Task Business Output Type To define if it is a
Task Business Input An artifact that has
Logic Artifacts been created by
someone or some
Task Business Output An artifact that has
Task Business Priority
Task Business Due Date
Task Business User Defined
Logic Attribute 1
Logic Attribute 2
Logic Attribute 3
Step Workflow ID The properties will
be entered and saved
on the shape's custom
Step Workflow Name Name of the step
example, “Enter PO
requirements”. Should
match the text on the
Step Workflow Description Additional description
about the step.
Step Workflow Step Type Manual is used to
identify a Step that
is performed outside
the context of the
Step Workflow Required Within the task flow,
the step must be
Step Workflow Web Service ID
Step Business Persona MBS persona
Step Business User Defined
Start Workflow ID
Start Workflow Name
Start Workflow Description
Start Workflow Multi Event
Start Workflow Trigger Type
Start Workflow Trigger Data Type of this
Event field is “Text”.
Mandatory setting
requires that Trigger
Type is other than
Start Workflow Trigger Entity
Start Business User Defined
Event Logic Attribute 1
Event Logic Attribute 2
Event Logic Attribute 3
Intermed. Workflow ID
Intermed. Workflow Name
Intermed. Workflow Description
Intermed. Workflow Multi Event
Intermed. Workflow Trigger Type
Intermed. Workflow Trigger Data Type of this
Intermed. Workflow Trigger Entity
Intermed. Business User Defined
End Event Workflow ID
End Event Workflow Name
End Event Workflow Description
End Event Workflow Multi Event
End Event Workflow Result Type
End Event Workflow Result Data Type of this
field is “Text”.
requires that Result
End Event Workflow Result Entity
End Event Business User Defined
Gateway Workflow ID Gateway/Condition or
Gateway Workflow Name
Gateway Workflow Description
Gateway Workflow Gateway
Gateway Workflow Gateway Type
Gateway Business User Defined
Sequence Workflow ID
Sequence Workflow Name
Sequence Workflow Description
Sequence Workflow Synchronous
Sequence Workflow Flow Type
Sequence Workflow Condition
Sequence Business User Defined
Flow Logic Attribute 1
Flow Logic Attribute 2
Flow Logic Attribute 3
Message Workflow ID
Message Workflow Name
Message Workflow Description
Message Workflow Synchronous
Message Workflow Message
Flow Document Type
Flow Document
Message Business User Defined
When the user wishes to save an activities document, they invoke the save command at step 502 of FIG. 5. Based on this save command, a document saving method 604 is invoked. At step 503, document saving method 604 determines if a database 608 is accessible. If the database is not accessible, the activity document and the associated properties of the elements are stored to a local storage device 605 at step 505. This allows users to save changes to activity documents when working “offline” and allows analysts and developers to make changes to documents even when they do not have access to the database.
If the database is accessible at step 503, the document saving method instantiates objects for each element in the process document at step 504. These objects contain properties that correspond to the properties found in properties pane 704. Saving methods 604 set the properties of objects 606 based on the property values found in property pane 704.
At step 506, objects 606 are used to store the metadata, which includes structural relationships between elements and other properties of the elements, and the location of the activity document in a database 608 using a data access layer 610. In particular, methods within objects 606 are used to store the metadata of the objects in database 608.
Database 608 includes a security layer that verifies whether the current user has write access to the activity documents that are being saved at step 508. If the user does not have write access, a security error will be generated. In response to this security error, saving methods 604 will produce a dialog box at step 510 informing the user that they do not have permission to change the activity document.
If database 608 determines that the user has write access to the activity document, database 608 then determines if changes to the activity document have been locked out at step 511. Changes to an activity document may be locked out if another user has checked out the activity document from the database. This prevents users from making conflicting changes to the activity document and allows managers to capture a final version of the activity document. If the activity document is locked out, the user is notified at step 513 and the changes are not saved to the database.
If database 608 determines that the activity document is not locked out at step 511, the activity document and the metadata for the elements in the document are stored at step 512. Storing the activity document involves storing the document to a storage device and recording the location of the document in database 608.
As shown above, programming objects 606 are used to store the metadata of the activity documents. In particular, the properties of programming objects 606 are set to the properties of the metadata of the elements in the activity document before being stored to database 608. The elements in an activity document share many common properties including the model ID property. In addition, the objects that represent these elements support many of the same methods including to the methods used to store the elements in the database.
FIG. 9 provides a programming object model that shows how the programming objects that represent the elements in a process inherit methods and properties from other objects. In FIG. 9, WMOBJECT 900 contains the properties and methods that are shared between all of the elements found in any of the activity documents. Task reference 902, step reference 904, event 906, event reference 908, gateway 910, gateway reference 912 and flow 914 all inherit directly from WMOBJECT 900. Process 916, task 918, and step 920 inherit from an activity object 922 that inherits from WMOBJECT 800. Thus, properties and methods that are common to process 916, task 918, and step 920 are found in activity 922.
Business task object 924 and work item object 926 inherit from task 918. Business operation object 928 and web service object 930 inherit from step object 920. Sequence flow object 932 and message flow object 934 inherit from flow object 914.
FIG. 10 provides an example of tables found in database 608 with entries corresponding to the process of FIG. 8 having been stored in database 608. FIG. 10 includes process table 1000, events table 1002, gateway table 1004, task table 1006, step table 1008, flow table 1010, process relationship table 1012, gateway ref table 1014, event ref table 1016, task ref table 1018, and step ref table 1020.
Process table 1000 includes a row entry for every process defined in the system. Each entry includes properties for the process such as model ID, an indication of whether the process is a root process, the process group for the process, and a location for the corresponding drawing document. For example, the process in the first entry of process table 1000 has a model ID of TOPPROCESS, it is indicated as being a root process and as being part of the BILLING process group. Further, the drawing document for the process is found at \topproc.vsd.
Events table 1002 includes an entry for each event defined in any activity document. Each entry in events table 1002 includes properties for the event such as the model ID, an event type, which indicates what type of event is represented by the entry, and a trigger for the event. For example, the first entry in events table 1002 is for an event with a model ID of START1 that is a START type event that is triggered by the BUSINESSRULE1 trigger.
Gateway table 1004 provides an entry for each gateway in the system. Each entry in gateway table 1004 includes information such as a model ID for the gateway, an expression that indicates the expressions to be evaluated at the gateway, and the gateway type.
Task table 1006 provides a separate entry for each task defined in the activity documents. Each entry in the task table includes properties of the task such as model ID and the persona responsible for the task.
Step table 1008 provides a separate entry for each step found in the activity documents. Each entry in the step table includes a properties of the step such as model ID and a document used during the step.
Although certain properties are shown in process table 1000, events table 1002, gateway table 1004, task table 1006 and step table 1008, those skilled in the art will recognize that a separate field is provided in each of these tables for each property defined for the respective element in the object model.
Flow table 1010 provides an entry for every flow in the system. Flow table 1010 includes fields such as process ID to indicate which process the flow is found in, model ID, which indicates the model ID of the flow, FROMOBJECT, which indicates the model ID of the object the flow extends from and TOOBJECT, which indicates the model ID of the object that the flow extends to.
Process relationship table 1012 provides an entry for each occurrence of a sub-process in the activity documents. Each entry includes the model ID of the parent process and the sub-process and thus provides an association between the parent process and the sub-process.
Gateway Ref table 1014, Event Ref table 1016, Task Ref table 1018 and Step Ref table 1020 each provide an indirect link between a process or task and an element. Each table provides a field for the model ID of an activity in which the element is found and a field for the model ID of the element. For example, Gateway Ref table 1014 shows an entry that associates a gateway with model ID GATEWAY1 with an activity with a model ID of TOPPROCESS. This association is constructed based on the fact that the GATEWAY1 element was found within the drawing document of the TOPPROCESS process.
As shown in Event Ref table 1016, the indirect link provided by the Ref tables allow two separate activities to reference a same entry in an element table. In Event Ref table 10016, there are two entries for the START1 event. One entry has TOPPROCESS listed as the model ID of a process that contains the START1 event. A second entry has SECONDPR listed as a process that contains the START1 event. Thus, both entries refer to the same element, which is defined in a single entry in events table 1002.
Once the data is stored in database 608, it may be used to generate a hierarchical display such as the one shown in user interface 1100 of FIG. 11. In FIG. 11, a work model explorer user interface is shown in which the root processes of the system are grouped together in process groups 1102 such as purchasing 1104, HR 1106 and pay 1108. In each process group, a set of processes are defined such as TOPPROCESS 1110, SECONDPR 1112, and NEW HIRE process 1114. If a sub-process is defined in the database but has not been associated with a root process, or a root process has not been associated with a group, the sub-process or process is grouped under an EXCEPTIONS heading 1116.
FIG. 12 provides a flow diagram of a method for generating work model explorer user interface 1100 of FIG. 11. In step 1200 of FIG. 12, work model explorer 612 of FIG. 6 uses data access layer 610 to query database 608 for all possible process groups defined in database 608. At step 1202, database 608 performs a security check to determine if the user has read access to the process system. If the user does not have read access, they are informed that they do not have rights to view the process system at step 1204. If the user does have rights to view the process system, work model explorer 612 performs a further query at step 1206 to determine if there are activities that are orphaned. An activity, such as a process, task or step is said to be orphaned if it is defined in the database but is not associated with a root process or if with a process group. If an orphaned activity is found in the database at step 1206, an exceptions header is generated to be included in the work model explorer.
At step 1208, the groups identified in query 1200 and the exceptions header, if identified at step 1206, are displayed.
At step 1210, the method determines if a command to expand a node has been received. A node will be expanded when the user selects the plus icon next to the node or double clicks on the node. If a command to expand a node has not been received at step 1209, the process remains in step 1209.
If a command to expand a node is received at step 1209, the process continues at step 1210 to determine if the command is to expand a group node. If the command is to expand a group node, work model explorer 612 queries database 608 for all root processes of the selected group at step 1212. At step 1214 the database does a security check to determine if the current user has the rights to view the contents of the selected node. If the user does not have rights to view the contents of the selected node, a security error is generated and the user is informed that they do not have rights to view the contents of the node at step 1216. If the user does have rights to view the contents of the node, the contents returned by the query are displayed at step 1218 and the process returns to step 1209.
If the instruction to expand a node is not applied to a group node at step 1210, the method determines if the command relates to a process or task at step 1220. If the command to expand a node relates to a process or task, work model explorer 612 queries database 608 to identify all item types of the current process or task at step 1222. Database 608 then performs a security check at step 1214 and either tells the user they do not have rights to view the items under the selected process or task at step 1216 or displays the item types of the process or task at step 1218.
If the node selected for expansion is not a process or task at step 1222, it is an item type heading and work model explorer 612 queries all items of that type associated with the current process or task at step 1224. Database 608 performs a security check at step 1214 and tells the user if they do not have rights to view the items under the item type heading at step 1216. If the user does have rights to view the items under the item type heading, the items are displayed at step 1218 and the process returns to step 1209.
Users are able to view elements shown in work model explorer 1100 by right clicking on the elements and requesting that they be opened. FIG. 13 shows a flow diagram for viewing an element displayed in the work model explorer. At step 1300, a command to view an element is received. At step 1302, a query is performed on database 608 by work model explorer 612 to determine what document the element is found in and to find the location of that document. At step 1304, database 608 does a security check to determine if the user has the rights to view the document containing the element. If the user does not have rights, a security error is generated and the user is informed that they do not have rights to view the element at step 1306. If the user does have rights to view the element at step 1304, technical drawing application 600 is started at step 1308, if it is not currently running. The document that contains the element is then opened within the technical drawing application at step 1310. At this point, the user may make changes to the document including changing the metadata of any element in the document. The user can then save the document and the changes to the document as discussed above in FIG. 5.
In certain embodiments, the process documents may be viewed in a static format across a network, such as the Internet. FIG. 14 shows a flow diagram for viewing process documents over a network. At step 1400 a web server 620 receives a request from a web viewer 622 through a network 624 such as the Internet. At step 1402, web server 620 uses data access layer 610 to access database 608 to obtain data to construct a web-based view of the process document. This web-based view of the process document includes links that are associated with sub-processes and tasks, so that when a sub-process or task shown in the web-based view is selected, a request to view the document associated with the sub-process or task is sent to web server 620. At step 1404, the web-based document is passed to web viewer 622 through network 624. At step 1406, if the user of the web viewer selects a process or task, a request to view the document associated with the process or task is passed to web server 620 at step 1408. The process then returns to step 1400 to process the request for the new process document.
Web-based process documents for sub-processes include a link that allows the web viewer to request the document for the parent process of the current sub-process. If the user has not selected a process or task at step 1406, the method determines if the user has selected the link to the parent process at step 1410. The user has selected the link to the parent process, a request to view the parent process is sent to the web server at step 1412. The process then returns to step 1400. If the user has not selected a link to the parent process, the method of FIG. 14 returns to step 1406.
Although steps 1406 and 1410 are shown as sequential steps, they actually occur in parallel, with the method waiting for the selection of either a link to the parent process or a link to a sub-process or task.
storing the location of a drawing of an activity in a database, the drawing comprising a plurality of elements;
storing at least one property in the database for each element in the drawing; and
storing a structural relationship in the database that describes the structural relationship between at least two elements in the drawing.
2. The method of claim 1 wherein storing a structural relationship comprises storing an entry for each of a set of flow elements in the drawing, wherein each entry indicates which elements are connected by the flow element.
3. The method of claim 1 wherein storing a structural relationship in the database comprises associating an identifier for the element with an identifier for the activity in the database.
4. The method of claim 1 further comprising storing the location of a plurality of drawings for a plurality of respective activities in the database and storing at least one property for each element in each drawing.
5. The method of claim 4 wherein the same element appears in a first drawing for a first activity and a second drawing for a second activity and wherein storing a structural relationship comprises storing an association between an identifier for the element and an identifier for the first activity and storing an association between the identifier for the element and an identifier for the second activity.
6. The method of claim 3 wherein associating an identifier for an element with an identifier for an activity comprises storing the identifier for the element and the identifier for the activity in a first table in the database and wherein storing a property for the element comprises storing the identifier for the element and the property for the element in a second table in the database.
7. The method of claim 1 further comprising creating the drawing of the activity by placing elements in the drawing and setting properties for the elements.
8. The method of claim 7 wherein setting properties for an element comprises providing values for properties displayed in a user interface.
9. The method of claim 8 wherein the properties for the element are displayed on the user interface when the element is selected while the drawing appears in the user interface.
10. The method of claim 1 further comprising accessing the database to retrieve information to generate a user interface that shows a hierarchical representation of activities and the elements in the activities.
providing a user interface to edit a business process diagram;
receiving a command to save the changes to the process diagram;
determining if a remote database comprising data that describes the structures of process diagrams is accessible; and
storing the process diagram as edited on a local storage device if the remote database is not accessible.
12. The computer-readable medium of claim 11 having computer-executable instructions for performing further steps comprising:
storing information that describes the structural relationship between elements of the process diagram in the remote database if the remote database is accessible.
13. The computer-readable medium of claim 12 having computer-executable instructions for performing further steps comprising:
determining if a user has rights to store information related to the process diagram before storing the information.
14. The computer-readable medium of claim 12 having computer-executable instructions for performing further steps comprising:
determining if the process diagram is checked out by another user and refusing to store information related to the process diagram if the process diagram is checked out by another user.
15. The computer-readable medium of claim 12 wherein the remote database further comprises data representing properties of elements in process diagrams and the steps further comprise storing properties of elements of the process diagram in the remote database.
16. The computer-readable medium of claim 15 wherein providing a user interface to edit a process diagram comprises providing a user interface to edit properties of elements in the process diagram.
17. A method of modeling a process, the method comprising:
decomposing a process into at least one task and at least one additional element; and
decomposing a task in the process into at least one step and at least one additional element.
18. The method of claim 17 wherein decomposing a process further comprises decomposing the process into a subprocess.
19. The method of claim 17 wherein decomposing a process into at least one additional element comprises decomposing the process into an event.
20. The method of claim 17 wherein decomposing a process into at least one task comprises linking the process to the task through a task reference.
US11287547 2005-03-03 2005-11-23 Creating, storing and viewing process models Expired - Fee Related US7917555B2 (en)
US65813005 true 2005-03-03 2005-03-03
US11287547 US7917555B2 (en) 2005-03-03 2005-11-23 Creating, storing and viewing process models
US20060200476A1 true true US20060200476A1 (en) 2006-09-07
US7917555B2 US7917555B2 (en) 2011-03-29
ID=36945276
US11287547 Expired - Fee Related US7917555B2 (en) 2005-03-03 2005-11-23 Creating, storing and viewing process models
US (1) US7917555B2 (en)
US20070124361A1 (en) * 2005-09-27 2007-05-31 Lowry Andrew R Action console framework
US20090043788A1 (en) * 2007-08-06 2009-02-12 Panorama Software Inc. Proactive business intelligence
US20130006887A1 (en) * 2011-06-29 2013-01-03 Sap Ag Automatic Identification of User-Aligned Fragments in Business Process Models
US8396865B1 (en) 2008-12-10 2013-03-12 Google Inc. Sharing search engine relevance data between corpora
US20130326526A1 (en) * 2012-06-05 2013-12-05 Tomohiko Sasaki Information processing apparatus, workflow generating system, and workflow generating method
US8694511B1 (en) * 2007-08-20 2014-04-08 Google Inc. Modifying search result ranking based on populations
US8694374B1 (en) 2007-03-14 2014-04-08 Google Inc. Detecting click spam
US8874555B1 (en) 2009-11-20 2014-10-28 Google Inc. Modifying scoring data based on historical changes
US9070113B2 (en) * 2010-12-17 2015-06-30 Verizon Patent And Licensing Inc. Stock keeping units for content processing
US9092510B1 (en) 2007-04-30 2015-07-28 Google Inc. Modifying search result ranking based on a temporal element of user feedback
US9110975B1 (en) 2006-11-02 2015-08-18 Google Inc. Search result inputs using variant generalized queries
US20060161469A1 (en) * 2005-01-14 2006-07-20 Weatherbank, Inc. Interactive advisory system
US8468496B2 (en) * 2006-04-07 2013-06-18 Ricoh Production Print Solutions LLC Flexible attribute management in workflow processing systems
US20130226671A1 (en) * 2012-02-29 2013-08-29 Jiri Pechanec Systems and methods for providing dependency injection in a business process model system
US6023765A (en) * 1996-12-06 2000-02-08 The United States Of America As Represented By The Secretary Of Commerce Implementation of role-based access control in multi-level secure systems
US6101481A (en) * 1996-01-25 2000-08-08 Taskey Pty Ltd. Task management system
US20010053991A1 (en) * 2000-03-08 2001-12-20 Bonabeau Eric W. Methods and systems for generating business models
US20020055924A1 (en) * 2000-01-18 2002-05-09 Richard Liming System and method providing a spatial location context
US20020156644A1 (en) * 2001-04-18 2002-10-24 International Business Machines Corporation Separation of duties for business process risk management
US20020156663A1 (en) * 2000-07-13 2002-10-24 Manugistics, Inc. Shipping and transportation optimization system and method
US6601233B1 (en) * 1999-07-30 2003-07-29 Accenture Llp Business components framework
US20030204431A1 (en) * 2002-04-29 2003-10-30 Robert Thomas Mitchell Ingman Immediate next task dispatch system and method
US6678714B1 (en) * 1998-11-16 2004-01-13 Taskserver.Com, Inc. Computer-implemented task management system
US20040078776A1 (en) * 2002-09-03 2004-04-22 Charles Moon System and method for browser-based arbitration in classification workflows
US6748582B1 (en) * 1999-03-05 2004-06-08 Microsoft Corporation Task list window for use in an integrated development environment
US20040133876A1 (en) * 2003-01-08 2004-07-08 Craig Sproule System and method for the composition, generation, integration and execution of business processes over a network
US20040176980A1 (en) * 2003-03-07 2004-09-09 Clemens Bulitta Comprehensive standardized process change management model framework and method for creating customized process model for a healthcare organization using the framework
US6797624B2 (en) * 2001-12-29 2004-09-28 Hynix Semiconductor Inc. Solution for ruthenium chemical mechanical planarization
US20040193428A1 (en) * 1999-05-12 2004-09-30 Renate Fruchter Concurrent voice to text and sketch processing with synchronized replay
US20040220843A1 (en) * 2003-05-01 2004-11-04 Siemens Aktiengesellschaft Integrated method for sustained business improvement
US6850895B2 (en) * 1998-11-30 2005-02-01 Siebel Systems, Inc. Assignment manager
US20050091260A1 (en) * 2002-10-02 2005-04-28 Carroll David B. System and method for organizing information
US20050091093A1 (en) * 2003-10-24 2005-04-28 Inernational Business Machines Corporation End-to-end business process solution creation
US20050138420A1 (en) * 2003-12-19 2005-06-23 Govindaraj Sampathkumar Automatic role hierarchy generation and inheritance discovery
US20050198209A1 (en) * 2003-07-10 2005-09-08 Computer Associates Think, Inc. Single point of entry for web applications
US6944622B1 (en) * 2000-01-20 2005-09-13 International Business Machines Corporation User interface for automated project management
US20050209899A1 (en) * 2004-03-16 2005-09-22 Oracle International Corporation Segregation of duties reporting
US20050209900A1 (en) * 2004-03-08 2005-09-22 Sap Aktiengesellschaft System and method for organizing an enterprise
US6968314B1 (en) * 1999-12-22 2005-11-22 International Business Machines Corporation Enhanced security features for an automated order fulfillment system
US20050278655A1 (en) * 2004-06-14 2005-12-15 Sims Lisa K Multiple application viewing
US20060047723A1 (en) * 2004-08-27 2006-03-02 Mark Pomponio Custom database system and method of building the same
US20060085747A1 (en) * 2004-10-05 2006-04-20 Robert Morgan Method and apparatus for presenting technical architectural patterns and solutions
US20060203849A1 (en) * 2004-06-30 2006-09-14 Bonar Jeffrey G Computer program code device for extending business systems to a mobile workforce
US7110957B2 (en) * 1999-11-22 2006-09-19 International Business Machines Corporation System and method for assessing a procurement and accounts payable system
US7113923B1 (en) * 1999-02-03 2006-09-26 Electronic Data Systems Corporation System and method of managing an office of programs
US7197740B2 (en) * 2003-09-05 2007-03-27 Sap Aktiengesellschaft Pattern-based software design
US7260510B2 (en) * 2000-08-25 2007-08-21 Mazda Motor Corporation Simulation model creation method and system, and storage medium
US7290256B2 (en) * 2001-02-26 2007-10-30 International Business Machines Corporation Separations-of-duties analysis tool for object-oriented integrated enterprise wide computing applications
US20080148413A1 (en) * 2004-04-06 2008-06-19 Brown Wendy M Security and analysis system
US7406432B1 (en) * 2001-06-13 2008-07-29 Ricoh Company, Ltd. Project management over a network with automated task schedule update
US7418448B2 (en) * 2003-03-12 2008-08-26 Microsoft Corporation Organization structure system
US7463648B1 (en) * 1999-08-23 2008-12-09 Sun Microsystems, Inc. Approach for allocating resources to an apparatus based on optional resource requirements
US7484183B2 (en) * 2000-01-25 2009-01-27 Autodesk, Inc. Method and apparatus for providing access to and working with architectural drawings on the internet
US7516110B2 (en) * 2005-01-28 2009-04-07 Expert-24 Ltd. Expert systems
US7548925B2 (en) * 2005-01-24 2009-06-16 Microsoft Corporation Diagrammatic access and arrangement of data
US7631255B2 (en) * 2003-04-08 2009-12-08 Thomas Weise, et al. Interface and method for exploring a collection of data
US7703102B1 (en) * 1999-08-23 2010-04-20 Oracle America, Inc. Approach for allocating resources to an apparatus based on preemptable resource requirements
US7801755B2 (en) * 2005-05-11 2010-09-21 Oracle Inernational Corporation Management hierarchy for enterprise applications and methods and systems for generating reports using same
US6442749B1 (en) 1998-10-30 2002-08-27 Fujitsu Limited Apparatus, method and architecture for task oriented applications
US7308334B2 (en) * 2001-08-23 2007-12-11 Fei Company Graphical automated machine control and metrology
US7610575B2 (en) * 2003-01-08 2009-10-27 Consona Crm Inc. System and method for the composition, generation, integration and execution of business processes over a network
US8700439B2 (en) * 2005-09-27 2014-04-15 Morgan Stanley Action console framework
US8898152B1 (en) 2008-12-10 2014-11-25 Google Inc. Sharing search engine relevance data
US8725522B2 (en) * 2011-06-29 2014-05-13 Sap Ag Automatic identification of user-aligned fragments in business process models
JP2013012175A (en) * 2011-06-29 2013-01-17 Sap Ag Automatic identification of user-aligned fragments in business process models
US9256459B2 (en) * 2012-06-05 2016-02-09 Ricoh Company, Limited Information processing apparatus, workflow generating system, and workflow generating method
WO2014159302A3 (en) * 2013-03-14 2014-11-27 Microsoft Corporation Process modeling and interface
WO2014159302A2 (en) * 2013-03-14 2014-10-02 Microsoft Corporation Process modeling and interface
US7917555B2 (en) 2011-03-29 grant
Cugola et al. 1998 Software Processes: a Retrospective and a Path to the Future
Paterno 2012 Model-based design and evaluation of interactive applications
Jung et al. 2007 An integration architecture for knowledge management systems and business process management systems
US7254581B2 (en) 2007-08-07 System and method for creation and maintenance of a rich content or content-centric electronic catalog
La Rosa et al. 2011 APROMORE: An advanced process model repository
US7386797B1 (en) 2008-06-10 Framework to model and execute business processes within a collaborative environment
US6442557B1 (en) 2002-08-27 Evaluation of enterprise architecture model including relational database
Pohl 1996 PRO-ART: Enabling requirements pre-traceability
US7716253B2 (en) 2010-05-11 Centralized KPI framework systems and methods
US20050257136A1 (en) 2005-11-17 Methods and systems for animating a workflow and a project plan
US20050197786A1 (en) 2005-09-08 System and method for managing the development and manufacturing of a pharmaceutical drug
US20060200372A1 (en) 2006-09-07 Method and system for generating a timeline associated with a project schedule
US20090150431A1 (en) 2009-06-11 Managing relationships of heterogeneous objects
US7895563B2 (en) 2011-02-22 Managing reusable software assets
US20070179828A1 (en) 2007-08-02 Method and system for top-down business process definition and execution
US20030233631A1 (en) 2003-12-18 Web services development method
US6950802B1 (en) 2005-09-27 System and method for systems integration
US20030023413A1 (en) 2003-01-30 Generalized software modeling tool
Pohl et al. 1999 PRIME—toward process-integrated modeling environments: 1
US20040122693A1 (en) 2004-06-24 Community builder
US20090150866A1 (en) 2009-06-11 Enforcing legal holds of heterogeneous objects for litigation
zur Muehlen et al. 2010 Business process analytics
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:GOTTUMUKKALA, RAMAKANTHACHARY S.;HONEYMAN, JOSH W.;NATU,MADAN GOPAL;AND OTHERS;REEL/FRAME:016980/0914;SIGNING DATES FROM 20051118 TO 20051122
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:GOTTUMUKKALA, RAMAKANTHACHARY S.;HONEYMAN, JOSH W.;NATU,MADAN GOPAL;AND OTHERS;SIGNING DATES FROM 20051118 TO 20051122;REEL/FRAME:016980/0914
2014-11-07 REMI Maintenance fee reminder mailed
2015-03-29 LAPS Lapse for failure to pay maintenance fees
2015-05-19 FP Expired due to failure to pay maintenance fee
Effective date: 20150329