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.

EAI Account Integration Object Hierarchy. This image is described in surrounding text.

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);

...