Siebel Object Interfaces Reference > CORBA Quick Reference >

Property Set


In the CORBA Object Manager, the Property Set object is implemented as a structure (and potentially an array of structures) called SiebelPropertySet in the IDL, rather than as an interface. Therefore, the following Property Set methods are not applicable with respect to the CORBA Object Manager: AddChild, Copy, GetChild, GetChildCount, GetFirstProperty, GetNextProperty, GetProperty, GetType, GetValue, InsertChildAt, PropertyExists, Remove Child, Remove Property, Reset, SetProperty, SetType, and SetValue. The client application constructs a SiebelPropertySet in C++ and then passes it to every method that takes property sets as arguments, for example, SiebelService InvokeMethod.

The advantage of this implementation is that the property set can be constructed entirely on the client side instead of incurring network traffic associated with constructing it through an interface. The methods defined for the PropertySet differ greatly from the methods available through COM. However, the same functionality is available through either interface.

A SiebelPropertyPair represents a distinct name/value combination to describe an attribute of an object. The SiebelPropertyPair structure is defined in the IDL as follows:

struct SiebelPropertyPair
{
   string name;      //Name of the attribute
   string value;      //Description of the attribute
};

A SiebelPropertySet represents a collection of SiebelPropertyPairs (structures) that describe an object and its attributes. The SiebelPropertySet structure is defined in the IDL as follows:

struct SiebelPropertySet
{
   string type;
   string value;
   sequenceSiebelPropertyPair properties;
   sequenceSiebelPropertySet children;
};
typedef sequenceany anySeq;

The following C++ code fragment from a client application demonstrates the construction of a SiebelPropertySet and passing it to a SiebelService method.

// Declarations

SiebelPropertyPair inputPP1, inputPP2, inputPP3;
SiebelPropertySet inputPS;
SiebelPropertySet* outputPS;
SiebelService pService;

// Setting up the Input Property Set
   inputPS.type = "root";
   inputPS.value = "rootValue";

// Specifying the number or SiebelPropertyPairs to be
// added to the PropertySet
   inputPS.properties.length(3);

// Defining the first property
   inputPP1.name = "prop1";
   inputPP1.value = "value1";
   inputPS.properties[0] = inputPP1;

   inputPP2.name = "prop2";
   inputPP2.value = "value2";
   inputPS.properties[1] = inputPP2;

   inputPP3.name = "prop3";
   inputPP3.value = "value3";
   inputPS.properties[2] = inputPP3;

// Adding 2 Child Property Sets
   inputPS.children.length(2);

   inputPS.children[0].type = "child1";
   inputPS.children[0].properties.length(1);
   inputPS.children[0].properties[0].name = "child1:prop1";
   inputPS.children[0].properties[0].value = "child1:value1";

   inputPS.children[1].type = "child2";
   inputPS.children[1].properties.length(2);
   inputPS.children[1].properties[0].name = "child2:prop1";
   inputPS.children[1].properties[0].value = "child2:value1";
   inputPS.children[1].properties[1].name = "child2:prop2";
   inputPS.children[1].properties[1].value = "child2:value2";

// Passing the Input Property Set and a pointer to the Output
// Property Set to the Service Method
   pService->InvokeMethod ("test1", inputPS, outputPS);


 Siebel Object Interfaces Reference 
 Published: 18 June 2003