P. 1
WID

WID

|Views: 843|Likes:
Published by Sudarsan Manickam

More info:

Published by: Sudarsan Manickam on Mar 08, 2011
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as DOC, PDF, TXT or read online from Scribd
See more
See less

11/09/2012

pdf

text

original

Sections

  • Human tasks
  • Types of human task
  • Human task clients
  • Human task user interfaces
  • Life cycle of a human task
  • Setting human task preferences
  • Human Task editor
  • Assign people tab: Human Task editor
  • Description tab: Human Task editor
  • Details tab: Human Task editor
  • Duration tab: Human Task editor
  • Environment tab: Human Task editor
  • Interface tab: Human Task editor
  • User interface settings tab: Human Task editor
  • The building blocks of the human task editor
  • Invocation scenarios for invocation tasks
  • Replacement variables and context variables
  • Replacement variables in people assignment criteria and task descriptions
  • Replacement variables in staff e-mails
  • Replacement variables for escalation duration expressions
  • Refactoring a human task
  • Supporting other languages
  • Assigning roles to your human task
  • Configuring the people directory
  • Defining the people assignment criteria
  • Predefined people assignment criteria
  • Customizing people assignment criteria
  • Creating queries
  • Defining substitution for absentees
  • Setting duration values for your human task
  • Using business calendars within human tasks
  • Using custom properties for human tasks
  • Creating an escalation for your human task
  • Escalations
  • Assigning people to escalations
  • Customizing an escalation e-mail notification
  • Notifying an event handler of an escalation
  • Subtasks
  • Follow-on tasks
  • Versioning human tasks
  • Setting up a user interface for your human task
  • Before you begin: Client types and prerequisites
  • Defining user interfaces for a human task
  • Generating HTML-Dojo pages or Lotus Forms for Business Space
  • Generating Lotus Forms clients
  • Generating WebSphere Portal portlets
  • Generating a Portlet
  • Generating JSF clients for your human tasks
  • Customizing clients
  • Deploying a generated client to an external runtime environment
  • Deploying the client: exporting to a deployment file
  • Deploying a generated client to a test environment
  • Deploying a generated client to WebSphere Portal Server
  • Installing a generated portlet
  • Creating Task Page Definitions
  • Adjusting the Unique Name for the Task Page
  • Using the My Task portlet to run a Human Task from the WebSphere® Portal Server
  • Testing human tasks
  • Testing people assignment criteria
  • Testing a human-centric process
  • Generating documentation of your human task
  • Programming support for human tasks
  • Extending human tasks using plug-ins
  • Limitations for human tasks
  • Customizing behavior with visual snippets
  • Visual snippets view: visual snippet editor
  • Preferences view: visual snippet editor
  • sing the visual snippet editor to write Java code
  • The building blocks of the visual snippet editor
  • Creating a custom visual snippet
  • Adding an exception to a snippet
  • Working with standard visual snippets
  • Adding a Java visual snippet
  • Using a custom visual snippet
  • Adding a link to a snippet
  • Using mapping service snippets
  • Configuring a custom event in a visual snippet
  • Business rules
  • When to use business rules
  • Building business rules: task roadmap
  • Choosing between a rule set and a decision table
  • Creating a rule group
  • Rule group editor
  • Advanced tab: business rule group editor
  • Specifying the rule logic for a rule group
  • Scheduling rules using the rule group editor
  • Customizing algorithms for date and time selection
  • Creating custom selectors
  • Using rule set names in a rule group
  • Creating a rule set
  • Rule set editor
  • Adding a variable to a rule set
  • Creating an if-then rule in the rule set editor
  • Creating an action rule in the rule set editor
  • Creating rule set templates
  • Creating a new rule from a template in the rule set editor
  • Letting a Web user override the default values in a rule set
  • Calling one rule set from another one
  • Creating a decision table
  • Decision table editor
  • Working with conditions in a decision table
  • Configuring actions in a decision table
  • Working with initialization action rules
  • Creating decision table templates
  • Using templates in your decision table
  • Editing a decision table template
  • Weak type support with business rules
  • Business rule management programming guide
  • Refactoring business rules
  • Generating documentation for your rules
  • Launching the Business Rules Manager

WID Human Task, Decision Table, Business Rules

Human tasks
A human task is, quite simply, a unit of work that involves a human. Quite often, this task requires that the human interact with other services, and thus becomes a task within a larger business goal. The WebSphere® Integration Developer tools have been designed so that users can easily compose integrative business solutions without programming skills. To this end, you can easily define a human task in an intuitive graphical programming environment called the human task editor. Before you start to use the human task editor, you need to understand these key concepts about human tasks: • An example of a human task • Presenting a task to a staff member • Escalations • Collaborating with other staff members in a human task Note: Human tasks can only be deployed to the WebSphere Process Server.

An example of a human task
Let us begin with an example of a human task. This graphic illustrates the steps involved when a staff member accepts a task.

In this example, this particular task is likely part of a much larger process which stops and waits until the staff member makes a decision. Here are some terms that you will need to understand to use the editor: Task Definition A Task Definition is a representation of the task that includes the following: • who can do the task (roles/people assignment criteria) • what needs to be done (name) • what happens when the task takes too long (escalation) • how the task will be done (input and output data)

In the runtime environment, a task definition starts as a single work item. Over time, the task definition may generate multiple work items. To-do items A to-do item is a work item that is presented to the user in the user interface. A staff member (employee) can browse all the to-do items that they have the authority to claim, and then claim it. Roles A role is a group of employees who share the same level of authority and access rights. When a task is assigned to a role, any staff member in that role group can complete the task. People assignment criteria This criteria define the members of each of the role groups.

Presenting a task to a staff member
When a human task is started, the staff member interacts with the task through a user interface in a client environment. If you take a look at the example again, you will see that you have already been exposed to a client, it just was not spelled out that way. Take a look at the example again with a few minor changes.

In this modified example, we see that all interaction between the user and the task is facilitated by a client. The task is delivered to the user through the client, and the resolution is returned in similar means. So far, both examples have shown what happens when the task can be completed without a problem. What happens when that is not possible?

Escalations
An escalation is a course of action that is begun when an expected result from a task has not been achieved within a set period of time. For instance, let us look at the same scenario again, and see what happens when it isn't properly completed.

In this example, we see that the staff member who claims the task isn't able to complete it in the specified period of time, and another staff member is alerted. Presumably, this second employee has the authority to investigate the reasons behind why the task wasn't completed and proceed accordingly. There are three possible states for which an escalation can be configured: Ready When a human task is in a ready state, it is waiting to be claimed. You can configure an escalation to trigger if it sits unclaimed for too long. Claimed If a staff member has claimed a task, but takes longer than the specified period of time to complete it, an escalation is triggered and another staff member is notified. Subtask started A subtask is an additional unit of work that is split out from a parent task. If the subtask fails to complete within a specified period of time, the parent task is escalated and indicates that it is still waiting on the subtask.

Collaborating with other staff members in a human task
Ad-hoc tasks and transferred work items are created "on-the-fly" in the runtime environment, usually because the situation that has created the need for the task did not exist when it was initially developed. You can create such tasks either from existing task definitions (collaboration and invocation tasks) or without any existing definition. You can use WebSphere Integration Developer to allow for the creation of two types of ad-hoc tasks: the subtask, the follow-on task, as well as the transferred work item. Subtasks In the runtime environment, if a person who claims a task finds that they are not able to complete it by themselves, they can delegate portions of that original task to other people in the form of subtasks. Follow-on tasks In the runtime environment, if a person who claims a task finds that they are not able to complete it, they can assign the remaining work to somebody else in the form of a follow-on task. Transferred work items

ibm. they can transfer the work item to another person or group.html.ibm. A collaboration task is stand-alone.boulder. force-retry. Collaboration task This is where a human assigns a task to another human.com/bpcsamp/index. go to http://publib. Administration tasks can be set up on either an invoke activity. In such a case. in that there is no interaction between it and any other component. or the process as a whole.com/bpcsamp/index. This type of task is only available within a business process (inline task). go to http://publib. Note: You will need a connection to the internet to view this example. Through this. and click Human Task features > Invocation task.ibm. and click Human Task features > To-do ttask.boulder.html.boulder. To see an example of an invocation task that you can build and run yourself. Invocation task This is where a human can "assign" a task to a service component. restart. Types of human task There are four types of human tasks that you can define. Note: You will need a connection to the internet to view this example. a user can start a process and define authorization for its inbound activities. An invocation task can be implemented either stand-alone or inline.html. To see an example of a collaboration task that you can build and run yourself. if a person who claims a task finds that they are not able to complete it. A to-do task can be implemented either stand-alone or inline.In the runtime environment. terminate. go to http://publib. It is self-contained and implements a stand-alone human interaction without any reference or interface to another service. To-do task This is where a service component (such as a business process) assigns a task to a human as something for that person to do. or force-complete a business process. and click Human Task features > Collaboration task. Note: You will need a connection to the internet to view this example. When it is inline. an invocation task allows humans to invoke the operations that a business process exposes through activities such as receive. Administration task This type of task grants a human administrative powers such as the ability to suspend.com/bpcsamp/index. pick or event handlers. To see an example of a to-do task that you can build and run yourself. Inline and stand-alone human tasks . a human is invoking an automated service such as a business process.

6. 3. Create a stand-alone task using the New human task wizard and then wiring the task to a business process using the assembly editor. Define the settings for the human task. it is referred to as a stand-alone task. you should model it as an inline task if any of the following conditions are present: • You need information from the process logic to run human interaction.You can implement a human task as part of the logic of a business process. the main reason to use an inline human tasks is because they have direct access to the process context without the need to explicitly model the required information into the input message. delete the existing interface between the human task component and the business process. Otherwise. proceed as follows: 1. Inline task An inline task is defined within an implementation of a business process. In the business process component. and transform it into an inline task that is implemented by a human task activity. When you are first planning your human task. It can either be implemented directly in the process using a human task activity. 4. you should model it as a stand-alone task if any of the following conditions are present: • The task provides just another service • You intend to replace the stand-alone task later on and don't want to change the component to which it is wired. Select the interface that was used between the original business process component and the human task component. In the assembly editor. or on message activity. 5. event handler. and select Change type > Human task. Although information from the process can also be modeled into the input for a human task. right-click the invoke activity that originally connected to the human task component. Changing a stand-alone task to an inline task If you would like to take an existing stand-alone task that is invoked by an invoke activity in a business process. select New. it is called an inline task. In the Details tab of the human task. Delete the component as well. 2. or as a property of an invoke. and implements human interaction as a service that can be wired to any other component of the WebSphere® Integration Developer family of tools. pick. Stand-alone task A stand-alone task exists independently of a business process. If the task is implemented within a business process. From the main menu. Human task clients A human task client is a piece of software which provides an interactive link between a human task and the staff member assigned to work upon the task. 7. receive. When you are first planning your human task. • You want to define authorization rights on specific activities The standard method of creating an inline task is to drop a human task activity on to the canvas in the business process editor. click Project > Clean. or independently of other processes. There are various types of client that you can generate for your human task: • IBM® Lotus® Form • Business Space powered by WebSphere® • Business Process Choreographer • WebSphere Portal portlet • JavaServer Faces (JSF) client . A human task client delivers task-related information to a staff member in the form of an interactive application.

Note: If you do not see the Human Task Editor in the Business Integration preferences. Enter a name for the new People directory. 3. click Help > Software Updates. Expand the results under this repository location. Note: Human task clients and user interfaces are not synonymous. 2. The Add people directory dialog opens. Life cycle of a human task A human task goes through a number of stages from its start to its finish. You can even provide multiple clients for the same task.com/dmndhelp/downloads/v6r2mx/wid/. and you will see Business Integration. In the Software Updates and Add-ons window. or you can create a separate client for each task. You will need to restart WebSphere Integration Developer to see the additional documentation. Information on this topic can be found by following this link: Life cycle of human tasks or Life cycle of human tasks if you have WebSphere Process Server installed. select Integration Developer and click Apply to enable the business integration tools. select Window > Preferences to open the Preferences window. open the Resource perspective if you are not already there (click Window > Open Perspective > Other > Resource). You can create one client for all the human tasks in a module.ibm. Click People Directory to see the people directory settings that you can modify. edit or delete an existing entry. To modify the Human Task editor preferences settings. Setting human task preferences You can use the Preferences window to modify the Human Task editor settings for the choice of people directory and assignment criteria. . select the Available Software tab. follow these instructions: 1. b. The user interface is part of the human task client. 4. Two different clients may provide very similar user interfaces to the staff member. In WebSphere Integration Developer. You can select a people directory to be the default for new human tasks. if you wish users in different roles to see different options for the task. Expand Business Integration and expand Human Task Editor. A human task user interface is the interactive application that the staff member sees when they are working on a task. Note: If this link fails. You must generate a client before you can define a user interface. Clients are used to customize user interfaces for your human task. or using the client generator in the human task editor. although they are closely related. Click Add Site and specify the following location: http://publib. and the staff member does not need knowledge of what client is being employed in order to interact with the human task. From the main menu. Note: Human task user interfaces and human task clients are not synonymous. in the main menu. Then.Clients can be defined for both inline and stand-alone human tasks. The user interface can be customized to your specific needs. You can also add a new entry.boulder. Click OK to close the Preferences page. and click Install. then expand Workbench to select Capabilities. Optional: Add a new people directory. Click Add. a. You can generate a client manually. select the documentation that you want. Provide a meaningful name since this entry will be used in other dialogs to refer to this people directory. Go back to the first step to open Preferences again. although they are closely related Human task user interfaces The user interface of a human task is the means by which a staff member interacts with a human task in the runtime environment. you need to install additional documentation.

Optional: Modify the corresponding JNDI name for the people directory. Go back to the first step to open Preferences again. 6. d. For each choice there is a set of predefined criteria. c. select Integration Developer and click Apply to enable the business integration tools. Select the set of people assignment criteria that are associated with this people directory. Optional: Modify the name of the People directory. For each choice there is a set of predefined criteria. At run time. 2. This entry creates an association between the JNDI name and the name that you provided in the People directory field. The Edit people directory dialog opens. follow these instructions: 1. For instance. Enter the corresponding JNDI name for the people directory. Select the people assignment criteria for the new people directory. then expand Workbench to select Capabilities. . Click OK to save your preferences Setting human task preferences You can use the Preferences window to modify the Human Task editor settings for the choice of people directory and assignment criteria. the JNDI name is used to identify which staff resolution code to employ. For instance. Select the people assignment criteria for the new people directory. From the main menu. At run time. When you are specifying people to work on a task the assignment criteria that you are presented with are determined by this selection. Optional: Edit an existing people directory. You can choose your own people assignment criteria (XML file) by selecting the final radio button and using the Browse button. Click Apply when you are finished. Expand Business Integration and expand Human Task Editor. b. a. You can choose your own people assignment criteria (XML file) by selecting the final radio button and using the Browse button. if you select LDAP as the people directory for your human task then when you come to assign people to that task you will be presented with the LDAP-specific assignment criteria. Select the set of people assignment criteria that are associated with this people directory. Note: If you do not see the Human Task Editor in the Business Integration preferences. Click OK to close the Preferences page. This entry creates an association between the JNDI name and the name that you provided in the People directory field. When you are specifying people to work on a task the assignment criteria that you are presented with are determined by this selection. if you select LDAP as the people directory for your human task then when you come to assign people to that task you will be presented with the LDAP-specific assignment criteria. 7.c. d. the JNDI name is used to identify which staff resolution code to employ. and you will see Business Integration. Provide a meaningful name since this entry will be used in other dialogs to refer to this people directory. To modify the Human Task editor preferences settings. 5. Click Edit. select Window > Preferences to open the Preferences window.

Each is described below. 4. For each choice there is a set of predefined criteria. . The Add people directory dialog opens. the JNDI name is used to identify which staff resolution code to employ. d. Select the people assignment criteria for the new people directory. Select the set of people assignment criteria that are associated with this people directory. For each choice there is a set of predefined criteria. if you select LDAP as the people directory for your human task then when you come to assign people to that task you will be presented with the LDAP-specific assignment criteria. Click Edit. c. Click People Directory to see the people directory settings that you can modify. a. Provide a meaningful name since this entry will be used in other dialogs to refer to this people directory. Optional: Edit an existing people directory. or between two humans. At run time. c. Select the set of people assignment criteria that are associated with this people directory. a. each with its own individual use. Select the people assignment criteria for the new people directory. Provide a meaningful name since this entry will be used in other dialogs to refer to this people directory. This entry creates an association between the JNDI name and the name that you provided in the People directory field. Enter a name for the new People directory. Optional: Add a new people directory. 6. 5. This entry creates an association between the JNDI name and the name that you provided in the People directory field. Click Add. You can choose your own people assignment criteria (XML file) by selecting the final radio button and using the Browse button. the JNDI name is used to identify which staff resolution code to employ. Optional: Modify the name of the People directory. if you select LDAP as the people directory for your human task then when you come to assign people to that task you will be presented with the LDAP-specific assignment criteria. Click OK to save your preferences Human Task editor The human task editor is a graphical programming environment that you use to configure the interaction between a service and its associated human participants. d. At run time. You can also add a new entry. b. Enter the corresponding JNDI name for the people directory. 7. edit or delete an existing entry. When you are specifying people to work on a task the assignment criteria that you are presented with are determined by this selection.3. The Edit people directory dialog opens. For instance. Click Apply when you are finished. You can choose your own people assignment criteria (XML file) by selecting the final radio button and using the Browse button. For instance. The Human Task editor is divided into several distinct areas. Optional: Modify the corresponding JNDI name for the people directory. You can select a people directory to be the default for new human tasks. b. When you are specifying people to work on a task the assignment criteria that you are presented with are determined by this selection.

o . you can launch the interface editor and make the necessary changes. When you click the icon. The display that you see will depend on what type of human task you are working with.The areas are as follows: 1. but if you click the name of the interface. Click the icon to remove the authorization role that is currently selected. o The table shows a list of roles that users can assume when working with the task. o You cannot modify the fields in this area. you will see a list of the people assignments that you can add to this task. o 2. The people assignment area o This area shows details about the assignments of people who initiate or receive tasks. The service interface area o This area shows the interface that is associated with this human task.

and you can add or modify these properties by clicking the appropriate cell and then interacting with the graphical interface that appears. o The contents of the page will differ on the object chosen. Properties marked with an * are mandatory. Duration tab: Human Task editor This topic includes a description of each of the fields on the Duration tab of the Properties view. Interface tab: Human Task editor This topic includes a description of each of the fields on the Interface tab of the Properties view. Details tab: Human Task editor This topic includes a description of each of the fields on the Details tab of the Properties view. The properties view o This area displays properties that are relevant to the object that is currently selected in the editor. Environment tab: Human Task editor This topic includes a description of each of the fields on the Environment tab of the Properties view. client type specific information to a human task that a client can interact with in the runtime environment. Click to add a new interface to the palette and then configure it in the Details area. User interface settings tab: Human Task editor This topic includes a description of each of the fields on the User interface tab of the Properties view. The user interface area o Use this area to add additional. Click on the tabs to the left of this view to toggle through the pages. • • • • • • • Assign people tab: Human Task editor This topic includes a description of each of the fields on the Assign people tab of the Properties view. you can press F1 (or Ctrl+F1 on a Linux® system) to launch a help window and click the link to be taken directly to the product documentation for more details. Description tab: Human Task editor This topic includes a description of each of the fields on the Description tab of the Properties view. . In all cases. The escalations area o The escalation settings define how a task should be handled when an expected result has not been achieved within a set period of time. o 4. Some pages display properties in tabular format. o 5.3. Assign people tab: Human Task editor This topic includes a description of each of the fields on the Assign people tab of the Properties view.

It can also be translated into other languages. This button is available for all people assignment criteria except Everybody and Nobody. and can be as descriptive as necessary to ensure that there is no confusion on the part of the user. You can choose from a list of pre-defined people assignment criteria definitions or you can define your own. If you want to make changes to this value use the refactoring tool. You can use content assist for some of the values if you see the icon of a light bulb appear when you click the field. The people assignment criteria that you see depends on the choice of people directory that you made on the human task preferences page. and you want this specific user to be automatically assigned the task in question. Parameter table Use this table to specify details like a group name and thus define the people that will be assigned by the selected criterion at runtime. This name will be displayed to the user in the runtime environment through a user interface. Display name Use this field to define a name for a newly-created task. and requires at least one running Process Server to be defined in Servers view. and use parts of the task input or output message as values for the parameters. You can also specify replacement variables. When the check box is clear. The value of the parameter can be changed by clicking into the value field and editing it. Unlike the display name. Enable it in cases when your people assignment query returns a single person. Namespace . for example. This selection determines the group of people who share the same permissions and can.People assignment criteria Choose the criteria for a query from the list. the user will have the option of claiming the task. See related topics for more information. Test Click Test to confirm that the people assignment criteria that you use in your human tasks will return the correct people by the people directory that you are using. If only one person qualifies. it must not contain spaces or invalid characters. the Names are all predefined. claim the task. See related topics for more information on replacement variables. claim task automatically This check box is only available when the Potential Owners authorization role has been selected. see related tasks for more information. Description tab: Human Task editor This topic includes a description of each of the fields on the Description tab of the Properties view. Press Ctrl+Space to launch content assist. and those that are mandatory will be marked with a "*". when all mandatory fields have a value. Name This is the name for the task template as it is known in the runtime environment.

mandatory fields are marked with a "*". it will appear as a replacement variable in this field (for example: '%htm:task. or display additional supporting material for the task. Description Use this field to provide a relatively short explanation of what the task does. Folder This field shows the name of the folder in which this task resides. Details tab: Human Task editor This topic includes a description of each of the fields on the Details tab of the Properties view. A namespace is a way to further differentiate two files that may share the same name. When you choose a variable from the list. use the refactoring tool. • • • • Task level Escalations Business Process Choreographer Explorer Portal client In all cases.Use this field to specify the namespace for this human task.readers%'). Task level People directory . Insert Variable Click this to see a list of predefined replacement variables that can be used in this field. During runtime. Documentation Use this field to expand upon the description. If you want to make changes to this value. Use refactoring to move the task to a different folder. it will be resolved by the WebSphere Process Server and the actual value of the variable will be inserted with the placeholder. see related tasks for more information.

In cases where the increase task priority attribute is enabled on an escalation (see the Details tab for Escalations below). • No substitution • This is the default setting for the substitution policy. the priority value will decrease by a value of one with each escalation until 0 (the highest possible priority) is reached. Business category Use this field to enter a name that can be used to group tasks that share similar characteristics in order to facilitate sorting. and have an audit trail generated. Enable subtask creation Select the Enable subtask creation check box when you want to allow the person who claims the task to be able break the task up into pieces and delegate portions of that original task to other people in the form of subtasks. Enable follow-on task creation . description. Use it when you want the task assigned to a specific owner. Default language This field shows the language (based on the geographical location associated with that language) that will be used in the client. The runtime system will then send the event to that event handler where you can further process it according to your needs. Date (UTC) when task becomes valid Use these fields to specify the exact date and time that you would like this task to start. Event handler name This setting is used in conjunction with the event escalation notification type. the runtime engine cannot create instances of this task. Task can be claimed when it is suspended Select this check box if you want a potential owner to be able to accept the task even when the task itself has been postponed. Before this date and time. • Prefer present users • Use this setting to make sure that the task can only be assigned to a user who is active. Business-relevant Select this check box if you would like to monitor this task in a runtime environment. or to create or delete work items at runtime. • Replace absent users with their substitutes • Use this setting to assign the task to an alternate owner when the preferred owner is away. Task priority Use this field to specify the level of importance of this task. and how this should take place. Calendar values are represented in Coordinated Universal Time (UTC). This language will be used if a language-sensitive element of the task (for example: display name. with lower numbers having a higher priority. Use this field to specify the name of your event handler as installed in the runtime environment. or when using API event handler.Use this field to specify the people directory to be used by the people resolution for this task. even when that owner is absent. and documentation) is not available in the language requested by the user client software. Transfer task Select the Transfer task check box if you want to give users the ability to transfer work items of this task to other people. You can use the setting to decide whether the task can be assigned to another user. You may use any positive integer between 0 and 2147483647. Substitution policy Use this field to specify what should happen should the task's preferred potential owners be unavailable.

You will have the three following options: • • Ended Choose this as the expected end state when you want an escalation thrown if the task is not complete by the end of the escalation period. This setting is only valid for inline to-do tasks. Notification type Use this list to tell the system how to deal with this escalation. at the end of the escalation period. Clear the check box to make the task a peer of its invoking business process. the task has not yet been claimed by a user. If the task is not in the state specified. By default this information is only disclosed to process administrators and readers. WebSphere® CRON. In this case. • Claimed • Choose this when you want an escalation raised if. the task is tied to the life cycle of the invoking business process (the parent). Escalations Expected task state Use this field to specify the state in which the task should be when the escalation times out. Give owner read access to surrounding process context data Select this check box to allow the inline to-do task owner to view surrounding business process information such as input messages. or variables. Select this check box to make the human task a child of the business process that invoked the task. • All subtasks ended • Choose this as the expected end state when you want an escalation thrown if the subtasks associated with this task have not been completed by the end of the escalation period. Bind the life cycle to the invoking business process This field controls the autonomy of the invoked human task. then an escalation is thrown.Select this check box when you want to allow a user who is unable to complete a claimed task to assign the remaining work to another person. or click the secondary radio button and enter a value that makes sense to the type of calendar (simple. user-defined) that is specified in the task's Duration properties page. You can enter the values using the spin boxes provided. custom properties. . Escalate after Use these fields to specify the period of time that will elapse before this task is escalated.

Note that an escalation receiver work item will also be created. or select an appropriate message from the list and click Edit to make any necessary changes to it. . • Event • Choose Event if you want to trigger an event handler in the runtime environment. E-mail message Use this field to select the e-mail message that will be delivered to the escalation receivers when the escalation is raised (or thrown). Once you select this option. Business Process Choreographer Explorer The settings in this table define the nature of the Java™ Server Page (JSP) that the staff member sees when they are asked to interact with a task. You will have three options: • • • • • • No Choose No to leave the priority unchanged. you then have to specify the event handler in the Event handler name field in the task's Details properties page. Increase per repetition Select this if you want the priority augmented each time this escalation is repeated. You can enter the values using the spin boxes provided. Note that an escalation receiver work item will also be created. WebSphere CRON. Increase task priority Use this list to determine if and how this escalation's priority will change with each iteration of it. Repeat notification every Use these fields to specify the period of time that will elapse before the notification associated with this escalation is repeated. Increase this time only Choose this if you only want it to boost the priority in the first iteration. a separate field becomes active from which you can choose an appropriate e-mail message. If you select this option. user-defined) that is specified in the task's Duration properties page. • E-mail • Choose E-mail to have an e-mail message that announces the escalation delivered to a staff member. or click the secondary radio button and enter a value that makes sense to the type of calendar (simple.You have three options: • • Work item Choose Work item to inform the person of a task by delivering it directly to a designated person's "to do" list. This field is active only if the Notification type is set to E-mail. You can create a new message.

