Tuesday, September 18, 2012

Exploring Websphere(WAS) default queues using WAS Admin Console

This is has got very less to do with MDM .

But it can come handy for people working on EM,Notifcaiotns etc and using the WAS default queue instead of a WMQ for their development works.
Most of the time I wondered about how easy it could have been if there is something like MQ explorer available with WMQ  in  WAS admin console to explore the default queues.

I noticed that it is available in WAS 7(may be even available with 6.1 ) .You can use the following path to explore the messages in the default queues.


Admin console Resources->JMS->Queues > Customer Tail(Your Queue) > Buses > MDM.SIB.server1 > Destinations > CUSTOMER.TAIL(Your Queue) > Queue points > CUSTOMER.TAIL@MDMNode01.server1-MDM.SIB.server1(Runtime) > Messages

You can view the Message body too along with other properties like when the message is placed at the queue etc






Saturday, January 7, 2012

Disabling MDM validations for OOTB business objects

Problem:
Consider a scenario where we need to provide the following fields in the request object
1)AdminContractId,AdminSystemType
2)Phone number/Email -Contact Method
3) Attach Privacy Preferene type/reason ,value etc to the contact methods listed above
The object that will come to our mind are
1)TCRMAdminNativeKeyBObj
2)TCRMContactMethodBObj
3)TCRMPartyContactMethodPrivPrefBObj
Yes you are correct on that.
All these objects can be included in TCRMContractBObj. I decided to create a custom MDM txn(say addMyPreferenceTxn)- (I am using MDM8.5) with TCRMContractBObj as the request object.The response objects doesn't matter for this scenario.
I generated the code,and wrote my logic in the component class which got generated.
When I am about to test the code, it throwed the following errors at my face .

Currency type,ContractStatusType ,Role Type are mandatory. There are a few OOTB external/internal validation on the TCRMContractBObj which makes it mandatory. But for my custom addMyPreferenceTxn I dont want the consumer of the service to provide any dummy values for these 3 fields.

Soultion:
When you genrate the code you will get an EJB project which contains the following class.
 yourmoduleprojectNameTxnBean.
Open that class ,there will be a method  public DWLResponse addMyPreferenceTxn(TCRMContractBObj theBObj) throws DWLBaseException

Here is where you are going to put the extra piece of code to bypass the validation logic.
This piece will be executed after the validations happens but before it enters your component.

I am providing the  code outline for the  addMyPreferenceTxn method.

DWLTransaction txObj = new DWLTransactionPersistent("addMyPreferenceTxn", theBObj, theBObj.getControl());
        DWLResponse retObj = null;
        retObj = executeTx(txObj);
       
        Vector vector = retObj.getStatus().getDwlErrorGroup();
        //Create an iterator for the vector ,iterator through it.


                 DWLError error = vector.get(); 
                //The component ids for currncy typ,role type,status type etc..
                if(error.getComponentType() == 2000 || error.getComponentType() == 2001 || error.getComponentType() == 2002) {

                    //Remove from the iterator.       
           
        }   
     
        //It will be zero if all the validations where success.If it failed for eg:PrivPrefType is empty ,the
        //vector still contains data and that will be returned back.
        if(vector.size() == 0 ) {               
            retObj.setData(theBObj);
            DWLStatus status = new DWLStatus();
            status.setStatus(DWLStatus.SUCCESS);
            retObj.setStatus(status);
           
            try {
                retObj = handleAddMyPreferenceTxn(theBObj);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
       
        return retObj;



 Hope that helps!.










Thursday, November 24, 2011

Installables for IBM MDM 9.0.2

Recently I got a mail from one of my friend :


"I have worked on WCC6.0 and got to attend MDM85 internal training.Currently I am in the process of installing MDM server 9.0.I have to setup the development environment in my windows machine along with the work bench.
It would be great if you could share the information related to the installable.Just the name of the installables and the way to download them from ibm site for windows environment."
I thought there will be a lot of people looking for it, even I have to get it from my colleges.
Even I am new to 9.0.2 as I was working on 8.0.x for a long time.So please feel free to correct me by posting your comments.
I was able to set up an MDM workspace and ran IVT using the following softwares.
Essentially you need to have RSA 7.5.4 ,DB2 9.7 , WAS 7.0(Even WAS 6.1 also seems to work)
IBM Rational Software Architect for WebSphere V7.5.4 Multiplatform Multilingual Core Set Up (CZ6RFML)
Core Part 1 (CZ6RGML)
Core Part 2 (CZ6RIML)
Core Part 3 (CZ6RJML)
Core Part 4 (CZ6RKML)
Core Part 5 (CZ6RLML)
Core Part 6 (CZ6RNML)
Core Part 7 (CZ6RQML)

Tip from Ajay Raghavan(MDM Architect IBM):
MDM 10 only need RSA 8.x .All lower version of MDM works on RSA 7.5.x
Db2 can 9.5 or 9.7,even 9.1 also seems to work.
The RSA 7.5.4 downloaded earlier doesn't come with the integrated WAS 7.0 test server.So we have to download it separately as given below and install using Installation Manager.

 WebSphere(R) Application Server Test Environment 7.0 Part 1 (Optional) (C1M6BML)
  Part 2 (Optional) (C1M6CML)
  Part 3 (Optional) (C1M6DML)
  Part 4 (Optional) (C1M6EML)
Now Download:
1)IBM InfoSphere Master Data Management Server V9.0.2, Transaction Hub Usage Style, for WebSphere Application Server for AIX Multilingual (CZU3XML) - View details
2)IBM InfoSphere Master Data Management Server V9.0.2, Workbench for Windows Multilingual (CZU41ML) - View details
The file you downloaded is CZU3XML, untar it till you get MDM902_WAS_AIX.tar.gz which is the actual distribution file you should provide to import the code. One important thing I forgot to write was while installing RSA please install the tool support for WAS 6.1 also along with WAS 7.
This is needed because the wokbench uses WAS 6.1 server stubs to generate the webservice code for the additions/extensions etc you do.
Hope this helps somebody else in the future.






