Using the MDM Application Toolkit to build MDM centric business processes, Part 1: Integrate BPM with MDM

This is the first article in a series that describes how to integrate IBM Business Process Manager (BPM) and master data. Specifically, this series refers to BPM 8.0.1 and the InfoSphere Master Data Management (MDM) Application Toolkit, both of which are provided with MDM 11.0. This article describes a Hello World scenario that shows you how to use the application toolkit to search for and retrieve data from MDM. This data is then displayed on a BPM Coach.

Share:

Gavin Willingham (gavin@uk.ibm.com), SCRUM Master, Senior Developer, Senior Inventor, IBM

Gavin Willingham photoGavin Willingham has been a software engineer at IBM since 2006, working on both MDM Advanced Edition and MDM Collaborative Edition. Based in IBM’s Hursley laboratory, Gavin is a key individual behind IBM’s integrated workflow capability and the MDM Application Toolkit. He runs the development team that constructs the MDM Application Toolkit and holds detailed knowledge of both MDM and BPM technologies. As an IBM Senior inventor Gavin currently holds a number of patents in various subject areas.



Jay Limburn (jay@uk.ibm.com), Senior Technical Staff Member, IBM

Jay Limburn photoJay Limburn is an IBM Senior Technical Staff Member and IBM Senior Inventor currently working as a Software Architect on IBM's core MDM product set in IBM Software Group's Information Management division based in Hursley UK. Jay is chief architect for the client applications and interfaces division, where he is responsible for designing capabilities that empower business users with master data driven applications, encompassing data governance, business process management, data stewardship, and mobile. Jay has a solid background in MDM technologies and has additional areas of expertise in model-driven development, solution delivery and design, Eclipse, and J2EE technologies. Jay has become a recognized industry expert in his field, presenting on MDM and data governance related topics at a number of conferences and has produced a number of articles on this subject. Jay has also filed 10 patents in these areas.



03 October 2013

Overview

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

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

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, myserver.mydomain.com.
  • 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

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

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

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

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

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.

Execution

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

Summary

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.

Resources

Comments

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 Information management on developerWorks


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=1
Zone=Information Management, Business process management
ArticleID=947131
ArticleTitle=Using the MDM Application Toolkit to build MDM centric business processes, Part 1: Integrate BPM with MDM
publish-date=10032013