Designing business processes using parametric roles
Automating a business process includes defining an activity of a business process. The activity is associated with an abstract role, and the abstract role represents a user responsible for performing the activity. An organizational role associated with a set of values is defined. The organizational role can have a value from the set of values, where each value ill corresponds to a user set. The organizational role is matched to the abstract role. An instance of the activity is received, and the value for the organizational role is determined. The instance is routed to the user set corresponding to the determined value.
1 . A method for automating a business process, said method comprising:
defining a business process by using a graphical user interface (GUI), said business process including one or more activities coupled by a set of transitions, each activity including one or more tasks;
defining an activity of the business process, the activity associated with an abstract role, the abstract role representing a user responsible for performing the activity;
associating a compensation task with at least one task of said activity;
defining a parametric organizational role that specifies a group of users within an organization wherein the organizational role is associated with a parametric value;
matching the organizational role and the abstract role;
executing an instance of the activity;
determining the parametric value for the organizational role at runtime;
routing the instance to a subset of the group of users of the organizational role according to the determined parametric value such that the organizational role can take on different subsets of the group of users depending on the parametric value determined at runtime;
determining that the task associated with the compensation task has failed in execution; and
executing the compensation task associated with the task that has failed in execution by un-doing one or more actions performed by the task up to a particular activity, thereby resulting in a consistent state of the business process.
2 . The method of claim 1 , further comprising:
displaying a screen for generating a request;
receiving the request describing the organizational role and the abstract role; and
matching the organizational role and the abstract role in response to the request.
3 . The method of claim 1 , further comprising:
displaying a screen for generating a request;
receiving the request describing a value and a user set; and
associating the value and the user set in response to the request.
4 . The method of claim 1 , further comprising:
displaying a screen for generating a request;
receiving the request describing the organizational role and the set of values; and
associating the organizational role and the set of values in response to the request.
5 . The method of claim 1 , further comprising:
associating each value with a time period; determining a time period; and
determining the value according to the determined time period.
6 . The method of claim 1 , further comprising:
associating each value with a category;
assigning a category to the instance; and
determining the value according to the assigned category.
7 . The method of claim 1 , wherein routing the instance to the user set comprises transmitting a notification to one or more members of the user set.
8 . A system for automating a business process, the system comprising:
a process designer operable to:
define an activity of a business process, activity associated with an abstract role representing a user responsible for performing the activity, said activity including one or more tasks; and
associate a compensation task with at least one task of the activity;
a data repository coupled to the process designer and operable to store the business process;
an organizational settings module coupled to the data repository and operable to:
define a parametric organizational role that specifies a group of users within an organization wherein the organizational role is associated with a parametric value; and
match the organizational role and the abstract role; and
an execution engine coupled to the data repository and operable to:
receive an instance of the activity;
determine the parametric value for the organizational role at runtime; and
route the instance to a subset of the group of users of the organizational role according to the determined parametric value such that the organizational role can take on different subsets of the group of users depending on the parametric value determined at runtime;
determine that the task associated with the compensation task has failed in execution; and
execute the compensation task associated with the task that has failed in execution by un-doing one or more actions performed by the task up to a particular activity thereby resulting in a consistent state of the business process.
9 . The system of claim 8 , wherein the organizational settings module is operable to:
display a screen for generating a request;
receive the request describing the organizational role and the abstract role; and
match the organizational role and the abstract role in response to the request.
10 . The system of claim 8 , wherein the organizational settings module is operable to:
display a screen for generating a request;
receive the request describing a value and a user set; and
associate the value and the user set in response to the request.
11 . The system of claim 8 , wherein the organizational settings module is operable to:
display a screen for generating a request;
receive the request describing the organizational role and the set of values; and
associate the organizational role and the set of values in response to the request.
12 . The system of claim 8 , wherein:
the organizational settings module is operable to associate each value with a time period;
the execution engine is operable to:
determine a time period; and
determine the value according to the determined time period.
13 . The system of claim 8 , wherein:
the organizational settings module is operable to associate each value with a category;
the execution engine is operable to:
assign a category to the instance; and
determine the value according to the assigned category.
14 . The system of claim 8 , wherein the execution engine is operable to transmit a notification to one or more members of the user set.
15 . Software for automating a business process, the software embodied in a medium and when executed operable to:
define a business process by using a graphical user interface (GUI), said business process including one or more activities coupled by a set of transitions, each activity including one or more tasks;
define an activity of a business process, the activity associated with an abstract role, the abstract role representing a user responsible for performing the activity;
associate a compensation task with at least one task of said activity
define an organizational role associated with a set of values, the organizational role operable to have a value from the set of values, each value corresponding to a user set;
define a parametric organizational role that specifies a group of users within an organization wherein the organizational role is associated with a parametric value; match the organizational role and the abstract role;
execute an instance of the activity;
determine the parametric value for the organizational role at runtime;
routing the instance to a subset of the group of users of the organizational role according to the determined parametric value such that the organizational role can take on different subsets of the group of users depending on the parametric value determined at runtime;
determine that the task associated with the compensation task has failed in execution; and
execute the compensation task associated with the task that has failed in execution by un-doing one or more actions performed by the task up to a particular activity, thereby resulting in a consistent state of the business process.
16 . The software of claim 15 , operable to:
display a screen for generating a request;
receive the request describing the organizational role and the abstract role; and
match the organizational role and the abstract role in response to the request.
17 . The software of claim 15 , operable to:
display a screen for generating a request;
receive the request describing a value and a user set; and
associate the value and the user set in response to the request.
18 . The software of claim 15 , operable to:
display a screen for generating a request;
receive the request describing the organizational role and the set of values; and
associate the organizational role and the set of values in response to the request.
19 . The software of claim 15 , operable to:
associate each value with a time period;
determine a time period; and
determine the value according to the determined time period.
20 . The software of claim 15 , operable to:
associate each value with a category;
assign a category to the instance; and
determine the value according to the assigned category.
21 . The software of claim 15 , operable to route the instance to the user set comprises transmitting a notification to one or more members of the user set.
22 . A system for automating a business process, the system comprising:
a process designer operable to:
define an activity of a business process, the activity associated with an abstract role, the abstract role representing a user responsible for performing the activity, said activity including one or more tasks; and
associate a compensation task with at least one task of the activity;
a data repository coupled to the process designer and operable to store the business process;
an organizational settings module coupled to the data repository and operable to:
display a first screen for generating a first request;
receive the first request describing a parametric organizational role and a set of parametric values;
associate the organizational role and the set of values in response to the first request, the organizational role operable to have an value from the set of values;
display a second screen for generating a second request;
receive the second request describing a value of the set of values and a user set;
associate the value and the user set in response to the second request;
associate the value with a time period;
display a third screen for generating a third request;
receive the third request describing the organizational role and the abstract role; and
match the organizational role and the abstract role in response to the third request; and
an execution engine coupled to the data repository and operable to:
receive an instance of the activity;
determine the time period;
assign the value to the determined time period at runtime;
route the instance to a subset of users from the user set according to the determined time period that is assigned to the value;
transmit a notification to one or more members of the user set;
determine that the task associated with the compensation task has failed in execution; and
execute the compensation task associated with the task that has failed in execution by un-doing one or more actions performed by the task up to a particular activity, thereby resulting in a consistent state of the business process.