Saturday, November 27, 2010

Creating Customized Search Strategy in IBM MDM

Introduction:
The Infosphere MDM Server provides us with a number of transactions to retrive the information stored by it in order to come up with high value customer data for analytic's ,reports ,to device new marketing strategies. The OOTB solutions can be customized so as to suit the clients requirements across various domains/industries.

Business Scenario:
Consider a scenario  of  the customer care center where thousands of customer calls up for various services ranging from the registering comapliants,to know about the various offers & services ,for a critical data change like address phone number. The call center agent will do a search based on the information provided by the customer to  validate his identity by asking a set of questions like dob, lastname,phone number etc.
The customers generally don’t like to wait on the line for long time and hence the performance of the system / response time is a major criteria.

Implementation  Strategies:
1)End to End Customization
2)Extending the Search rule & utilizing the search framework.
The first approach is already discussed in one of my previous blogs.

There are a few OOTB transactions available for ready use in the MDM server. For e.g.: if your search criteria is  related to person details like given name one,lastname etc you can think of using the search Person .If the search criteria is from the contract region we can use the searchContract.Also if the criteria is a mix of person & contract details you can use the searchFSParty transaction. The OOTB solutions make use of the SearchParty external rule.

In the case of my client they provide a unique card called privilege card for all it customers. This card number is accommodated in the data model as an extension on the CONTRACT table.None of the OOTB solutions support for searching based on an  extended field I have to write sqls for search based on this extended field.



In general the approach you can follow is
1)Common Search Exclusion
When ever a search request comes in check whether the criteria can result in a potentially huge result set.
For eg: A search based on common lastnames like Philip,Thomas etc can result in a large result set.
You can leverage the external validations to configure the Disallowed Search list to prevent a search on these common attributes.This feature prevent poor quality searches from executed against the MDM database
2)Configuring maxResult
The next thing we can focus on is configuring the maximum results that needs to be returned.It is available as a simple configuration in the CONFIGELEMENT table .
/IBM/Party/Search/maxResults
The default value is 100.The normal approach followed is use the value in CONFIGELEMENT as the default one ,but if the value for maxresult(Available in the request object) is less than what is configured in the table we are happy to return the what is provided in the request object.
3)External Rule
The first 2 steps can be done from inside a custom bp & the search strategy can implemented inside a Rule class.A modification to the search rule is needed only when client specific customizations are needed.
For eg: Search based on an extended field.
So what should be done in the rule is check if the request has got any extended attributes.If yes you have to invoke client defined sqls(which can be pre written and stored in tables or stored in some sql helper classes).
else invoke the OOTB services.
4)Ranking and Sorting.
5)Return the result.

These are the basic steps in creating a customized search strategy.