Using the MDM Application Toolkit to build MDM centric business processes, Part 1

Integrate BPM with MDM



This series explains how IBM InfoSphere Master Data Management (MDM) and IBM Business Process Manager (BPM) can come together to bring high value, trusted data to the lines of business as part of a business process. It’s true that data that is not trusted or perceived as being accurate will be ignored or underutilized within an organization. As the volume of data grows exponentially year after year, so do the challenges of maintaining the accuracy of the data and therefore the trust that an organization holds in their data is reduced. This lack of trust results in organizations not treating the information as an asset as they are unable to deduce the insight that is required from incomplete and inaccurate information. Similarly, organizations that are implementing orchestration across their business processes will not get the business benefits that they aspire to, if they are unable to operate their processes against accurate, trusted data. Bringing together MDM and BPM solves these issues. By defining business processes that enforce the quality of your mastered data through stewardship and governance processes, as well as providing business processes with accurate trusted data to operate against, your operational efficiency will improve. Such projects, when run well, allow all lines of business to unlock the insight stored within an organizations' data and use it to make decisions quicker and more accurately.

To reflect the needs of organizations facing these challenges, IBM has packaged their industry leading BPM product with its MDM product to provide a robust, integrated MDM Workflow engine, offering a set of seamlessly integrated capabilities that allows for rapid construction of MDM orientated business processes. Throughout this series of articles, you will understand the features of the integrated Workflow engine provided by IBM BPM and how you can use them to bring master data into your business processes in a quick and effective manner. From initial configuration through to build and deployment, this series takes a step-by-step overview to allow you to fully embrace these integrated capabilities.

This article provides an overview of the features available in IBM InfoSphere MDM V11.0. It describes the steps required to build a simple Hello World MDM Workflow using IBM Business Process Designer and the IBM MDM Application Toolkit. This article also describes how the MDM Workbench has been enhanced specifically for the use of the MDM Workflow engine and demonstrates how simple it is to execute an operation against an IBM MDM engine. Later articles in this series will cover advanced UI features, such as displaying a hierarchy, how to handle virtual and physical styles of MDM, and security considerations when deploying your business processes.

Enhancements to the MDM Workbench

In MDM 11.0, the MDM Workbench has been enhanced to enable you to export your data model to a format that can then be imported into IBM Process Designer. This removes the need to manually create corresponding data types within IBM Process Designer to represent your MDM business objects. The data model is exported as a Web Service Definition Language (WSDL) file. The export process is the same, whether you are exporting the model from a physical or virtual configuration. For the purposes of this article, we are using a virtual configuration.

Exporting the data model from the MDM Workbench

  1. Open the MDM Configuration perspective in the MDM Workbench.
  2. Right-click on your MDM configuration project and select Export.
  3. Click Master Data Management > Export Data Model for IBM Business Process Manager.
  4. Ensure the correct project is selected and choose a suitable location for the WSDL file.

Using the data types within IBM Process Designer

With the MDM business objects that represent our MDM domain exported, the remainder of this article focuses on using the types within IBM Process Designer.

Importing the data model into IBM Process Designer

You can import the WSDL into IBM Process Designer, which is described in detail in the MDM InfoCenter by following these steps:

  1. In IBM Process Designer, open your process application.
  2. Create or select an existing integration service.
  3. Add a Web Service Integration node to your diagram.
  4. In the implementation properties, enter the URI for the WSDL exported from the workbench; for example file:///c:/my_mdm_data_types.wsdl and click Generate Types.
  5. Click through the wizard to generate the data types.

You should now have the data types listed in the Data section of your process application. See Figure 1 for an example of imported types. Once imported, you can safely delete the web service integration node (and integration service if no longer needed) you created for the import.

Figure 1. Example of imported data types
A screenshot from process designer showing imported data types
A screenshot from process designer showing imported data types

Beginning a human service

If you have not yet imported the MDM_Application_Toolkit.twx file into IBM Process Designer, you must do it before going any further. More information on importing the MDM Application Toolkit can be found in the MDM Information Center.

