Using Existing Integration Objects in Outbound REST Services
You can integrate Siebel modules with REST outbound module for Siebel REST requests of type Business Service, where the Integration Object that needs to be interfaced is the same. You can use existing Siebel Integration Objects, instead of those created by the Web Services Import Wizard, when creating a Siebel-to-Siebel outbound REST integration. This removes the necessity of creating data mapping for integrations, as it uses existing Siebel Integration Objects. You can also use this method of integration for business services that have simple properties defined at method argument level or have a combination of simple properties and Integration Objects.
To use existing Integration Objects in Outbound REST services, you must:
- Generate the input schema using an OpenAPI (swagger) description for the business
service with the
MatchRequestFormat
flag enabled. For example:https://www.mysite.com/siebel/v1.0/service/PDS Order/QueryByExample/describe?matchrequestformat=y
- Import it in Web Tools to create the repository artefacts, such as proxy Business Service and Integration Objects.
- Replace the wizard-generated Integration Objects with the Integration Objects that are already available in Siebel repository in the appropriate Business Service method argument.
- Replace the business service method argument name with the actual type of the Siebel hierarchy.
Types of JSONs Supported
This feature supports simple JSONs and complex JSONs of Siebel hierarchy type. For detailed information see:
Simple JSON Example
In this example, Simple Arg Echo business service is imported in Web Tools in REST outbound wizard. It generates the proxy Business Service and the Integration Objects. You need to replace the tool generated Integration Objects with simple arguments available in the original business service, such as DateInput, NumberInput, StringInput, and specify the appropriate data type and input/output type. Once the workspace is delivered and the proxy Business Service is triggered, the implementation relies on the argument names, which do not have the colon sign (:), to recognize and align the input and output property set processing as per the Siebel standards. This helps the implementation to directly consume the property set generated from another Siebel module as input to the REST Outbound service or use the result generated from the REST Outbound for further processing of another Siebel module without having to create any data mapping.

Handling Data Types
Business Service argument data types are used to derive the data type of JSON value in the request. String and Date data types are converted to String in JSON. Number is retained as Number in JSON data type.
Example of Input/Output property set for proxy Business Service of type "Simple Arg Echo" for Echo
Property Set Request Example:
<?xml version="1.0" encoding="UTF-8"?><?Siebel-Property-Set EscapeNames="true"?><PropertySet matchrequestformat_clnquery="Y" password_clnsecurity="sadmin"
username_clnsecurity="sadmin"
type_clnsecurity="basic"
StringInput="test"
NumberInput="1"
DateInput="09/03/2014 23:03:38"
></PropertySet>
Property Set Response Example:
<?xml version="1.0" encoding="UTF-8"?><?Siebel-Property-Set EscapeNames="true"?>
<PropertySet
DateInput="09/03/2014 23:03:38"
StatusCode="200"
NumberInput="1"
StringInput="test"
></PropertySet>
Complex JSON Example
In this example, PDS Order BS Synchronize method is imported in Web Tools in REST outbound wizard. It generates the proxy Business Service and Integration Objects. You need to replace the tool generated Integration Objects with the original PDS Order Integration Object and specify the appropriate data type and input/output type. Business Service method argument name should be the Siebel hierarchy type needed in the input or output. Note that the argument name doesn't have colon sign (:) here, which is used as an indicator to process it as a Siebel Integration Object.

