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
- Open the MDM Configuration perspective in the MDM Workbench.
- Right-click on your MDM configuration project and select Export.
- Click Master Data Management > Export Data Model for IBM Business Process Manager.
- 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:
- In IBM Process Designer, open your process application.
- Create or select an existing integration service.
- Add a Web Service Integration node to your diagram.
- In the implementation properties, enter the URI for the WSDL exported from the
workbench; for example
file:///c:/my_mdm_data_types.wsdland click Generate Types.
- 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
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:
- Create a new Human Service called Search and Results Process.
- Within the process, add two Coach nodes (Input Criteria and Display Results) and one Nested Service (Invoke Search).
- In the Implementation properties pane for the nested service, select the MDM Search integration service.
model used in this article has a base object of
Where mentioned, this should be replaced with your own data type.
Figure 2. Process diagram with newly created nodes
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
|criteria||PERSON||no||The 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.|
|results||PERSON||yes||Make this a list attribute by selecting the Is List check box. This stores the response from the server.|
|connection||MDM_Connection||no|| Select the Has Default check box and set the following
|params||NameValuePair||yes||These 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
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.
- In the palette of the Coach designer, under the Variables
section, we can locate this attribute and drag it onto the Coach. Because the
String, Process Designer automatically chooses a text box control for this input.
- 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
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
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:
- Open the Display Results Coach in the designer and drag on a Table from the palette.
- In the properties pane, give the table a suitable label, such as
- 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
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
Connect it together
To complete our business process, there are three remaining steps:
- Connect the nodes in the diagram together to build the process flow.
- Map the variables to the inputs and outputs of the search service.
- 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:
- Select the Start node and connect it to the Input Criteria node.
- Connect the Input Criteria node to the Invoke Search node.
- Connect the Invoke Search node to the Display Results node.
- Connect the Display Results node to the End node.
Figure 8. 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
- 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 = new tw.object.NameValuePair(); tw.local.params.name = "memType"; tw.local.params.value = "PERSON"; tw.local.params = new tw.object.NameValuePair(); tw.local.params.name = "entType"; tw.local.params.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
Enter your criteria on the first screen, click OK, and view the results on the second screen:
Figure 11. 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.
- The MDM 11.0 Application Toolkit Information Center provides technical documentation for the features described in this article.
- The BPM 8.0.1 Information Center provides information on working with BPM and Process Center.