Pricing Administration Guide > Siebel ePricer Deployment and Integration > External Integration >

The Property Set Object


The property set object is used to pass information to the Pricing Manager. A standard object that Siebel uses for Service Call arguments is CSSPropertySetEx. The property set object consists of the Siebel Property Pair and Siebel Property Set.

CSSPropertySetEx handles two things: (1) defining the hierarchy and relationships among various parts of the object and (2) defining the name/value combination of a particular attribute of the object.

For complete details about property sets, refer to Siebel Object Interfaces Reference. Specific details about property sets for Pricing Manager are covered in later sections of this chapter. Most of the following information is derived from Siebel Object Interfaces Reference.

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. The client application constructs a SiebelPropertySet in C++ and then passes it to all methods that take property sets as arguments, for example, SiebelService InvokeMethod.

The advantage of this implementation is that the property set can be constructed completely 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 how to pass 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 that will 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);

The incoming call includes arguments containing, at the top level, the price list ID, the product ID, quantity, and other pricing-related business component data. Details of preparing data for CSSPropertySet for the Pricing Manager are discussed in the sections that follow.


 Pricing Administration Guide 
 Published: 18 April 2003