For task pages there are two available options: Page In this case. When you are done. The content of a task page can be defined by the portal administrator. The template itself is not visible for the user. Page definition When this option is used.Click Add to define a new JSP. In the table. . The process integration in WebSphere Portal is based on "task pages" that are assigned to human tasks and displayed to the user when he selects a task in his task list. or browse to an existing one. and then decide which role will see the JSP in the Apply to field. Click JSP editor to work with the actual JSP itself. and select a type for it from the Type list. a simple arithmetic calendar. Define its name in the Unique name field. Therefore. Task level Calendar type Use this field to specify a type of calendar that will measure the durations of this task. click Create Portlet. For all tasks of the same type. Portal client Use the settings on this page to configure the portal client UI element that will be associated with this human task. You can then create a new JSP. as the name suggests. specify what fault will trigger it in the Fault field if this JSP will be shown in the event of a fault. the unique name is used to directly lookup a page which will be displayed. the process designer can define a unique name for each human task. and use the context root field to define the runtime path to the JSP. the unique name defined above is used to lookup an instance template from which a dynamic copy is created and added to the user's navigation in portal each time a task of this type is selected in the task list. Configure the time using the spinners that are enabled when you choose this option. and Edit to make changes to existing values. You have the three following options: • • Simple This is. the same static page is reused. Remove to delete an existing definition. which is assigned by the portal admin later on to the portal page he would like to be shown to a user when he selects a task in his task list. Duration tab: Human Task editor This topic includes a description of each of the fields on the Duration tab of the Properties view. select one of two kinds of JSPs in the JSP type field.

and point to a valid Java™ Naming and Directory Interface (JNDI) location. Auto deletion mode This selection is not available if you choose Never on the Duration until task is deleted field. the task will be deleted the moment it expires. Duration until task expires Use this field to specify the amount of time that should pass before this task reaches an end state of "Expired". and will never expire. You can enter a value that makes sense to the calendar you selected in the Calendar type field above. Never In this context. Use it to decide whether or not to delete the task based on its outcome. Never In this context. the task will not be removed from the system ever. A business calendar can be used to model duration values for time-sensitive aspects of your human task in order to account for such variables as regular working hours. and holidays. Examples of this type of calendar can be found in the Related Information section below. • Business calendar • There will be more than three options in the Calendar type field if a business calendar is available.• • WebSphere® CRON This is a built-in calendar that uses a list of term expressions representing elements of time to calculate the interval. See Related Tasks for more information. two new fields will appear that you can use to name the calendar. • On successful completion . Duration until task is deleted Use this field to determine when the task will be removed from the system once it is complete. You can enter a value that makes sense to the calendar you selected in the Calendar type field above. the task will be deleted immediately after it is completed. When you select it. You have the following options: • • On completion Choose this option to delete the task from the system once it is finished. The state of the task does not change when it is overdue. You can select either of the following: • • • • • Immediate In this context. Duration until task is overdue Use this field to set the period that will elapse between the time this task is started and the time that it is expected to be completed. whether or not it was successfully completed. • User-defined • Use this option to select a calendar other than those provided. or choose one of the following options: • • Immediate In this context. the task will not be removed from the system ever. this setting means that the task will not be given a due date. this setting means that the task will be considered due the moment it is assigned. or choose one of the following options: • • • • • Immediate In this context. Users can not work on a task once it has expired. weekends. • Never • In this context.

User calendar JNDI This field appears when you choose the User-defined option in the Calendar type field above. Remove to delete an existing one. Use the settings on this page to select the single-operation Interface that is singularly associated with .• Choose this option to only delete the task when it has been successfully completed. Environment tab: Human Task editor This topic includes a description of each of the fields on the Environment tab of the Properties view. Use this field to enter a name for your custom calendar. Custom properties table Use the fields in this table to work with the custom properties that are defined by two fields: Name and Value. Click Add to create a new property (in which case a new window opens that lets you enter the key value pair). Calendar name This field appears when you chose the User-defined option in the Calendar type field above. and Edit to make changes to one. Interface tab: Human Task editor This topic includes a description of each of the fields on the Interface tab of the Properties view. Use this field to specify the Java Naming and Directory Interface (JNDI) location for your custom calendar.

not an individual. Select Module to store the form as part of the module. More specifically. a people assignment criteria is a database query that retrieves a list of members from the runtime engine. click Browse to use an existing form. select Web Project to specify the web location of a form. By default Lotus Forms saves the files in the temporary directory of the WebSphere® Process Server it is running in (to change the location where the forms are saved. or a new form within an existing web project.wbit. you must specify the form which will be displayed to the user in the Lotus Forms Client. Each staff member in this role group has the permissions assigned to the role as a whole. save the Lotus Form when a task is saved or completed The generated client will save the transmitted Lotus Form after each Save or Complete request on the server. and people assignment criteria define who will be member of an authorization role. or the way the forms are stored. and those that appear will depend on the kind of human task that you are working with. you have to keep in mind that a task is assigned first and foremost to a role. During run time. The building blocks of the human task editor Compose your own human task using a combination of the following building blocks • • • • People assignment roles and criteria People assignment settings User interface settings Escalation settings People assignment roles and criteria Roles and criteria interact to identify staff members according to their access rights. or click New to a create a new web project. For forms stored in the module. People assignment settings Use the staff settings to determine which roles can interact with your human task.form. click Browse to select an existing form in an existing web project. authorization roles determine what their members are allowed to do in the runtime environment. Alternatively you can type the ContextRoot and file name directly in the respective fields. To understand how this works. or at a specified web location.persistence package on the generated client. For forms stored in a web project. Criteria act to further refine the list of members who can claim the work.client. and which are working in the same form. IBM® Lotus Forms client Select where to store your Lotus® Forms You can store your Lotus Forms as part of your module. There are six possible roles to choose from.ibm.User interface settings tab: Human Task editor This topic includes a description of each of the fields on the User interface tab of the Properties view. or click New to a create a form. you must customize the generated client). Enable this feature to pass the complete form (including digital signatures) to the tasks that follow this one.tel. modify the saveForm and getForm methods in the PersistenceService class in the com. To customize the save options. Officially. Input/Output If a Lotus Forms client is defined for a human task. .

but cannot start it. and force-complete. • Potential starters Potential starters have the authority to initiate an existing instance.• Administrators Administrators have the authority to perform upper level duties like suspend. an editor can receive the work item to review a document and add comments. In many usage scenarios. • Potential owners Potential owners can claim. work on and complete tasks. The starter role is subtly different from that of creator. forceretry. • Readers Readers are allowed to view tasks. terminate. • Portal client Select the portal client to specify a client that is executed on WebSphere® Portal Escalation settings . but an editor is not able to finish the task. but cannot work on them. the task is delivered to the staff member via an HTML-based web page. There are three user interfaces that you can chose from: • IBM® Lotus® Forms client Select IBM Lotus Forms client to present information to the user with the Lotus Forms Client. • Editors Editors can work with the content of a task. You can modify these values as needed. With this option. The look and feel of this web page is determined by the JSP values in the User interface settings table. This role can be used in situations where an employee wants to monitor as task without taking any action in it. and although a creator can create a new instance. User interface settings Use the User interface settings to determine how people interact with the tasks. only a starter can start it. but cannot claim or complete it. • Business Process Choreographer Explorer Select the Business Process Choreographer Explorer to use the standard client that is delivered with this product. This role is only associated with an invocation task. • Potential creators Potential creators can create an instance of the human task. restart. For example. the same employee fulfils both roles.

click Help > Software Updates. Information on this topic can be found by following this link: Scenarios for invoking tasks or Scenarios for invoking tasks if you have WebSphere Process Server installed.Use the escalation settings to specify how long to wait for a task to complete. Replacement variables and context variables While working with templates in the tooling environment. additional work was delegated to other people in order to complete the parent task. and what to do if it isn't. Note: If this link fails.com/dmndhelp/downloads/v6r2mx/wid/. When you configure an escalation. a person has accepted the work and should currently be working on it. Click Add Site and specify the following location: http://publib. and which role to notify when it doesn't. Configure the escalation settings to notify people or escalation receivers should the owner fail to complete the work within a specified period of time. and click Install. This variable is known as a context variable. Then. you must use a replacement variable. If you want to refer to such a context variable in a template. Invocation scenarios for invocation tasks The various ways in which tasks can be invoked is described. you might want to refer to a variable that will not be resolved until the instance has been started in the runtime environment. In the Software Updates and Add-ons window. You will need to restart WebSphere Integration Developer to see the additional documentation. open the Resource perspective if you are not already there (click Window > Open Perspective > Other > Resource). you create an escalation for it by stipulating what state the task should be in at the end of a specific period of time. • Subtask started When a task is in the waiting for subtasks state. Once you have chosen the activation state. Configure the escalation settings to notify people or escalation receivers should nobody claim it within a specified period of time. in the main menu. When a task is in the running state. because its value is dependent upon the task context in which it is exists (or the process context for inline tasks).boulder. . In WebSphere Integration Developer. you begin by specifying the state that the task is in when the escalation period begins (this is also known as the activation state and there are three options shown in the human task editor). it is waiting to be claimed. • Claimed When a task is in the claimed state. Configure the escalation settings to notify people or escalation receivers when the invoked service does not return an output or fault message in time. you need to install additional documentation. Expand the results under this repository location. • Running This state is only available with invocation tasks. select the Available Software tab. Configure the escalation settings to notify people or escalation receivers should the subtasks not be completed within a specified period of time. it has invoked the service and waits for it to complete.ibm. There are four possible activation states: • Ready When a task is in the ready state. select the documentation that you want.