Using the MDM Application Toolkit and the enhancements to the MDM Workbench allows MDM’s rich library of virtual, hybrid, and physical interfaces to be invoked without the need to write any code. To illustrate the simplicity of invoking the MDM services with these data types imported, we'll now create a simple Coach that takes a single field as an input (in this example name) and invokes an MDM search service. We'll then add a Coach to display the search results:

  1. Create a new Human Service called Search and Results Process.
  2. Within the process, add two Coach nodes (Input Criteria and Display Results) and one Nested Service (Invoke Search).
  3. In the Implementation properties pane for the nested service, select the MDM Search integration service.

The data model used in this article has a base object of PERSON. Where mentioned, this should be replaced with your own data type.

Figure 2. Process diagram with newly created nodes
A screenshot from process designer showing the new diagram
A screenshot from process designer showing the new diagram

Creating the variables for the service

Within the Search and Results Process human service, we add the variables needed to represent our MDM business objects. These can all be created as private variables within the human service; however, it can be helpful to make the connection an input variable to help combine services in the future.

From the Variables tab within the Search and Results Process human service, create the following variables:

Table 1. Process variables
NameTypeIs List?Description
criteriaPERSONnoThe input for the search is an instance of the data type you are searching for. It uses whatever fields you have populated as the search criteria.
resultsPERSONyesMake this a list attribute by selecting the Is List check box. This stores the response from the server.
connectionMDM_Connectionno Select the Has Default check box and set the following values:
  • hostname: The name of your server, for example,
  • port: For example, 9080.
  • serverType: This is optional and can be omitted.
  • The rest of the options should be self-explanatory.
paramsNameValuePairyesThese will be used as arguments to the search service.

When created, your variables list should appear as in Figure 3:

Figure 3. Example of variables
A screenshot from process designer showing variables
A screenshot from process designer showing variables

Designing the coaches

The next step is to design the two Coaches. This first screen needs UI controls to accept the search criteria. The results screen needs to display the items retrieved from MDM.

For the search criteria, we are limiting the user to searching by last name only. In our model, this is the onmlast attribute, in the LGLNAME of my PERSON type.

  1. In the palette of the Coach designer, under the Variables section, we can locate this attribute and drag it onto the Coach. Because the type is String, Process Designer automatically chooses a text box control for this input.
  2. By default, the label is the name of the attribute, which in this case is not very descriptive. By selecting the new text box in the designer and going to the properties panel, we can change the label to Last Name.
Figure 4. Variables section
A screenshot from process designer showing the variables section with currentItem highlighted

It is possible to create a text box from the palette directly, rather than dragging the variable onto the Coach. If you use this method, be sure to set the Binding in the properties pane (see Figure 5).

Figure 5. Text box binding
A screenshot from process designer showing the binding for a text box
A screenshot from process designer showing the binding for a text box

You also need a button on this screen to start the search. If the Process Designer did not automatically add one to the Coach, drag a button on from the palette. Give it a label of OK and leave the other properties, including Binding, as they are.

For the results Coach, the data returned from the search is in a list. The easiest way for Process Designer to display a list of items is in a table:

  1. Open the Display Results Coach in the designer and drag on a Table from the palette.
  2. In the properties pane, give the table a suitable label, such as Search Results.
  3. Set the binding to the business object that represents the search results; in this case, the results object. By binding the table to a list attribute, each row in the table represents an item in that list.
Figure 6. Table binding
A screenshot from process designer showing the table binding
A screenshot from process designer showing the table binding

As with the criteria Coach, it is possible to drag the results variable from the palette onto the Coach. When you drag a list attribute, a table is automatically created with a column for each data type attribute. In the PERSON type, however, there are a lot of attributes and it is simpler to manually select the ones you want. These can be individually dragged from the palette and dropped onto the table. It is important to drop the attributes onto the table and not directly onto the Coach.