Handling Data Types
For the Integration Object provided in the input, Integration Component field data type is used to derive the data type of JSON value in the request. Here's the conversion to compute the JSON value datatype from the Siebel data type.
- TYPE_BOOL → Boolean
- DTYPE_INTEGER → Integer
- DTYPE_NUMBER → Number
- DTYPE_ID / DATE / TEXT / [all other types] → String
Support for Special Parameters
Apart from normal property sets, this implementation supports additional parameters at Integration Object level or at the ListOf(array) level for features like pagination. This implementation also supports hierarchical Integration Components which are there in PDS Order Integration Object and others.
Example of Input/Output property set for proxy Business Service of type "PDS Order" Synchronize method
Property Set Request Example:
<?xml version="1.0" encoding="UTF-8"?><?Siebel-Property-Set EscapeNames="true"?><PropertySet matchrequestformat_clnquery="Y" password_clnsecurity="sadmin"
username_clnsecurity="sadmin"
type_clnsecurity="basic">
<SiebelMessage
MessageId="88-4XL9E"
MessageType="Integration Object"
IntObjectName="PDS Order"
IntObjectFormat="Siebel Hierarchical">
<ListOfPDS_spcOrder>
<Header
Account_spcLocation="SHIP_FROM"
Comments=""
Id="88-3TSBB"
Revision="1"
Service_spcAccount_spcId="88-3TS9P"
................................
Compound_spcProduct_spcNumber="88-3TSBB"
Price_spcList_spcId="88-17KYJ">
<ListOfLine_spcItem>
<Line_spcItem
Related_spcAsset_spcIntegration_spcId=""
Eligibility_spcReason=""
Extended_spcQuantity_spcRequested="1"
Need_spcRefresh="Y"
.............................>
<Line_spcItem
Related_spcAsset_spcIntegration_spcId=""
Eligibility_spcReason=""
Extended_spcQuantity_spcRequested="1"
Need_spcRefresh="Y"
.............................>
</Line_spcItem>
<Line_spcItem
Related_spcAsset_spcIntegration_spcId=""
Eligibility_spcReason=""
Extended_spcQuantity_spcRequested="1"
Need_spcRefresh="Y"
..............................>
<ListOfXA>
<XA
Parent_spcId="88-3TSEV"
Value="Microsoft"
Cfg_spcState_spcCode="Engine Picked Item"
Unit_spcof_spcMeasure=""
Id="88-3TSEW"
..............................>
</XA>
<XA
Parent_spcId="88-3TSEV"
Value=""
Cfg_spcState_spcCode="Engine Picked Item"
Unit_spcof_spcMeasure=""
Id="88-3TSEX"
...............................>
</XA>
</ListOfXA>
</Line_spcItem>
</Line_spcItem>
</ListOfLine_spcItem>
</Header>
</ListOfPDS_spcOrder>
</SiebelMessage>
</PropertySet>
Property Set Response Example:
<?xml version="1.0" encoding="UTF-8"?><?Siebel-Property-Set EscapeNames="true"?><PropertySet
StatusCode="200">
<SiebelMessage
MessageId="88-4XL9E"
MessageType="Integration Object"
IntObjectName="PDS Order"
IntObjectFormat="Siebel Hierarchical">
<ListOfPDS_spcOrder>
<Header
Account_spcLocation="SHIP_FROM"
Revision="1"
Id="88-3TSBB"
Status="Pending"
...................>
<ListOfLine_spcItem>
<Line_spcItem
Eligibility_spcReason=""
Extended_spcQuantity_spcRequested="1"
Need_spcRefresh="Y"
Discount_spcPercent=""
.....................>
<Line_spcItem
Extended_spcQuantity_spcRequested="1"
Eligibility_spcReason=""
Need_spcRefresh="Y"
Current_spcPrice=""
....................>
</Line_spcItem>
<Line_spcItem
Extended_spcQuantity_spcRequested="1"
Eligibility_spcReason=""
Need_spcRefresh="Y"
Current_spcPrice=""
Discount_spcPercent=""
........................>
<ListOfXA>
<XA
Parent_spcId="88-3TSEV"
Value="OM_FULL"
Unit_spcof_spcMeasure=""
Id="88-3TSF4"
........................>
</XA>
<XA
Parent_spcId="88-3TSEV"
Value="1"
Unit_spcof_spcMeasure=""
Id="88-3TSF3"
.......................>
</XA>
</ListOfXA>
</Line_spcItem>
</Line_spcItem>
</ListOfLine_spcItem>
</Header>
</ListOfPDS_spcOrder>
</SiebelMessage>
</PropertySet>
HTTP Status Response
The response generated has the HTTP status of the REST outbound request. It is
available in property set with property name: StatusCode
.