Simulating Debugging Deploying
Simulation is an Process Developer feature, described in the Process Developer Help. This discussion focusses on all aspects.
Simulating a Process with a People Activity
Add sample values to the Logical People Group or other assignment role for testing.
Simulation is an Process Developer feature, described in more detail in the Process Developer Guide.
You can simulate the execution of a BPEL process that includes a People activity.
To Set Simulation Properties for a People activity:
- 1. Before you begin simulation, put the All tab of the People activity in focus.
- 2. Under the Simulation category, select values for fault and output messages and their attachments, as you normally do for a Web interaction activity, such as a reply.
- 3. Enter an optional value for an actual owner, if desired. See the information below on simulating with Logical People Groups.
- 4. Add comments, if desired, as described in Simulating Comments Returned from a Task.
- 5. Select an outcome from the Status list:
- - Completed. This is the task state for a normal completion.
- - Failed. Select this to simulate fault handling, and select the fault to simulate.
- - Expired. If you set a task expiration deadline, you can simulate the outcome. For fault handling details, see Catching a Fault Thrown by the People Activity
- - Skipped. If you selected the IsSkippable attribute for the task, you can simulate the process by skipping the People activity.
- 6. During or after simulation, you can view the data that is sent to the task client application. For details, see Viewing Task Input Data While Simulating.
To Simulate Logical People Groups:
You can select users or groups to simulate with if your task, assignment activity, transition condition, or other construct is using a Logical People Group.
- 1. On the Outline view, select a Logical People Group.
- 2. In the All tab, under the Simulation category, click (...).
- 3. In the Organizational Entity Definition dialog, select Generate User or Generate Group.
- 4. In the resulting literal definition, fill in the <user> or <group> elements with sample values.
Note: If you do not specify an Organizational Entity Definition, a default sample value of one group, named as the Logical People Group is automatically added as a simulation value.
To Simulate a Process Initiator:
If your People activity uses the B4P custom function getProcessInitiator, you can simulate the returned value by selecting a Process Initiator in the All tab of the process’ Properties view.
Simulating Comments Returned from a Task
Generate comments for simulating comments that are returned by the task owner when the task is completed.
A task owner can add comments to the output data when returning the task to the process. You can simulate this behavior by adding simulated comments for the task output.
Also, note that you can use the getComments() function in your process to copy the comments from a People activity.
To Add Simulated Comments Returned From a Task:
- 1. Before you begin simulation, put the All tab of the People activity in focus.
- 2. Under the Simulation category, select Task Simulation Comments, and select the Dialog button in the Value column.
- 3. In the Task Comments Definition dialog, select Generate Comments.
- 4. Change or add values as desired, depending on how you intend to use the comments in the activities following the People activity.
Viewing Task Input Data While Simulating
View task data.
A People activity contains a large amount of data, much more than other activities. Given the number of expressions used in defining properties, such as task subject, description, deadlines, and escalation events, there is a special viewer provided to view task input data during simulation.
During or after simulation, this view shows how each expression used in the task definition is evaluated. For each task and People activity property defined by expression, you can see the evaluation.
To View Simulated Task Expression Results for Input to the Task:
- 1. Put the All tab of the People activity in focus. The People activity should have an associated task.
- 2. In the Execution category, select Simulated Task Expressions.
- 3. Select the Dialog (...) button to open the Simulated Task Expressions Result window.
The expression results include the following:
- •Namespaces
- •Input message sample data
- •Presentation elements
- •Assignments
- •Deadlines
- •Comments attached to the task input (but not comments attached to the output)
Selecting a Logical People Group Handler During Deployment
Add a new group in PDD for static assignment of a logical people group.
If your process defines a one or more Logical People Groups, you can use the PDD Editor to specify how to resolve the members of the group. The PDD Editor adds a People tab if it detects Logical People Groups.
To define logical people group handling:
- 1. Open the PDD Editor, as described in Creating a Process Deployment Descriptor File in Process Developer Online Guide.
- 2. On the People tab of the Editor, select the name of a Logical People Group.
- 3. From the Type list, select how to resolve the members of the Logical People Group:
- - Use LPG Name as Identity Service Name. For details see Using or Mapping Users or Groups From the Identity Service.
- - Map to Identity Service For details, see Using or Mapping Users or Groups From the Identity Service
- - Dynamic. You have assigned users or groups to a Logical People Group by using a copy operation in an assign activity. For details, see Using a Logical People Group in an Assign Activity.
- - People Query. For details, see Adding a People Query.
Using or Mapping Users or Groups From the Identity Service
If desired, you can name actual users or groups from your Identity Service to the PDD Logical People Group panel. Note that the WS-HT specification does not allow a mixture of users and groups.
If you selected a user or group name from the Identity Chooser when you created the Logical People Group, you can use that name in the PDD.
If your Logical People Group has a generic name, such as "Role1", you can map this name to an actual user or group in your Identity Service.
Before you can select actual groups, you must ensure that your Identity Service is correctly enabled, as described in Setting up an Identity Service.
To add individual users, select the Users radio button, and then select Add. In the Add User dialog box, type in the name of one user, named exactly the same as in the Identity Service. For example, if you are testing, you may have defined a user in the tomcat-users.xml file as:
<user name="testUser1" password="b4p" roles="abTaskClient, Finance,Marketing,Accounting,NERegionReps" />
In this example, you can type in testUser1 as a User in the PDD Editor.
To add Groups, select the Groups radio button, and then select Add to add a new group name. You can also select from an Identity Chooser, as described in Using the Identity Chooser During Deployment.
Adding a People Query
The most flexible way to specify actual users to work on tasks or to receive notifications is with a Logical People Group query. You can create a query that searches your enabled JDBC or LDAP Identity service for the users or groups that meet the search criteria.
Note: A People Query is not applicable for a file-based Identity service.
For example, you can create a query that performs the following search in a JDBC or LDAP Identity service: "Select the manager of the task owner to receive an email notification for an overdue task."
To Load the Identity Configuration:
The query you write is based on the users and groups and their attributes that are configured in your LDAP or JDBC Identity service. The Identity service is configured in the Process Console, and then you must set up communication with the server from within Designer, as described in Setting up an Identity Service.
After the set up is complete, select Load Identity Configuration. A message informs you if the configuration was successfully loaded. If the configuration is updated on the server, the updates are automatically loaded into Designer.
Select either the Users or Groups radio button, and then select Query Builder to create an expression for retrieving users.
To Use the People Query Builder:
When the People Query opens, you see the following items:
- •The Expression Language is SPARQL, a language well-suited for retrieving identities from a data store. This is the required language for people queries.
- •The Attributes column lists the Identity service’s parameters that are currently available for queries. For example, users' attributes always include userName and memberOf, and may include many other attributes configured in Process Server.
- •The LPG Parameters column lists any parameters defined for the currently selected Logical People Group. For details on adding LPG parameters, see Creating a Logical People From the Outline View and Logical People Group Parameters and Arguments.
- •The Query text box contains the FILTER() keyword from a SPARQL query. The Filter clause is the only part of a SPARQL query that you need to complete. The fully qualified query is automatically generated by Process Developer.
To create a valid SPARQL query, you must complete the FILTER clause, as shown in the examples.
- • FILTER($userName="Jani Mani")
Select the user Jani Mani.
- • FILTER (($memberOf = "NE_Reps") || ($memberOf="NW_Reps"))
Select users from either NE Reps or NW Reps.
- • FILTER ( (($memberOf = "NE_Reps") || ($memberOf="NW_Reps")) && BOUND(?email))
Select users from either NE Reps or NW Reps who have email addresses.
- • FILTER ($countryCode = "${country_code}")
Select users in a certain country, where the Logical People Group parameter is country_code and the Identity Service search attribute is countryCode.
For details on writing SPARQL queries, see http://www.w3.org/TR/rdf-sparql-query/.
Using the Identity Chooser During Deployment
Use the Identity Chooser option to return a list of groups in your organization for selecting Logical People Groups during deployment.
Before selecting the Identity Chooser, you must do the following:
- •Ensure that the Process Server is running
- •Ensure that you have set up an Identity Service on the server, as described in Setting up an Identity Service.
- •Ensure that the Process Developer Identity Service Preference page is filled in correctly. Select Window > Preferences > Process Developer > Identity Service to view and update this page.
To Access the Identity Chooser:
- 1. In the People tab of the PDD Editor, select Map to Identity Service User/Group Name(s) as the deployment type.
- 2. Select Groups.
- 3. Under Groups, select Select to open the Identity Chooser.
- 4. Select Refresh to view the current list of groups.
A list of all the groups named in your Identity Service appears, as the example shows:
- 5. Select the checkbox next to each group that you want to include in your Logical People Group.
Running Your Process from the Process Server
There are a variety of Web services tools you can use to instantiate a BPEL process, including the Eclipse Web Tools Project that is included in the Process Developer installation.
Once your process is running, you can open Process Central by selecting the Process Central icon on the Process Developer toolbar. You can also point to the following URL in your Web browser:
http://[host:port]/activevos-central
where you point to the server where Process Central is deployed.
Be sure that the abTaskClient security role is mapped to each group member in the Identity Service who will login to Process Central.
You can sign into to work on the task routed there when the process executes the People activity.
For the older Process Central inbox application, use the following:
http://[host:port]/activevos-central/inbox
Setting Up Test Groups
For testing, you may want to set up a set of users or groups. Using your Process Server Identity Service, you can set up an XML file with user and group information that is helpful for testing the People activity. This means you do not have to set up all the details for connecting to your organization's LDAP or JDBC data store for testing. For details, refer to Setting up an Identity Service.