Creating Integration Object Instances Programmatically
Because integration objects adhere to a set of structural conventions, they can be traversed and transformed programmatically, using Siebel eScript objects, methods, and functions, or transformed declaratively using the Siebel Data Mapper.
This topic outlines the steps required to create an integration object instance programmatically, using the EAI Account integration object as an example.
To create the correct integration object instance programmatically, follow these rules:
The root property set must have its type set to ListOf concatenated with the integration object name (ListOfIOName).
The next property set of the hierarchy must have the root integration component name as its type. The root integration component is the one that has no Parent Integration Component set (RootICName).
All other integration components must have the Parent Integration Component set. For those integration components, create a property set with type set to ListOf concatenated with the integration component name (ListOfICName) and then add as child to this property set another one with type set to the integration component name.
The following hierarchy demonstrates the rules:
ListOfIOName
RootICName
ListOfICName1
ICName1
ListOfICName1_1
ICName1_1
ListOfICName2
ICName2
The following figure shows some of the integration components in the hierarchy of the EAI Account integration object.

Based on its hierarchy, the integration object instance will have the following property set hierarchy:
ListOfEAI Account
Account
ListOfAccount_Business Address
Account_Business Address
ListOfContact
Contact
ListOfContact_Alternate Phone
Contact_Alternate Phone
The following Siebel eScript example creates an instance of the hierarchy shown in the previous figure:
// Local variable creation, error handling, and object destruction are omitted for
clarity.
psConAltPhone.SetType("Contact_Alternate Phone");
psConAltPhone.SetProperty("Alternate Phone #", "555-5555");
psListOfConAltPhone.SetType("ListOfContact_Alternate Phone");
psListOfConAltPhone.AddChild(psConAltPhone);
psContact.SetType("Contact");
psContact.SetProperty("First Name", "John");
psContact.SetProperty("Last Name", "Smith");
psContact.AddChild(psListOfConAltPhone);
psListOfContact.SetType("ListOfContact");
psListOfContact.AddChild(psContact);
psAccBusAdd.SetType("Account_Business Address");
psAccBusAdd.SetProperty("Email Address", "john.smith@email.com");
psListOfAccBusAdd.SetType("ListOfAccount_Business Address");
psListOfAccBusAdd.AddChild(psAccBusAdd);
psAccount.SetType("Account");
psAccount.SetProperty("Name", "MyAccount");
// Add the children to the Account IC.
psAccount.AddChild(psListOfAccBusAdd);
psAccount.AddChild(psListOfContact);
psListOfEAIAccount.SetType("ListOfEAI Account");
psListOfEAIAccount.AddChild(psAccount);
...