Tuesday, 17 February 2015

UCM Survivorship Rules On Custom Extension Columns(X_) of Base Tables


Here is the process to do:

1. Add a new column(X_TEST) to the table S_CONTACT(or any base table).
2. Added the field in the respective BC and IO.
3. Compile objects in to srf.
4. Now restart the siebel server and log in to application.
5. UCM>SurvivorshipRules>Attributegroup>
For the field name picklist without any join "Test"(extension field) will be visible.
6. Now create a Survivorship rule as per your business requirement.
Eg: Attribute group contains: First Name, Last Name and Test
Contact Default: Recent
and in the Attribute group Comparison Rule:History

7. Now using "Person Service" webservice create person operation, insert a record with the following details:

soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:cus="http://xmlns.oracle.com/apps/mdm/customer" xmlns:swip="http://www.siebel.com/xml/SwiPersonIO">
<soapenv:Header/>
<soapenv:Body>
<cus:createPerson_Input>
<cus:RealtimePubSub>False</cus:RealtimePubSub>
<cus:_sblesc_lstValue_grt></cus:_sblesc_lstValue_grt>
<swip:ListOfSwiPersonIO ExternalSystemId="ExtSys1">
<swip:Contact operation="Insert" searchspec="" status="">
<swip:Id>1-123</swip:Id> 
<swip:FirstName>X_Recent</swip:FirstName>
<swip:LastName>1stTime</swip:LastName>
<swip:Test>ExtensionColumn</swip:Test>
<swip:EmailAddress>abc@abc.com</swip:EmailAddress> 
</swip:Contact>
</swip:ListOfSwiPersonIO>
<cus:Error_spcCode>?</cus:Error_spcCode>
<cus:Error_spcMessage>?</cus:Error_spcMessage>
</cus:createPerson_Input>
</soapenv:Body>
</soapenv:Envelope>


8. Now modified the message and inserted as below:

soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:cus="http://xmlns.oracle.com/apps/mdm/customer" xmlns:swip="http://www.siebel.com/xml/SwiPersonIO">
<soapenv:Header/>
<soapenv:Body>
<cus:createPerson_Input>
<cus:RealtimePubSub>False</cus:RealtimePubSub>
<cus:_sblesc_lstValue_grt></cus:_sblesc_lstValue_grt>
<swip:ListOfSwiPersonIO ExternalSystemId="ExtSys1">
<swip:Contact operation="Insert" searchspec="" status="">
<swip:Id>1-123</swip:Id> 
<swip:FirstName>X1_Recent123</swip:FirstName>
<swip:LastName>1stTime</swip:LastName>
<swip:Test>ExtensionColumn123</swip:Test>
<swip:EmailAddress>abc@def.com</swip:EmailAddress> 
</swip:Contact>
</swip:ListOfSwiPersonIO>
<cus:Error_spcCode>?</cus:Error_spcCode>
<cus:Error_spcMessage>?</cus:Error_spcMessage>
</cus:createPerson_Input>
</soapenv:Body>
</soapenv:Envelope>

9. As per survivorship rules even though first name and extension column are modified they are not disturbed in the base table whereas Email Address is changed to the recent one since email address is not present in the attribute group.

10. Hence it is confirmed that survivorship rules will execute on extension columns as well. 

                                                                                                                                               (Its is only for education /knowledge purpose)

Monday, 9 February 2015

EDQ Sequence Generator Processors


As per the requirement, I need to generate the Sequence in EDQ.

The following is the processor, which will generate the sequence.  

"Add Message Id "

Saturday, 7 February 2015

OCH (Siebel UCM) - OEDQ Real-Time Matching Process

- In real time, when a new record(driving record) come to UCM, Siebel calls EDQ web services to      generate cluster keys for the new record
- EDQ generate the cluster keys and its send back to Siebel
- Siebel stores these new keys and then looks up all records that share any key with the driving record- Once Siebel find a matching key, it submits driving and candidate records to the matching service
- Driver record and all candidate records are send back to EDQ, to be ranked by Match score
- Siebel then pop-up the Matching record with the match score and user can select 'pick' or 'ignore' to commit the record.
Cluster keys are stored in S_DQ_xxx_KEY tables; 


Accounts: S_DQ_ORG_KEY
Contact:    S_DQ_CON_KEY 

Prospects:  S_DQ_PRSP_KEY