replacement variables can be used to represent context variables that will be fully resolved in the runtime environment. it must be escaped as specified by XML (using &#37. For example. including the following: • staff queries of tasks • staff queries of escalations • in the description and documentation of tasks • in the description and documentation of escalations • in notification e-mails sent by escalations. replacement variables can be used to represent context variables that will be fully resolved in the runtime environment.originator % Note: • Using percent signs within variable names is not allowed. it must be escaped as specified by XML (using &#37. • If you want to use a percent sign in a string within the replacement variable. Replacement variables in staff e-mails When used in escalation-based staff e-mails. from the surrounding business process. then you will need to use two percent signs ("%%") instead of one. they can originate from previous staff resolutions. They can be used in many places within the tooling environment. • If you want to use a percent sign in a string within the replacement variable.). For instance %htm:task. The categories shown below contain specific details on which expressions can be used and when. in the case of inline tasks. If an XPath expression contains a “%” sign. • Replacement variables in people assignment criteria and task descriptions When used in descriptions for people assignment criteria and human tasks. you can also enter a replacement variable into a template directly by encapsulating it in "%" signs. • Variables can contain XPath expressions. • Variables can contain XPath expressions. • • Replacement variables in people assignment criteria and task descriptions When used in descriptions for people assignment criteria and human tasks. custom properties and. To use a replacement variable in a template. If an XPath expression contains a "%" sign. you will simply be able to click the associated Insert Variable button and choose something appropriate from the Replacement Variable Selection window. In cases when you can use a replacement variable.).originator% Note: • Using percent signs within variable names is not allowed. • durations of tasks • priority of tasks • the type property (business category) of tasks • custom properties of tasks • durations of escalations • custom properties of escalations Use of replacement variables Context variables might only be available during specific periods of an instance's life cycle (a task owner is only defined once the task has been claimed) and can resolve either to single or multiple values. . However. input/output messages.Context variables can come from many sources. Replacement variables for escalation duration expressions The Escalate within value can also be represented by a replacement variable that refers to a variable that will get resolved in the runtime environment. For instance %htm:task. encapsulate it in '%' signs. replacement variables can be used to represent context variables that will be fully resolved in the runtime environment. then you will need to use two percent signs (“%%”) instead of one. Multiple values are returned in a string array (which is represented as a comma separated list when used in an email) .

owner htm:task.readers htm:task.property. For binary custom properties. tasks that are not embedded inline in a process).potentialInstanceCreators Task variables htm:task. or an inline human task.displayName htm:task. In addition resolved people assignment criteria of sibling inline tasks can be used from other inline tasks.instanceID default task display name default task description task instance id .starter htm:task. they must be enclosed in '%' characters.administrators htm:task. Stand-alone human tasks The following table lists all expressions that are available for stand-alone human tasks (i. htm:task.customPropertyName value of the task's custom properties Note that only the string value of properties can be evaluated.Replacement variables for people assignment criteria and descriptions in human tasks can contain the contents of variables and messages. A list of all expressions that can be used in stand-alone human tasks.e. When these expressions are used inside descriptions as well as people assignment criteria.editors htm:task. Table 1. the query string will be evaluated.potentialStarters htm:task.description htm:task. Type of variable Staff Variables htm:task. Available expressions differ depending on whether it is a stand-alone.potentialOwners htm:task.originator Expression Description the user ID of the originator of this task instance the user ID of the owner of this task instance task starter name list of task administrators list of potential task owners list of task editors list of task readers list of potential task starters list of potential creators htm:task.

part[\XPath]) Description data from task's input message is provided using XPath expressions (Process Server messages usually have a single part. <?xml version="1. You can use either %htm. When using messages with multiple parts then the syntax in parenthesis has to be used. When using messages with multiple parts then the syntax in parenthesis has to be used.input.output.Table 1. For example. in which case the part name does not have to be specified. Escalation variables htm:escalation.[part][\XPath] (or htm:input.\XPath% or %htm.0" encoding="UTF-8"?> <wsdl:definitions xmlns:tns="http://variables/variablesInterface" xmlns:wsdl="http://schemas.description htm:escalation.\output1% can be used to reference the defined parameters. in which case the part name does not have to be specified. For binary custom properties.xmlsoap.part[\XPath]) data from task's output message is provided using XPath expressions (Process Server messages usually have a single part.customPropertyName default escalation description escalation's expected task state a string representation of the escalation instance id escalation receivers value of escalation's custom properties Note that only the string value of properties can be evaluated.property. A list of all expressions that can be used in stand-alone human tasks.receivers htm:escalation. Also see the notes below. Type of variable Expression htm:input. %htm:output.org/2001/XMLSchema" name="variablesInterface" targetNamespace="http://variables/variablesInterface"> <wsdl:types> . In this case.org/wsdl/" xmlns:xsd="http://www. Also see the notes below.\XPath% to refer to input or output parameters of the operation defined for a task interface.expectedTaskState htm:escalation.) Note that task instances have no default message.w3.) htm:output. the expressions %htm:input.instanceID htm:escalation(escalationName).[part][\XPath] (or htm:output.\input1%. the query string will be evaluated. the WSDL code shown below defines a task interface comprising of an operation with one input parameter (input1) and one output parameter (output1).

or String List.org/2001/XMLSchema"> <xsd:element name="operation1"> <xsd:complexType> <xsd:sequence> <xsd:element name="input1" nillable="true" type="xsd:string"/> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="operation1Response"> <xsd:complexType> <xsd:sequence> <xsd:element name="output1" nillable="true" type="xsd:string"/> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:schema> </wsdl:types> <wsdl:message name="operation1RequestMsg"> <wsdl:part element="tns:operation1" name="operation1Parameters"/> </wsdl:message> <wsdl:message name="operation1ResponseMsg"> <wsdl:part element="tns:operation1Response" name="operation1Result"/> </wsdl:message> <wsdl:portType name="variablesInterface"> <wsdl:operation name="operation1"> <wsdl:input message="tns:operation1RequestMsg" name="operation1Request"/> <wsdl:output message="tns:operation1ResponseMsg" name="operation1Response"/> </wsdl:operation> </wsdl:portType> </wsdl:definitions> In addition. %htm:output. Type of variable Process variables Expression wf:variable.\input1%. In general. and %htm:input. It is expected that XPATH will point to objects of type String. Note. a human task that is embedded inline in a process can also use the expressions listed in the following table for staff resolution.operation1Result\output1% are valid and equivalent to %htm:input.part[\XPath]%. expressions like %htm:input.w3. Table 2. the expressions %htm:input. .\output1% .part[\XPath]% can be used to refer to input and output parameters associated with the different WSDL message parts defined for a task operation. For example. so it can only be used on expressions that exclude message part names.operation1Parameters\input1%. only single-part messages are generated. and object will be replaced by what the toString() method returns.<xsd:schema targetNamespace="http://variables/variablesInterface" xmlns:tns="http://variables/variablesInterface" xmlns:xsd="http://www. %htm:output. Inline human tasks In addition to the expressions in the previous table. A list of the expressions that can be use with inline human tasks.VariableName\[part][\XPath] Description 'VariableName\[part][\XPath]' is passed to BFM to resolve the variable/expression. Currently. that the description of an inline human task is resolved by the Business Flow Manager (BFM) and must therefore be modeled to use the syntax described in the previous section.

Table 2. A list of the expressions that can be use with inline human tasks. Type of variable

Expression wf:property.customPropertyName

Description The 'customPropertyName' is passed to the BFM to resolve the custom property.

Inline staff variables

wf:process.starter

The starter of the process.

wf:process.administrators wf:process.readers wf:activity(activityName).potentialOwners

The administrators of the process. The readers of the process. The potential owners of either the current activity or the activity named in brackets The owner of the activity named in brackets The editors of either the current activity or the activity named in brackets The readers of either the current activity or the activity named in brackets

wf:activity(activityName).owner

wf:activity(activityName).editors

wf:activity(activityName).readers

Note that inline staff variables which refer to sibling activities can only be resolved if the referred activity is also an inline human task and is already started at the point in time when the staff resolution happens. As with stand-alone tasks, it is expected that XPATH will point to objects of type String, or String List. In general, and object will be replaced by what the toString() method returns.

Replacement variables in staff e-mails
When used in escalation-based staff e-mails, replacement variables can be used to represent context variables that will be fully resolved in the runtime environment. To use a replacement variable in a template, encapsulate it in '%' signs. For instance %htm:task.originator % Note: • Using percent signs within variable names is not allowed. • If you want to use a percent sign in a string within the replacement variable, then you will need to use two percent signs (“%%”) instead of one. • Variables can contain XPath expressions. If an XPath expression contains a “%” sign, it must be escaped as specified by XML (using &#37;).

Table 1. A list of all expressions that can be used in e-mails. Type of variable Staff Variables htm:task.originator

Expression

Description the user ID of the originator of this task instance the user ID of the owner of this task instance task starter name list of task administratorss list of potential task owners list of task editors list of task readers list of potential task starters list of potential creators

htm:task.owner

htm:task.starter htm:task.administratorss htm:task.potentialOwners htm:task.editors htm:task.readers htm:task.potentialStarters htm:task.potentialInstanceCreators

Task variables

htm:task.property.customPropertyName

value of the task's custom properties Note that only the string value of properties can be evaluated. For binary custom properties, the query string will be evaluated.

htm:task.displayName htm:task.description htm:task.instanceID htm:task.URLPrefix

default task display name default task description task instance id the link to the client that displays the task details that is used to construct HTTP references in emails. the link to the administrative client when a custom admin client is used (otherwise, use htm:task.URLBPCExplorer instead). the link to the Business Process Choreographer Explorer URL

htm:task.URLPrefixAdmin

htm:task.URLBPCExplorer

Table 1. A list of all expressions that can be used in e-mails. Type of variable

Expression

Description with task details

htm:input.[part][\XPath] (or htm:input.part[\XPath])

data from task's input message is provided using XPath expressions (Process Server messages usually have a single part, in which case the part name does not have to be specified. When using messages with multiple parts then the syntax in parenthesis has to be used.)

htm:output.[part][\XPath] (or htm:output.part[\XPath])

data from task's output message is provided using XPath expressions (Process Server messages usually have a single part, in which case the part name does not have to be specified. When using messages with multiple parts then the syntax in parenthesis has to be used.)

Note that task instances have no default message.

Escalation variables

htm:escalation.activationState htm:escalation.description htm:escalation.displayName htm:escalation.expectedTaskState htm:escalation.instanceID htm:escalation(escalationName).receivers htm:escalation.property.customPropertyName

escalation's activation state default escalation description escalation display name escalation's expected task state a string representation of the escalation instance id escalation receivers value of escalation's custom properties Note that only the string value of properties can be evaluated. For binary custom properties, the query string will be evaluated.

htm:escalation.receivers htm:escalation.URLPrefix

list of users who receive the escalation the link to the client that displays the escalation details used to

originator % or as shown in the screen capture below. The administrators of the process.potentialOwners The starter of the process.\messagePartName[\XPathExpression] wf:property. For instance %htm:task. This variable that is referenced must contain a time specification that is valid when the escalation is evaluated (if there are repeated escalations. encapsulate it in '%' signs. Replacement variables for escalation duration expressions The Escalate within value can also be represented by a replacement variable that refers to a variable that will get resolved in the runtime environment. Type of variable Expression Description construct HTTP references in emails.starter wf:process.Table 1. In general. This resolves the custom property.editors wf:activity(activityName).owner wf:activity(activityName). and the variable must exist at the escalation's creation time (otherwise you will get an error and the transaction will be rolled back). Note: • Using percent signs within variable names is not allowed. The potential owners of either the current activity or the activity named in brackets The owner of either the activity named in brackets The editors of either the current activity or the activity named in brackets The readers of either the current activity or the activity named in brackets wf:activity(activityName). it is expected that XPath will point to objects of type String. and object will be replaced by what the toString() method returns.URLBPCExplorer the link to the Business Process Choreographer Explorer URL with escalation details Process variables wf:variable. . then this is the time at which the escalation is evaluated the first time). A list of all expressions that can be used in e-mails.administrators wf:process.customPropertyName This resolves the variable and expression. or String List.readers wf:activity(activityName). To use a replacement variable in a template. htm:escalation. The readers of the process. Inline staff variables wf:process.readers Note: For those expressions with XPath.

).potentialOwners htm:task.If you want to use a percent sign in a string within the replacement variable. If an XPath expression contains a “%” sign. As the duration. in this example %htm:input. it must be escaped as specified by XML (using &#37.potentialStarters .originator Expression Description the user ID of the originator of this task instance the user ID of the owner of this task instance task starter name list of task administrators list of potential task owners list of task editors list of task readers list of potential task starters htm:task.\myEscalationTime%.administrators htm:task.editors htm:task. A list of all expressions that can be used in duration expressions. proceed as follows: 1. 2.owner htm:task. • Variables can contain XPath expressions. Add a variable to your project that contains a string that will be passed to the human task in the input message. 3. Select the escalation object and go to the Details tab in the Properties view. then you will need to use two percent signs (“%%”) instead of one. enter %htm:input.readers htm:task. and one that will contain a valid time specification at runtime.starter htm:task. To specify the escalation time dynamically. Type of variable Staff Variables htm:task. • Table 1.\yourVariableName%.

part[\XPath]) data from task's output message is provided using XPath expressions (Process Server messages usually have a single part. the link to the Business Process Choreographer Explorer URL with task details data from task's input message is provided using XPath expressions (Process Server messages usually have a single part.part[\XPath]) htm:output. When using messages with multiple parts then the syntax in parenthesis has to be used.URLBPCExplorer instead).description htm:task.Table 1. in which case the part name does not have to be specified.property.[part][\XPath] (or htm:output. For binary custom properties. use htm:task.) htm:task.customPropertyName value of the task's custom properties Note that only the string value of properties can be evaluated. htm:task. in which case the part name does not have to be specified. Type of variable Expression htm:task. When using messages with multiple parts then the syntax in parenthesis has to be used.URLPrefixAdmin htm:task. Escalation variables htm:escalation.[part][\XPath] (or htm:input.displayName htm:task. the query string will be evaluated.URLBPCExplorer htm:input.URLPrefix default task display name default task description task instance id the link to the client that displays the task details that is used to construct HTTP references in e-mails.instanceID htm:task. A list of all expressions that can be used in duration expressions.activationState escalation's activation state .potentialInstanceCreators Description list of potential creators Task variables htm:task.) Note that task instances have no default message. the link to the administrative client when a custom admin client is used (otherwise.

\messagePartName[\XPathExpression] wf:property.editors wf:activity(activityName).starter wf:process. For binary custom properties.Table 1.readers The starter of the process. The potential owners of either the current activity or the activity named in brackets The owner of either the activity named in brackets The editors of either the current activity or the activity named in brackets The readers of either the current activity or the activity named in brackets Refactoring a human task When you refactor parts of your human task. A list of all expressions that can be used in duration expressions. the link to the Business Process Choreographer Explorer URL with escalation details htm:escalation. The administrators of the process.owner wf:activity(activityName).displayName htm:escalation.administrators wf:process.customPropertyName Description default escalation description escalation display name escalation's expected task state a string representation of the escalation instance id escalation receivers value of escalation's custom properties Note that only the string value of properties can be evaluated. the query string will be evaluated. Type of variable Expression htm:escalation. .readers wf:activity(activityName).potentialOwners wf:activity(activityName). htm:escalation.URLBPCExplorer Process variables wf:variable. The readers of the process. Inline staff variables wf:process.property.instanceID htm:escalation(escalationName).URLPrefix list of users who receive the escalation the link to the client that displays the escalation details used to construct HTTP references in e-mails.expectedTaskState htm:escalation. dependencies on those parts are automatically and universally updated throughout the product as a whole.customPropertyName This resolves the variable and expression. This resolves the custom property.receivers htm:escalation.description htm:escalation.receivers htm:escalation.

Namespace Description b. right-click the human task. To refactor using the context menu. These are the names of the fields that you can change. A properties file will be exported for each locale that is currently present in the human task. Supporting other languages With the internationalization settings of the human task editor. press Alt+Shift+R. In the Select Export Directory window. Click the field that contains the property that you would like to refactor. The window will then display a list of the property files that will be exported. as well as the property page on which they are located: Field name Name Property page Description Description Use this option to change the name assigned to the task. . 2. you can display client-based information in multiple languages. a. b. c. Use this option to assign a new namespace to your task. or use a context menu in the Business Integration view. and select Internationalization > Export. proceed as follows: a. 1. From the menu. Right-click an empty area of the human task editor. You can use this functionality to provide text strings for the following: • Task name • Task description • Documentation • Escalations To internationalize a human task. hover over Refactor and then choose from one of the following three options: Option Rename Move Change Namespace Description Use this option to change the name assigned to the human task. A new window will appear in which you can change the property as necessary. Use this option to assign a new namespace to your task. In the Business Integration view. You can either do it from an appropriate field within the properties pages. specify a file location and name for the output. Once the refactoring toolbar appears. Use this option to move your task to a new folder or module.There are two ways in which you can refactor parts of your human task. To refactor parts of your human task from a properties page. proceed as follows: a. proceed as follows: 1.

When you have the translated properties files. a. and the next time a template of this task is instantiated. To add another role to this task. For example. select an appropriate language from the default language field. Launch your human task in the editor. you will be configuring the roles for the people who will be able to claim and work on this task. click Finish. When you are done. proceed as follows: a. c. There are keys included in the properties files. right-click an empty area of the human task canvas. See above for descriptions of each. Both receiver and originator Since a collaboration task is assigned to one person from another. the internationalization information will be passed to the runtime environment. the role that the person belongs to defines their authorization.b. and the display for the people assignment settings will differ as such: Kind of task To-do People assignment display Receiver In this case. Invocation Collaboration 2. 4. 3.properties. For example. proceed as follows: 1. Save your work. do not rename the task or any of its escalations. there will already be a few roles selected. Assigning roles to your human task A role is a set of employees who share the same level of authority. To change the default client locale. you will be configuring the roles for the people who will be able to initiate the task. The display that you see will depend on what kind of human task you are working with. 2. and rename each one according to the language that it represents. click Finish. In the Details tab of the properties area. b. it has both receiver and originator settings. When you are done. Have the content of each of the properties files translated. When it comes to working on tasks. the user interface will display the text in the language that corresponds to the requesting systems's locale. You can use native2ascii tool that is provided with the Java™ SDK to transform a text file from the platform's native encoding to ASCII. a German properties file would be named TaskName_de_DE. and select Internationalization > Import. When you deploy this human task. The window will then display a list of the property files that can be imported. click your task to choose it as a whole. Make sure that the text is properly ASCII encoded. click the icon and select one from the drop down list. and they have to match the original source material. The drop down list will only show those roles that are still available to be chosen. To add a role to your human task. Here is a list and a description of each of the roles that you will be able to work with: . Important: In the human task editor. In the Select Import Directory and Property Files. b. Originator In this case. browse to the folder where you stored the properties files and click Open. In the Outline view.

you need to install additional documentation. Readers 3. Note: If this link fails.ibm. but cannot work on them. and click . Information on this topic can be found by following this link: Configuring the people directory provider or Configuring the people directory provider if you have WebSphere Process Server installed. Potential creators can create an instance of the human task. Defining the people assignment criteria People assignment criteria are constructs that are used in the task model to identify sets of people that can be assigned to an instance-based authorization role. Then. only a starter can start it. for example.boulder. Readers are allowed to view tasks. Potential creators Potential starters Potential starters have the authority to initiate an existing instance. select the documentation that you want. For example. and click Install. in the main menu. This role is only associated with an invocation task. but cannot start it. 4. select the Available Software tab. Potential owners Editors Editors can work with the content of a task. The starter role is subtly different from that of creator. Click Add Site and specify the following location: http://publib. restart.com/dmndhelp/downloads/v6r2mx/wid/. In many usage scenarios. an editor can receive the work item to review a document and add comments. Configuring the people directory Use this task to configure the LDAP or VMM people directory provider that Business Process Choreographer uses to determine who can start a process or claim an activity or a task. but cannot claim or complete it. In the Assign People tab of the properties area. In the Software Updates and Add-ons window. the people resolution uses the people assignment criteria to retrieve the user IDs and other user information. In WebSphere Integration Developer. . click Help > Software Updates. and force-complete. force-retry. This role can be used in situations where an employee wants to monitor as task without taking any action in it. terminate. Expand the results under this repository location. At runtime. for composing e-mails. use the people assignment criteria settings to specify which people should belong to the role in question. and although a creator can create a new instance.Table 1. work on and complete tasks. the same employee fulfils both roles. You will need to restart WebSphere Integration Developer to see the additional documentation. select it in the table. Potential owners can claim. open the Resource perspective if you are not already there (click Window > Open Perspective > Other > Resource). Available roles and their descriptions Role (icon) Administrators Description Administrators have the authority to perform higher level duties like suspend. To remove an existing role. but an editor is not able to finish the task.

These criteria are transformed during modeling and deployment into a set of queries that can be run on a people directory. Expand the results under this repository location. select the documentation that you want. select the Available Software tab. that is.ibm. The parameters for the following predefined people assignment criteria are listed here: Department Members Everybody Group Group Members Group Members without Named Users Group Members without Filtered Users Group Search Manager of Employee Manager of Employee by user ID Native Query Nobody Person Search Role Members User Records by user ID User Records by user ID without Named Users Users Users by user ID Users by user ID without Named Users Consider the following when you assign people assignment criteria: • If you are working with large groups of people. This allows you to transfer a human task from one group to another group easily. You can use people assignment criteria (previously known as staff verbs) in WebSphere® Integration Developer to specify people assignments in a human task. Note: Assigning people to a group individually can affect performance at runtime. you need to install additional documentation. • To individually assign people that belong to a group to a human task. A person’s group membership is resolved when the person logs in and accesses a human task. click Help > Software Updates. especially when assigning more than a few people to the group. Group Members without Named Users supports the separation-of-duties assignment pattern. Predefined people assignment criteria Predefined people assignment criteria are provided for retrieving sets of users from people directories. Customizing people assignment criteria You can also extend the set of predefined people assignment criteria by customizing your own criteria. and click Install. In WebSphere Integration Developer. A variant of this people assignment criteria.boulder. Then. the Group Members people assignment criteria provides an alternative to the group assignment. The Group Members people assignment criteria creates an assignment for each person individually. open the Resource perspective if you are not already there (click Window > Open Perspective > Other > Resource). Creating queries When an application is deployed. The resulting people queries are stored with the task template in the Business Process Choreographer database. in the main menu. You will need to restart WebSphere Integration Developer to see the additional documentation. In the Software Updates and Add-ons window. Note: If this link fails. Substitution can occur. Click Add Site and specify the following location: http://publib.com/dmndhelp/downloads/v6r2mx/wid/. • • • Predefined people assignment criteria Predefined people assignment criteria are provided for retrieving sets of users from people directories. a person that is absent can be replaced by another person. • • • • • • • • • • • • • • • • • • .Information on this topic can be found by following this link: People assignment criteria or People assignment criteria if you have WebSphere Process Server installed. people assignment criteria definitions are transformed into sets of queries that are specific to a people directory configuration. the Group people assignment criteria works best because it handles the members of a group as a unit. This assignment can then be transferred to another person.

but includes replacement expressions. the e-mail addresses for the user IDs specified. AlternativeDepartmentName 1 Optional string An additional department to which the users can belong. The list of people assignment criteria that you see is filtered by your choice of people directory provider. and the virtual member manager people directory providers.• • • To assign a few people to a human task that do not all belong to the same group. Department Members Use this criteria to retrieve the members of a department. This criteria is supported by all of the people directory providers. consider using the User Records by user ID people assignment criteria definition. If you choose Lightweight Directory Access Protocol (LDAP) as your provider. a distinguished name (DN) of an LDAP group IncludeNestedDepartments Mandatory boolean Specifies whether nested departments are considered in the query. This criteria has no parameters. Parameter Use Type Description DepartmentName Mandatory string Department name of the users to retrieve. or when rapidly prototyping an application. this definition is particularly useful during development. It is supported by the LDAP. The Users by user ID people assignment criteria definition is similar to the User Records by user ID definition. which makes it less suitable for assigning people to e-mail escalations The Everybody people assignment criteria definition is also worth considering. then criteria that are appropriate only for virtual member manager will not be displayed. AlternativeDepartmentName 2 Optional string Everybody Use this criteria to assign every user that is authenticated by WebSphere Process Server to a task role. Group . for example. You can also use this definition when the people assignment is not statically defined during modeling. it provides less functionality: o It does not check if the user IDs are entered correctly o It does not retrieve. While there are cases where all people in an organization can do a certain job. The department name must correspond to one of the following values: • • For virtual member manager. Replacement expressions can refer to custom properties or the input message of a human task. It indicates that all authenticated users are assigned to the human task. Although the Users by user ID definition performs better than the User Records by user ID definition at runtime. a unique name of a virtual member manager group For LDAP. An additional department to which the users can belong.

This parameter supports replacement expressions. the name format you use depends on which user repository is set for the application server where the task is deployed: o For the local operating system.Use this criteria to assign a group to a task role. use a group name supported by the custom implementation o For a stand-alone LDAP registry. use a DN of a group entry GroupId Mandatory string Group Members Use this criteria to retrieve the members of a group. virtual member manager. This assignment creates a group work item instead of creating user work items for every assigned user. The group ID must correspond to one of the following values: • • • For virtual member manager. Parameter Use Type Description Group name of the users to retrieve. This criteria is supported by all of the people directory providers. a DN of a group entry For the user registry provider. use a group name that is supported by the local operating system o For a stand-alone custom registry. the name format you use depends on which user repository is set for the application server where the task is deployed: o For the local operating system. Parameter Use Type Description GroupName Mandatory string Group name of the users to retrieve. It is supported by the LDAP. a DN of a group entry • For the user registry provider. a unique name of a group entry For LDAP. and the user registry people directory providers. The group ID must correspond to one of the following values: • For virtual member manager. This parameter supports replacement expressions. a unique name of a group entry • For LDAP. use a group name that is supported .

use a group name supported by the custom implementation o For a stand-alone LDAP registry.Parameter Use Type Description by the local operating system For a stand-alone custom registry. An additional group to which the users can belong. This parameter supports replacement expressions. and the user registry people directory providers. a unique name of a group entry For LDAP. a DN of a group entry For the user registry provider. use a group name supported by the custom implementation For a stand-alone LDAP registry. virtual member manager. use a group name that is supported by the local operating system o For a stand-alone custom registry. AlternativeGroupName1 Optional string An additional group to which the users can belong. the name format you use depends on which user repository is set for the application server where the task is deployed: o For the local operating system. Parameter Use Type Description GroupName Mandatory string Group name of the users to retrieve. use a DN of a group entry o o IncludeSubgroups Mandatory boolean Specifies whether nested subgroups are considered in the query. use a DN of a group entry IncludeSubgroups Mandatory boolean Specifies whether nested subgroups are . The group ID must correspond to one of the following values: • • • For virtual member manager. AlternativeGroupName2 Optional string Group Members without Named Users Use this criteria to retrieve all of the members of a group. It is supported by the LDAP. except for the explicitly named users.

Type Optional string The group type of the users to retrieve. a DN of a group entry Specifies whether nested subgroups are considered in the query. FilterValue Mandatory string Group Search Use this criteria to search for a group based on attribute matches. It is supported by the LDAP. and to assign the members of the group. FilterAttribute Mandatory string Name of the attribute to use in the search filter. NamedUsers Mandatory string Group Members without Filtered Users Use this criteria to retrieve all of the members of a group except for a set of users that is defined by a search filter. It is supported by the LDAP. This parameter supports replacement expressions. Filter value to use in the search filter. The group ID must correspond to one of the following values: • • IncludeSubgroups Mandatory boolean For virtual member manager. You can use the wildcard character. a unique name of a group entry For LDAP. IndustryType Optional string The industry type of the group to which the . Parameter Use Type Description GroupName Mandatory string Group name of the users to retrieve. and virtual member manager people directory providers. The user IDs of the users to exclude from the retrieved group members list. and virtual member manager people directory providers. This parameter supports replacement expression.Parameter Use Type Description considered in the query. Parameter Use Type Description GroupID Optional string The group ID of the users to retrieve. asterisk (*). in the filter.

Parameter Use Type Description The name of the employee whose manager is retrieved. BusinessType Optional string The business type of the group to which the users belong. DisplayName Optional string The display name of the group. Secretary Optional string The secretary of the users. the Group entity has properties that are equivalent to the following Group Search criteria parameters: • GS_GroupID: cn • GS_DisplayName: displayName • GS_BusinessCategory: businessCategory Manager of Employee Use this criteria to retrieve the manager of a person using the person's name. BusinessCategory Optional string The business category of the group to which the users belong. ParentCompany Optional string For virtual member manager. Manager Optional string The manager of the users. GeographicLocation Optional string An indication of where the users are located. Assistant Optional string The assistant of the users.Parameter Use Type Description users belong. The employee name must correspond to one of the EmployeeName Mandatory string . Affiliates Optional string The affiliates of the users. It is supported by the LDAP and virtual member manager people directory providers. The parent company of the users.

Supported values: yes and no AdditionalParameter2 Optional string Use this criteria to specify a base entry for . It is supported by the LDAP and virtual member manager people directory providers. EmployeeUserID Mandatory string Native Query Use this criteria to define a native query based on directory-specific parameters. Query Mandatory string Specifies the query. The type of parameter depends on the query template. • • • AdditionalParameter1 Mandatory where applicable string search template: a valid LDAP filter user template: a DN of a user entry usersOfGroup: a DN of a group Specifies the query. Parameter Use Type Description The login user ID of the employee whose manager is retrieved. This parameter supports replacement expressions. • • • search template: used to specify whether recursive search is done. Supported values: yes and no user template: not applicable usersOfGroup: Used to specify whether recursive search is done. This parameter supports replacement expressions. This must be one of the following values: search. the unique name of a person entry • For LDAP.Parameter Use Type Description following values: • For virtual member manager. For LDAP the following parameters apply: Parameter Use Type Description QueryTemplate Mandatory string The query template to use. or usersOfGroup. a DN of a person entry Manager of Employee by user ID Use this criteria to retrieve the manager of a person using the person's user ID. The type of query depends on the query template. user. This parameter supports replacement expressions.

user. • • • search template: either person or group user template: not applicable usersOfGroup: not applicable . • • • search template: a valid search expression user template: a unique name of a user entry usersOfGroup: a unique name of a group AdditionalParameter1 Mandatory where applicable string Used to specify whether performing a people or group search. If you use the default mapping XSLT files. If you use the default mapping XSLT files. The type of query depends on the query template. For virtual member manager (VMM) people directory providers the following parameters apply: Parameter Use Type Description QueryTemplate Mandatory string The query template to use. Mandatory depending on query template. this parameter is not supported. • AdditionalParameter3 Optional string a DN of a base entry Use this criteria to specify an additional parameter. this parameter is not supported. this parameter is not supported.Parameter Use Type Description searching. Query Mandatory string Specifies the query. This parameter supports replacement expressions. If you use the default mapping XSLT files. This must be one of the following values: search. AdditionalParameter5 Optional string Use this criteria to specify an additional parameter. or usersOfGroup. AdditionalParameter4 Optional string Use this criteria to specify an additional parameter.

this parameter is not supported. Parameter Use Type Description UserID Optional string The user ID of the users to retrieve. LastName Optional string The last name of the users to retrieve. Person Search Use this criteria to search for people based on attribute matches. Supported values: true and false. This criteria has no parameters. dc=mycomp. It is supported by the LDAP. Only authorization inheritance and people resolution defaults apply with this criteria. • a unique name of a base entry. If you use the default mapping XSLT files. If you use the default mapping XSLT files. • • • AdditionalParameter4 Optional string search template: applicable when AdditioanlParmeter1=group user template: not applicable usersOfGroup: applicable Use this criteria to specify an additional parameter. Nobody Use this criteria to deny users access to a task role. and the user registry people directory providers. FirstName Optional string The first name of the users to retrieve.Parameter Use Type Description AdditionalParameter2 Optional string Use this criteria to specify a base entry for searching. this parameter is not supported. AdditionalParameter5 Optional string Use this criteria to specify an additional parameter. . virtual member manager. for example. Profile Optional string The profile of the users to retrieve. dc=com AdditionalParameter3 Optional string Used to specify whether recursive search is done.

Company Optional string The company to which the users belong. Assistant Optional string The assistant of the users. Department Optional string The department to which the users belong. the PersonAccount entity has properties that are equivalent to the following People Search criteria parameters: • PS_UserID: uid • PS_LastName: sn • PS_FirstName: givenName • PS_MiddleName: initials • PS_Email: mail • PS_DisplayName: displayName • PS_Secretary: secretary . Email Optional string The e-mail address of the users. Fax Optional string The fax number of the users. DisplayName Optional string The display name of the users. The preferred language of the user. Gender Optional string Whether the user is male or female.Parameter Use Type Description MiddleName Optional string The middle name of the users to retrieve. Manager Optional string The manager of the users. Secretary Optional string The secretary of the users. Phone Optional string The telephone number of the users. PreferredLanguage Optional string For virtual member manager. Timezone Optional string The time zone in which the users are located.

An additional user ID. It is supported by the LDAP. It is supported by the LDAP and virtual member manager people directory providers.• • • • PS_Manager: manager PS_Department: departmentNumber PS_Phone: telephoneNumber PS_PreferredLanguage: preferredLanguage Role Members Use this criteria to retrieve the users associated with a role. AlternativeID2 Optional string Users Records by User ID without Named Users Use this criteria to define a query for users whose user ID is known. and user registry people directory providers. Parameter Use Type Description UserID Mandatory string The user ID of the user to retrieve. while excluding an explicitly named user ID. and the preferred locale. Parameter Use Type Description RoleName Mandatory string Role name of the users to retrieve. This criteria returns the user IDs and the e-mail information for these users. An additional role name for the user. for these users. virtual member manager. AlternativeRoleName1 Optional string An additional role name for the user. AlternativeRoleName2 Optional string User Records by User ID Use this criteria to define a query for a user whose user ID is known. if set. This criteria returns the user IDs. IncludeNestedRoles Mandatory boolean Specifies whether nested roles are considered in the query. It is supported by the LDAP. This parameter supports replacement expressions. . the e-mail information. virtual member manager people directory providers. AlternativeID1 Optional string An additional user ID. Use this parameter to retrieve more than one user. Use this parameter to retrieve more than one user.

Use this parameter to retrieve more than one user. Use this parameter to retrieve more than one user. The user IDs of the users to exclude from the user ID list. NamedUsers Mandatory string Users Use this criteria to define a query for a user who is known by name. use a person name supported by the custom implementation o For a stand-alone LDAP registry. AlternativeID2 Optional string An additional user ID. It is supported by all of the people directory providers. An additional user name. AlternativeID1 Optional string An additional user ID. a DN of a person entry For the user registry provider. Use this parameter to retrieve more than one user. This parameter supports replacement expressions. AlternativeName2 Optional string . the name format you use depends on which user repository is set for the application server where the task is deployed: o For the local operating system. • • • For virtual member manager. use a DN of a person entry AlternativeName1 Optional string An additional user name. Parameter Use Type Description Name Mandatory string The name of the user to retrieve. Use this parameter to retrieve more than one user. This parameter supports replacement expressions. the unique name of a person entry For LDAP. use the user ID of the user to assign o For a stand-alone custom registry.Parameter Use Type Description UserID Mandatory string The user ID of the user to retrieve.

Copy one of XML files that contain the people assignment criteria definitions to a convenient location. wpsadmin. while excluding an explicitly named user ID. Parameter Use Type Description UserID Mandatory string The user ID of the user to retrieve. This parameter supports replacement expressions.Users by User ID Use this criteria to define a query for a user whose user ID is known. for example. wpsadmin. It is supported by all of the people directory providers. This criteria does not require access to a people repository. This criteria does not require access to a people directory. Use short names to specify values. copy and modify one of the provided examples and then add your new version to your human task preferences.ui_6. This parameter supports replacement expressions.ibm. These files must be extracted from com.jar . 1. It is supported by all of the people directory providers.tel. This parameter supports replacement expressions. To create a customized people assignment criteria file. Use this parameter to retrieve more than one user.2. An additional user ID.version_number. Parameter Use Type Description UserID Mandatory string The user ID of the user to retrieve. AlternativeID2 Optional string Users by User ID without Named Users Use this criteria to define a query for users whose user ID is known. Use short names to specify values. NamedUsers Mandatory string Customizing people assignment criteria You can also extend the set of predefined people assignment criteria by customizing your own criteria. Use this parameter to retrieve more than one user. AlternativeID1 Optional string An additional user ID. Use this parameter to retrieve more than one user. The user IDs of the users to exclude from the user ID list. Use this parameter to retrieve more than one user. AlternativeID1 Optional string An additional user ID. for example. AlternativeID2 Optional string An additional user ID.wbit.

the deployment attempt will be rejected. The substitution feature can be used in conjunction with the virtual member manager (VMM) people directory provider. When you assign people to your task you should see your new people assignment criteria as an option.. no substitution takes place. the substitution policy is applied to the results of the people resolution to determine who receives the work items instead of the absent user. If a user is absent. See related tasks for details about setting human task preferences. After the task template is deployed.com/dmndhelp/downloads/v6r2mx/wid/. The resulting people queries are stored with the task template in the Business Process Choreographer database. A substitution policy defines how to deal with tasks and escalations that are assigned to absent users and is defined when the task template is modeled. 2. you need to install additional documentation. Creating queries When an application is deployed. 5. people assignment criteria definitions are transformed into sets of queries that are specific to a people directory configuration.which can be found in the shared_resources/plugins directory (typically on Windows®. If any one of the group of users that were resolved is present. Depending on the specific substitution policy. 4. This security realm has to be configured in WebSphere Application Server in order to make VMM available for the substitution feature. substitution takes place only if none of the users that were resolved by the people assignment criteria query is present. select the documentation that you want. The same policy is applied for all of the task roles that are associated with a task template. If none of the users and none of their substitutes are present. no substitute is used.ibm. In the Into folder field select any module or folder within a module. the first substitute who is present is used. However. Prefer present users In this case. Restart WebSphere® Integration Developer. and click Install. you cannot change the policy. then the work item is assigned to that user. Then. for every absent user. and if desired make it the default choice. open the Resource perspective if you are not already there (click Window > Open Perspective > Other > Resource). then the usual default user rules apply. while specifying a people directory provider other than VMM. make the necessary changes. Defining substitution for absentees The substitution feature allows a user to indicate when they will be absent so that a substitution policy can be applied. Note: VMM is the repository implementation provided by the WebSphere® Application Server for its security realm ‘Federated Repositories’. If an attempt is made to deploy a task template with a non-default substitution policy. click Help > Software Updates. Substitution is refreshed if the people assignment criteria get refreshed. In the copied version of the file. and the work items can be assigned to somebody else. Click Finish. Note: If this link fails. Click Add Site and specify the following location: http://publib. You will need to restart WebSphere Integration Developer to see the additional documentation. Information on this topic can be found at Mapping people assignment criteria to people queries or Mapping people assignment criteria to people queries if you have WebSphere Process Server installed. If no such substitute exists. In WebSphere Integration Developer. in the main menu. Add the new file to the workspace. From the main menu select File > Import > General > File System and then browse to the new file. In the Software Updates and Add-ons window. the shared_resources directory is C:\Program Files\IBM\SDP70Shared). the new file only needs to be part of the workspace to be available. Expand the results under this repository location. Edit the human task preferences page and add a pointer to your customized XML file. the following actions are applied: No substitution (default): The set of users remains unchanged Replace absent users with their substitutes If the user is present. It is applied only to task roles that have people assignment criteria. 3.boulder. . select the Available Software tab.

a simple arithmetic calendar. or for members of the group that you administer. select the Available Software tab. From the Calendar type field. specify a substitute for your tasks. it is carried out. if they are on sick leave. and click Install. it exhibits the same life cycle as people resolution itself. Substitution for absentees If you do not have WebSphere Process Server installed use this link: Substitution for absentees The substitution feature allows you to specify absence settings either for yourself. Note: The duration value is separate from the escalation function in human tasks. specify a substitute for the absent user's tasks. Similarly. you need to install additional documentation. click the Duration tab. Task Potential Owners). set to expire. open the Resource perspective if you are not already there (click Window > Open Perspective > Other > Resource).boulder. proceed as follows: 1. it is refreshed if the People Assignment Criteria itself gets refreshed. It will indicate when a task is due. Setting duration values for your human task You can set a duration value for your human task to specify how long the task will hold before it is either due. but the duration value will not trigger an escalation. you will have the following three options that will dictate the format your calendar entries will take: Option Description Simple This is. In the Properties view of the task settings. For a given task role (e. Note: If this link fails. Use the Timeout . Expand the results under this repository location. In WebSphere Integration Developer. Then. More information on this topic can be found by following these links: Configuring people substitution If you do not have WebSphere Process Server installed use this link: Configuring people substitution Create and activate a Virtual Member Manager (VMM) property extension repository for Business Process Choreographer to support user substitution. 2. You will need to restart WebSphere Integration Developer to see the additional documentation. In the Software Updates and Add-ons window. A substitution policy defines how to deal with tasks and escalations that are assigned to absent users. in the main menu.ibm. for example. Specifying absence settings If you do not have WebSphere Process Server installed use this link: Specifying absence settings If you intend to be away from the office for a certain time. as the name suggests. or set to be deleted. click Help > Software Updates.com/dmndhelp/downloads/v6r2mx/wid/. if a People Assignment Criterion is associated with that role.g. Specifying absence settings for users If you do not have WebSphere Process Server installed use this link: Specifying absence settings for users If users are prevented from working on their tasks. To set the duration values for your human task.As substitution is a processing step after people resolution. Click Add Site and specify the following location: http://publib. select the documentation that you want.

and according to these choices: Option Description Use this field to set the period that will elapse between the time this task is started and the time that it is expected to be completed. You can use the fields to name the calendar. "Failed". Duration until task is overdue o o Duration until task expires Use this field to specify the amount of time that should pass before this task is moved to the "Expired" state. Never In this context. or choose one of the following options: o o o o o Duration until task is deleted Immediate In this context. or "Expired". and point to a valid Java™ Naming and Directory Interface (JNDI) location. Enter a value that makes sense to the calendar you selected in the Calendar type field. or choose one of the following options: Immediate In this context. WebSphere® CRON calendar This is a built-in calendar that uses a list of term expressions representing elements of time to calculate the interval. Use this field to specify the amount of time that should pass before this task is removed from the system once it has reached a completed state. Examples of this type of calendar can be found in the Related Information section below. the task will not move to the expired state. the task will be expired the moment it is started. You can enter a value that makes sense to the calendar you selected in the Calendar type field above. 3. this setting means that the task will not be given a due date. and holidays. The remaining fields on this page can be configured in any combination that you see fit. o Never o In this context. A user cannot work on an expired task. A business calendar can be used to model duration values for time-sensitive aspects of your human task in order to account for such variables as regular working hours. Completed states include: "Finished". Business calendar There will be more than three options in the Calendar Type field if a business calendar is available. See Using business calendars within human tasks for more information. weekends. "Terminated".Option Description Duration fields to select the amount of time that this activity should wait for an action to occur before it expires. Deletion is also dependent on . User-Defined calendar Use this option to select a calendar other than those provided. this setting means that the task will be considered due the moment it is started.

and holidays. the task will be deleted the moment it is completed. and then assigning it a timeout duration of two days (or 48 hours). Never In this context. weekends. it would be understood that the employee would be away from the office on Saturday and Sunday. o o Calendar name User calendar JNDI This field appears when you chose the User-defined option in the Calendar type field. whether or not it was successfully completed. You have the following options: On completion Choose this option to delete the task from the system once it is finished. In the Properties view of the task settings. To use a business calendar in a human task. refer to Business calendars. then it would be expecting a response by Sunday afternoon: a time when the staff member to which it is assigned is away for the weekend. you can use a business calendar to account for such variables as regular working hours. • Using business calendars within human tasks When it comes to modeling duration values for time-sensitive aspects of your human task. and holidays. If an instance of this business process were to be instantiated on a Friday afternoon. we are saying that the tool will take into consideration the fact that a timeout duration is often affected by periods when a business may be closed. If you have not already done so. 2. o On successful completion o Choose this option to only delete the task when it has been successfully finished. imagine putting a human task activity in a business process. or choose one of the following options: o o o o o Auto deletion mode Immediate In this context. create a business calendar or import one from WebSphere® Modeler. Use this field to specify the Java Naming and Directory Interface (JNDI) location for your custom calendar. select the business calendar that you created or imported in Step 1. You can enter a value that makes sense to the calendar you selected in the Calendar type field above. . the task will not be removed from the system. when we say that the business calendar can be used to model non-contiguous intervals of time. This field appears when you choise the User-defined option in the Calendar type field. or when an employee is absent. 3. So. Use this setting to configure the circumstances of the task's deletion. From the Calendar Type list. If however. A period of time that does not proceed in a sequential manner is called non-contiguous. we had modeled this timeout duration using the business calender. This selection is not available when Duration until task is deleted is set to Never.Option Description the choice you make in the Auto deletion mode field. and would not expect a response to the task until Tuesday afternoon. Use this field to enter a name for your custom calendar. For example. you can use a business calendar to account for such variables as regular working hours. click the Duration tab. weekends. Using business calendars within human tasks When it comes to modeling duration values for time-sensitive aspects of your human task. For detailed instructions on how to do this. proceed as follows: 1.

you will need to know the following ahead of time: • The state that the task is in when the escalation period begins (this is also known as the activation state). • The escalation period. A task definition can contain an arbitrary number of custom properties. Parallel escalation With a parallel escalation. If you are creating more than one escalation for an activation state. Although the duration value will indicate when a task is due. To add an escalation to your human task. it is waiting to be claimed. proceed as follows: 1. a staff member has accepted the work and should . Using the remaining fields. you have two options: Chained escalation In a chained escalation. or one after the other. • The state that you want the task to be in when the escalation period ends (it is when the task is NOT in this expected state at the end of the period that the actual escalation is thrown). an escalation could be used to alert a manager when a staff member is unable to complete a task by the deadline. Creating an escalation for your human task An escalation is a notification that is sent out when an expected result from a task has not been achieved within a set period of time. the escalations are in two separate paths. Value = 3 Custom properties are defined on the Environment tab in the properties area. Under Escalation settings. the escalations are executed sequentially. Configure the escalation settings to notify an authorized staff member should nobody claim it within the specified period of time. Each custom property has a name. For example. In such a case. configure the amount of time that this human task should wait for an action.4. and are executed at the same time (or in accordance with the escalate after setting as described below). and can be useful for querying. • The manner in which the notification takes place. escalations and for the dynamic people assignment via custom properties. Value = Chicago Name = skill-level. 2. choose the activation state from the following three options: Option Description Ready When a task is in the ready state. the first escalation must fully complete before the next one is initiated. and filtering tasks. it will NOT trigger an escalation. For example: Name = branch. knowing that the business calendar will compensate for all non-contiguous aspects of the interval of time. sorting. Claimed When a task is in the claimed state. Note: The duration value for a human task is separate from the escalation function. Launch your human task in the editor. When you create an escalation for your human task. Search criteria can be defined for tasks. Information on how to configure these fields can be found in the topic Setting duration values for your human task Using custom properties for human tasks Custom properties are used to categorize a task. or how long you want the system to wait for the expected state to be reached before notification occurs. defined by a name attribute and a value of type string.

Click the Escalation icon to create a new escalation for the chosen activation state. A new escalation appears below the selected activation state. select an existing escalation and click the Escalation icon. b. configure the implementation as follows: Option Description Use this field to specify the state in which the task should be when the escalation times out. and click the Escalation icon. the parent task is escalated and indicates that it is still waiting on the subtask. A new escalation appears below the existing one as shown in the following image. Configure an escalation for a subtask to make sure that it can be completed in time enough for the parent task to be finished as well. at the end of the escalation period. then an escalation is thrown. To add additional escalations to this activation state.Option Description currently be working on it. select an the activation state. Configure the escalation settings to notify an authorized employee should the staff member fail to complete the work within the specified period of time. 4. If the subtask cannot be completed within the required amount of time. o Claimed o Choose this when you want an escalation initiated if. Subtask A task is in the subtask state when the owner of the parent task must delegate part of the task to other staff members. the task has not yet been claimed by a user. proceed in one of the following two ways: a. o All subtasks ended o Choose this as the expected end state when you want an escalation initiated if the subtasks associated with this task have not been . To create a parallel escalation. To create a chained escalation. A new escalation appears beside the existing one as shown in the following image. You will have the three following options: Expected task state o Ended o Choose this as the expected end state when you want an escalation initiated if the task is not complete by the end of the escalation period. 3. If the task is not in the state specified. In the Details page of the properties area. 5.

WebSphere® CRON. you can define the staff group (criteria) and in so doing. WebSphere CRON. specify the group of people that are notified should this escalation be executed. a separate field will appear from which you can choose an appropriate e-mail message. You can enter the values using the spin boxes provided. user-defined) that is specified in the task's Duration properties page. 2. You will have three options: Notification type o o Work item Choose Work item to have the task delivered directly to a designated staff member's "to do" list. In the Assign People page of the properties area.Option Description completed by the end of the escalation period. o Event o Choose Event if you want to trigger an event handler in the runtime environment. and nothing else. Increase this time only o Choose this if you only want it to boost the priority with one iteration. You can enter the values using the spin boxes provided. E-mail message Use this field to select the e-mail message that will be delivered to the designated staff member in the event of the escalation. Use these fields to specify the period of time that will elapse before the notification associated with this escalation is repeated. You will have three options: Repeat notification every Increase task priority o o o No Choose No to leave the priority unchanged. Use this list to determine if and how this escalation's priority will change with each iteration of it. or click the secondary radio button and enter a value that makes sense to the type of calendar (simple. o E-mail o Choose E-mail to have an e-mail message that announces the escalation delivered to a staff member. user-defined) that is specified in the task's Duration properties page. . o Increase per repetition o Select this if you want the priority augmented each time this escalation is repeated. this setting creates a work item. Escalate after Use these fields to specify the period of time that will elapse before this task is escalated. If you select this option. You can create a new message. you then have to specify the event handler in the Event handler name field in the task's Details properties page. or click the secondary radio button and enter a value that makes sense to the type of calendar (simple. Once you select this option. Use this list to tell the system how to deal with this escalation. Since a work item is always created in an escalation. or select an appropriate message from the list and click Edit to make any necessary changes to it.

Or. or subtask. and if so. you will need the following information to complete it: • to whom the resulting work item should be assigned. and the system checks to see if the expected task state has been reached. • Customizing an escalation e-mail notification You can use an e-mail message to notify a staff member that they have a work item in the form of an escalation. 1. Life cycle of an escalation Here is a brief description of the stages that a typical escalation will go through. 3. and a task in either a claimed or a subtask state are escalated when the work has not been completed within the required time limit. Or. • the period of time before it should be escalated. 3. • Notifying an event handler of an escalation You can use customized notification event handlers within your application environment to deal with escalations in your human task model. A task in a ready state is escalated when it is not claimed in time. it remains inactive until the task reaches the activation state. how soon. Designing an escalation When you model an escalation to be created in the human task editor. • the state that you want the task to be in when the escalation value times out (if it is not in this state. notification of an appropriate staff member via e-mail. . notification of an event handler. the escalation state is changed to waiting. you could use an escalation on a work item that has been sitting unclaimed for too long to send an email to a potential owner to urge them to claim it. • Assigning people to escalations Use the Assign People tab of the properties area to specify the group of people that is notified should this escalation be executed. • whether the escalation should be performed again. • whether the task priority should be increased during the escalation. • the mode of notification. claimed. you can model an escalation for a subtask to make sure that it gets completed in plenty of time for the owner to finish the associated parent task. all associated escalations are initialized with the starting of the Escalate within timer. When a timeout occurs. the escalation state is changed 2. then an escalation is thrown). an escalation can be used to notify first and/or second line managers when a work item has lingered in a working state for too long. If the task has reached or passed it. For example. When the task reaches the activation state. If the expected state has not yet been reached. 2. An instance of a task is created and. An escalation can result in any one of the following actions: 1. Escalations An escalation is a course of action that is implemented when an expected result from a task has not been achieved within a set period of time. the creation of a work item that can be claimed by a set of users. the escalation state is changed to superfluous. You can use WebSphere® Integration Developer to model escalations for tasks that are in the activation states of ready.• Escalations An escalation is a course of action that is implemented when an expected result from a task has not been achieved within a set period of time. • the action that should be taken in the case of an escalation. if it has an associated escalation.

4.com/bpcsamp/index. Such a situation would never escalate. Assigning people to escalations Use the Assign People tab of the properties area to specify the group of people that is notified should this escalation be executed. That is. e-mail notification. The escalation's priority is increased according to the Increase task priority value. and the escalation action is invoked. keep in mind that an escalation with an expected state of end. Note: You will need a connection to the internet to view this example. or event handler notification). This is a screen capture of an escalation chain built on a ready state. and any one of them can have an end state as the expected state. The wait duration for each of the escalations in a chain is cumulative. This prevents escalations that are further along in the chain from timing out before the ones at the beginning. The escalation is repeated according to the Repeat notification every value. and click Human Task features > Escalation. Each of the escalations has the same activation state but.html. The priority can be increased repeatedly if an auto-repeat duration is set. in contrast to a chained escalation. 5. Chained escalations A chain of escalations is a series of escalations with the same activation state that are processed sequentially so that only one is active at any one time.ibm.boulder. and one of the three possible actions occur (work item. . its wait duration fires independently. cannot precede another escalation. Example To see an example of a human task escalation that you can build and run yourself. go to http://publib. Also. and you will receive a validation error if one exists in your diagram. the timer on the second escalation in a chain will not start until the first escalation has timed out. Parallel escalations Parallel escalations are one or more escalations that are processed at the same time as opposed to sequentially. to escalated. This is a screen capture of an parallel escalation built on a subtask state.

it is necessary to configure the WebSphere® Process Server as described in Sending e-mails for escalations or Sending e-mails for escalations if you have WebSphere Process Server installed. You can use context assist for some of the values if you see the icon of a light bulb appear when you click the field. select the documentation that you want.People assignment criteria Use this field to choose the criteria for a query that will return the group of people who share the same permissions and will receive a new work item as notification that an escalation has fired.com/dmndhelp/downloads/v6r2mx/wid/. open the Resource perspective if you are not already there (click Window > Open Perspective > Other > Resource). The people assignment criteria that you see is determined by the contents of an XML file. and requires at least one running Process Server to be defined in Servers view and all mandatory fields filled in. Note: If this link fails. The value of the parameter can be changed by clicking into the value field and editing it. and check to see if the query will return an appropriate result. See replacement variables and context variables for more information on this Customizing an escalation e-mail notification You can use an e-mail message to notify a staff member that they have a work item in the form of an escalation. proceed as follows: . Click Add Site and specify the following location: http://publib. and use parts of the task input or output message as values for the parameters. the names are all predefined in the XML file that contains your people assignment criteria definitions. Before you can customize the e-mail notification. Expand the results under this repository location. Parameter table Use this table to specify details like a group name and thus define the people that will be assigned by the selected criterion at runtime. If only one person qualifies. In the Software Updates and Add-ons window. select the Available Software tab. Press Ctrl+Space to launch context assist.boulder. When the check box is clear. Test Click Test to choose a server. and those that are mandatory will be marked with a "*". This button is available for all people assignment criteria except everybody and nobody. See related tasks for how to change your people directory or modify the people assignment criteria. You will need to restart WebSphere Integration Developer to see the additional documentation. You can also specify replacement variables. in the main menu. claim task automatically This check box is only available when the Potential Owners authorization role has been selected. Enable it in cases when your people assignment query returns a single person. Then. This people assignment criteria file is a definition of queries to the user repository and the staff members that are resolved by those queries. To customize the e-mail message. and click Install.ibm. In WebSphere Integration Developer. and you want this specific user to be automatically assigned the task in question. click Help > Software Updates. the user must actively claim the task. you need to install additional documentation.

select New from the E-mail message drop down list. In the editor.1. Create an escalation for your human task. The E-mail editor will launch. To create a new e-mail message. In the Details page of the properties area select E-mail as the Notification type. 2. and click Edit. . first select it from the E-mail message drop down list. Give the e-mail message a name and a subject. but will be replaced when it is evaluated in the runtime environment when the email is sent. click Add Variable and select an appropriate variable from the list. the variable will appear between "%" characters. 3. proceed as follows: a. as shown in this image: To configure the e-mail message. 4. To make changes to an e-mail message. To insert a human task variable into the text of the subject. The E-mail message field becomes active with the default message chosen automatically as shown here.

getName()).getDateTimeInstance(). a. take a look at the existing default message for ideas. click the Preview tab. To implement notification event handlers. Here is an example of an implementation of the escalationNotification method.spi. you can use either the NotificationEventHandlerPlugin interface. In the Java™ perspective."). System.getTaskTemplateName()). System.ibm. Compose your message in the E-mail window in HTML language.Notification event received: " + DateFormat. and hit enter. To configure an event and add it to your business application model. or you can extend the default com.out.println("Task name: " + task.spi.out.out. System. Tip: If you are composing a brand new e-mail message. } System.getEventHandlerName()).out.NotificationEventHandlerPlugin into the same application as your human task.println("Escalation is null").out. right-click your Java module.currentTimeMillis()))). Notifying an event handler of an escalation You can use customized notification event handlers within your application environment to deal with escalations in your human task model. a list of possible HTML code tags will appear along with a description of what that tag would be used for. and click Finish.getDurationUntilRepeated()).println("Notification event received.println("Escalate within: " + escalation. if(task != null) { System. c.ibm. In the New Java Class wizard. choose NotificationEventHandlerPlugin.format( new Date(System. begin typing notif until a list of matching types appear. In the Implemented Interfaces Selection window.NotificationEventHandler service provider interface (SPI) implementation class.println("Is escalated: " + task. c. You can package the implementation class of the com.out. and select New > Class.println("Escalation name: " + escalation. To see what your e-mail message will look like when it is delivered.task. 1.b. .out. follow these instructions. or you can put it into a dependent utility project.out. choose a Package and a Name for your new Class and click Add beside the Interfaces field. and are unsure of how to proceed.println("--. This section describes how you add the notification event handler implementation class to the same application as the human task. b. System. Escalation escalation) { System..println("Event handler name: " + task. System. As before. } else { System.getName()).println("Task template name: " + task. } else { System. Click the tag you want to use.out. When you enter a "<" symbol.isEscalated()).getDurationUntilEscalated()). you can insert a human task variable by clicking Add Variable.task.println("Task is null").println("Repeat notification every: " + escalation. Implement an event handler according to the steps below. if(escalation != null) { System. public void escalationNotification(Task task.out.out.

Switch to the Resource perspective.task. In the human task editor click the Details tab. Add your plugin to your application: a. In the Event handler name field. Click Save.out. then the first line of the configuration file must contain the following entry: com.task.spi.ibm. In the editor. Click Save. d. For example. choose Event from the list of available options. the name of the configuration file is com.task.customer. enter com. add a line with the fully qualified class name of your implementation class: bpc.com/bpcsamp/index.html. enter a name for your notification event handler. In the META-INF/services/ directory of your JAR file. This configuration file provides the mechanism for identifying and loading the plug-in. Click Finish. and click Human Task features > Escalation.plugin. c. b. In the Navigator.println("--. In the META-INF folder. Ad-hoc collaboration .plugins. For Notification type.End notification event"). For example.samples. 4. create a file with the name com. Configure the escalation as needed (for help. go to http://publib. it is the name that you gave the event handler.NotificationEventHandlerPlugin interface. e. Switch to the Business Integration perspective and open your task in the human task editor. c. g. In the Escalation settings section. expand your business integration project. a.ibm.plugins package. Click the Details tab.HelpDeskRequestNotificationEventHandlerPlugin. if your plug-in class is called MyEventHandler.plug-in_nameNotificationEventHandlerPlugin.} System.spi. and it is in the com. b. Save your work. Note: You will need a connection to the internet to view this example. In the first line of the file that is neither a comment line nor a blank line. b. d. In the File name field of the New File wizard.boulder. e. 3. select the escalation. and conforms to the Java 2 service provider interface specification.customer. Create a service provider configuration file for the plug-in.task. f. Specify an escalation with a notification type Event: a.EscalationNotificationPlugin. see the Related tasks section below).MyEventHandler. 5.spi.ibm. The editor opens for the new file.ibm. Example To see an example of an escalation that uses a customized notification event handler.spi. c. if your plug-in is called HelpDeskRequest (event handler name) and it implements the com. Note: This name is not the name of the implementation class.ibm. specify the fully qualified name of your plug-in class. Declare a notification event handler for your task as described here: a. b.EventHandlerNameNotificationEventHandlerPlugin Where EventHandlerName is the event handler name you have specified for your task. where plugin_name is the name of the plug-in. 2. create a new folder services. Right-click the services folder and select New > File .

Open your task in the human task editor. 2. Option Description Enabled If this check box is enabled. • Subtasks In the runtime environment. they can delegate portions of that original task to other people in the form of subtasks. To control the creation of subtasks. and can be realized either as a stand-alone invocation or a collaboration task. Follow-on tasks In the runtime environment. When you are creating the human task definition. and will remain there until all of its subtasks. if a person who claims a task finds that they are not able to complete it. where it can be claimed by anyone in the authorized group. go to http://publib.boulder. or expires. then users will not be able to delegate portions of this task in the . resumes. usually because of new circumstances that did not exist when the task was initially developed. 4. as well as a collaboration task. as well as the transferred work item (see below). and configure your definition accordingly. if a person who claims a task finds that they are not able to complete it by themselves. then this human task definition will allow for the creation of subtasks in the runtime environment. are complete. Such tasks can be used when the application is stand-alone. you can dynamically define a task either as a subtask or a follow-on task. the parent task can then be completed. you would use the Human Task API to define a dynamic Human Task template.com/bpcsamp/index. proceed as follows: 1. and provides an input message for the subtask. A subtask can be derived from an inline or stand-alone to-do task. terminates. deploy this to an application server. The life cycle of a subtask usually looks something like this: 1. Subtasks cannot be deleted unless the parent task is first deleted. Ad-hoc tasks and transferred work items are created "on-the-fly" in the runtime environment. The staff member claims the parent task in the runtime environment through a user interface. if a person who claims a task finds that they are not able to complete it by themselves. If the parent task suspends. You can use WebSphere® Integration Developer to allow for two types of ad-hoc tasks (the subtask and the follow-on task). 3. When all subtasks have entered an end state. and when the task is either to-do or collaboration. staff members who have already claimed a task can create a subtask when they can't complete the work by themselves. and then start an instance of it. Note: You will need a connection to the internet to view this example. The staff member then initiates a subtask from an existing definition. For an example of such an ad-hoc task. • Subtasks In the runtime environment. 5.When you create or modify a task in the user interface of the runtime environment. you can decide if the business case justifies the need for the creation of subtasks. and click Human Task features > Ad-hoc Human Task. configure the Enable subtask creation check box according to the following choices: 2. To create a pure ad-hoc task.ibm. they can assign the remaining work to somebody else in the form of a follow-on task. Typically. all subtasks will be as well. The parent task enters the WAITING_FOR_SUBTASK state. In the Details tab of the properties area. The subtask will enter the work queue. Cleared If this check box is clear. they can delegate portions of that original task to other people in the form of subtasks.html.

select the documentation that you want. You will need to restart WebSphere Integration Developer to see the additional documentation. Click Add Site and specify the following location: http://publib. In WebSphere Integration Developer. Transferring work items . Follow-on tasks can be derived from inline or stand-alone to-do tasks as well as collaboration tasks. proceed as follows: 1. Example To see an example of a subtask that you can build and run yourself.com/dmndhelp/downloads/v6r2mx/wid/.ibm. Expand the results under this repository location. and can be realized as a collaboration or stand-alone originating task. as well as further follow-on tasks. When you are first creating the human task template. open the Resource perspective if you are not already there (click Window > Open Perspective > Other > Resource).html or . then users will not be able to delegate portions of this task in the from of follow-on tasks. select the Available Software tab. The initial task that spawns the follow-on task is called the predecessor task. go to http://publib. Option Description Enabled If this check box is enabled. Follow-on tasks In the runtime environment.boulder. Note: You will need a connection to the internet to view this example. and click Human Task features > Follow-on task. Open your task in the human task editor. They can also support subtasks. Cleared If this check box is clear.Option Description from of subtasks. and click Human Task features > Subtask. you can decide if the business case justifies the need for the creation of follow-on tasks. Example To see an example of a follow-on task that you can build and run yourself. go to http://publib. Note: If this link fails. if a person who claims a task finds that they are not able to complete it. you need to install additional documentation. The input. configure the Enable follow-on task creation check box as follows: 2.boulder. the first task in the chain is known as the head task. and click Install. in the main menu. they can assign the remaining work to somebody else in the form of a follow-on task. In the Software Updates and Add-ons window.boulder. and in cases where there is a chain of follow-on tasks. In the Details tab of the properties area. and configure your template accordingly.ibm. output. then this human task template will allow for the creation of follow-on tasks in the runtime environment.com/bpcsamp/index.com/bpcsamp/index. Then. click Help > Software Updates. To control the creation of follow-on tasks.html.ibm. and fault message definitions of the completed and the follow-on task must be of the same type.

open the Resource perspective if you are not already there (click Window > Open Perspective > Other > Resource). configure the Transfer task check box as follows: 2. and click Install.com/dmndhelp/downloads/v6r2mx/wid/. they can transfer the work item to another person or group. proceed as follows: 1. or claimed state .In the runtime environment. Open your task in the human task editor. Here are some possible examples of when you would create a version of a human task: . failed. finished. go to Managing work assignments or Managing work assignments if you have WebSphere Process Server installed. if a person who has claimed a task finds that they are not able to complete it. Cleared If this check box is clear. • The owner of a task instance can transfer the "owner" work item to a potential owner or an administrator of the task instance. and running state. o A "reader" or "administrator" work items can be transferred in all but the inactive state. o A "potential owner" or "editor" work item can be transferred in the ready or claimed state. finished. select the Available Software tab. terminated. click Help > Software Updates. failed. you can decide if the business case justifies allowing work items to be transferred. Versioning human tasks You can create new versions of your human task. In WebSphere Integration Developer. Note: If this link fails. Click Add Site and specify the following location: http://publib. and running state. Then. In the Software Updates and Add-ons window. For more information on this topic. o A "starter" work item can be transferred in the expired. o A "potential starter" work item can be transferred in the inactive state. The following rules apply: • Work items assigned to "everybody" cannot be transferred. To control the transferring of work items.boulder. Expand the results under this repository location. running. then this human task template will allow for the movement or work items between staff members. • The originator of a task instance can transfer the "originator" work item to a potential instance creator or an administrator of the task instance. so that multiple versions of those same tasks can co-exist in a runtime environment. you need to install additional documentation. o A "potential starter" work item can be transferred in the inactive state. and configure your template accordingly. In the Details tab of the properties area. You will need to restart WebSphere Integration Developer to see the additional documentation. • The starter of a task instance can transfer the "starter" work item to a potential starter or an administrator of the task instance. select the documentation that you want. o An "escalation receiver" work item can be transferred in the ready. terminated. o A "starter" work item can be transferred in the expired. Option Description Enabled If this check box is enabled. then users will not be able to delegate work items to other staff members. When you are first creating the human task template. • The administrator of a task instance can transfer all work items to any person. in the main menu. • The originator of a task instance can transfer a "potential starter" work item to any person.ibm.

that client can be configured either to choose a specific version each time. Clients that want to use early binding must use SCA wiring. and click Process modeling techinques > Versioning. You have a solution where multiple versions of the same human task must coexist. Note: You will need a connection to the internet to view this example. In practice. With early binding. different valid-from date In addition. This is the basic concept behind early binding and late binding. In other words. if the caller instantiates a task using early binding. it is a good idea to anticipate the need ahead of time. In addition. Although the solution as a whole cannot be uninstalled and reinstalled. go to http://publib. they must also have the same interface. To allow for seamless introduction of new versions. Differentiating human task versions Put simply.ibm. In contrast. . Although this example is not specific to human tasks. Invoking a human task When a client invokes a task. it is important that you plan ahead. a version is a copy of an existing task that is slightly different from the original. Forms) For more information See the whitepaper on developerWorks® called Versioning and dynamicity with WebSphere® Process Server and the podcast called WebSphere Technical Podcast series: SOA programming model.• • In the likelihood that your human task will need to be modified over time. the currently valid version of the human task is used. you will need to consider how the client interacts with the task. In such a case.com/bpcsamp/index. and how the task itself is set up. the runtime engine could use a new version of a task that is set to become valid today. Part 5: Managing change in Web services components and applications Example To see an example of a versioned process that you can build and run yourself. a client is hard-wired to a task in such a way as to force a continued relationship between the two of them. In other words. To understand how this differentiation takes place. and set things up in the manner described in the associated topics. you will need to be able to deploy new versions of the task in such a way as to ensure that existing instances remain undisturbed. To create a version of a human task. it is important to note that interface specifications of different versions need to remain the same. same target namespace 3. and are allowed to run their course. it can still help you to become more familiar with the concept of versioning. or to pick up the currently valid version of the task. Of critical importance.boulder. it is with different valid-from dates that multiple versions of the same task are distinguished. but have different valid-from dates. Clients that want to use late binding can do it in one of the following ways: • Using the Business Process Choreographer APIs (generic EJB API or generic Web Services API) • Using the generated clients (JSF. even if an older version of that task was still being used. with late-binding the relationship between the client and the task is dynamic in that it is resolved in the runtime environment. and if they use late binding. Specifically. you must first understand that a version of a human task is identified by the following properties: 1. the two versions must have the same name and namespace. same component name 2. even if another version of the task becomes available. you will want the existing callers to be able to seamlessly pickup the newest version of the task the moment it becomes effective.html. a specific version of the task is used to create that instance.

Creating a version of your human task This section explains how to create a new version of your human task whose binding may be dynamically resCreating

a version of your human task

This section explains how to create a new version of your human task whose binding may be dynamically resolved in the runtime environment. To create a new human task, you begin by creating a new module that contains a new version of your task, and install it in the same manner as the original.The runtime engine is able to recognize that the new task is actually a more recent version of the other, and will select it over the older one. These steps assume that you have already created the human task that you seek to version. 1. Make a copy of the module that contains the original version of your human task as follows:

a. b. c.
d. 2.

In the Business Integration view, right-click the module that contains the human task and select Copy. Right-click on any white-space within the same view, and select Paste. In the Copy Module window, change the module name as necessary (perhaps by adding a suffix that indicates the version), and click OK. Save the file. The new module name appears in the assembly editor.

Configure a date from which the copied human task will be valid, as follows:

a.
b.

In the Details tab of the properties area, enable Date (UTC) when task becomes valid. If this check box is clear, then a valid-from date is implicitly specified so that the task becomes valid as soon as the module is installed. Configure the calendar fields to specify the date and time when the runtime engine is allowed to create instances of this task. Click the calendar icon to choose a specific date, and then use the remaining fields to configure the precise time.

Calendar values are represented in Coordinated Universal Time (UTC). 3. 4. Save your work. You can deploy this new module as you would any other module.

Example
To see an example of a versioned process that you can build and run yourself, go to http://publib.boulder.ibm.com/bpcsamp/index.html, and click Process modeling techinques > Versioning. Although this example is not specific to human tasks, it can still help you to become more familiar with the concept of versioning. Note: You will need a connection to the internet to view this example.

solved in the runtime environment.

Setting up a user interface for your human task
The human task editor provides various client types that you can use to customize a user interface through which users can interact with the tasks in the runtime environment. A client delivers task-related information to a staff member in the form of an interactive application. You can generate various types of clients for your human tasks, and use the generated clients to customize a user interface through which users can interact with the tasks in the runtime environment. Or, you can use generated clients to quickly demonstrate a human workflow, for example as a proof of concept or prototype. Using the client generator, you can generate clients for both stand-alone human tasks that exist independently of a business process, and inline human tasks that have access to the execution context a business process. You

can create one client for all the human tasks in a module, or generate one client per task. You can also generate one client for all human tasks in multiple processes or modules. You may wish to provide a choice of user interfaces or to provide clients with different functionality for different roles or simply to provide basic clients that can be re-used with a different look and feel. User interfaces for your human tasks can make use of several types of technology. The human task editor provides a User Interface section in order to add technology specific configuration settings to a human task. For some of the client technology types included by default, the corresponding property page allows the creation or selection of visualization files that match the Business Object data structure used by the human task. There are two routes to creating user interfaces for your human tasks. A human task user interface wizard can be used by selecting one or more human tasks in the Business Integration folder view. The wizard allows you to rapidly generate a variety of user interfaces. The second route is to use the human task editor. There is a section on the canvas called User Interface and you can add user interface settings to your task using the "+" button. Some of the property pages where you specify the UI settings offer the possibility to create visualization artifacts for the selected interface technology. Most situations can be arrived at using either of these two methods but there are some considerations you should make before taking either route: • If you want to create user interfaces for more than one task, the wizard is the more efficient choice, since you can create user interfaces for multiple tasks, even if they are not in the same module. • If you want to simply create a Lotus Form to directly interface with this task in this module, for example to use the form in Business Space, use the human task editor. For Lotus Forms and JSF, the wizard creates not only the generated artifacts but also stand-alone web applications that allow you to readily use the generated artifacts. • If you want to work in Business Space but do not have access to Lotus Forms, you can create an HTMLDojo user interface and use it in Business Space. • If you want to use an existing Lotus Form for your user interface you must use the human task editor and select the Lotus Form in the Properties view. Note: The structure of the Lotus Form must match the business object structure of the interface used by the human task. The simplest way to ensure this, is to create the human task using the existing Lotus Form as a template. Select File > New > from Patterns to launch the New from Pattern wizard. Using this wizard create a business process to contain the generated human tasks, create the human tasks and select the Lotus Forms, the structure of which will be used to generate the interface used by the human task. You want to use the Lotus Forms technology to visualize a human task, you have several routes to achieving this goal. One option would be to specify or generate a Lotus Form on the Lotus Forms User Interface Settings property page, (through the human task editor). In so doing, you can directly use the form in Business Space to work with the task. Another option would be to use the UI generation wizard to create a stand alone web application. The wizard checks, if a Lotus Form has been specified on the corresponding property page. If a form has already been configured, the wizard makes the generated application use it, otherwise it creates a new form.

Before you begin: Client types and prerequisites These are the types of clients that you can configure or generate for your human tasks. This topic contains useful information that you may need before you proceed to generate your client. Defining user interfaces for a human task In the Human Task editor, you can select the type of client, and configure properties such as inputs and outputs for the client. You can specify existing configurations, or define new ones. You can then generate a client. Generating HTML-Dojo pages or Lotus Forms for Business Space . Generating Lotus Forms clients Generate a client for your human task or process based on forms that you specify in the User interface settings. Generating WebSphere Portal portlets A portlet is a reusable Web module that runs on a portal server. In the human task editor, you can specify a portlet as a client. Generating JSF clients for your human tasks You can generate a client either from a module, a business process, or a human task.

• •

Customizing clients You may need to customize the user interfaces to your human tasks. Information is provided for each type of human task client. Deploying a generated client to an external runtime environment After generating your client you have several choices for how to deploy it to the runtime environment.

Before you begin: Client types and prerequisites
These are the types of clients that you can configure or generate for your human tasks. This topic contains useful information that you may need before you proceed to generate your client.

Client type

Description

Prerequisite You can create an HTML file to be used as a part of the Business Space user interface using WebSphere Integration Developer, but it can only be deployed to, and used in WebSphere Modeler Publishing Server, WebSphere Business Monitor, or WebSphere Process Server. If you intend to deploy Lotus Forms to Business Space, you will also need all the prerequisites associated with Lotus Forms, but note that you do not need the Lotus Forms Server API.

Business Space powered by WebSphere®

Business Space is a new client platform through which a user can interact with an instance of a human task in the runtime environment. You can configure the visualization of this user interface using an HTML/Dojo file or a Lotus Form. When ported into WebSphere Process Server, the information in the HTML/Dojo file or Lotus Form will appear in the Task Information Widget area of Business Space. For more information on Business Space, go to the IBM® WebSphere Business Process Management information center, and search for Business Space.

IBM Lotus® Forms

Lotus Forms allows you to easily integrate electronic forms with human tasks. You can generate a client based on forms that you specify in the User interface settings. You can deploy a Lotus Forms client directly or you can present the form as user interface in Business Space.

When you install WebSphere Integration Developer, you have the option to install Lotus Forms API, Lotus Forms Viewer, and Lotus Forms Designer. You will need Lotus Forms Server API to process a client on a server, Lotus Viewer to view a client and Lotus Designer to edit a form. See Installing optional software and documentation for information on installing these Lotus products. Important: Please note that, before you can deploy this user interface to a runtime environment, you will need to install the Lotus Forms Viewer and the Lotus Forms Server API on each machine where the client will get deployed (this includes the WebSphere Test Environments and the WebSphere Process Server). If you intend to deploy your Lotus Forms to Business Space, you will also need all the prerequisites associated with Business Space, see above. However, if

This is the standard client that is No prerequisites. You can then generate a client. JavaServer Faces (JSF) client The client generator for human tasks The JSF client generator is included in generates a JSF-based web client that is WebSphere Integration Developer. Business Space uses these two fields to compose the URL from which your HTML file will be uploaded using the following format: http://localhost/<contextroot>/<pathAndFile> If no HTML file exists. The JSF client is generated based on data described in the interface that the human task implements. You can modify these values as needed. In the Properties page. Included in delivered with this product. and configure properties such as inputs and outputs for the client. choose the type of client. Launch your human task in the editor. the task is delivered to the staff member via an HTML-based web page. 3. you can click New to create one. Under User interface settings.you intend to use your Lotus Forms in Business Space you do not need to have the Lotus Forms Server API installed. Business Process Choreographer explorer Defining user interfaces for a human task In the Human Task editor. configure the client as follows: 2. you have the option to install the Portal Toolkit. When you install WebSphere Integration Developer. you can generate a portlet using the portlet generator. useful for quickly prototyping human task processes or as a starting point for creating a custom client. With this WebSphere Integration Developer. In the New HTML file window. WebSphere Portal portlet Select the page on which the portlet will be placed in the page hierarchy of IBM WebSphere Portal by setting properties in the User interface settings. In order to generate portlets. The look and feel of this web page is determined by the JSP values that are specified in the User interface settings. Or. you can select the type of client. or define new ones. proceed as follows: 1. client. You can specify existing configurations. and does not need any input defined in the User interface settings. Option Description Business Space powered by WebSphere® Use the Context root and HTML File fields to specify the location of the HTML file that contains the visualization of the user interface. To define a user interface for a human task. you need the Portal Toolkit. you can choose an existing Web Project in which to place the new .

In the Properties details page. go to the IBM® WebSphere Business Process Management information center. the task is delivered to the staff member via an HTML-based web page. You can also create folders within the Web project to better organize your files. Note that this setting only applies to Lotus Forms clients. IBM Lotus® Forms client Select whether to store your Lotus Forms as part of the current module or in a Web project. The default behavior is to save the form as part of the module.. o On the JSP definition page. In the JSP definition table. but if you want to use a form that already exists outside the module. o o If no input or output forms are specified in this page. If you leave this field empty WebSphere Integration Developer will generate a unique name when the portlet is created. or you want to create a Lotus Form that you will use outside the module then select Web project. See Installing the Designer. Later you must create a page in the Portal Server of the same name as this unique name and place this generated portlet into it. o Select the type Page or Page definition. the client generator will use the service interface data to create the forms. specify the input and output JSPs. or Click New to generate a form based on the data used by the service interface of the human task. select the JSP type. the input and output forms must also be the same. Specify the input and output Lotus Forms for your client. o Click Add. and search for Business Space. if you deploy your Lotus Form to Business Space the form cannot be persisted.Option Description HTML file or press New Web Project to create a new one. Note: Create Portlet will generate a portlet for this human task. If your input and output data is identical. In the Apply . For more information on Business Space. and click New folder Note: Modify the HTML file using a text or HTML editor. specify the project and select WebSphere Portal 6. The window has a different appearance depending on the choice of module or Web project. proceed as follows: o Provide a value for Unique Name.0 stub as the target runtime. See Installing WebSphere Portal Version 6. Note: If you want to edit a form.0. use the client generator. o Click Create Portlet to generate a portlet for this task. If you want to generate a portlet for multiple human tasks. If the WebSphere Portal target runtime is not available in this dialog. select the Web project. but your actions remain essentially unchanged: Click Browse to select from a list of available forms. Portal client Every human task must be identified by a unique name when it runs as a portlet on the WebSphere Portal Server. install Lotus Forms Designer. To do this. you have not installed the required Portal Toolkit. or one of the folders nested beneath it. Select whether to save the Lotus Form automatically whenever the human task is saved or completed. In the Portlet Generator Settings page. Business Process Choreographer explorer With this option.

If you selected HTML you also need to indicate the Web project where the HTML pages will be saved. and then select the fault that will trigger it. Next. select the role that will see the JSP. In the resulting window you can choose from the list of Web projects. generate your client. and then select the associated check boxes. Generating Lotus Forms clients Generate a client for your human task or process based on forms that you specify in the User interface settings. To generate a client for tasks in different modules. If a humans task contains an error of any kind. Click Finish 3. Select HTML or Lotus Forms and indicate whether you want to overwrite existing interface settings by selecting the associated check box. the task will not be listed in the wizard.Option Description to field. and select Generate Human Task User Interfaces. you can select a Fault message JSP as the JSP type. Select how to display the human task in Business Space. Generating HTML-Dojo pages or Lotus Forms for Business Space . A warning message will be shown. You can then create a new JSP. On the Client Generator Selection page. select those modules in the business integration view by holding the Ctrl key while you select each one. o If you have WSDL faults defined in your interface. create a new folder within an existing Web project or create a new Web project. Use this list to choose the human tasks for which you want to generate the client. Note: o o o If the generated client is intended to be able to start a process. right-click the human tasks for which you want to generate a userinterface. then this process must have a human task defined for the initial receive activities. If no JSPs are specified. and use the Context root field to define the runtime path to the JSP. proceed as follows: a. as a standard client is provided for it. The JSF custom client is not included in this list because the client generator does not require any properties to be configured in order to generate the client. In the Generator type field choose HTML-Dojo pages or Lotus Forms for Business Space. 4. b. Expand the tree until you find the required human tasks. 5. 2. The User Interface Wizard for Human Tasks launches. proceed as follows: 1. If you are using Business Process Choreographer explorer. you do not need to generate a client. Click the Browse button to see a list of Web projects. the standard client is used. then you will get a warning message. . If the human task is not represented on your assembly diagram. or browse to an existing one. 2. or you must have another initiating task on the assembly diagram wired to the process . In the Business Integration view. To generate a HTML-Dojo pages or Lotus Forms interface for your human task to work in Business Space.

In the Name of dynamic web project field. you will need to provide the IP address of the server and the bootstrap port. 2. b. then you will get a warning message. A warning message will be shown. e. proceed as follows: a. If necessary. click Next. This custom CSS file must reside in a web project in your workspace.jsp of the generated client. 2. or you must have another initiating task on the assembly diagram wired to the process . The User Interface Wizard for Human Tasks launches. Select Generated client and related processes and tasks reside on different servers (Remote client view) if two or more servers will be used in the same cell. you can choose from the two styles that are provided for your generated client. and then select the associated check boxes. and save it as your CSS file. you can then click Add and Browse to select your CSS file. If you are using two or more servers. When you are done.css c. and the related processes and tasks on another. On the Client Generator Selection page. The best approach is to modify one of the predefined style files of a generated client (styles-IBM. you can choose to generate either a Lotus® form or a JSP page to render the input and output message of the human task in final client. . This logo will appear as a banner on the top of the generated client's web page. you have two choices. you can choose a forms or JSP user interface for each task. click Finish. then it will automatically be shrunk to fit the space available. If a humans task contains an error of any kind. enter the name of the web project in which the generated client will be stored. The human tasks are listed under the Forms or Java Server Pages headings. In the Style field. 4. the client generator creates a form based on the service interface of the human task. In the Company logo field. The background color of the banner is defined in the style sheet styles.css. To generate a Lotus Forms client. the task will not be listed in the wizard. right-click the human tasks for which you want to generate a userinterface. select the human tasks and use the arrow buttons to transfer them to the opposite column. select those modules in the business integration view by holding the Ctrl key while you select each one. Use this list to choose the human tasks for which you want to generate the client. On the IBM Lotus Forms client configuration page. If your image has a height higher than 60 pixels. Select Generated client and related processes and tasks reside on the same server (Local client view) if one server will be used to deploy both the generated client and the related processes and tasks on the same WebSphere® Process Server. In the Generator type field choose Lotus Forms client application. the required format is: iiop://REMOTE_SERVER_IP:BOOTSTRAP_PORT. 3. refer to class . If the human task is not represented on your assembly diagram. Expand the tree until you find the required human tasks. b. then this process must have a human task defined for the initial receive activities. You can adjust the height of your logo in the page Banner. The CSS file can contain your settings regarding color.The client generator will use the input and output forms that you specified in the human task editor.Banner. or add your own style file (CSS format). proceed as follows: a. For each task. you can specify the file location of a graphic file containing a company logo. font size and style. proceed as follows: 1. If no form is specified. You can browse either to a GIF or JPEG file. The CSS file is located in the generated web project in WebContent\theme\styles. When you are done. In the Style selection area. but these settings have to have proper names since they are used as reference in the generated client. In the Client location area. Note: o o o If the generated client is intended to be able to start a process. On the second IBM Lotus Forms client configuration page. and select Generate Human Task User Interfaces. and your generated client will be deployed on one server. In the Business Integration view. d.css or styles-blue. To generate a client for tasks in different modules.css).

In other words. A warning message will be shown. For instructions on how to install Lotus Forms into the WebSphere Integration Developer environment. See related links for more information. the refactoring behavior depends on the way in which the form was associated with the task. When the generation is finished. select those modules in the business integration view by holding the Ctrl key while you select each one. Generating JSF clients for your human tasks . In the Business Integration view. and select Generate Human Task User Interfaces. you can specify a portlet as a client. Generating a Portlet The New Portlet Generator wizard will guide you through the process of creating a portlet within WebSphere® Integration Developer Software Development Platform. The User Interface Wizard for Human Tasks launches. all WSDL and XSD files from all modules and associated libraries that are directly or indirectly referenced by tasks that were selected during the user interface generation need to be copied to the portlet project while maintaining their directory structure (if a WSDL or XSD is in a subdirectory. When you install WebSphere Integration Developer. enter a project name. right-click the human tasks for which you want to generate a userinterface. On the Portlet Generator Settings page. Note: If a humans task contains an error of any kind. 2. To generate a client for tasks in different modules. you will have to manually copy all associated WSDL interfaces and Business Objects into the generated portlet project. If Portlet Generator is not presented as an option. along with a EAR. Generating WebSphere Portal portlets A portlet is a reusable Web module that runs on a portal server. Important: Please note that. Use this list to choose the human tasks for which you want to generate the client. • Create a Portal Server connection. you will need to install the Lotus Forms Viewer and the Lotus Notes® Server API on each machine where the client will get deployed (this includes the WebSphere Test Environments and the WebSphere Process Server). On the Client Generator Selection page. see Installing optional software and documentation. the task will not be listed in the wizard. In the Generator type field choose Portlet Generator. • Generating a Portlet The New Portlet Generator wizard will guide you through the process of creating a portlet within WebSphere Integration Developer Software Development Platform. Your next step is to deploy it to a runtime environment. and then enable the associated check boxes. If you refactor a human task that contains a Lotus Forms client. this same subdirectory needs to be created in the portlet project as well).Your new client will be generated. Information on how to set up WebSphere Portal Server to integrate business processes on WebSphere Process Server can be found in the WebSphere Portal information center . ensure that you have fulfilled all the prerequisites listed in the topic Generating WebSphere Portal portlets. choose to install the Portal Toolkit. you will see your newly created portlet project in the Business Integration view. The generation of the portlet can take a while. Now. you must do the following: • Install the Portal Toolkit. Prerequisite: Before you can generate a portlet in WebSphere® Integration Developer. Click Finish. before you can deploy this user interface to a runtime environment. Expand the tree until you find the required human tasks. Your next step is to deploy it to a runtime environment. To generate a new portlet proceed as follows: 1. In the human task editor. 3. b. 4. proceed as follows: a.

If the human task is not represented on your assembly diagram.css or stylesblue. In the Company logo field. c. then it will automatically be shrunk to fit the space available. you can choose from the two styles that are provided for your generated client. 2. Expand the tree until you find the required human tasks. On the JSF client configuration page. For more information about customizing JSF clients.jsp of the generated client. click Finish. or a human task. You can adjust the height of your logo in the page Banner. The best approach is to modify a predefined style of a generated client (styles-IBM. e. The CSS file can contain your settings regarding color. click Next. and your generated client will be deployed on one server. see the white paper Understanding and enhancing the generated Java Server Faces client for human tasks. This custom CSS file must reside in a web project in your workspace. In the Style field. Your next step is to deploy it to a runtime environment.css. You can browse either to a GIF or JPEG file. then you will get a warning message. In the Style area. and the related processes and tasks on another. then this process must have a human task defined for the initial receive activities. When you are done. The CSS file is located in the generated web project in WebContent\theme\styles. but these settings have to have proper names since they are used as reference in the generated client. In the Client view area. In the Generator type field select JavaServer Faces client application. This logo will appear as a banner on the top of the generated client's web page. the task will not be listed in the wizard. refer to class . you can then click Add and Browse to select your CSS file. Choose Remote if two or more servers will be used in the same cell. and then select the associated check boxes. proceed as follows: a. b. 4. To generate a client for tasks in different modules.css). In the Business Integration view. 2. Choose Local if one server will be used to deploy both the generated client and the related processes and tasks. Assign a name to this client in the Name of dynamic web project field. A warning message will be shown. Customizing clients You may need to customize the user interfaces to your human tasks. right-click the human tasks for which you want to generate a userinterface. If your image has a height higher than 60 pixels. a business process.css.Banner. The background color of the banner is defined in the style sheet styles. select those modules in the business integration view by holding the Ctrl key while you select each one. You can use custom properties as filter criteria for the "Status" list. or you must have another initiating task on the assembly diagram wired to the process . b. d. On the second JSF client configuration page. Your new client will be generated. you can specify the file location of a graphic file containing a company logo.You can generate a client either from a module. Information is provided for each type of human task client. 3. . To generate a JSF client for your human task. or add your own style file. proceed as follows: 1. When you are done. and save it in the your CSS file. proceed as follows: a. you can select the custom properties (as defined in your business process) that you would like have generated with the client. The User Interface Wizard for Human Tasks launches. If a humans task contains an error of any kind. and select Generate Human Task User Interfaces. Note: o o o If the generated client is intended to be able to start a process. On the Client Generator Selection page. you have two choices. Use this list to choose the human tasks for which you want to generate the client. font size and style.

You have generated a client for your human task. The Lotus Forms information center describes in detail how to design Lotus Forms. Choose from one of the options described below: Parent topic: Deploying a generated client to an external runtime environment Deploying HTML-Dojo pages or Lotus Forms for Business Space To deploy a HTML-Dojo or a Lotus® Forms client to Business Space. you might still need to perform some modifications to make the client perform optimally. 3. More information on modifying a Lotus Forms client can be found in the white paper Integrating Lotus Forms and WebSphere Integration Developer. To customize a JSF client: There is a very detailed description of modifying JSF task clients available in the white paper Understanding and enhancing the generated Java Server Faces client for human tasks. The precise steps you need to take to customize your client depends on the type of client you have generated. • Deploying the client: exporting to a deployment file Deploy your client to a runtime environment by exporting the client to a defined deployment file and installing that file on the runtime server. and human tasks based on existing Lotus Forms. 1. perform the following steps: . or optimizing the created interface. To customize a WebSphere Portal portlet: The recommended way to customize a WebSphere Portal portlet client is to add additional portlets to the portal. and you want to customize the user interface that your staff will see. Deploying a generated client to WebSphere Portal Server After generating and exporting a client to run as a portlet on portal server. Your choices for deployment depending on what sort of client your are working with. business objects. Creating and deploying additional portlets is described in the WebSphere Portal information center for details. you can use an existing Lotus Form. Deploying a generated client to a test environment Deploy your client to a runtime environment by defining a server and then using the client-specific deployment mechanism. This is a simpler process than modifying the generated portlet. Deploying a generated client to an external runtime environment After generating your client you have several choices for how to deploy it to the runtime environment. To customize a Lotus Forms client: WebSphere Integration Developer can generate a complete business process with all of the required interfaces. 2. Although these artifacts match the forms as much as possible. • • Deploying the client: exporting to a deployment file Deploy your client to a runtime environment by exporting the client to a defined deployment file and installing that file on the runtime server. Customization involve modifying the generated business object to better match the Lotus Form. Rather than generating a Lotus Form client. the next steps are to prepare the Portal Server to work with the generated portlet and to install the portlet on the portal server.

ear file is generated automatically as part of the client generation. Deploying a JSF or a Lotus Forms client To deploy a JSF or a Lotus Forms client. Invoke the client. provide a Destination where your WAR will be stored and click Finish. provide a Destination where your EAR will be stored and click Finish. Export the generated client files into a WAR file as follows: a. 3. and select Export > WAR. In the business integration view right-click your ClientNameEAR. Click the Server tab in the properties view.1. proceed as follows: 1. In the business integration view right-click your portlet project. follow these instructions. If this is not open yet. 2. 5. select an ClientNameEAR name. and you will be able to start the client. Install this WAR file on your server. Deploying a generated client to a test environment Deploy your client to a runtime environment by defining a server and then using the client-specific deployment mechanism. generate a user interface for your human task. 2. 1. b. 3. select the generated Client EAR project that you created. With an external browser: . In the business integration view right-click the Web project in which you generated your client. Export the generated client files into an EAR file as follows: 2. In addition. In the Add and Remove Projects window. If you have not already done so.ear is also created for your module. 3. The ClientNameEAR. You can start the client in either of the following ways: a. 2. select a WAR file name. and select Export > WAR file from the list. a. and contains the human tasks. b. Right-click the server that you intend to deploy your client to and select Add and Remove Projects from the list. proceed as follows: 1. generate a user interface for your human task. In the EAR export window. and you will be able to start the client. and select Export > EAR from the list. 3. If you have not already done so. In the WAR export window. 4. and you will be able to start the client. Deploying a portlet To deploy a portlet. To deploy your generated client to a test environment. Click Finish. The files that you need to deploy to Business Space are generated automatically as part of the client generation. then click Window > Show View > Servers. In the WAR export window. the ProjectNameApp. Install the WAR file into Business Space. identify the Web project and provide a Destination where your WAR will be stored and click Finish. Install these two EAR files on your server. and click Add.

3. i. go to: http://localhost:9080/webProjectName (the hostname and port number might vary depending on your server configuration).jsp. Go to Applications > Enterprise Applications > your_portlet_module > Libraries. To install the portlet. Installing a generated portlet Installing the generated Portlet on the WebSphere® Portal Server makes it available to portal users. and save your changes. iii. Log into the portal site using an ID with sufficient access rights to install a portlet. and then open the folder WebContent. Creating Task Page Definitions Create the new task page definitions for each task processing Portlet. ii. Click Install. All potential owners can claim a task that is displayed in the My Tasks portlet to indicate that they will work on it. 4. 2. Under Portlet Management in the navigation tree. 6. 1. Installing a generated portlet Installing the generated Portlet on the WebSphere® Portal Server makes it available to portal users. 2. . c. Once it is installed. If the security is enabled. Deploying a generated client to WebSphere Portal Server After generating and exporting a client to run as a portlet on portal server. Launch the IBM® WebSphere Portal administrative console. and click Add. click Web Modules. Enter the location of the WAR file or click Browse to find the location of the file to install. Using the My Task portlet to run a Human Task from the WebSphere Portal Server The My Task portlet displays the human task instances on the portal server. This allows the MyTask Portlet to know which page it must hand off the task to. 3. proceed as follows: 1. Alternatively in the Product Links portlet you can choose Administration > Portlet Management > Web Modules. Right-click Index. Using WebSphere® Integration Developer: Change to the Web perspective Open the folder with the name of your Web project. Adjusting the Unique Name for the Task Page You have to change the unique name of the Task Page to be identical to the unique name you gave the Human task in the User Interface settings of the Human Task Editor. click Apply. go to https://localhost:9443/webProjectName. If the security is disabled. 4. b. a message appears at the top of the screen indicating a successful installation. an error message appears in the Manage Web Modules page. This allows you to claim each Portlet as a task from a list in the MyTask Portlet. you will then need to add the BPELib library to the generated portlet as follows: a.  b. Select BPELib. the next steps are to prepare the Portal Server to work with the generated portlet and to install the portlet on the portal server. After the installation has completed. 5. If there are any problems during the process. and select Run > Run on Server A browser window opens. Click the View Details link to examine the error log. Verify WAR file info and click Finish to install the WAR file.

Now the list My pages and unique names displays your page with its new unique name that must be identical to the unique name you set for the Human Task in WebSphere® Integration Developer. Type "My Tasks" in the Search field and press the Search button. Testing human tasks You can test several aspects of a human task before you deploy the task to the test environment or production server. Click the link Task Page Definitions Click New Page. From the Select Search Type combo box choose Title starts with and type “task” into the Search input field. Adjusting the Unique Name for the Task Page You have to change the unique name of the Task Page to be identical to the unique name you gave the Human task in the User Interface settings of the Human Task Editor. From the Select Search Type combo box choose Title starts with and type “task” into the Search input field. 1. 3. 5. 4. 5. Clicking again on Open Portlet Palette (this is the button with the "+" symbol) closes the portlet list. 3. Choose Administration > Portal Settings > Custom Unique Names and select Pages from the Resource type list. A list of available portlets opens. 1. Choose Administration > Portal User Interface > Manage Pages. The title Task Page Definitions will be displayed.Creating Task Page Definitions Create the new task page definitions for each task processing Portlet. 8. On the Edit Layout page press the Add portlets button. 1. 7. From the Select Search Type combo box choose Title starts with and enter the title of your portlet into the Search input field. The task in the My Task portlet becomes a link when it was successfully claimed. This allows you to claim each Portlet as a task from a list in the MyTask Portlet. Press Search. 3. Using the My Task portlet to run a Human Task from the WebSphere® Portal Server The My Task portlet displays the human task instances on the portal server. . note your title for the next task and press the OK button. This allows the MyTask Portlet to know which page it must hand off the task to. Enter the unique name you defined for your human task. 2. Click Search. In a later step we will adjust this unique name. • Testing people assignment criteria You can test the people assignment criteria that you use in your human tasks to make sure that the correct people are returned by the people directory that you are using. The page with the corresponding portlet opens. 2. 6. 4. Press Search. Type a title into the Title input field. All potential owners can claim a task that is displayed in the My Tasks portlet to indicate that they will work on it. To place the My Task portlet on one of your portal server pages (for example. Press Search. Click the Edit Page Layout button (this is the button with the pen symbol) for your page. 5. The Portal Server automatically generated a unique name. 2. You will place the generated Portlet on the new Task Page Definition. To find your page select "Title starts with" from the Search Type list and type your page title into the Search input field. Select the checkbox for a task and click Claim. Check your portlet and press OK. Click on the task-link. The My Task portlet will be displayed. the "Welcome" page) click Open Portlet Palette (this is the button with the "+" symbol). Simply drag and drop the portlet on your page. For details see the related topic: Defining user interfaces for a human task. 6. If your process with human tasks was already started on WebSphere Process Server the tasks will be displayed. Click OK.

click Users and Groups > Manage Groups. Browse to the script and click Run. 3. Run the administrative script that populates the test people directory. The new module will appear in the Physical Resources view. Testing people assignment criteria You can test the people assignment criteria that you use in your human tasks to make sure that the correct people are returned by the people directory that you are using. a. In your human task. the dialog will contain an input field for each variable. select Other > Project Interchange. this might take some time. The WebSphere Process Server will be queried. . To test the process: a. Please note. b. see Rapid testing of human-centric processes 1. select one of the running WebSphere® Process Servers. Click Submit. Testing a human-centric process A human-centric process is one that has been designed in WebSphere® Modeler using human tasks to model a manual process. Right-click your server. Similarly. and select Run administrative script. This topic provides instructions on how to import such a process into WebSphere Integration Developer in order to test it.• Testing a human-centric process A human-centric process is one that has been designed in WebSphere® Modeler using human tasks to model a manual process. c. when all mandatory fields have a value. To import the project interchange file: In the Business integration view. select the role that you want to test. 2. you will need to have the exported process in the form of a project interchange file. b. The purpose of the test button is to check if the query works. proceed as follows: 1. and click Finish. In the Assign People tab of the properties page. select it. click File > Import. and. In the Physical Resources view. Enter some data that is appropriate to your human task or the process the task is running in. only a subset will be returned. They have a PY extension. Select all of the projects in the zip. 3. click Test. In the Test People Search window. 2. 5. In the Assembly diagram. This export must have clearly defined staff information that can be used to populate the test people directory. To see the user(s) in the Administrative Console. To test your people assignment criteria. 4. This will create the test user account(s) and associated group(s). if the resulting list is too long. to see Groups. click Users and Groups > Manage Users. Browse to the project interchange file. The test user entries are created in the registry. and the other will be to clean that registry once you've completed your testing. This button is available for all people assignment criteria except everybody and nobody. For more information on how to do this. One will be to populate the people directory. If the people assignment criteria contains one or more replacement variables. a. In the Import window. and click OK. c. d. Before you can begin. right-click the process and select Test Component. There will be two administrative scripts. and not to verify the result set entirely. and requires at least one running Process Server to be defined in Servers view. expand the new project until you see the Administrative scripts.

To view these APIs. You will need to restart WebSphere Integration Developer to see the additional documentation. A generated document can very quickly provide you with the following: • a quick understanding of a project or resource • an overview report about the details of an artifact within a complex project • the visualization of the relationships and cross references of resources within a project • a detailed report that can be printed out for certifications To create documentation for your human task. Then. You can use the service provider interfaces (SPIs) to create customized plug-ins for handling events and the processing of staff queries. Note: If this link fails. proceed as follows: 1. Programming support for human tasks Additional programming support for human tasks is available through a set of APIs. Expand the results under this . When the test server is running. you can create a report using the documentation generator. and click the Continue icon. and log in as a test user.com/dmndhelp/downloads/v6r2mx/wid/. in the main menu. run the administrative script that cleans the test people directory. open the Resource perspective if you are not already there (click Window > Open Perspective > Other > Resource). In the Business Integration view. select the Available Software tab. In the Events page. In WebSphere Integration Developer. select the Available Software tab. You should now have an entry that you can complete as needed to test the process. 4. Configure the Documentation Generation wizard according to the instructions in the Generating documentation topic. Then. Expand the results under this repository location. select a deployment location and click Finish. and the resulting data returned is in JavaScript™ Object Notation (JSON) format.boulder. In WebSphere Integration Developer. Business Process Choreographer provides a set of APIs that are implemented using Representational State Transfer (REST) Services. Launch the Business Process Choreographer explorer. including how they interact with other resources within the same project. Click Add Site and specify the following location: http://publib. enter some test parameters. 2. in the main menu. return to the Business Process Choreographer explorer. select the documentation that you want. In the Software Updates and Add-ons window. you need to install additional documentation. Note: If this link fails. and check the To-dos list.boulder. right-click your human task and select Generate Documentation. When you are done your testing. you need to install additional documentation. c.ibm. click Help > Software Updates. click Help > Software Updates. Information on this topic can be found by following this link: Creating plug-ins to customize human task functionality or Creating plug-ins to customize human task functionality if you have WebSphere Process Server installed. Generating documentation of your human task If you need a synopsis of each attribute of your human tasks. d. follow this link: Business Process Choreographer REST APIs or Business Process Choreographer REST APIs if you have WebSphere Process Server installed. and click Install. You will note that the user's To-dos list will be empty.ibm.com/dmndhelp/downloads/v6r2mx/wid/. Click Add Site and specify the following location: http://publib.b. Plug-in points are also provided so that you can adapt the functionality to your needs. Extending human tasks using plug-ins Business Process Choreographer provides an event handling infrastructure for events that occur during the processing of human tasks. open the Resource perspective if you are not already there (click Window > Open Perspective > Other > Resource). The URIs are a set of REST services that access business process and task data. In the Software Updates and Add-ons window.

You will need to use your own custom code using the Service Data Object (SDO) API in order to work with these constructs. and click Install.ibm. Use this tool to graphically create and manipulate snippets of Java code. dependencies on those parts are automatically and universally updated throughout the product as a whole. Using the visual snippet editor to write Java code When should you use the visual snippet editor to compose Java code instead of writing it yourself? The building blocks of the visual snippet editor Compose your own visual snippet using a combination of the following building blocks.wss?rs=2308&uid=swg21306783. Using mapping service snippets When you want to transform data in a business object from one format to another using the visual snippet editor. Creating a custom visual snippet To create a new custom visual snippet. JSPs generated as human task clients will not be able to accomodate xsd:any. use the visual snippet editor. choice and substitution group constructs out of the box. • Due to a limitation in the Business Process Choreographer tag library in WebSphere® Integration Developer. or when working with human tasks. Using inline expressions for simple equations When you are coding an expression in the visual snippet editor. Click on any of the links shown below to learn more about that topic. The visual snippet editor displays a diagrammatic representation of the Java™ programming language.com/support/docview. select the documentation that you want. Visual snippet editor The visual snippet editor is a diagrammatic programming environment that you use to graphically create and manipulate Java code. • • • • • • • • Custom behavior . Refactoring a visual snippet When you refactor parts of your visual snippet. For more information. follows these instructions. You will need to restart WebSphere Integration Developer to see the additional documentation. • Custom behavior There are situations when a user has the opportunity to specify custom behavior within the context of one of the WebSphere® Integration Developer family of tools.repository location. see http://www. Limitations for human tasks There are current limitations that you should be aware of when using the human task editor. you can use one of the three mapping service snippets provided. Configuring a custom event in a visual snippet A custom event is a specific business-related message that can be declared in the visual snippet editor to be emitted in the runtime environment. there are several ways that you can compose the expression. Customizing behavior with visual snippets To visually define custom behavior.

There are situations when a user has the opportunity to specify custom behavior within the context of one of the WebSphere® Integration Developer family of tools. the first user has extensive technical skills and a sound knowledge and background in the business in question. UsiVisual snippet editor The visual snippet editor is a diagrammatic programming environment that you use to graphically create and manipulate Java™ code. This user determines what customized activities are likely to be needed. you need to understand these key concepts: • An example of customized behavior • Business roles and customizing activities An example of customized behavior Perhaps you are composing a process in the process editor. Java visual snippet Use this snippet to embed a call to an arbitrary Java method directly into your diagram. In this example. One example of this is the visual snippet editor that you can use to graphically compose customized behavior as snippets of Java™ code. There are three different kinds of implementations that you can use within the editor: Standard visual snippets These snippets have been predefined for your general use. Before you start to use the visual snippet editor. and stores them in a library. and stored within the existing libraries. It can then be used within other snippets. These activities can be created and customized using the visual snippet editor. creates them. In such a case. An example of using the library to avoid the replication of work. discrete programmatic tasks. . Their implementation is fixed and cannot be viewed or modified by the user. As such. it is possible for activities to be created. as the following graphic illustrates: Figure 1. Business roles and customizing activities An activity is unit of work or a building block that performs a specific. Visual Java Snippets can also be used to invoke constructors and access fields. The WebSphere Integration Developer family have been designed so that users can compose integrative business solutions with minimal programming skills. customized and ultimately used by several users of varying technical backgrounds. The second user is able to easily access and use these custom activities without having to know why and how they were created. you could use the visual snippet editor to create some customized behavior to make the process do exactly what you want it to do. Custom visual snippets Use this to create a snippet that captures a specific behavior. and you need to modify your data in a way that the available activities do not provide.

o Your visual snippet is visually organized on the editor in groups. When the cursor becomes a crossed out circle.This editor has been designed to make you. each with its own individual use. The canvas o The canvas is the white empty area in the middle of the editor that you use it to assemble the activities to compose your visual snippet. While you are designing your visual snippet. The white space is called the canvas and it's where you create your snippet from the objects that you pull from the palette to the left. The palette o The palette is the shaded area to the left of the canvas that houses the objects that you click and drag onto the canvas to build your snippet. The visual snippet editor is divided into several distinct areas. The areas are as follows: 1. and individuated on the canvas with a group bracket. o 2. When you click and drag an activity from the palette onto the canvas. the icon beside your cursor has a plus symbol and you can decide where you want to drop the activity. think of it as an exercise in how to paint. . These groups are composed of one of more items connected with links. Below that is an interactive properties area that changes to display pertinent details about whatever object you currently have selected on the canvas. the user. feel comfortable and to facilitate your creativity. continue moving the cursor until it becomes a plus sign again.

. o o 3. it automatically starts a group until you link to it from another one. o Click the black horizontal arrow to collapse or expand the tray. To launch a user-defined snippet in the editor. o The list of snippets include those in the product's standard library . o The contents of the page will differ on the selection.When you drop an item onto the canvas. o o If there is more than one group in the snippet. and provides prompts that you use to graphically compose your expression. Visual snippets view: visual snippet editor This area shows a categorized view of all of the existing snippets that are available. • • Visual snippets view: visual snippet editor This area shows a categorized view of all of the existing snippets that are available. o To create a new input. o 5. highlight it and click the icon. The visual snippets view o This area shows a categorized view of all of the existing snippets that are available to you. click the corresponding icon. expand the appropriate category. To use one of these snippets. as well as any existing custom user-defined snippets . select the snippet. Preferences view: visual snippet editor This topic includes a description of each of the fields in the preferences view of the visual snippet editor. o The run order in each group flows from left to right as shown in this image. In all cases. and you can add or modify these properties by clicking the appropriate cell and then interacting with the graphical interface that appears. or to remove one. and then drag it to the location in your composition where you want it to appear. or exception. Click on the tabs to the left of this view to toggle through the pages. The properties area o This area displays properties that are relevant to the object that is currently selected on the canvas. The expression builder o The expression builder is a miniature dialogue that pops up when you click on an expression. you can press F1 to launch a help window and click the link to be taken directly to the product documentation for more details. simply double-click it in the Visual Snippet view. The tray o The tray displays the Inputs. output. 6. Outputs and Exceptions that are associated with your snippet. each one is processed sequentially from top to bottom and will finish at the end of a snippet or when a return node is reached. o 4. Some pages display properties in tabular format.

there is no reproducing the same work. simply double-click it in the Visual Snippet view. ng this system. . as well as any existing custom user-defined snippets . To use one of these snippets. Preferences view: visual snippet editor This topic includes a description of each of the fields in the preferences view of the visual snippet editor. select the snippet. and then drag it to the location in your composition where you want it to appear.The list of snippets include those in the product's standard library . To launch a user-defined snippet in the editor. expand the appropriate category.

There can be multiple inputs into a snippet. and the derived flag is set. Visual snippets . The biggest advantage of the visual snippet editor for experienced users. • • • • • Inputs Output Exceptions Visual snippets Links Inputs The inputs define the data that enters the snippet. By default. If you are not familiar with the Java programming language. This data can either be in the form of a Java™ type. Output The output defines the result of the snippet composition. There can be at most one output from a snippet. This flag indicates that these files are derived from other files during a build process. The data that is returned can either be in the form of a Java type. and ultimately save the user a lot of typing. is the fact that the editor will generate a lot of code very quickly. the check box is cleared.Launch the preferences view from the main menu by clicking Window > Preferences > Business Integration > Visual Snippet Editor.<module>/<folder>. Use the Generate snippet Java files to derived folder setting to control how Java™ files that are generated for visual snippets are derived to a CVS repository. a data type or a business object. If you select the check box. and custom visual snippets are generated to . and part skill level. the files are instead generated to <module>\gen\src\<folder>. The building blocks of the visual snippet editor Compose your own visual snippet using a combination of the following building blocks. If you are comfortable coding using Java. sing the visual snippet editor to write Java code When should you use the visual snippet editor to compose Java™ code instead of writing it yourself? The answer to this is part personal choice. Exceptions The exceptions indicate what fault handling may be required if the snippet cannot be completed successfully. and you must use the graphical editor to visually compose expressions that can then be generated into valid Java code. and so therefore do not need to be kept in a CVS repository because they can be generated at any time. then this choice is made for you. a data type or a business object. then there will be times that you may find it easier to simply type it yourself. There can be multiple exceptions in a snippet. especially for simple code.

• While control structure Use the while control structure to repeat the same code as long as the input value is 'True'. a visual snippet is a unit of work that performs a specific programmatic task in order to achieve a larger programming goal. • Try Finally node Use the Try Finally node to attempt to perform an action ("initial action") and then to perform another action ("final action"). The code in the bottom section is run as long as the input continues to evaluate to 'True'. the Select a Java Visual Snippet wizard will launch. The number of repetitions is determined by the value that is received as input. When you click this item. The system provides a number of standard. and the other when it is 'False'. The kinds of values are varied. • Repeat control structure Use the repeat control structure to iterate the same code a number of times. and the expression can also be visually composed using the inline expression builder. and pass them into the snippet. You will embed two separate pieces of code into two separate areas of this control structure. you will be prompted to choose from a categorized list of existing snippets. • Choice control structure Use the choice control structure to create a branch in your snippet. Browse the existing types and qualifiers. • For each control structure Use the for each control structure to repeat the same code for each of the items of a list that is received as input. • Standard visual snippet Use this to add a predefined snippet into the editor When you drop this snippet on the canvas. general purpose snippets that you can choose from here. and direct the processing according to the Boolean value of the input. if you or another colleague has already created custom visual snippets on this system.Within the context of the visual snippet editor. The final action runs regardless of whether the initial action ran successfully or caused an exception. You will embed two separate pieces of code into two separate areas of this control structure. . There are several items that can be dropped onto the canvas from the palette. and each performs a different function. There are a number of items that can be added to a visual snippet: • Expression Expressions carry user-defined values. One will be executed when the input is 'True'. When the input evaluates to 'False'. and then choose an appropriate snippet and drop it onto the canvas. Similarly. control moves on to the next object in the snippet. they will appear here in the form of custom visual snippets. • Java visual snippet Use this to embed a call to an arbitrary Java method or constructor or access a field within the context of the visual snippet.

5. In the workbench. Click Finish to create your snippet. Adding a Java visual snippet Java visual snippets are predefined pieces of Java code that you can use in your snippet. 1. This creates a snippet. In the New Custom Visual Snippet window. 4. The comment is text based. and launches it in a new visual snippet editor. Adding a link to a snippet Links represent data flow and direct the sequence in which the processing of the activities in your snippet occurs. • Return node Use this when you want to return a result from the snippet. select it in the business integration view. • Comment node Use this when you want to include a note of some kind in the structure of the snippet. This choice will determine where your snippet will appear in the categorized list in the visual snippet view. 2. follows these instructions. 3. the folder name will change to match it. Links Links your snippet occurs represent the flow of data and direct the sequence in which the processing of the nodes in Creating a custom visual snippet To create a new custom visual snippet.• Throw node Use this to throw an exception. and a name for the new snippet. • • • Adding an input or an output to a snippet . Once you choose a category. • • • Adding an input or an output to a snippet The input defines the data that enters the snippet. and the output specifies the result. Expand the Category list. Click on any of the following links to configure the snippet. Adding an exception to a snippet An exception on the snippet defines what exceptions may occur during the processing of the snippet. and you can use them when composing your own visual snippet. and choose one that is appropriate. Using a custom visual snippet A custom visual snippet is one that contains an entire snippet within it. From the main menu. and can be used to explain and describe portions of the code to make future modifications easier. 6. specify a module. If you have already created a module. click File > New > Custom Visual Snippet. Working with standard visual snippets Many types of snippets are available in the editor. switch to the business integration perspective.

Your newly created input or output appears in the tray. In the tray. In the Description tab of the Properties area. proceed as follows: 1. To create a new exception in your snippet. Adding an exception to a snippet An exception on the snippet defines what exceptions may occur during the processing of the snippet. You can create an input or an output in the same way. The visual snippets view to the left of the editor contains a categorized list of standard visual snippets that are included with the product as well as custom visual snippets that have been user-defined. You can choose a Java™ exception type. Your newly created exception appears in the tray. . click the plus icon ( ) to the right of either Inputs or Output. click the plus icon ( ) to the right of Exceptions. To create a new input or output in your snippet. 2. rename it if necessary. In the Description tab of the Properties area. a data type or a business object. and the output specifies the result. and specify an appropriate type. but only a single output. In the Visual Snippets view. 2. proceed as follows: 1. expand the category and choose the snippet that you would like to add as shown in the image. and you can use them when composing your own visual snippet. Note: You can create as many inputs as you want. and specify an appropriate type. rename it if necessary. In the tray.The input defines the data that enters the snippet. Proceed as follows to add one of them to your snippet: 1. You can choose a Java™ type. Working with standard visual snippets Many types of snippets are available in the editor.

Changes the value of the string into a double. Table 1. Category arrays Standard visual snippet array length copy array element get array element set array element converter convert integer to string convert primitive type to string convert string to double Description Returns the number of elements in the array. a custom activity can be opened in a new editor by double-clicking it.2. Changes the value of the integer into a string. Note: Standard activities are fixed and cannot be modified. Returns the value of a specific array element. The snippet appears as an node on the canvas. Specifies the value of a specific array element. and you can wire it up as needed. However. Makes a copy of a specific element in the array. . Changes the value of the primitive into a string. A list and description of the available standard visual snippets. Drag and drop this snippet onto the canvas.

Compares two separate dates. Returns a value that is equal to the current day of the month. Creates a date object by combining a given pattern and date string. and returns the difference between them in number of days. Category Standard visual snippet convert string to float convert string to integer convert string to long convert to lower case Description Changes the value of the string into a float. Returns a value that is equal to the current day of the year. Changes the value of the string into an integer. Makes all of the characters in the string into upper case characters. Changes the value of the string into a long. Takes a patterned date as input and transforms it into a string that is based on Greenwich Mean Time. Takes a patterned date as input and transforms it into a string. Makes all of the characters in the string into lower case characters. Returns a value that is equal to the current date and time.Table 1. Returns a value that is equal to the current day of the week. Determines the current date and time based on the computer's locale. Compares two dates to see if they are the same. Creates a date object by combining a given pattern and a date string that is in Greenwich Mean Time format. A list and description of the available standard visual snippets. Returns true if they match. and uses a pattern to transform it into convert to upper case date are dates equal create date from pattern create GMT date from pattern current date and time day of the month day of the week day of the year difference between two dates format date to GMT string using pattern format date to string using pattern format locale date to string using pattern .

and returns the specific item that is at the index point. and an object as Description is date after is date before events emit BO event list add item to list clear all items from list get item at index index of item is list empty list contains item list size list to sort remove item at index remove item from list set item at index . Evaluates the list and returns true if it is empty. Takes an existing list and a list object as inputs. Compares two dates as input and returns true if the value of the first date is before the second date. and returns true if the list contains the specified object. Declares a business-related message that can be logged in the runtime environment.Table 1. and add that new object to the end of the existing list. Clears an existing list of all elements. Takes an existing list and an index value as input. and arranges them alphabetically. Takes an existing list and an index value as input. and false if it contains any elements. A list and description of the available standard visual snippets. Takes an existing list. Compares two dates as input and returns true if the value of the first date is after the second date. and returns the index of the specified list item. Takes the contents of a list. Returns a value that represents the number of items in the list. and deletes the specified list item. Takes an existing list and a list object as inputs. get date pattern Returns a pattern that can be used to compose date and time formulas. an index value. and deletes the item that is at the specified index point. Takes an existing list and a list object as inputs. Takes an existing list and a new object as inputs. Category Standard visual snippet a string.

but accepts a map of input and a map of output business objects. This standard visual snippet provides terminals that you can use link to the name and namespace of the map. inverse or mapping service advanced mapping basic mapping specific mapping math absolute value add divide equal to greater than greater than or equal to . A list and description of the available standard visual snippets.Table 1. Like the previous two options. exceptions and for execution context Returns the absolute value of a number. it is changed to false and vice versa. Takes two numbers as input. and three exceptions. and returns their quotient. and returns true if the value of the first number is higher than or the same as that of the second. Takes two numbers as input. and returns true when either one of them is true. It includes similar terminals. and returns true if their values are the same. Category Standard visual snippet Description input. Takes two numbers as input. and places the item at the given index point in the list. Use a specific mapping snippet to reference an existing business object map. Takes a boolean input and converts it to its opposite. and returns true when they themselves are both true. this standard visual snippet has terminals for inputs (that automatically refer to the business objects as defined in the business object map). logic and Takes two boolean inputs. Takes two numbers as input. Takes two boolean inputs. the business objects that you are working with. Use a basic mapping snippet for general mappings between two business objects. If it comes in as true. and returns true if the value of the first number is higher than that of the second. The advanced mapping snippet builds on the basic mapping snippet (see below). Takes two numbers as input. It also provides an additional terminal for an execution context (which may be null). and returns their sum.

role name. and returns true if the value of the first number is different than that of the second. Takes a relationship name. and returns the value that is greater.000' or '1000' or '1 000) Takes a relationship name. Takes a maximum fraction digit and a number as inputs. Takes two numbers as input. and returns their product. Takes a base and an exponent value as inputs. Takes two numbers as input. and a business object as inputs. and returns the value as a string. and returns true if the value of the first number is lower than that of the second. Takes two numbers as input. Takes two numbers as input. Takes two numbers as input. and creates a new participant for this relationship service. role name. and a business object as inputs. Takes a relationship name.Table 1. Returns the positive square root of the number given as input. Formats a number according to the standards of the current locale (for example either '1. and disables this user without completely removing it from the system. maximum minimum multiply not equal to power square root subtract numbers format number to string format number using pattern parse number for locale relationship service create participant create participant with ID deactivate participant . and creates a new participant for this relationship service. Takes a pattern and a number as inputs. and returns the value as a string. and returns a value that is equal to the base number raised to the power of the exponent. A list and description of the available standard visual snippets. and returns the value that is lesser. Category Standard visual snippet less than Description Takes two numbers as input. and returns the difference between them. uses them to identify a specific user. role name. specified instance ID. and a business object as inputs.

role name. role name. and returns a relationship property. and disables this user without completely removing it from the system. and instance ID as input. and a business object as inputs.Table 1. uses them to identify a specific user. and instance ID as input. and completely removes this user from the system. a property name. uses them to identify a specific user. Takes a relationship name. A list and description of the available standard visual snippets. role name. uses them to identify a specific user. Category Standard visual snippet deactivate participant by instance Description Takes a relationship name. Takes a relationship name. and completely removes this user from the system. Returns a role property with the following as input: • relationship name • role name • property name • instance ID • business object Maintains the identity of a relationship with the following as input: • relationship name • role name • input business object get relationship property get role property maintain identity relationship . and an instance ID as inputs. Takes the following as input: delete participant delete participant by instance foreign key lookup • • • • • • • • • • foreign key xref foreign relationship name foreign input role name DataObject business object foreign keys business object foreign output role name output business object output business object foreign keys original input business object original output business object calling context Returns a cross reference of a foreign key with the following as input: • foreign relationship name • foreign input role name • DataObject business object • foreign keys business object • foreign output role name • output business object • output business object foreign keys • original input business object • original output business object • calling context Takes a relationship name.

Takes two business objects as input. Category Standard visual snippet Description • • • • retrieve instances retrieve participants by instance retrieve participants by relationship name retrieve participants by role name set relationship property output business object original input business object original output business object calling context Takes a relationship name. Takes a relationship name and an instance ID as inputs. and returns true if their values are the same. Takes a relationship name. set role property unset relationship property unset role property SCA services add item to soap-encoded array are BO's Equal are BO's Equal (shallow) . Specifies a relationship property with the following as input: • relationship name • property name • property value • instance ID Specifies a role property with the following as input: • relationship name • role name • property name • property value • instance ID • business object Removes a relationship property as specified by following inputs: • relationship name • property name • instance ID Removes a role property as specified by following inputs: • relationship name • role name • property name • instance ID • business object Takes two business objects as input (one of them is an item. a role name. a role name. and returns true if their values are the same. and an instance ID as inputs. then that information will not be considered. If the BO contains a reference to another BO. and an instance ID as inputs. A shallow function looks only at that information which is on the first level of the BO. and returns all matching participants. and adds the item to the array. and the second is a soap-encoded array). Takes two business objects as input. A list and description of the available standard visual snippets. and returns all matching participants. and returns all matching participants. and a business object as inputs.Table 1. and returns a matching instance. Takes a relationship name. a role name.

and creates a body for the Service Message Object. Returns data from the business object Data Object Service. and duplicates it. and obtains a reference to the it. Takes a service name as input. and returns a new business object. Returns data from the business object Change Summary Service. Returns data from the business object Metadata Service. Category Standard visual snippet copy BO copy BO (shallow) Description Takes either a business object or a business graph as input. Takes two lists as input. If the BO contains a reference to another BO. and duplicates it. Returns data from the business object Event Summary Service. A list and description of the available standard visual snippets. Takes a namespace and a message as input. Takes a Service Message Object as input and returns its body. Creates a SOAP header from the following inputs: • SOAP header name • SOAP header namespace • SOAP header prefix • Business object Uses the Message selection wizard to create a specific Service Message Object body. Returns data from the business object XML Serializer Service. Uses the Data Type selection wizard to create a specific business object. Takes a Service Message Object and an SMO body as copy list contents create BO create specific BO get BOChangeSummary Service get BODataObject Service get BOEventSummary Service get BOMetadata Service get BOXMLSerializer Service locate service SMO services copy SMO create SMO body create SOAP header create specific SMO body get SMO body get SMO part set SMO body . then that information will not be copied. and copies the contents of the source list into the target list. and returns the part specified by XPath. Takes either a business object or a business graph as input.Table 1. and duplicates it. A shallow copy takes only that information that is on the first level of the BO. (Copies are made for business objects) Takes a namespace and a name as input. Takes a Service Message Object and an XPath expression as input. Takes a Service Message Object as input.

A list and description of the available standard visual snippets. From the palette.out. while ignoring case. and prints it to System. In the Select a Java Visual Snippet wizard. 2. Category Standard visual snippet Description input. Takes a text string as input. and prints it to System. text equal to text equal to (ignore case) text length utility BO print to logger print BO to log print to log print to logger to text Adding a Java visual snippet Java™ visual snippets are predefined pieces of Java code that you can use in your snippet. click the Java visual snippet activity icon . Takes an object as input. Uses the Select Log Level wizard to specify granularity of the log. Takes two text strings as input and. and specifies its body. and clears all of the empty characters from it. a start index.Table 1. returns true if they are both the same. and prints a textual representation of it to System. and combines their contents into one. choose an appropriate snippet and click OK . Takes two text strings as input and returns true if they are both the same. the snippet takes the log message and object as inputs. Take as text string. To import a Java visual snippet. and returns its length in characters. and prints a textual representation of it to System.out. the snippet takes the log message and business object as inputs. Takes a text string as input. Uses the Select Log Level wizard to specify granularity of the log.out. You can choose from the following: • Off • Severe • Warning • Info • Config • Fine • Finer • Finest • All Then. text append text remove whitespace from text split text Takes two string as input. Takes an object as input.out. Takes a business object as input. and returns a textual representation of it. and an end index as inputs. browse the existing types and qualifiers. proceed as follows: 1. Then. and creates a substring of the given text using the given indices.

You have created a custom visual snippet. click the link so that it becomes highlighted. Drop an activity onto the canvas. Using inline expressions for simple equations . Move the cursor over an outgoing link until the yellow circle appears as shown in this image. Link two existing objects on the canvas as follows: a. and will look like a plus sign with a crossed out circle beside it. and a thick black line will mark the location more clearly. A yellow string is now attached to the cursor. e. In the Visual Snippets view. When the cursor becomes a crossed out circle. 1. Drag and drop this snippet onto the canvas and wire it up as needed. 5. Compose the visual code as necessary. Save and close your work. or Click an item in the palette. Your newly created Java visual snippet will appear. and when you hover over a valid incoming link icon. The crossed out circle on your cursor will disappear when the terminal is a valid choice for a link. Click an Input in the tray. If it can take an outgoing link. double-click it and it will appear in its own editor. 2. and then click a valid input or output terminal of an existing activity on the canvas. b. Create a link automatically in either of these ways: a. 3. f. drag the cursor over the appropriate activity. Drag the cursor out over the canvas. Click where you want to drop the activity. continue moving it until it becomes a plus sign again. a. It is also called a composite visual snippet. and drag it onto an input terminal of an existing activity on the canvas. d. expand the category where you saved your first snippet. the crossed out circle disappears.3. The custom visual snippet appears as an activity on the canvas. To change the target activity. Click the yellow circle. 4. or link two existing objects as described in the second. and drag it to a new incoming link. You can drop the activity into one of two places in your snippet: To drop it onto an empty area of the canvas. To drop the activity into a structured activity that contains other activities. Pay close attention to the Category setting in the wizard in which you are asked to specify a location for your new snippet. drag the cursor out over the canvas. the triangle will be on the right edge . you will notice that the icon beside your cursor has a plus symbol when you are at a place where you are allowed to drop the activity. You can either create a link automatically when your drop an object onto the canvas as described in the first step. You have successfully created a link in your snippet. it will have a triangle on its left edge . Click the activity that you want to link to. In both cases. Create another snippet using the editor. The cursor will change appearance. 4. c. b. Parent topic: Creating a custom visual snippet Using a custom visual snippet A custom visual snippet is one that contains an entire snippet within it. click the black box at the target end of the link. b. If you would like to make changes to it. Adding a link to a snippet Links represent data flow and direct the sequence in which the processing of the activities in your snippet occurs. Create a new visual snippet in the editor. and can be created as follows: 1. 6. If it can take an incoming link. The link becomes a solid gray line and connects the two activities. 2.

you can use one of the three mapping service snippets provided. exceptions and for execution context. chose one of the three available options. The finalized form appears like the one shown in this screen capture: Of these two options available to you. In both cases. this standard visual snippet has terminals for inputs (that automatically refer to the business objects as defined in the business object map). the equation is coded directly into the expression using the inline condition builder. Specific mapping snippet Use a specific mapping snippet to reference an existing business object map. the business objects that you are working with. In the visual snippet editor. 3. Most expressions can be represented diagrammatically in one of the following two ways: Inline expressions In this case. Using mapping service snippets When you want to transform data in a business object from one format to another using the visual snippet editor. It also provides an additional terminal for an execution context (which may be null). there are several ways that you can compose the expression. This standard visual snippet provides terminals that you can use link to the name and namespace of the map. There are three types of mapping snippets available: Basic mapping snippet Use a basic mapping snippet for general mappings between two business objects. and three exceptions. click the Standard visual snippet activity icon ( ). To add one of these snippets to your diagram. expand mapping services. the snippet contains specialized code that will perform the simple equation in question. The finalized form appears like the one shown in this screen capture: Prebuilt expressions Prebuilt expressions can either be in the form of a Standard visual snippet or a Java™ visual snippet. It includes similar terminals. Note: You will only be able to select a specific mapping snippet if there is an existing business object map. proceed as follows: 1. and click OK. You will be able to select it in the Business Object Map Selection dialogue box. but accepts a map of input and a map of output business objects. the best practice is to use an inline expression when coding simple equations. 2. In the Add a Standard Visual Snippet window. Wire the terminals as needed. Refactoring a visual snippet . Like the previous two options.When you are coding an expression in the visual snippet editor. Advanced mapping snippet The advanced mapping snippet builds on the basic mapping snippet.

Select the event that you would like to emit and click OK.When you refactor parts of your visual snippet. and a dialogue opens that lists each of the events that are available to be emitted. 2. expand the events category. In the Visual snippet view. . and select the snippet named emit event. you can add it to your visual snippet as follows: 1. From the list. The emit event snippet appears on the canvas. Drag and drop this snippet onto the canvas. right-click the visual snippet as shown in the following screen capture. Change Namespace Use this option to assign a new namespace to your visual snippet. dependencies on those parts are automatically and universally updated throughout the product as a whole. 2. Move Use this option to move your visual snippet to a new folder or module. To refactor parts of your visual snippet. 3. proceed as follows: 1. Configuring a custom event in a visual snippet A custom event is a specific business-related message that can be declared in the visual snippet editor to be emitted in the runtime environment. Once you have created your own custom event definition using the event definition editor. hover over Refactor and then choose from one of the following three options: Option Description Rename Use this option to change the name assigned to the visual snippet. In the Visual Snippets view.

In this example. create the expressions that will supply the emit event snippet with the data that is necessary to emit the event in question. Rule groups A rule group is the highest level implementation component of a business rule. it is different for each of the conditions that is encountered. Rule sets and decision tables cannot be invoked directly and may only be invoked through a rule group. Business rules A business rule is a condition that must be satisfied when a business activity is being performed. There are two possible forms. . In this example. Customer status Bronze Silver Gold $5 $4 $3 Quoted price The interaction between conditions and actions determines the form of your business rules. Using WebSphere® Integration Developer. Actions An action is the event that results from the evaluation of the condition. The rule group defines the interface and operation that the business rules will implement. you need to understand these key concepts about business rules: • Rule groups • Rule sets • Decision tables • Business roles in the development of business rules • Templates • Scheduling Note: Business rules can only be deployed to the WebSphere Process Server. Key concepts Before you start to use this editor. Each action is uniquely bound to the condition that precedes it. A rule can enforce a business policy. The rule group acts as a gateway to the business rules since it is exposed as an SCA component in the runtime environment. the action is performed.4. creating and developing business rules in a graphical programming environment. A business rule is used to quote specific prices to customers depending upon their customer status. make a decision. If the condition is met. Rule sets and decision tables which share a common business focus can be gathered under the umbrella of a single rule group. Here are some basic terms that define the building blocks of each and every business rule: Conditions A condition describes a situation or state that must be in place in order for a specific action to occur. or infer new data from existing data. the condition is the customer's status. Table 1. rule sets and decision tables. An example of a business rule A vendor establishes the preferred status of each customer and creates a business rule to determine how much each customer is charged for the same object. you can compose integrative business solutions without programming skills. In the snippet editor. which are described below. the action is the quotation of the price.

The first example we discussed used an if-then rule set: Table 2. In a decision table.One of the most important functions of the rule group is to define a date and time range during which a specific rule set or decision table will be used. the decision table is driven by the interaction between conditions and actions. The decision table enforces this business rule behavior through the intersection of the status (rows) and items purchased (columns). more than one condition decides the action. each rule is evaluated sequentially. but only one action is acted on. An example might be a customer loyalty scheme in which a customer that makes a purchase seven weeks out of ten receives a free gift. Rule sets A rule set is a set of business rules that are evaluated sequentially. Only if the condition evaluates to true is the action performed. and each condition that evaluates to true is acted upon. During the transaction. Each column represents a condition. If-then rules A rule in which if is the condition and then is the action. For instance. Like the if-then rule set. Silver $4 Gold $3 In the runtime environment. If customer has silver status then price is 4. Decision tables Another form that a business rule can take is a decision table. The first column shows . Customers who made a purchase in all ten weeks evaluate to true for both conditions and receive both incentives. and a customer that makes a purchase in all ten weeks receives an additional 10% discount voucher for future use. in a decision table. Action rules An action rule is a rule in which the action is always performed. several conditions may get evaluated. The discount depends on the customer's status. and then is the action. However. in this example the customer status is represented by the rows in the table. the customer receives a bigger discount when he or she purchases more items. The conditional logic is represented in a table where the rows and columns intersect to determine the appropriate action. which could result in more than one action. A business rule is used to quote specific prices to customers depending upon their customer status. and the potential amount of money that the customer spends is represented by the columns. There are two kinds of rule that can be used in a rule set. Customer status Bronze $5 Quoted price If-then rule If customer has bronze status then price is 5. An if-then rule set is a set of textual statements or rules where if is the condition of the rule. If customer has gold status then price is 3.

you need to create roles that indicate the different ways that different users create.50 per item $2. if the customer with silver status buys less than 20 items. The analyst applies his or her understanding of how the business works to create business policies and business rules. and anticipate situations where the conditions will not result in an action. You can also make initialization action rules into templates so that you can modify the rule at run time. to implement and deploy the rules that the business analyst created. Initialization action rule By using an initialization action rule. he pays $5 for each item. Business roles in the development of business rules Because business rules are developed and maintained by several users. For example. if a customer does not have a status. Figure 1. Table 3.us that the results of each of intersection is the same as the if-then rule set: if the customer with bronze status buys less than 20 items. she pays $4 for each item. Customer status Bronze Silver Gold Buys less than 20 items $5 per item $4 per item $3 per item Buys more than 20 item $4. When these rules have been deployed to a server.50 per item Here are a few concepts that are unique to decision tables: Otherwise condition By using an otherwise condition. How two different roles interact in working with a business rule . you can change the bronze row to use an otherwise condition so that the customer who does not have a silver or gold status automatically receives the prices that the bronze customer typically receives. and how those users interact while working with a business rule. a specified operation is automatically performed while data is passed to a decision table. and modify business rules. at least according to the table. while the customer with gold status pays $3 for each item.50 per item $1. Integration developer The integration developer uses his or her knowledge of computer programming. the integration developer uses templates to determine what details can be modified later by another business analyst and writes messages that will help that user make those modifications.50 per item Buys more than 30 items $4 per item $3 per item $2 per item Buys more than 40 items $3. the analyst applies his or her knowledge of the business environment and uses Web-based management tools to keep the rules relevant. implement. you can plan ahead when designing your decision table. While implementing the rules. There are two main roles for working with business rules: Business analyst The business analyst needs to have no knowledge about computer programming languages to create business rules. A business rule defined by a decision table.50 per item $2.50 per item $3.

For example you know that your product costs 100 to manufacture so your range of prices might be between 105 and 500. The template uses parameters and constraints to provide dynamicity. There are two main types of constraints: • Range constraints • Range constraints apply to numeric parameters that are used in rules. A template defines what parts of a deployed business rule can be modified by an authorized user. It is rarely feasible or cost effective to get an integration developer to make each adjustment. The "price" would be a parameter if you want to adjust your sale price to match a competitor. Constraints A constraint is a restriction in a template that limits by how much a specified parameter can be modified. For example. the user could upgrade a customer's credit rating from "silver" to "gold". For example. Decision tables can also be made dynamically modifiable at runtime by basing the conditions or actions of the decision table on templates. • Enumeration constraints • Enumeration constraints are in a list that is either numeric or textual. An example of a template constraining a business rule . After deployment. This is especially necessary when a business environment must be dynamic to meet everchanging business needs. An authorized user may adjust a parameter but the parameter must be held within a certain numerical range. your company might have to periodically adjust sale prices to match the competition's prices. The authorized user must choose from one of the options in the list. you might still need to modify your prices or other properties. Parameters and constraints define which values can be modified and by how much.Templates One of the responsibilities of the business analyst is to keep business rules relevant. Figure 2. In order to create business rules that are dynamically modifiable at runtime the business rules must be based on templates. Parameters Parameters are the elements of the business rule that can be modified dynamically.

or (as shown in the following example). An example of how a business rule can be created for later use .In this example. This functionality is important when. Figure 3. you can design rules and deploy them to the server so that they become active when they are needed. when a special price is put into effect for one special day only. for example. the constraint on the business rule template will not allow it. However. Scheduling When changes to the business rules are mandated and expected. The constraint does not permit a lower price than the one that is currently in place. Vendor A can use a business rule template to adjust the price of the item to beat Vendor B's pricing. business analysts have to be prepared for changes to governmental tax regulations that will not go into affect until the first of the year. when Vendor B tries to do something similar.

A rule can enforce business policy. If your decision logic analyzes a collection of data or loops over a set of data. The rule logic is either a rule set or a decision table. To this end. Basing rules on templates gives you more dynamicity at runtime and allows you to modify settings without involving an integration developer. you should use business rules to make a decision when any of the following conditions are met: • • • you want to change the results at runtime. Decide if a business rule is an appropriate solution for your business process. Create a rule group. Create your chosen rule logic. and call out to a rule set whenever there is configurable data. 2. Decide which rule logic to use. or infer new data from existing data. The rule group is the primary element of a business rule. The rule group also defines date ranges during which specific rule logic applies. 1. The WebSphere® Integration Developer tools have been designed so that users can easily compose integrative business solutions without programming skills. A business rule is an ideal solution when you want to have flexibility to change your business process at runtime. you can easily create and develop business rules in an intuitive graphical programming environment. 4.When to use business rules A business rule is anything that captures and implements business policies and practices. Some business rules are better suited to a decision table. on a running server instead of hard-coded logic in your solution. If you want to modify the business rule dynamically you must base your rule on a template. 3. You are in the process of planning your business process. In general. it provides the interface between the business process and the rule logic. make a decision. Building business rules: task roadmap A high-level view of the development of a business rule is presented. some to a rule set. the decision itself naturally takes on the form of a table the decision itself naturally takes on the form of a series of textual if-then statements. . you should probably structure the decision in a sequential process.

where some decision criteria are not applicable. From the main menu. In the select an interface window. If you notice that every rule seems to use the same decision criteria. Here are some suggestions for how to decide which format to use. Choosing between a rule set and a decision table You can capture business rule logic using either a rule set or a decision table. if this table has a large number of holes. The rule group editor is divided into several distinct areas. switch to the business integration perspective. In this case. Rule group editor A rule group controls the timing and implementation of business rules. you will have to create an operation using the interface editor before you can use it in the rule group. 4. Use structure and terminology that is natural to the business environment in which these rules will be used. This creates a rule group. Create a new rule group by performing the following steps. If your rules naturally take the form of a table. Additionally constraints can be applied to these parameters so that the changes made with the Business Rule Manager are within acceptable ranges. click File > New > Rule Group. 2. 6. then it would be a good idea to use a decision table. 2. If you create a new interface here. Then. By creating a template for your rule set or decision table you can build up a library of rule logics that you can reuse in the future. The structure of the decision table works well for regularity. then you should probably use a decision table. a folder and a name for the new rule group. If your rules seem to take the form of a large number of unstructured sentences. then you should use a rule set. . look for the following trends in the finished product: 1. the decision criteria that all the rules share in common can be captured once. The template also allows you to stipulate which parameters of the rule logic can be modified by the business analyst using the Business Rule Manager. specify a module (or create one if necessary by clicking New). 1. However. each with its own function. and then you can define the parameters for each criteria. A rule set is more flexible than the more structured decision table. then you should probably use a rule set to capture their business logic. In the New Rule Group window. Click any of the topics listed below to configure your new rule group. Parent topic: Building business rules 5. Creating a rule group Create a rule group as a container for your business rules. test and deploy. Assemble your rule group into a business process. 4. and click Next. In the workbench. 3. but not for exception cases. and launches it in a new editor. browse to an existing interface or click New to create one.Create templates for your rule logic. 3. Begin by sketching out a plan for your rules on a white board or a notepad. or where the output values are undefined.

highlight it and click the icon. For example you may want to offer a discount on weekends. highlight it and click the icon. or you may have a sale which runs until noon. o The contents of the page will differ on the activity or object chosen. click the icon. The interface area o This area displays the operations interfaces and references that you can choose from. Advanced tab: business rule group editor This topic includes a description of each of the fields on the Advanced tab of the Properties view.The areas are as follows: 1. The rule logic area o This area displays the possible rule logic that the operation can be routed to. . Use the date and time field when you want distinct rule logics to apply during different periods. The properties area o This area displays properties that are relevant to the object that is currently selected in the editor. click the icon. o To add new rule logic. or create your own customized datebased selection algorithm in the Selection criteria field. You can visually select your date and times using the interactive calendar. In all cases. 3. or to remove one. o To create a new interface or reference. you can click F1 to launch a dedicated help window. or to remove one. • Advanced tab: business rule group editor This topic includes a description of each of the fields on the Advanced tab of the Properties view. 2. Click on the tabs to the left of this view to toggle through the pages. and you can add or modify these properties by clicking the appropriate cell and then interacting with the graphical interface that appears. Some pages display properties in tabular format.

by clicking Enter Rule Logic and either select an existing rule set or decision table from the list. . Define the Default Rule Logic. then it is unlikely that there will be rule logic defined for it. 2. Click here to link to the rule logic that is still defined for the old operation. If this is a new operation. Note: If you do not select default rule logic.Use the fields on this page to add a few custom properties to a business rule group. In the editor of your newly created rule group. To specify the rule logic for your new rule group. or create a new one. They are used by generated Business User clients and can be queried through an API at runtime. 3. proceed as follows: 1. Link to Orphan This option will be available if you have already created an operation and deleted it. click the operation that you want to associate with the rules. a runtime exception will occur when the current condition is not covered. Custom properties represent name-value pairs of type string that can be used to store user-defined information. Specifying the rule logic for a rule group The rule logic is either a rule set or a decision table that is invoked at the designated time by the rule group. Once you have made your choice. 4. the rule logic window will appear. and the rule logic that you provide does not cover all the possible cases. and you will have the following options: Option Description Create Operation Definition Click here to launch the rule group editor and specify the rule logic yourself.

icon. Here are some possible options. or to leave either the start or end date open (perhaps you do not want it to expire). Use the interactive calendar to choose a date as shown in this image.5. To set a start or end date. The date selection data is composed of a set of rule logic rows and one default rule logic. it is recommended that you select it in the default rule logic. To select start and end dates for a rule. Second option: two rule logics If there are two rule logics one of which represents the current behavior and the other one the future behavior of the rule group. To set it to the current date. or select an existing one. and some suggestions on what to do. . or create a new one. 2. First option: one rule logic for the rule group If there is only one rule logic for this rule group. and leave the dates empty. Create your rule logic (you can create as many as necessary) by clicking the plus icon ( ) beside the Scheduled Rule Logic label. In a rule group. Here are some suggestions that are based on the number and nature of the available rule logic. and either select an existing rule set or decision table from the list. click the appropriate calendar icon. 3. click Enter Rule Logic to create a new rule. click Today. proceed as follows: 1. Scheduling rules using the rule group editor The rule group editor can be used to schedule the running of a specific rule for a specific date and time. In the rule logic area of the rule group editor. then click No Date. 4. create a new Scheduled Rule Logic by clicking the Date fields will appear showing the current date. it is recommended that you create two date rows in the table and leave the default rule logic undefined. Standards for date and time selection in a rule group There are a number of ways you can configure your rule group. date based selection can be used to delegate one operation to a specific rule logic (note that overlapping rules are not supported. and only one can be called at a time). In the Rule Logic column.

Customizing algorithms for date and time selection When you want to specialize the date and time selection criteria. Option Description Current® date Choose this to use the inline interactive calendar to select the dates graphically. which is occasionally overridden for short durations. 2. Java Choose this to use the visual snippet editor to graphically compose your own Java code .date object. scheduling is based on the Current date.util.Third option: standard behavior If there is some standard behavior for the rule group. In the Selection Criteria field. If you choose this. • A date returned from a Java™ expression • A date stored in an attribute of the incoming business object. In the rule logic area of the rule group editor. you can create your own custom algorithm. You will then have the following choices: icon. By default. To change this. then the system will create a Java snippet that will return a current java. click Current date. proceed as follows: 1. You can configure a rule group to work with the following: • A date as specified using the tooling. it is recommended that you use the default rule logic for the standard behavior and create a date range for each of the short term behavior rule logics. create a new Scheduled Rule Logic by clicking the Date fields will appear with the current date.

Create a CustomSelector Java™ class. These components should all share an interface.date) parameter. whether you are currently offering any discounts or if the customer is making a sufficiently large purchase to qualify for financing. This opens the Physical Resources view.ibm. b. Creating custom selectors Selectors can be used to determine dynamically. The possible selection criteria include: the location of the customer. or it can be embedded within a Business Object. In other situations you will need to define your own custom selector. Click the Add button.selection. Any WebSphere® Process Server component can be used as the outcome of the selector choice. right click the selector and click Show Files. Click OK.common.common. Enter "com. and select Open With > Text Editor. which displays the generated files for the project. The decision is driven by selection criteria that you can customize to your needs.date to the selector component. and return a java. In the Source Folder field browse to the current module folder. between two or more possible invocations. Find the line of code: <Selector>com. c.ibm. You can use the provided selectors for many circumstances. b. You need as many components as you will have possible outcomes. Open the Implemented interfaces selection panel. 2.ibm. a. Save and close the new selector. a.Option Description that will obtain a date and a time. Select your Module in the Business Integration view.selection.wbiserver. for example "CustomSelector". b. more in depth information about creating custom selectors can be found in related links.S". This is the class that will make the decision about which component to select. rightclick and select New > Other > Java > Class and then click Next.util. Augment the generated code with new code that will provide the new custom selection logic. Open the New Java Class wizard. Apply the same interface to the new selector that you used for the target components. Click Finish.util. In the Choose interfaces field of the Implemented interfaces selection panel type "com. Enter an appropriate name for the Java class. Create the components that will be the target of the selector after the selection has been made. The process of creating a custom selector is described briefly below. particularly those involving date-dependent discounts. c.GenericSelector</Selector > and replace it with .wbiservers. Create a new selector component. d. a. 3. and choose SelectionAlgorithm in the Matching types field when it appears. h. g. e. The parameter can either be a stand-alone. Choose one of the target WebSphere Process Server components as the Default Rule Logic. at runtime. 1.sel file. In the Business Integration view. 4. XPath Choose this to specify an XPath to a xsd:datetime (java. c.customselectors" in the Package field. Selectors provide a simple way for you to filter the business logic in different directions depending on input criteria. f. Edit the code of the new selector to replace the default Java class with your custom code. Right-click the filename.

To avoid confusion. a folder and a name for the new rule set. you should give each rule set a more descriptive name. Add the selector and all of the target components to the assembly diagram. click File > New > Rule Set.d.com/holiday/getDiscountRate If you reference these rule sets within a single operation. Save and close the selector file. Using rule set names in a rule group Each operation in a rule group contains a rule logic table.yourNamespace. From the main menu. If the same name is used twice. it is more difficult to see that there are actually two different rule logics. and another to calculate the discount rate during a holiday period. Label Default July 1 to August 31 getDefaultDiscountRate getHolidayDiscountRate Name Creating a rule set This topic provides instructions on how to create a new rule set. In the New Rule Set window. specify a module (or create one if necessary by clicking New).com/getHolidayDiscountRate If you do this. 2. Label Default July 1 to August 31 getDiscountRate getDiscountRate Name To avoid this problem. switch to the business integration perspective.com/default/getDiscountRate • http://www. so the references may appear identical in both the tooling and the Web environments. The project is ready to build and test. which maps a set of date ranges to a rule set or decision table. 5. suppose you have one rule set to calculate the default discount rate.yourNamespace. and click Next. A situation where the rule set names makes sense.CustomSelector</Selector> where CustomSelector is the name you gave to your Java class. A situation where using the same rule set name might be confusing. and there will not be any confusion. <Selector>com. In the workbench. Table 1.ibm. .com/getDefaultDiscountRate • http://www. 1. as shown here: • http://www.yourNamespace. For instance. with different namespaces. These could be placed in different folders. Table 2. 3. only the local name for the rule set is shown.customselectors. the names will be unambiguous. it is always a good practice to use rule set and decision table names which are unique within the operation. as follows: • http://www.yourNamespace.

use the drop down lists to select a different interface and operation. Rule set editor A rule set captures decision-making business logic in the form of a series of if-then statements. In a rule set. a business rule takes the form of an interaction between one condition and one action. each with its own individual use as shown here. If necessary. Click any of the topics listed below to configure your new rule set. or click New to create one. and launches it in a new editor. the rule is presented in a tabular format that you can edit as needed.In the select an interface and operation window. In the rule set editor. . This creates a rule set. 5. The editor is divided into several distinct areas. browse to an existing rule group. Click Finish. 4.

The individual areas of the rule set editor The areas of the rule set editor are as follows: 1. The interface area o This area displays the interface that is currently being referenced by the rule set. The variables area . 2.

The rules area toolbar o The icons in the rules area toolbar perform the following functions: o o Icon Creates a new if-then rule. The rules area o Use this area to graphically compose your if-then rule sets. 5. click the plus icon ( ). 4. and the second is a rule that is based on a template (b). Description Creates a rule that is based on an existing template. Working with the rule set editor This editor gives you complete control over the configuration of your rule sets. Creates a template based on the current rule. . In the Variables settings area. Some pages display properties in tabular format. A new variable will appear in the Name column. This area displays the variables that are being used by the rule set to store its data. highlight it and click the icon. Follow the links in the Related tasks section below to learn how to do any of the following: • Working with variables • Create an if-then or an action rules • Convert a rule into a template • Create a rule that is based on a template Adding a variable to a rule set Variables store the data that are used by a rule set. you can type F1 to launch a dedicated help window. 6. click the icon. o The previous screen capture shows two rules in this area ready to be defined. Click on the tabs to the left of this view to toggle through the pages. The template on which this rule is based is shown in the Templates section below. Creates a new action rule. The first is an ifthen rule (a). The templates area toolbar o The icons in the templates area toolbar perform the following functions: Icon Description Creates a new template for an if-then rule. The properties area o This area displays properties that are relevant to the object that is currently selected in the editor. or to remove one. and you can add or modify these properties by clicking the appropriate cell and then interacting with the graphical interface that appears. Creates a new template for an action rule.3. To create a new variable. The templates area o Use this area to graphically compose templates for a rule set. . proceed as follows: 1. 7. In all cases. To create an additional variable. o The previous screen capture shows a single if-then template (c) that is ready to be configured. o The contents of the page will differ on the activity or object chosen.

click Condition. proceed as follows: 1. xsd:anyType. 3. 3. You will also be able to choose from the XSD wildcards of xsd:any. 2. 4. Creating an if-then rule in the rule set editor An if-then rule determines what action to run according to the condition of the incoming message. or you can compose it yourself by clicking the appropriate operators and values in sequence. A new rule appears as shown in this image. or xsd:anySimpletype Data type Choose one of the pre-defined data types from the list. In the Presentation row. A pop up window appears as shown in this image: b. In the If row. you have the following options: Option Description New Use this to select or create a business object. In the rule set editor. In the Type column. You have successfully created a variable. Set the action as follows: . click the Add If-then rule icon ( ). click Select Type.2. In the data type popup window. You can either choose an existing template which will then prompt you for a value. Use the choices in the window to build your condition. Browse Use this to browse the Data type selection wizard for a data type. Compose the condition as follows: a. write a sentence that will describe the rule to another user. To create an if-then rule in the rule set editor.

Creating rule set templates Use a rule set template to define the implementation and parameters for an if-then or action rule. write a sentence that will describe the rule to another user. Creating an action rule in the rule set editor An action rule determines what action to run no matter what the incoming message is. A new rule appears as shown in this image. click Action. 3.a. A pop up window appears as shown in this image: b. You can either choose an existing template which will then prompt you for a value. click Action. A pop up window appears as shown in this image: b. or you can set it yourself by choosing from one of the other options. . You can either choose an existing template which will then prompt you for a value. In the Presentation row. use the choices in the window to set the action. This template can then be used to create new instances of the same rule using different parameters. click the Add Action rule icon ( ). Use the choices in the window to set the action. In the Then row. or you can set it yourself by choosing from one of the other options. In the Then row. In the rule set editor. You can create templates for both if-then and action rules in the same way. 2. Set the action as follows: a. As earlier. proceed as follows: 1. To create an action rule in the rule set editor.

and select an appropriate choice from the list. Note: If you apply a constraint to a parameter. a. A list showing the available choices will appear. click Action. To insert a parameter that the user can make changes to. In the Parameters row. and Presentation is how it is displayed in an actual rule. or you can compose it yourself by clicking the appropriate operators and values in sequence. A new template appears as shown in this image (note that the window is slightly different for the action template). a. click Enumeration. click None under the Constraint column. In the Then row. b. In the Type column. click either the Add If-then template ( . In the rule set editor. and add items to the Enumeration Items table in the Constraint tab in the properties view. In the Presentation row. Set the action as follows: a.) or Add Action template ( ) icon . click the triangular icon to launch a menu. 5. A pop up window appears as shown in this image: b. and then choose a parameter from the list. 3. click Select Type. You can either choose an existing template which will then prompt you for a value. d. Base your rule on a template if you want to give your business analyst the ability to modify the parameters of a rule without involving the integration developer. To specify an upper and a lower limit for a numerical parameter. A new parameter will appear. c. The Value is the actual setting. To specify a list of choices. The parameters of the rule can be modified within certain constraints. A pop up window appears as shown in this image: . the runtime user of a rule using this template will be able to modify the parameter only in accordance with that constraint. and then use the choices in the window to build your expression. click Range. 2. write a sentence that will describe the rule to another user. Compose the condition as follows: 4. 1. To add a restriction on how the parameter can be configured. e. create a new parameter as follows: Click the icon. Use the choices in the window to build your condition.Business rules based on templates are dynamically modifiable in the runtime environment. In the If row. click Condition.

you can create a similar rule without having to redefine the implementation. Structuring an ordered rule set for modification . a menu will appear showing your available options. 4. To allow a default value to be changed by a Web user. The parameters of the rule can be modified within certain constraints. There are currently no first class mechanisms to control rule order or creation. Now you are ready to create a rule based on it in the rule set editor. but these comments should help the web user avoid mistakes. Create a few templates which capture the criteria when the default should be overridden.b. Otherwise. with a parameter for the default value. indicating that it should be used after the default rule. 5. In the rule set editor. 3. ). Create a rule set which sets the default value for the output. Add a sentence to the template web presentation indicating that the default value should be overridden by creating another rule after the default rule. You have successfully created a rule based on a template. In the Presentation row. Add a sentence to the web presentation for each of these. click the Add Template rule icon ( available templates. and by making changes to the parameters within the constraints specified. To use a template to create a new rule in the rule set editor. 2. A drop down list appears showing all 2. there are often situations where you want to allow a Web user to override the default output value as programmed. 3. If there is an enumeration constraint in effect. From the list. Base your rule on a template if you want to give your business analyst the ability to modify the parameters of a rule without involving the integration developer. click the appropriate template. Business rules based on templates are dynamically modifiable in the runtime environment. You have successfully created a template for an if-then or an action rule. A new rule appears as shown in this image. Convert the rule set into a template. Letting a Web user override the default values in a rule set In a rule set. you may enter a value directly. proceed as follows: 1. In this way. define the parameters by clicking Enter Value. Creating a new rule from a template in the rule set editor Rules can be created from existing templates. proceed as follows: 1. Use the choices in the window to set the action. use the following approach. To capture this in a rule set.

separate the rule sets into two distinct rule groups. This gives the web user a pattern which is easy to follow. a folder and a name for the new decision table. If not. The best practice is to make the modifications in the tooling environment. Structure your special case rules so that they are mutually independent. and then invoke one from the other. not many. 3. and click Next. 2. If the web user is skilled. you can only call out to operations which exist in another component. 4. Keep the rule set simple. Creating a decision table This topic provides instructions on how to create a new decision table. 2. Caution should be taken when you reorder these rules in the web client. If possible. If it is difficult to create mutually exclusive rules. . make one decision. suppose you want rulesetA to call rulesetB. 5. 5. In this pattern. wire rulegroupB to the reference in rulegroupA. and then put the special case rules later. For instance. then you should order the special case rules in ascending or descending order. the behavior of the rule set will change significantly if you reorder the rules. Rule 3: if amount >= 1000 rate = primeRate + 1 Rule 4: if amount >= 5000 rate = primeRate + 2 In this situation. 4. 3. For instance suppose you have a rule set which calculates the interest rate for a loan. In the New Decision Table window. Put rulesetA in rulegroupA. 2. you can take these precautions to avoid error: 1. we suggest you assign the default value at the start. Calling one rule set from another one Currently. Add a comment to the rule set which describes the general structure of the rule set. You can do this by referencing existing rules in the rule set. In the workbench. they may be able to position the new rule correctly. To work around this. In the assembly editor. Your web users will come to learn this pattern. you cannot call one rule set from another directly. test them. add an invoke rule and select the rulesetB operation in the rulegroupB reference. Create a reference in rulegroupA with the same interface as rulegroupB. and indicating that the template should be placed before or after them. Here is how you would set it up: 1. click File > New > Decision Table. there may be a tight dependency between the rules and their order of processing. That being said. and may even break. so that it is easier for the web user to make changes to it. Add comments to each template which clearly describe where the template instance should be located within the rule set. the rule set above would be more robust if rules 2 through 4 had the following form: o if amount >= min and amount < max rate = primeRate + someValue This rule could also be converted into a template which has plug-gable values for each parameter in yellow. Put rulesetB in rulegroupB. This is the nature of sequential execution. it is more likely that new rules will be added using a template in the web client. 6. In other words. limit the actual decision count in the rule set to one. Caution should be taken to make sure that the new rule is inserted correctly in the rule set. Here are some suggestions on how to plan for possible changes to an ordered rule set. In rulesetA. given the loan amount. and then copy those changes to the runtime system. 3. 1. and the logic must be correct before you publish the changes. It may look like this: • • • • Rule 1: primeRate = 5 Rule 2: if amount < 1000 rate = primeRate.In some rule sets. For instance. From the main menu. specify a module (or create one if necessary by clicking New). Use the default pattern. switch to the business integration perspective.

The preview shows what the table will look like. Like the rule set.In the select an interface and operation window. . Decision table editor A decision table captures multi-conditional decision-making business logic in tabular format. each with its own individual use as shown here. This creates a decision table. browse to an existing rule group. use the drop down lists to select a different interface and operation. The main difference being that. a business rule that takes the form of a decision table is driven by the interaction between conditions and actions. If necessary. or click New to create one. The conditional logic is represented as a table where the rows and columns intersect to determine the appropriate action. The editor is divided into several distinct areas. 7. 5. and launches it in a new editor. In the Decision Table layout window. In the decision table editor. use the settings to determine how the decision table will appear in the editor. the action is decided by more than one condition. If you want to configure the layout of the decision table. click Next. Click Finish. in a decision table. Click any of the topics listed below to configure your new decision table. 6. the rule is presented in a tabular format that you can edit as needed. 4.

as well as the inputs and outputs that you can use in the decision table. The row along the top represents the customer's salary. and the column on the left. and the credit rating is 5. The light grey conditions area of the table (section 6) shows the multiple conditions that will interact to determine the customer's interest rate. if a customer's salary is greater than 500. o . For example. the initialization action rule (in section 2) begins by taking the input values and assigning them to the output values. The interface area o This area displays the interface that is currently being referenced.0f. The intersection of the values that are passed into each of these two conditions specify the action (section 7) that will determine the customer's interest rate. The individual areas of the decision table The areas of the decision table are as follows: 1.The decision table in this screen capture is an example of how an interest rate for a mortgage can be calculated by considering both a customer's salary and credit rating. When this business rule executes. This is done so that the business process that calls this decision table can continue to work with the original values. the customer's credit rating. then they will receive the lowest interest rate of 5.

The Initialize area o Use this area to configure an initialization action rule (an operation that will take place when data first enters a decision table). Click on the tabs to the left of this view to toggle through the pages. 8. The initialize tool bar o Use the icons in the Initialize tool bar to perform the following functions: Icon Add an initialization action rule Description Create a template from this action rule. Working with the decision table editor This editor gives you complete control over the configuration of your decision table. The properties area o This area displays properties that are relevant to the object that is currently selected in the editor. The decision table tool bar o Use the icons in the decision table tool bar to perform the following functions: Icon Add a new condition Add a new condition value Add a new action Change the orientation of the condition (this will not impact the runtime execution). The Table area o This area displays the table that shows the conditions and the actions that make up this business rule. Use this area of the decision table to define the actions that will fire when the conditions intersect.2. The conditions area o The conditions area appears in light grey. Follow the links in the Related tasks section below to learn how to do any of the following: • Add a condition or a condition value • Add an action • Add an initialization action rule • Using an otherwise condition . Some pages display properties in tabular format. o 5. o 3. In all cases. The actions area o The actions area appears to the right and below the conditions area (in this particular configuration of the decision table layout). and you can add or modify these properties by clicking the appropriate cell and then interacting with the graphical interface that appears. as well as create a template for one. o The contents of the page will differ on the activity or object chosen. Create a template for one of the expressions in this table Description 6. 7. you can type F1 to launch a dedicated help window. 4. Use this area of the decision table to define the multiple conditions that will evaluate the incoming inputs in order to fire a corresponding action.

Configuring actions in a decision table An action is an operation that is executed when the appropriate conditions are met. This default decision table is shown in this image: . Configure this condition as you did the previous ones. The bottom row represents the actions. you can further configure the terms with the inline condition builder. a basic decision table is created with two rows and three columns. By default. This default decision table is shown in this image: • • Change the layout of your decision table Work with templates In this layout. and there is one cell for a term to reference an input for the condition. and click the Add a new condition value icon ( ). The top row represents the conditions. you can add a new condition by clicking the Add a new condition icon. a basic decision table is created with two rows and three columns. The new condition term will appear in the cell as shown in this image: 2. or make your choice from the popup window that appears. and two cells for the action values. A new row will appear below the current one. If necessary. click on any cell in the conditions row. and there is one cell for a term to reference an output for the action. and add new ones to your decision table as follows: 1. and each column in it will have additional cells as shown in this image: . and two cells for the condition values that the input will be evaluated against.Working with conditions in a decision table A condition is an evaluation of the incoming message that looks for a specific value. If you want to further refine the potential values for each condition. Configure the existing conditions. 3. By default. any incoming term that matches one of the condition values in the top row fires a corresponding action as defined in the second row. Specify the incoming variable for this condition by clicking Enter Term in the top row. You can either enter a value directly in the cell. Configure the values for each of the existing conditions by clicking Enter Value. and choosing and/or composing an appropriate expression from the popup window. A new column will appear as shown in this image: 4. To add a new value.

if the business object has attributes that are also business objects. A new column will appear as shown in this image: . Initialization action rules can also be made into templates so that they can be modified in the runtime environment. To further qualify the actions. . and add new ones to your decision table as follows: 1. Specify the outgoing variable for this action by clicking Enter Term in the bottom row.In this layout. If necessary. to copy one or more input business object(s) to one or more output business object(s). Configure the values for each of the existing actions by clicking Enter Value. to set the initial value of the business objects attribute. you can further configure the terms with the inline condition builder. and choosing and/or composing an appropriate expression from the popup window. click the Add an initialization action rule ( Assign a name to your new initialization action rule in the name field. any incoming term that matches one of the condition values in the top row fires a corresponding action as defined in the second row. For example. then you can create those business objects (and this can be recursive if they in turn contain even more business objects)." • To initialize an output business object. you can add a new action row. For instance. Typically. and click the Add a new action icon ( ). To do this. Configure the existing actions. 1. In the decision table editor. proceed as follows: a. The new condition term will appear in the cell as shown in this image (note that the condition values have already been defined in this example): 2. ) icon. Working with initialization action rules An initialization action rule automatically performs an operation of some kind when data is first being passed to a decision table. You can either enter a value directly in the cell. Configure this action as you did the previous ones. b. or make your choice from the popup window that appears. To create an initialization action rule. an initialization action rule is used for the following reasons: • To set an initial value. The finished table will look something like this image: 3. More importantly. click on any cell in the actions row.

c.

d.
2.

In the Presentation field, enter a sentence that will describe what this initialization rule does to a Web user. In the Action field, use the inline condition builder to define the operation that will take place.

To create a template for the initialization action rule, proceed as follows: a. In the decision table editor, click one of the cells in the Initialize area. Click the Convert Rule or Table cell to Template ( ) icon. The rule area changes slightly. Click anywhere in the Initialize area, and the template editor will appear in the General tab of the properties area. Configure the template according to the instructions in Creating decision table templates.

b. c. d.

Using an otherwise condition
An otherwise condition is used in a decision table for situations when the specified conditions will not be met. The otherwise condition cause a rule to fire when no other evaluation can be resolved. Configure an otherwise condition as follows: 1. Configure your decision table so that at least two of your conditions have been defined. 2. Right-click a conditions cell, and select Add Condition Otherwise from the list as shown in this screen capture.

A new value appears on the condition called Otherwise as shown in this screen capture. It will always be the last value shown, and only one otherwise is allowed per condition.

Note: You cannot make a template from the otherwise condition.

Using an otherwise condition
An otherwise condition is used in a decision table for situations when the specified conditions will not be met. The otherwise condition cause a rule to fire when no other evaluation can be resolved. Configure an otherwise condition as follows: 1. Configure your decision table so that at least two of your conditions have been defined. 2. Right-click a conditions cell, and select Add Condition Otherwise from the list as shown in this screen capture.

A new value appears on the condition called Otherwise as shown in this screen capture. It will always be the last value shown, and only one otherwise is allowed per condition.

Note: You cannot make a template from the otherwise condition.

Creating decision table templates
Use a template to define the implementation and parameters for either a condition or an action value in a decision table. This template can then be used to create new cells with the same format, but with different parameter values. Decision tables, in which the conditions or actions are based on templates are dynamically modifiable in the runtime environment. Base the conditions or actions of a decision table on a template if you want to give your business analyst the ability to modify the runtime behavior of the decision table without involving the integration developer. To create a template for one of the values in your decision table, proceed as follows:

1.

In the decision table editor, choose a cell and click the Converts an expression of a decision table cell into a template ( ) icon . If you are working with an existing value in the table, then the system will examine the expression and convert all literal values into parameters. The value appears in a small square to indicate that it is a template, and a new template appears as in the General tab of the properties area shown in this image:

2.

In the Parameters row, you can create a new parameter as follows:

a. b. c. d.

e.

Click the icon. A new parameter will appear. In the Type column, click Select Type, and select an appropriate choice from the list. To add a restriction on how the parameter can be configured, click None under the Constraint column. A list showing the available choices will appear. To specify an upper and a lower limit for the constraint, click Range, and then use the choices in the window to build your expression. You can either choose an existing template which will then prompt you for a value, or you can compose it yourself by clicking the appropriate operators and values in sequence. Alternatively, to specify a list of choices, click Enumeration, and add an item to the Enumeration Items table in the Constraint tab in the properties view. The Value is the actual setting, and Presentation is how it is displayed in an actual rule.

3.

In the Presentation row, write a sentence that will appear in the cell. To insert a parameter that the user can make changes to, click the triangular icon to launch a menu, and then choose a parameter from the list. If you want to make changes to this value's implementation, click the first cell in the Expression row, and use the choices in the pop up window to build a new expression.

4.

Base the conditions or actions of a decision table on a template if you want to give your business analyst the ability to modify the runtime behavior of the decision table without involving the integration developer. click on a cell for either an action or a condition value. 3. Business rules support of weak types for basic mapping Input type any any Output type Supported Yes. and by making changes to the parameters within the constraints specified. 2. Click on the General tab in the properties area. click the template you want to edit. Such wildcards can represent a placeholder for any of the following: • an arbitrary simple type (xs:anySimpleType) • an arbitrary complexType (xs:anyComplexType) • an arbitrary type (simple or complex. and the template itself will appear in the properties area. You cannot use weak types in computations or comparisons. click Templates. In this way. To make changes to an existing template. 3. Table 1. proceed as follows: 1. The cell in the decision table will change and display the template's presentation sentence. called 'xs:anyType') • an arbitrary element (xs:any) For more advanced mapping and expressions involving weak types or attributes use other components such as interfaces or business objects maps. click None. Editing a decision table template This topic provides instructions on how to make changes to an existing templates.Using templates in your decision table The individual cells of your decision table can be populated with an existing template for the value. No No anyAttribute anyType . you can create a similar expression without having to redefine the implementation. and choose an existing template from the list. proceed as follows: 1. All existing open elements are deleted from the source and the source open elements are added to the end of the closed elements. From the Value Templates list. In the first cell of the Active Template table. To use an existing template in your decision table. In the decision table. Restrictions: • • No local variables in a rule set can be of weak type. Weak type support with business rules Business object definitions can have XSD wildcards that can be used in business rules logic. The template will appear to the right of the list. 2. Decision tables. Make your changes as needed. In the properties area of your decision table. in which the conditions or actions are based on templates are dynamically modifiable in the runtime environment.

Assignment allowed if data is of a compatible type. Concrete complex type Concrete simple type AnySimpleType anySimpleType any anyAttribute Yes. Yes. Assignment allowed. Assignment allowed if data is of a compatible type. No No No No Yes. No No . for example a string. No No Yes.Table 1. Assignment allowed if data is a simple type. Assignment allowed. All of the attributes are removed and replaced. Yes. Business rules support of weak types for basic mapping Input type Output type Supported anySimpleType Concrete complex type Concrete simple type anyAttribute any anyAttribute anyType anySimpleType Concrete complex type Concrete simple type anyType anyType any anyAttribute anySimpleType No No No No Yes.

In WebSphere Integration Developer. follow this link: Business rule management programming guide.Table 1. No Yes No anyAttribute anyType anySimpleType Concrete complex type any No Yes. Assignment allowed. Assignment allowed. Then. click Help > Software Updates. The programming guide is reproduced in the WebSphere® Process Server documentation if you prefer the information center format.com/dmndhelp/downloads/v6r2mx/wid/. Assignment allowed. you need to install additional documentation. Note: For this link to work. select the documentation that you want. You will need to restart WebSphere Integration Developer to see the additional documentation. Click Add Site and specify the following location: http://publib. in the main menu. Note: If this link fails. Choosing the correct template parameter values . and click Install. In the Software Updates and Add-ons window. To download the programming guide. Yes. Assignment allowed. you will need to have an active connection to the internet. Business rules support of weak types for basic mapping Input type Output type anyType Concrete simple type Concrete complex type Concrete simple type any Supported Yes.ibm. open the Resource perspective if you are not already there (click Window > Open Perspective > Other > Resource). and provides examples on how to use the different classes. select the Available Software tab. No anyAttribute anyType anySimpleType No Yes. See Business rule management or Business rule management if you have WebSphere Process Server installed. No Business rule management programming guide The Business rule management programming guide explains the programming model for business rules management classes. Expand the results under this repository location. as well as Project Interface and EAR files that contain examples.boulder.

WebSphere® Integration Developer and WebSphere Process Server use a different syntax for template parameter values. Refactoring business rules When you refactor parts of your business rules. If you view or edit the rule set or decision table in the Web client. This inconsistency does not affect rule set or decision table processing. please understand the following. a validation error will be added for any float value which includes the 'f' delimiter.To make sure that you don't have any syntax inconsistencies with template parameters in the runtime environment. the rule can be deployed to the WebSphere Process Server server. a validation error is added to the rule set. hover over Refactor and then choose from one of the following three options: Option Description Rename Use this option to change the name assigned to the rule. and 'f' is a float delimiter. proceed as follows: 1. A generated document can very quickly provide you with the following: • a quick understanding of a project or resource • an overview report about a complex project • the visualization of the relationships and cross references of resources within a project • a detailed report that can be printed out for certifications . From the drop-down menu. but will make it more awkward to edit some business rules in the business rules manager. the value for a float template parameter must take the form '9. and executed without error. Change Namespace Use this option to assign a new namespace to your rule. you can create a customized report using the documentation generator. In the business rules manager. right-click the business rule. Generating documentation for your rules If you need a high level synopsis of your business rules. where 9 is any number. a value for a float template parameter must take the form '99. In WebSphere Integration Developer.99f'. To refactor parts of your business rules. If the float value is syntactically correct. including how they interact with other resources within the same project. dependencies on those parts are automatically and universally updated throughout the product as a whole. This inconsistency is only a problem if you want to modify the rules and save the new version to the WebSphere Process Server server. you must manually remove the 'f' delimiter from all float values in the Web client before you can save the new version. In this case. Move Use this option to move your rule to a new folder or module.9'. 2. If the 'f' delimiter is not used in WebSphere Integration Developer. In the Business Integration view.

The Initial page opens with the existing rule books listed in the Navigation Area. 3.boulder. the Rule books page opens when business rules manager is accessed. Before you begin Make sure that both the server and client are configured correctly. Expand the results under this repository location. proceed as follows: 1. or decision table and select Generate Documentation. You can now make changes to any business rule listed. Right-click the server and select Launch > Business Rules Manager. See Considerations for installing the business rules manager for more information. In WebSphere Integration Developer. select the Available Software tab. In the Software Updates and Add-ons window. Click Login. 1. you need to install additional documentation. If the global security is not enabled. Configure the Documentation Generation wizard according to the instructions in the Generating documentation topic. At the Login page. Then. and click Install. 4. type your User ID. 5. Switch to the server view. 2. follow these steps to login. click Help > Software Updates. Note: The Login page opens only when you have enabled global security on the server. See the WebSphere® Process Server documentation for a more complete set of instructions on the business rules manager or business rules manager if you have WebSphere Process Server installed. Note: If this link fails. Click Add Site and specify the following location: http://publib. select the documentation that you want. The default URLs for accessing the business rules manager are: • https://hostname:9443/br (if security is enabled) • http://hostname:9080/br (if security is not enabled) where hostname is the name of the host.To create a report for your business rules. See Configuring server security for the business rules manager for more information.com/dmndhelp/downloads/v6r2mx/wid/.ibm. rule set. Type your Password 6. In the Business Integration view. open the Resource perspective if you are not already there (click Window > Open Perspective > Other > Resource). The business rules manager Initial page opens. Working with business calendars . Start your server. 2. Launching the Business Rules Manager The Business Rules Manager is a Web client that allows dynamic control of parameter values in template based rules that are deployed to the Websphere Process Server. Note: URLs may vary according to the environment. in the main menu. You will need to restart WebSphere Integration Developer to see the additional documentation. If global security is enabled. right-click either your rule group.

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->