Build and deploy a business process model using WebSphere Business Process Modeler Advanced and Lotus Forms, Part 1: Create and export the model

This tutorial shows you how to create a business process in IBM® WebSphere® Business Modeler Advanced V6.1.2 and export it to WebSphere Integration Developer. Using an example human resources task (hiring an employee), it guides you through creating process elements, designing the workflow, and generating forms using Lotus® Forms V3.


Attila Kiss (, Student, Budapest University of Technology and Economics

Attila KissAttila Kiss attends Budapest University of Technology and Economics and will graduate as a Computer Science Engineer in 2008. He specializes in IT infrastructure management. He has been working with WebSphere products with special focus on business modeling.

Viktor Muller (, Student, Budapest University of Technology and Economics

Viktor Muller PhotoViktor Müller attends Budapest University of Technology and Economics and graduates as a Computer Science Engineer in 2009. He specializes in information system development. He has worked with WebSphere products with a special focus on BPEL development.

10 December 2008

Before you start

About this series

This series of four tutorials covers basic use of the complete IBM WebSphere business process management (BPM) software suite for a service-oriented architecture (SOA) environment. You will learn business process modeling, implementation, execution, and monitoring. Using an end-to-end example business process, the series helps you to understand the BPM life cycle and and how IBM products support this life cycle.


  • Basic knowledge of Eclipse technology.
  • Basic understanding of process modeling concepts and notation.

System requirements

  • IBM WebSphere Business Modeler Advanced 6.1.2
  • IBM Lotus Forms Designer 3.0.1
  • IBM Lotus Forms Viewer 3.0.1

Informal description of the modeled process

In this tutorial, we model a typical Human Resource (HR) management activity: the process of hiring a new employee. The process is quite simple, so you can focus on the modeling features instead of on the details of the process. The project code is available in Downloads.

Figure 1. The human resources process
The human resources process

As shown in Figure 1, the process is started by the arrival of a job application. If the application is submitted through a public web site then the necessary data is entered there and is available as input for the process. (This step is not part of the process.) Otherwise if the application is sent via post or e-mail then a clerk records the data manually. After the application data is available an automatic precheck step is performed. If the application passes this step then an appointment is made for an interview. After the interview is complete, and if the applicant passes, then he can enter the next round until he fails or get accepted. If he gets accepted then appropriate accounts are created for him in the back-end system.

Starting the modeler and creating a new project

In this section you create a business modeling project. The project is the top-level container in your project tree, and holds your various catalogs, resources, business items, organizations, and other modeling elements. To create a project do the following:

  1. Start the IBM WebSphere Business Modeler Advanced 6.1.2 (hereafter referred to as Business Modeler).
  2. After the startup the Quickstart wizard opens. (If it does not, select File => New Business Modeling Project.)
  3. Specify the project-related names.
  4. Click Next.
  5. Select BPMN style as the look for your diagram. Business Process Modeling Notation (BPMN) is an Object Management Group (OMG) standard for depicting steps in business processes.
  6. Leave the Free-form layout for your default editor.
  7. Click Finish.
Figure 2. Creating a new business modeling project
New business modeling project

A project (HRProject) is created with an empty process (HRProcess). You can verify these objects in the project tree.

Figure 3. The project tree
Project tree

You can customize the working area to best fit your needs by clicking Apply X-Pane Layout on the toolbar.

Creating the process

This section describes how to implement the HR process elements without the connections and the business items. We simply drop the appropriate process elements onto the canvas. To do this, use the Palette as shown in Figure 4.

Figure 4. The elements palette
Elements palette

Creating a human task

  1. Activate the 2-Pane Layout.
  2. Click the Human Task icon on the elements Palette.
  3. Click on the drawing area.
  4. Rename the task.

Create the first two tasks corresponding to the informal process description (refer to Figure 1). The LoadApplicationToRepository is a task, and the RecordingApplicantData is a human task.

Figure 5. Human and local tasks
Human and local tasks

Your tasks or other process elements may look different, depending on the modeling mode that you are in. The modeling modes allow you to view the appropriate level of information for your model. We chose the WebSphere Process Server mode because we will export our model for deployment to WebSphere Process Server. To switch between modeling modes, select Modeling => Mode, or use the toolbar icon.

Figure 6. Switching modeling modes
Switching modeling modes

Creating a Merge element

  1. On the elements Palette, select the Merge icon.
  2. Select Merge.
  3. Click on the drawing area.
Figure 7. Creating a Merge element
Create a Merge element

Creating the rest of the diagram

The next step is to add the remaining parts of the informal diagram. To do this, follow the steps above to create the model elements. The following table lists the type of the elements. To find the appropriate element on the toolbar move your cursor over the icons or click on the rectangle to open the option list.

Passed? simple decision
Interview while loop
Passed2? simple decision

Finally, drop three terminate nodes onto the drawing area.

The difference between terminate node and end node is important. A terminate node marks the end of a process. Every process, subprocess, and loop must have at least one terminate node. When a flow reaches a terminate node while the process is running, all flows in the process stop. If at all possible, all paths in a process should terminate at a common completion point.

An end node is a visual marker within a process that identifies where a particular flow ends. Other concurrent flows within the same process will still continue executing.

Your drawing area should look similar to Figure 8.

Figure 8. Completing the diagram
Complete the diagram

Create the core of the Interview while loop

  1. To enter the loop click the plus icon on the Interview while loop.
  2. Create a human task named MakeAnInterviewAppointment.
  3. Create the a human task named Interview.
  4. Create a terminate node.
    Figure 9. The Interview while loop
    The Interview while loop

To exit the loop:

  1. Right-click on the drawing area.
  2. Select Return to Parent Process on the context menu.
    Figure 10. Exiting the Interview while loop
    Exit the loop

Creating business items

In this section you model the recommended data for the HR process. Suppose that we need some information about the applicant. We also need to record information from the interviews. We chose to model our HR process using a separate business item for each type of data. First create the interview data.

Creating interview data

  1. Right-click Business Items in the project tree.
  2. Select New => Business Item.
    Figure 11. Creating a new business item
    Create a new business item
  3. Type the name of the item (InterviewData ).
  4. Click Finish.
  5. Click Add to add new attributes (located at the bottom of the view).
    Figure 12. Interview data
    Interview data

    Create two attributes, one for the location and one for the time of the interview. The type of the Location is Text, and the type of Time is DateTime. To change the type for the Time attribute (from Text to DateTime):

  6. Click on Text.
  7. Click on the square next to Text.
  8. Select DateTime from Basic type.
  9. Click OK.
  10. Click OK on the Confirm Operation dialog, if it appears.
    Figure 13. Selecting a type for the interview time
    Select type for interview time

Creating the applicant base data

Now we create the base data for the applicant. The creation of the ApplicantBaseData business item is similar to the creation of interview data. The name and the type of the attributes are shown below. Consider that there are some advanced features to define the attributes. In this step we show how to specify some extra properties.

Figure 14. Base data for the applicant
Base data for applicant
  1. Change the Minimum and Maximum values for the Givenname and Phonenumber attributes. This controls the cardinality of the attribute.
  2. Change the Read only value for all the attributes to True. This makes the variable read-only after it is initialized.
  3. Change the Unique value of the Emailaddress attribute to true.
Figure 15. Changing data attributes
Changing data attributes

Creating application data

Now define the last business item for the application. The application contains the base data of the applicant and other information such as the comments of the interviewer and the announcer department.

  1. Create a new business item.
  2. Add three attributes: ApplicantBase, Department, and Comments.

    The ApplicantBase attribute is a complex type: ApplicantBaseData, created earlier. To change the type:

    1. Click the square next to type.
    2. Click on Complex type.
    3. Select HRProject => Business Items => ApplicantBaseData.
    4. Click OK.
      Figure 16. Selecting a type
      Selecting a type

The type for both Department and Comments is Text. The Comments attribute has 0..n cardinality.

Figure 17. Selecting types for other attributes
Selecting types for other attributes

Connecting the elements – creating the flow

In this section you specify the data and control flow between the process elements according to the informal process description (Figure 1). To create connections between elements:

  1. Click the Connection icon on the top of the Palette.
  2. Click the source on the drawing area.
  3. Click the target on the drawing area.

With the connections we can specify data flow or workflow. Connections without associated data are used to specify workflow; connections with associated data are used to specify data flow.

Create two connections. The first connection (with associated data) represents the scenario in which the application comes from the Internet. The process is triggered when the application form is completed and sent to the company. The second connection (no associated data) represents the scenario in which the applicant sends the application offline, and the HR department opens the post and registers a new human task to record the application.

Figure 18. Specifying data flow and workflow
Specifying data flow and workflow

The human task RecordingApplicantData is associated with the start node. This means that if the process is triggered this way, there is no input data for the process. (In reality there is input data, but it is on paper, delivered by the postman and waiting to be recorded.) When the process starts with the business item LoadApplicationToRepository, the input data is passed to the process.

Tip: You can automatically arrange your drawing area by right-clicking the drawing area and selecting Auto-Layout Left To Right.

Figures 19 and 20 show the connected processes.

Figure 19. The connected processes (1)
The connected processes (1)
Figure 20. The connected processes (2)
The connected processes (2)

Figure 21 shows the elements inside the interview loop.

Figure 21. The interview loop
The interview loop

Changing associated data

When the process is triggered by sending a form over the Internet, an application is received. Therefore, you must change the default data on the input connection from Text to Application. To change the associated data:

  1. Click on Connection.
  2. Select the Attributes view on the General tab.
  3. Select Browse under Associated data.
  4. Select the type.
  5. Click OK.

Or, if a business item is needed, the easiest way to associate data is to do the following:

  1. Click on the business item.
  2. Drag and drop to the Connection.
Figure 22. Change associated data type to Application
Change associated data type

You must associate InterviewData with the incoming connection of the Interview task inside Interview loop.

Figure 23. Associate interview data with a connection
Associate interview data with a connection

Creating repositories – accessing data inside the loop

In this step you create repositories. Repositories are storage areas for the information that is created in a business process. Every repository has a name and an associated type. Usually the name of a repository is the same as the name of the business item it contains.

Repositories are the only way to pass information to tasks within a loop, or to pass information out of a loop. Consider that we need to read and write the application data in the interview loop. In later steps we specify the branch condition of the decisions and the exit condition of the loop. The repositories are accessible from the condition expression.

To create a repository:

  1. Click Repository on the Palette.
  2. Click on the drawing area.
  3. Click the Attributes view.
  4. Select the General tab.
  5. Select Browse under Associated data.
  6. Select the data.
  7. Click the Repository Details tab.
  8. Select the quantity (this specifies how many elements can be stored).

Create a repository named Application with a data type Application and a repository named Status with a data type of Boolean. The Status repository stores the information for the branch and loop conditions.

Name of the repositoryData

The next step is to define the connections between the tasks and the repositories. The procedure is similar to connecting other elements as described earlier. However, use caution when clicking the source and target of the tasks. In some modeling modes, you can specify input criteria. An input criterion defines a particular combination of inputs that can start a process, task, or service. But in this tutorial we need the simple trigger method, the AND combination of the two inputs. This means that the two inputs must exist at the same time. To define the trigger method, click the Attributes view and select the Input logic tab. Both Input and Input-2 should be checked for the only input criterion Input Criterion as shown in Figure 24.

Figure 24. Specifying the trigger method
Specifying the trigger method

Connect the repositories to the tasks as source or as target as shown in the table below.

RepositoryAs source/as targetTask
Application As target LoadApplicationToRepository
Application As target RecordingApplicantData
Application As source PreCheck
Application As source Notification
Application As source Notification2
Application As source RegisteringTheNewEmployeeToBackEnd
Status As target PreCheck
Figure 25. Connecting repositories to tasks
Connecting repositories to tasks

Connect the repositories to tasks inside the loop

In this step you access outside data inside the loop. To do this:

  1. Enter the loop by clicking the plus sign on the loop.
  2. Click one of the tasks to be wired.
  3. Select the Attributes view.
  4. Select the Inputs or Outputs tab depending on which you plan to set.
  5. Click Add.
  6. Select the Associated data.
  7. Switch the Output target or Input source from Flow to Repository.
    Figure 26. Connecting repository data with tasks
    Connecting repository data with tasks
  8. Save the project (this is necessary to get the Repository value options).
  9. Scroll down the view.
  10. Click Browse next to the repository value text box.
  11. Select Local repositories and choose a suitable repository.
    Figure 27. Selecting a repository
    Selecting a repository

This tutorial assumes that we need the application as input to both MakeAnInterviewAppointment and Interview. Therefore, we create Application and Boolean outputs for the Interview task.

Application Input MakeAnInterviewAppointment
Application Input Interview
Application Output Interview
Status Output Interview
Figure 28. The tasks MakeAnInterviewAppointment and Interview
MakeAnInterviewAppointment and Interview

Creating the branch expression

In this step you create the expression for the output branches of the decisions. Remember that we made a Status registry to log that the application is still acceptable or already rejected. Because of this we use the content (Boolean value) of the Status registry to make the expression of the branches. To make the branch expression:

  1. Select the decision Passed?.
    Figure 29. Selecting the output branch for editing
    Selecting the output branch for editing
  2. Select the Attributes view and the Output branches tab.
    Figure 30. The Output branches tab
    The Output branches tab
  3. Click on the Yes branch (this is for activating the Edit button).
  4. Scroll down to the Expression.
  5. Select Edit.
  6. Click Add to add a new Simple binary expression.
  7. In the Expression composer, the first term is Modeling artifact.
    Figure 31. Composing an expression for the Status registry
    Composing an expression for the Status registry
  8. Set First term details to the Status registry.
  9. Set Operator to is equal to.
  10. Set Second term to Boolean.
  11. Set Second term value to true.
  12. Click Apply and OK (scroll down to find the Apply button).

Repeat these steps for the Passed2? decision.

Tip: You can set up this simple expression (Status is equal to true) by choosing the Status repository for the First term and leaving the default values for Operator (--Select operator--) and the Second term (Select type).

Setting up the loop condition

In this step you will create the expression for exiting the loop. Suppose that we have a Status registry, in which we store the status of the application. More precisely we store the information that the application is good enough to continue, but we do not have predefined information when the application can be accepted. One solution is to change the type of the Status registry from boolean to any type that can hold more than two values (for example, the values rejected, pending, and accepted).

We decided to create a new registry in which we store the number of the completed interview rounds and we accept the application after the third round.

  1. Create a new registry and name it InterviewCount.
  2. Set the registry data (Associated data) to Integer.
  3. Click on the Interview loop.
  4. Select the Attributes view.
  5. Select the Loop condition tab.
  6. Scroll down to Expression and click on Edit.
  7. Click on Add to add a new Expression.
  8. Create the first half of the expression as you did before (Status is equal to true). This is for the case in which the applicant is rejected.
  9. Click on Add again to create the second half of the expression.
  10. Select AND for the Operator from the drop-down list.
  11. Create the expression. The First term is Modeling artifact. Select InterviewCount for First term details. Operator is is less then. Second term is Number with the value is 3,0.
  12. Click Apply and OK.
Figure 32. Composing an expression for InterviewCount
Composing an expression for InterviewCount

Generating forms for human tasks

This section includes examples of how to use form creation and integration with Lotus Forms. With this feature, you can specify electronic forms for your human task process.

First, you create electronic forms for each human task. A human task can have two forms: an Input form and an Output form. The input form is created based on the task's input data elements and the output form is created based on the task's output data elements. You can also specify a common form for both the input and the output.

In this tutorial we only generate the forms based on the human task input and output data and we do not modify or customize them (except for one minor customization). For further information about Lotus Forms 3.0 see Resources.

Generating forms for the human task (RecordingApplicantData)

You can generate forms for a human task in several ways. This tutorial demonstrates two ways. Before you generate the forms make sure the human task has the appropriate input and output data. If you add or modify the input or output data after you generate the form, your changes will not take effect in the form. To create the forms:

  1. Select the RecordingApplicantData human task.
  2. Right-click the human task.
  3. Select Generate Form from the context menu. The Generate forms from this human task dialog opens.
    Figure 33. Generating Lotus forms
    Generating Lotus forms
  4. Click New Form next to the Output form. This task does not have any input data to display so we do not generate an input form.
    Figure 34. The Generate forms from this human task dialog
    Generate forms from this human task
  5. Name the form RecordingApplicantDataForm and click OK.
  6. Click Finish.
    Figure 35. The Create a form dialog
    Create a form
    Figure 36. Viewing the completed form
    Viewing the completed form

Now the form is generated. You can check the form in the project tree under the Process element. To see the form created do the following:

  1. Select the RecordingApplicantData human task.
  2. Select the Attributes view.
  3. Select the Forms tab.
  4. Scroll down to the Output Form section.
  5. Select Edit. RecordingApplicantDataForm is opened.

    Lotus Forms Designer 3.0.1 must be installed to edit the page, and Lotus Viewer 3.0.1 to view the page. We installed the designer tool as a part of Business Modeler (as a plug-in). This integrates the designer and modeler in one tool, which means you can switch between perspectives instead of programs.

  6. If the perspective is not switched automatically, switch the perspective to the IBM Lotus Forms Designer perspective. Click the Open Perspective icon as shown in Figure 37.
    Figure 37. Switching to the Lotus Forms Designer perspective
    Lotus Forms Designer perspective
  7. Select the IBM Lotus Forms Designer perspective and click OK.
    Figure 38. Opening the Forms Designer perspective
    Forms Designer perspective

We do not need to customize this form, so close this file and switch back to the Business Modeling perspective.

Generating the input form for the task MakeAnInterviewAppointment

In this step you generate the input form for the human task MakeAnInterviewAppointment, but this time we show another way to create the input form. As before it is important to connect the input and output data before generating the form. To generate the form:

  1. Get inside the loop by clicking the plus icon on the loop.
  2. Select the MakeAnInterviewAppointment human task.
  3. Select the Attributes view.
  4. Select the Forms tab.
    Figure 39. The Forms tab for MakeAnInterviewAppointment task
    Forms tab for MakeAnInterviewAppointment
  5. Click New next to the Input form text area.
  6. Name the Form MakeAnInterviewAppointmentInputForm.
  7. Click Finish.
    Figure 40. Generating the input form
    Generating the input form

The form is created. Suppose that the input data contains some sensitive personal information that should not be displayed for the purpose of arranging an appointment. In this case, you can remove those attributes from the form. To remove the attributes:

  1. Click Edit on the Forms tab next to the generated Input form.
  2. Change the perspective if it has not been changed.
  3. Select the DateofBirth, Placeofbirth and Mothername labels and associated input fields.
    Figure 41. The generated input form
    The generated input form
  4. Delete these items by right-clicking and selecting Delete from the context menu.
  5. There is a problem with the layout (see the warning in the Problems view). To fix it:
    1. Click on the Emailaddress label.
    2. In the Properties view open the General options.
    3. Find the itemlocation option.
    4. Open the location list and the below option.
    5. Replace Sid_5_label with GivennameTable.
      Figure 42. Fixing the layout problem
      Fixing the layout problem
  6. Save your form and close it.
  7. Switch back to Business Modeling perspective.

Generating the rest of the forms

In this step you generate the remaining forms. Use data in the following table to generate the remaining three forms.

Human taskInput / output formName
MakeAnInterviewAppointment Output InterviewDataForm
Interview Input InterviewInputForm
Interview Output InterviewOutputForm

With this step you have finished the main part of the tutorial. The final task is to export the project.

Exporting the project for use in WebSphere Process Server

After creating the project we export it for eventual deployment to WebSphere Process Server 6.1.2. (We will first export it to WebSphere Integration Developer 6.1.2 for implementation.) Exporting the project means that:

  • The modeling project is transformed to a standard Business Process Execution Language (BPEL) process with some restrictions.
  • Several extra features such as the business items are exported to XSD.

Transformation rules govern what is supported for transformation and what are the target objects. For example, a local repository transforms to a BPEL variable.

For model portability, we decided not to add implementation details to the model. To export the model for use in Process Server:

  1. Right-click on the project in the project tree.
  2. Select Export from context menu.
  3. Select WebSphere Integration Developer.
    Figure 43. Exporting the business process model
    Exporting the business process model
  4. Click Next.
  5. Specify a target directory.
    Figure 44. Export options for Modeler
    Export options for Modeler
  6. Click Next.
  7. Leave default values.
  8. Click Finish.
    Figure 45. Export details
    Export details

After clicking Finish a message box displays stating that “Export finished with warnings”. If you click Details you can view the warnings regarding modeling artifacts that cannot be mapped to WebSphere Integration Developer objects.

Lessons learned

  • Creating a process model
  • Creating business items
  • Creating repositories
  • Specifying conditions
  • Generating Lotus Forms for human tasks
  • Exporting models for use in WebSphere Process Server


Business Modeler project (.mar)HRProject.mar88KB
Project Interchange File for HRProjectHRProject.zip666KB





developerWorks: Sign in

Required fields are indicated with an asterisk (*).

Need an IBM ID?
Forgot your IBM ID?

Forgot your password?
Change your password

By clicking Submit, you agree to the developerWorks terms of use.


The first time you sign into developerWorks, a profile is created for you. Information in your profile (your name, country/region, and company name) is displayed to the public and will accompany any content you post, unless you opt to hide your company name. You may update your IBM account at any time.

All information submitted is secure.

Choose your display name

The first time you sign in to developerWorks, a profile is created for you, so you need to choose a display name. Your display name accompanies the content you post on developerWorks.

Please choose a display name between 3-31 characters. Your display name must be unique in the developerWorks community and should not be your email address for privacy reasons.

Required fields are indicated with an asterisk (*).

(Must be between 3 – 31 characters.)

By clicking Submit, you agree to the developerWorks terms of use.


All information submitted is secure.

Dig deeper into WebSphere on developerWorks

ArticleTitle=Build and deploy a business process model using WebSphere Business Process Modeler Advanced and Lotus Forms, Part 1: Create and export the model