Inserting Final Data into the Record before Commit in Siebel

If you want to insert some new data, based on the final record, you can use the before commit callback function (Hook 1).

In this scenario, Siebel will send the final record, before commit, to external system in the input argument of callback function, whereas the external system modifies the record and sends it back in the output argument of callback function. Siebel then commit this record.

The SiebelMessage in the input and output arguments are based on existing UCM Integration Objects, for example: SwiPersonIO, SwiOrganizationIO, CIFContactUpdate, CIFAccountInsert, etc.

Following are the sample input and output arguments with Account as parent object and Account Business Address as child entity object:

Sample input & output arguments for hook 1 (before commit) callback function:

<Input>     //Send to external system
     <SiebelMessage>
          <IntObjectName>SwiOrganizationIO</IntObjectName>
          <ListOfSwiOrganizationIO>
               <ExternalSystemId>Siebel01</ExternalSystemId>
               <Account>
                    <MainPhoneNumber>2222222222</MainPhoneNumber>
                    <PartyUId>C26C3D88-7C8D-462c-BC5E-35C32358E25F</PartyUId>
                    <MainFaxNumber>3333333333</MainFaxNumber>
                    <Location>San Jose</Location>
                    <Name>TRANSEND</Name>
                    <ListOfAccount_BusinessAddress>
                         <Account_BusinessAddress>
                              <StreetAddress>111 Pine St</StreetAddress>
                              <City>San Francisco</City>
                              <State>CA</State>
                              <Country>USA</Country>
                              <PostalCode>94134</PostalCode>
                         </Account_BusinessAddress>
                    </ListOfAccount_BusinessAddress>
               </Account>
          </ListOfSwiOrganizationIO>
     </SiebelMessage>
</Input>
<Output>     //Return from external system	
     <SiebelMessage>
          <IntObjectName>SwiOrganizationIO</IntObjectName>
          <ListOfSwiOrganizationIO>
               <ExternalSystemId>Siebel01</ExternalSystemId>
               <Account>
                    <MainPhoneNumber>2222222222</MainPhoneNumber>
                    <PartyUId>C26C3D88-7C8D-462c-BC5E-35C32358E25F</PartyUId>
                    <MainFaxNumber>3333333333</MainFaxNumber>
                    <Location>San Jose</Location>
                    <Name>TRANSEND</Name>
                    <AccountTypeCode>Customer</AccountTypeCode>     //New data inserted by external system
                    <AccountStatus>Active</AccountStatus>                    
                    <ListOfAccount_BusinessAddress>
                         <Account_BusinessAddress>
                              <StreetAddress>111 Pine St</StreetAddress>
                              <City>San Francisco</City>
                              <State>CA</State>
                              <Country>USA</Country>
                              <PostalCode>94134</PostalCode>
                         </Account_BusinessAddress>
                    </ListOfAccount_BusinessAddress>
               </Account>
          </ListOfSwiOrganizationIO>
     </SiebelMessage>
</Output>