In the palette, there are two attributes beneath the results variable: currentItem and listSelected. For the table, the currentItem attribute represents the current row. You should drag your attributes from the currentItem attribute (see Figure 4). In our example, we have selected last name, first name, and gender. Provide suitable labels for the text boxes if necessary so your Coach looks like Figure 7:

Figure 7. Results Coach design
A screenshot from process designer showing the design of the results screen
A screenshot from process designer showing the design of the results screen

Connect it together

To complete our business process, there are three remaining steps:

  1. Connect the nodes in the diagram together to build the process flow.
  2. Map the variables to the inputs and outputs of the search service.
  3. Initialise the search parameters.

Navigate back to the diagram tab of the Human Service. If you created buttons on both of your Coaches, then select the Sequence Flow (Figure 8) tool and connect each node in sequence:

  1. Select the Start node and connect it to the Input Criteria node.
  2. Connect the Input Criteria node to the Invoke Search node.
  3. Connect the Invoke Search node to the Display Results node.
  4. Connect the Display Results node to the End node.
Figure 8. Sequence flow tool
The sequence flow tool

Finally, switch back to the Selection Tool and select Invoke Search. In the properties pane, select Data Mapping. This pane configures the inputs and outputs for the search service. Map the variables as follows:

  • Output Mapping
    • result: tw.local.results
  • Input Mapping
    • Connection: tw.local.connection
    • inputObject: tw.local.criteria
    • Parameters: tw.local.params

Your mappings should now look like Figure 9:

Figure 9. Service mappings
Screenshot of entered mappings
Screenshot of entered mappings

You will notice that we have set the parameters to the params variable that we created earlier, but have not set any values for this variable. Select Pre & Post in the properties pane. This pane is for entering Javascript code to execute before and/or after the service runs. You need to configure the parameters before they are passed to the service. Use the Pre-execution Assignments box to set these parameters:

  • If using a physical MDM server, there are no parameters required and you can just initialise the params list without any entries.
  • For a virtual configuration, you must supply both memType and entType. Optionally, you can also supply minScore and maxRows.

An example of the code to enter is shown in Listing 1:

Listing 1. Example of Pre-execution Assignment of memType and entType
tw.local.params = new tw.object.listOf.NameValuePair();
tw.local.params[0] = new tw.object.NameValuePair();
tw.local.params[0].name = "memType";
tw.local.params[0].value = "PERSON";
tw.local.params[1] = new tw.object.NameValuePair();
tw.local.params[1].name = "entType";
tw.local.params[1].value = "id";

Save your process.


You are now ready to run the process. Click the run icon in the top corner of Process Designer.

Figure 10. Run process
The run process icon

Enter your criteria on the first screen, click OK, and view the results on the second screen:

Figure 11. Search results
A screenshot showing the results screen populated with search results
A screenshot showing the results screen populated with search results


In this article, we introduced you to the concepts that demonstrate how quickly and easily you can build an MDM Workflow application using InfoSphere MDM and the integrated workflow engine powered by IBM Business Process Manger. The MDM Application Toolkit, a component of the InfoSphere MDM platform provides robust integration capabilities allowing MDM Workflows to be constructed that operate against the rich services layer without the need to write any code. Using these capabilities, it is possible to build complex applications using the configuration-based approach outlined previously, without a requirement for detailed knowledge of web technologies, web services, or a detailed knowledge of InfoSphere MDM. Using the capabilities outlined in this article, you can construct MDM workflow applications quickly and easily with complete involvement of business and technical users, allowing the quick and effective rollout of business processes that can easily evolve over time with the needs of the business.

The other articles in this series will further demonstrate the robustness of this platform and articulate how you can use some of the more advanced features of the MDM Application Toolkit to further enhance your Master Data and Business Process initiatives.

Downloadable resources

Related topics


Sign in or register to add and subscribe to comments.

Zone=Information Management, Business process management
ArticleTitle=Using the MDM Application Toolkit to build MDM centric business processes, Part 1: Integrate BPM with MDM