The Enterprise Edition of OpenIAM includes several workflow templates that can be used to jumpstart your workflow customization efforts. The workflow allow you to address tasks such as:
- Single step approval
- Multi-step approval
- Escalation of process
- Delegation of responsibility
The workflows included with the system can be used as templates to create new workflows that are tailored to the unique needs of your organization.
The steps below show how to create a new workflow using the workflow designer. The workflow designer is a graphical process design tool that runs inside the Eclipse IDE
Creating a Business Process Project
The first thing to do in order to create business processes is to create a 'Business Process Project' that will contain all
the needed artifacts related to your project:
- Business Process diagrams
- XML Schemas
- WSDL files
- Web forms
To create a Business Process Project, please select 'New->Intalio|Designer Business Process project'.
Creating a BPMN Diagram
Once the project has been created in your workspace, you can now add a new Diagram. To do so, select 'New->Business Process Diagram'.
After having given a name to your diagram, a diagram window automatically appears in Designer.
It contains one pool containing one task. Double-click on the name of the pool to enter the name of your process.
Note: This name is very important as it will determine the process endpoint when we deploy it.
Working with BPMN shapes
Processes are modeled in standard notation called BPMN. BPMN is a common language for business analysts to define the semantics in their processes. The workflow Designer embeds a complete BPMN Modeler to allow the modeling of processes.
To add new shapes in the diagram, you can select them from the palette and add them in the pool. You can hold the Control key to add multiple times the same shape.

Executable processes should always start with a 'Start Event'.
- An executable process always starts by receiving an external message. Thus if you intend to execute your process, drop the
'Message Start Event' shape in the process pool. - Double-click on the 'start event' shape to name it.
- Drop two Tasks from the 'Basic Shape' to represent the fact that two services will be invoked by the process. Double-click to edit the names.
- Finally drop an 'End Event' message shape to represent the fact that the process finishes by sending back a message with the
results. - Make sure to give a name to this last activity.
Implementing the process
Implementing the process is the part where we bind the BPMN model to existing systems and assign tasks to roles or individuals. During this phase we manage the data but we also define Exception Handlers in case a failure happens and we deal with
advanced concepts such as transactions.
For this example, implementing the process means:
- Integrating two operations from an existing web service
- Create an interface to define how our process will be exposed to the external world
- Define the graphical mappings to invoke the web-services
Integrating a web service
The Designer integrates a full WSDL Browser that allows the introspection of WSDL documents.
You can expand each WSDL document from your Process Explorer to access the different services defined in the WSDL
document as well as the operations exposed for each service. You can also access the messages included in the operations and even access the XML Schema that defines the data structure of the operations.
When integrating a web-service, we need to create a new pool to represent that a new participant will be involved in the process.
To create a pool, you can select one of the following options:
- Select the pool shape from the Palette
- Click on Control+Space in the white space of your diagram to open the diagram assistant. Select the pool.
- Once the pool is created, you need to set it to 'Non-Executable' as this pool will not represent a business process that will execute on the server.
Creating the interface Involving a new participant
At this stage we have defined which external participant our process will interact with to get the necessary information. However, we have not defined how the process will be started.
An interface is represented by a participant that is calling the process. One process can have one or multiple interfaces.
The interaction between a process and one of its interface will be described in a WSDL.
To define an interface, simply drag-and-drop a new pool in the diagram. Mark this pool as being non-executable as explained above.
The new pool we have just created does not represent a process that will execute. It is used to represent how the process will be called by the 'external world'.
In the newly created pool, drag-and-drop a BPMN task and connects it to the 'receive request' task. Create also a message
from the 'send response' task to the task you have just created.
Defining the messages
Defining an interface means defining the messages that the process is expecting to start with. It also includes the data that the process will send back.
These messages can be constructed using the XML Schema elements and the properties panel. The Designer helps you by automatically defining the message type (request, response or one-way) as well as the message name.
The only thing you need to focus one is the definition of the XML structure of the messages.
In your Process Explorer, you will find an xsd file under '/XMLSchema'. Expand the XML Schema file to see all the
root elements that can be used to define the XML Structure of each message.
Select the node that you need and drop it on the 'Request' message.
Working with Data Mapper
All the data involved in the process is defined through variables.
Variables are automatically created for you when you integrate an external WSDL or when you drop an XML Schema on a message
We can now manipulate those variables through the Data Mapper.
The Data Mapper is a graphical tool that allows you to define data transformation between variables as well as define
conditions in a process.
Click on the Mapper tab to open it and click on service and operation to define the data mapping for it.
The left-hand side of the mapper shows you the process data available at a given step while the right-hand side shows you
the variable that is ready to be mapped. For instance when you click on an activity that is sending a message, the right hand side will show you the variable that
will be sent.
Please note that in BPEL, you can theoretically manipulate all the variables at any stage of the process and the Mapper
offers a user-friendly filtering mechanism to improve the user experience.
If needed you can overwrite the default initialization by right-clicking on their name in the Data Mapper.
Mapping Data
Click on the service operation to open its corresponding Mapper. Simply invoke the operation and enter a value as the input
parameter.
When we created the interface, we have specified that the message that the process will start with. These input parameter will come from this message.
Validating and Deploying your process
The Designer will compile your process after each change indicating in real-time all the errors that are preventing the process from being deployed and executed. The list of problems is available in the problem view as well as directly on the process model.
Indeed each shape that is not correctly implemented (missing data elements, wrong mappings, invalid BPMN sequence...) is marked by a red cross so is the process in the Process Explorer.
Starting the process in BPMS Console
To start the process or to simply test it, connect to BPMS Console to ensure that our process is deployed correctly.
Open a browser to http://localhost:8080/bpms-console and use the credentials 'admin/changeit' to log in.
Your process should be part of the current available processes available. To start this process, it is now required to send a message on the process endpoint with the correct message name and the correct message structure.
The BPMS Console includes a tool that does just that: this tool creates a web-form based on the process definition to let you enter data to kick-in the process.
Integrating the process with a Form
All processes are deployed as web services. To integrate the new process into form is the same as with any other web service. If you are using the spring framework, you may use the steps below:
Bean Configuration File:
In the client-beans.xml configuration file, define the end points for the new process as shown below:
To call the service from your application, you can use the following approach: