Wednesday, April 30, 2025

Update BO record using PUT Request in SOAP UI - Informatica MDM

Let us examine a scenario in which it is necessary to update a Business Object (BO) record within Informatica Master Data Management (MDM). For this illustration, we will focus on the Party table, specifically C_PARTY, which holds customer demographic details such as First Name, Middle Name, Last Name, Date of Birth, and Gender etc.
 
The following methods are available for updating records in Informatica MDM: 
  • Service Integration Framework (SIF).
  • Data Steward option in the Hub console.  
  • User Interface/Postman utilizing the Business Entity Services (BES). 
 Service Integration Framework (SIF): Within SIF, the PUT API can be utilized to Create or update record. To implement this, it is necessary to configure it in SOAP. Please refer to the detailed steps for configuration
Here is how the PUT request looks like once your configuration is done.
Soap_PUT_Request
In this example let's try to update "Gender" value for below Rowid_Object = 1351
Please note there are few other option you can choose TrustOverrideField,TrustEnabledField,MatchPathField,TimelineFields(periodstartdate,periodenddate) etc..but for this example we will ignore these options.

Party_Rowid_1351We have a two options to update the "Gender_cd", one using same Pkey_src_object, rowid_system, second option insert new xref entry for same rowid_object, in this option new pkey_src value will be generated atomically.
Option 1:- Using Same Pkey_Src & Rowid_System.
Option 2:- Using Rowid_Object & Rowid_System.
Option 1:- Using Same pkey_src and Rowid_system
To know these details, needs to get to xref table for C_PARTY, i:e C_PARTY_XREF 

In the SoapUI for PUT request update the following attributes
username & password :- User having read write privilege's to the base object.
OrsId:- Get this details from hub console under Database workbench.
System Name: Provide the Source system name(Rowid_System) .                              
rowid: Rowid_Object,
sourcekey: which is pkey_src_object from C_PARTY_XREF table.
siperianObjectUid:- which is base object table i:e "BASE_OBJECT.C_PARTY"
Below is the sample PUT xml used to update Gender_Cd
  <soapenv:envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:siperian.api">
   <soapenv:header>
   <soapenv:body>
      <urn:put>
         <!--Optional:-->
         <urn:username>admin</urn:username>
         <!--Optional:-->
         <urn:password>
            <urn:password>admin</urn:password>
            <urn:encrypted>false</urn:encrypted>
         </urn:password>
         <urn:orsid>orclpdb-SAMPLE_ORS</urn:orsid>
         <urn:recordkey>
            <urn:systemname>SFA</urn:systemname>
            <urn:rowid>1351</urn:rowid>
            <urn:sourcekey>1351</urn:sourcekey>
         </urn:recordkey>
         <urn:record>
            <!--You have a CHOICE of the next 6 items at this level-->
            <urn:field>
               <!--You have a CHOICE of the next 5 items at this level-->
               <urn:stringvalue>M</urn:stringvalue>
               <urn:name>gender_cd</urn:name>
            </urn:field>
            <urn:siperianobjectuid>BASE_OBJECT.C_PARTY</urn:siperianobjectuid>
            </urn:record>
         <urn:generatesourcekey>false</urn:generatesourcekey>
      </urn:put>
   </soapenv:body>
</soapenv:header></soapenv:envelope>
Once changes are done, submit the request, here is the sample output.















Verify the details in Database for the rowid_object


Now let's explore Option-2 i:e using Rowid_Object
As part of this we are going to make couple of changes
  • comment the attribute "sourceKey", because system will auto generate the pkey_src_Object 
  • change the value to "true" for generateSourceKey attribute.
    Here is the PUT request after making above changes
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:siperian.api"> <soapenv:Header/> <soapenv:Body> <urn:put> <urn:username>admin</urn:username> <urn:password> <urn:password>admin</urn:password> <urn:encrypted>false</urn:encrypted> </urn:password> <urn:orsId>orclpdb-SAMPLE_ORS</urn:orsId> <urn:recordKey> <urn:systemName>Admin</urn:systemName> <urn:rowid>931</urn:rowid> <!-- <urn:sourceKey>1351</urn:sourceKey> --> </urn:recordKey> <urn:record> <urn:field> <urn:stringValue>M</urn:stringValue> <urn:name>gender_cd</urn:name> </urn:field> <urn:siperianObjectUid>BASE_OBJECT.C_PARTY</urn:siperianObjectUid> </urn:record> <urn:generateSourceKey>true</urn:generateSourceKey> </urn:put> </soapenv:Body> </soapenv:Envelope>
below the xref snapshot for this rowid_object = 931


No comments:

Post a Comment