Tuesday, August 30, 2011

Exposing MDM Business Proxy as Webservice

It has been a while I was thinking about writing a post on exposing a composite transaction(BP) as webservice.I know this had been a reason for concern for people who are still using the MDM workbench prioir to9.x

1. Created a custom business proxy say AddCustomerBP.java - addCustomer
2. Create the equivalent transaction(provide appropriate request and response) in a new MDM Module  using the exact same names as your BP transaction name (addCustomer)  and generate the code.

This will generate the usual 5 projects:
***BPModule
***BPModuleEJB
***BPModuleWS
***BPModuleWSEJB
***BPModuleWS_HTTPRouter

3. Insert the generated lines from ***BPModule_DWLCommon_extension.properties into the appropriate properties files in Customer resources.
 a)Update DWLCommon_Extension.properties with the request parser & response constructor generated.
 b)Update tcrm_extension.properties with  converters.
4. Delete/Close the projects :
***BPModule
***BPModuleEJB
5. Add com.ibm.ws.webservices.thinclient_6.1.0.jar to the projects.
6. Check the J2EE Dependencies (see project Properties) for your WSEJB project and ensure that they include all the WS projects which it depends on directly or indirectly - this is probably: 
PartyWS,
FinancialServicesWS,
BusinessServicesWS,
DWLBusinessServicesWS,
DWLCommonServicesWS
7. Modify the properties for the WS project:
Right-click the client WSproject, and select Properties.
Select Java build path.
Click the Libraries tab.
Click Add Variable.
In the New Variable Classpath Entry dialog, select WAS_50_PLUGINDIR from the list.
Click Extend.
In the Variable Extension dialog, expand the lib folder.
Select the following five JAR files by holding the CTRL key as you make your selections:
commons-discovery.jar
commons-logging-api.jar
qname.jar
webservices.jar
wsdl4j.jar
8.  Identify the correct port which it gets bind.
9.  Verify whether your WS projects are deployed to MDM Deployment Descriptor file.
10. Disable serurity.xml files
11. Verify the RouterService Definition points to the respective project HTTPRouter in xml-ws-bind-xmi
Reference:
Here goes an excellent post which helps you in accomplishing the same.

Thanks Catherine & Roshni for the detailed explanations.




Tuesday, May 31, 2011

IBM InfoSphere Master Data Management Server Technical Professional v1

I had successfully  cleared the M76 IBM InfoSphere Master Data Management Server Technical Mastery Test v1.

Objective:
The test is aimed at professional who can deliver a comprehensive business solution to customers through solution identification, product differentiation, and competitive positioning.

Areas covered & weightage:

Section 1 - MDM Strategy and Position (7%)

    Describe the strategy and position of MDM Server 9.0
    Describe the steps and options of installing MDM
    Describe the various package editions of MDM and their content


Section 2 - MDM 9.0 Important Features/Usages/Best Practices (45%)

    Describe the various protocols used to interact with MDM Server
    Describe the various user interfaces available in MDM Server and their main usages
    Describe the architecture of the batch processors and its cutomization
    Describe how duplicate suspect processing works in MDM Server
    Describe MDM Server Notification Framework
    Describe security features of MDM and ROV (rules of visibilities)
    Describe the Party and Account Data Models


Section 3 - MDM 9.0 Customization (39%)

    Describe the methodology of using workbench tooling to customize MDM Server; Understand which customization option to deploy based on business requirements
    Describe the architecture of MDM Server data addition and its customization options
    Describe how behavior extension works in MDM Server
    Describe how to develop SPEC and its main usage


Section 4 - UI Generator (9%)

    Describe how the UI generator works


Total 44 questions and 65% is the pass percentage.

Will keep you posted on the questions I remember for the exam.
Question I remember are
a)There are many questions revolved around the data model the main are how party is related to address
(LOCATIONGROUP,ADDRESSGROUP)
b)How party related to CONTRACT.
c)Question on contract party role.
d)When are spec used(when we have dynamically changing attributes)
e)Artifacts generaetd by UI generator(WAR,EJB,Help)
f)A few questions on ROV like when is perssitency entitlement triggered (Pre of controller)
For get/search when is ROV triggered(Post controller)
g)Critical Data Elements for Party/Organization
h)Rule /BE id for CreateSuspect/collapsePartiesWithRules(I think 11 & 12)
i)Difference between MDM & EDW(enterprise data warehouse) - EDW maintains transactional data.
j)How are specs stored(XSD)
k)How do we edit/traverse  xml/xsd(XPath)
l)Items that can customized in a batch process(Reader/Writer)
m)A question on configuration management component like which comportment is mandatory during MDM Server installation
n)Something on Master Information Hub(Like can a customer have MDM with out data models -Yes)
o)Various styles of MDM(Analytical,Operational,Consolidation..)