IBM Support

Does getParty transaction retrieve values for attributes added through an Extension?

Technical Blog Post


Abstract

Does getParty transaction retrieve values for attributes added through an Extension?

Body

Inquiry transactions for certain business objects in MDM use Optimized Transparent SQLs (OTS) to improve performance.  These transactions include getParty, getPerson, getOrganization, getContract and getProductInstance.  The OTS feature can be leveraged by setting value for property optimized.sql to true in TCRM.properties in com.ibm.mdm.server.resources.properties.jar.  By default, this value is set to true.

The SQLs to retrieve the business object and child business objects can be found in table INQLVLQUERY. 

When extensions are added to the business objects, the SQLs to obtain the business objects have to be regenerated so that the new attributes that are part of the extension are also retrieved.  The SQLs in the INQLVLQUERY table can be regenerated using the updateInqLevel transaction.

<?xml version="1.0" encoding="ASCII"?>
<DWLAdminService xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance&quot; xsi:noNamespaceSchemaLocation="DWLAdminService.xsd">
    <RequestControl>
        <requestID>100012</requestID>
        <DWLControl>
            <requesterName>cusadmin</requesterName>
            <requesterLanguage>100</requesterLanguage>          
        </DWLControl>
    </RequestControl>
    <DWLTx>
        <DWLTxType>updateInqLevel</DWLTxType>
        <DWLTxObject>DWLInqLevelBObj</DWLTxObject>
        <DWLObject>
            <DWLInqLevelBObj>
                <InquiryLevelId>1008</InquiryLevelId>
                <Description>Level 4 Person Objects(REGENERATED)</Description>
                <InquiryLevelLastUpdateDate>2005-04-13 15:11:28.185003</InquiryLevelLastUpdateDate>
                <GenerateQuery>Y</GenerateQuery>
                <BusinessTxType>44</BusinessTxType>
            </DWLInqLevelBObj>
        </DWLObject>
    </DWLTx>
</DWLAdminService>


When this transaction is executed with the GenerateQuery value set to YES (Y), the query corresponding to the given inquiry level and business transaction gets regenerated in the INQLVLQUERY table, such that it can return Attributes added using Extensions.

The list of Inquiry Levels(InquiryLevelId) and Business Transaction Type Code (BusinessTxType) for which OTS has to be regenerated can be found by executing the below SQL:

select distinct inqlvlquery.inqlvl_id, business_tx_tp_cd from inqlvl, inqlvlquery where inqlvl.inqlvl_id = inqlvlquery.inqlvl_id and description like '%<Business Object>%'

For example, for Person object, the below query can be executed:
select distinct inqlvlquery.inqlvl_id, business_tx_tp_cd from inqlvl, inqlvlquery where inqlvl.inqlvl_id = inqlvlquery.inqlvl_id and description like '%Person%'

Links:
Customizing InfoSphere MDM Server using pluggable business object query and pluggable SQL framework

[{"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Product":{"code":"SSWSR9","label":"IBM InfoSphere Master Data Management"},"Component":"","Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"","Edition":"","Line of Business":{"code":"LOB10","label":"Data and AI"}}]

UID

ibm11142122