Configuring Siebel eConfigurator Business Services
Before you can invoke Siebel eConfigurator REST APIs, you must configure business service access in the Siebel Application:
- Log in to Siebel as an administrator.
- Navigate to Administration - Application - Business Service Access view.
- Add the following business services with appropriate responsibilities:
| Business Service | Method | Required Responsibilities |
|---|---|---|
SWI Cfg Object Broker |
|
|
ShoppingCartConfiguratorService |
|
|
ProductOrderConfiguratorService |
Execute |
For more information about associating a business service with a responsibility, see Siebel Security Guide.
Product Definition APIs
These APIs enable you to retrieve structural information about products, including their hierarchical organization, attributes, and relationships. For a list of operations associated with this Product Definition APIs, see the following table.
| Business Service Name / Method | Description |
|---|---|
SWI Cfg Object Broker/ GetObjStructure |
Retrieves product relationships, attributes, linked items and resources. |
SWI Cfg Object Broker/GetConfigObjectSet |
Retrieves product Id, product name, attribute, class Id, and
class name present in the structure for a given product. This API returns a complete set of versioned products and classes that satisfies the data referential integrity in denormalized format. |
SWI Cfg Object Broker/ GetObjGroupItems |
Retrieves the Product UI definition, UI group and group items. |
SWI Cfg Object/ GetObjDefaultGroupItems |
Retrieves Default Product Group Items (group items will be based on all relationships, attributes, linked items and resources). |
Request Response Message Description
GetObjStructure has the same request and response message.
GetObjGroupItems has the same request and response message.
GetObjDefaultGroupItems request and response message are the same as GetObjGroupItems. The Object's direct child properties are ignored as well those of UIOption, Responsibilities, and Group. Only the GroupItem child is looked at and returned (others are copied to the Response message). GroupItem behavior is like that of GetCfgObjectGroupItemsGetObjGroupItems.
GetObjStructure
This API can be used to selectively retrieve partial or complete structure of a configuration object, including its attributes, relationships, and resources based on the template included in the input. Use this API to understand the product in focus before a configuration session, or in between sessions.
Constraints are supported from Siebel 26.6.
HTTP Method: POST
URI:
https://<server>:<port>/siebel/v1.0/service/SWI Cfg Object Broker/GetObjStructure
Request Parameters
For a description of this request message, see the following table.
| Node | Description |
|---|---|
WebChannelObjStructure |
Required. This structure identified the objects that will be queries as well the data that will be returned about the objects. |
Object |
Required. One or more must be specified. |
Name |
Required. Name of an object (product or class). Either Name or Id is required. |
Id |
Required. Id of an object (product or class). Either Name or Id is required. |
ObjectType |
Required. Either Product or Class. |
ParentClassId |
Class Id of the parent. |
DisplayName |
Display name. |
Description |
Description. |
Attribute |
Zero or more (only those child objects that are specified will be queried for). |
Name |
Name of attribute. If empty, then all attributes are returned. |
LocalType |
Local type. |
InternalType |
Internal type. |
OrigId |
Internal Id. |
DisplayName |
Display name. |
Hidden |
Hidden flag. |
Required |
Required flag. |
ReadOnly |
Read Only flag. |
ValidationSpec |
Validation specification. |
UnitOfMeasure |
Unit of measure. |
Description |
Description. |
AttributeDomain |
Zero or more. |
LocalValue |
Local value. |
InternalValue |
Internal value. |
AttributeDomainDecoration |
Zero or more. Attribute domain specific properties name value pairs. |
Name |
Name of attribute. |
Value |
Value of attribute. |
AttributeDefaultValue |
Default value of the attribute. Only one of the value types will be populated depending on the type of the value. |
DisplayValue |
Display value. |
String |
String value. |
Number |
Number value. |
Integer |
Integer value. |
Date |
Date value. |
Boolean |
Boolean value. |
AttributeRejectedValue |
Rejected value of the attribute. Only one of the value types will be populated depending on the type of the value. |
DisplayValue |
Display value. |
String |
String value. |
Number |
Number value. |
Integer |
Integer value. |
Date |
Date value. |
Boolean |
Boolean value. |
AttributeDecoration |
Zero or more. |
Name |
Attribute properties name. |
Value |
Value pairs. |
Relationship |
Zero or more (only those child objects that are specified will be queried for). |
Name |
Name of relationship. If Name and or Id is specified, then only that particular relationship will be returned. If both are empty, then all relationships are returned. |
Id |
Id of relationship. If Name and or Id is specified, then only that particular relationship will be returned. If both are empty, then all relationships will be returned. |
DisplayName |
Display name. |
ClassName |
Class name. |
ClassId |
Class Id. |
DefaultProductId |
Default product Id. |
DefaultCardinality |
Default cardinality. |
MinimumCardinality |
Minimum cardinality. |
MaximumCardinality |
Maximum cardinality. |
RelationshipDomain |
Zero or more. |
Name |
Name of product. If Name and or Id is specified, then only that particular relationship domain will be returned. If both are empty, then all relationship domain products will be returned. |
Id |
Id of product. If Name and or Id is specified, then only that particular relationship domain will be returned. If both are empty, then all relationship domain products will be returned. |
DisplayName |
Display Name. |
OrigId |
Originating Id. |
Description |
Description. |
RelationshipDomainDecoration |
Zero or more. |
Name |
Relationship domain specific properties name. |
Value |
Value pairs. |
RelationshipDecoration |
Zero or more. |
Name |
Relationship properties name |
Value |
Value pairs. |
LinkedItem |
Zero or more (only those child objects that are specified will be queried for). |
Name |
Name of linked item. |
Id |
Id of linked item. If Name and or Id is specified, then only that particular linked item will be returned. If both are empty, then all linked items will be returned. |
DisplayName |
Display name. |
VariableName |
Variable Name. |
SortSpec |
Sort specification. |
SearchSpec |
Search specification. |
NeedsExecution |
The Needs Execution flag used for business component-based queries. |
Expression |
Expression. |
DefaultValue |
Default value. |
BusinessObject |
Business object for business component based query. |
BusinessComponent |
Business component for business component based query. |
FieldName |
Field name in the business component. |
Active |
Active flag. |
LinkedItemDecoration |
Linked Item properties. |
Name |
Name value. |
Value |
Pairs. |
Resource |
Zero or more (only those child objects that are specified will be queried for). |
Name |
Name of resource. If Name and or Id is specified, then only that particular resource will be returned. If both are empty, then all resources are returned. |
Id |
Id of resource. If Name and or Id is specified, then only that particular resource will be returned. If both are empty, then all resources are returned. |
DisplayName |
Display name. |
ResourceDecoration |
Resource properties. |
Name |
Name value. |
Value |
Pairs. |
ObjectDecoration |
Object properties. |
Name |
Name value. |
Value |
Pairs. |
Request Example
{
"SiebelMessage": {
"MessageType": "Integration Object",
"IntObjectName": "WebChannelObjStructure",
"IntObjectFormat": "Siebel Hierarchical",
"ListOfWebChannelObjStructure": {
"Object": {
"Id": "3SIA-33XTX",
"Name": "",
"Parent Class Id": "",
"Object Type": "Product",
"ListOfAttribute": {
"Attribute": {
"Name": "",
"Internal Type": "",
"Display Name": "",
"Unit Of Measure": "",
"ListOfAttribute Domain" :{
"Attribute Domain": {
"Internal Value": ""
}
},
"ListOfAttribute Decoration": {
"Attribute Decoration": {
"Name": "",
"Value": ""
}
},
"ListOfAttribute Default Value": {
"Attribute Default Value": {
"Display Value": ""
}
}
}
},
"ListOfRelationship": {
"Relationship": {
"Id": "",
"Name": "",
"Maximum Cardinality": "",
"Minimum Cardinality": "",
"ListOfRelationship Decoration": {
"Relationship Decoration": {
"Name": "",
"Value": ""
}
},
"ListOfRelationship Domain": {
"Relationship Domain": {
"Name": "",
"Id": ""
}
}
}
},
"ListOfObject Decoration": {
"Object Decoration": {
"Name": "",
"Value": ""
}
},
"ListOfLinked Item": {
"Linked Item": {
"Name": "",
"Id": ""
}
},
"ListOfResource": {
"Resource": {
"Name": "",
"Id": ""
}
}
}
}
}
}
// Cable TV Service in sample database
Response Parameters
The response contains detailed information of the product model in the same format as the request based on the included sections in the request.
GetObjDefaultGroupItems
This API retrieves the default group items for a configuration object. Group items represent the default components or options that are pre-selected when a product configuration is initialized. This is useful for displaying initial UI selections.
HTTP Method: POST
URI:
https://<server>:<port>/siebel/v1.0/service/SWI Cfg Object Broker/GetObjDefaultGroupItems
GetObjGroupItems
This API retrieves all available group items (options) for a specific group within a configuration object. Unlike GetObjDefaultGroupItems, this returns all possible selections, not just the defaults.
HTTP Method: POST
URI:
https://<server>:<port>/siebel/v1.0/service/SWI Cfg Object Broker/GetObjGroupItems
Request Message: GetObjGroupItems,
GetObjDefaultGroupItems
For a description of this request message, see the following table.
| Node | Description |
|---|---|
WebChannelObjGroupItems |
Required. This structure identified the objects that will be queries as well the data that will be returned about the objects. |
Object |
Required. One or more must be specified. |
Name |
Required. Name of Object (product or class). Either Name or Id is required. |
Id |
Required. Id of Object (product or class). Either Name or Id is required. |
ObjectType |
Required. Either Product or Class. |
ParentClassId |
Class Id of the parent. |
DisplayName |
Display name. |
Description |
Description. |
UIOption |
Zero or more. |
Name |
Name of UI option. If Name and or Id is specified, then only that particular UI option will be returned. If both are empty, then all UI options will be returned. |
Id |
Id of UI option. If Name and or Id is specified, then only that particular UI option will be returned. If both are empty, then all UI options will be returned. |
Type |
Type. |
DisplayName |
Display name. |
Sequence |
Sequence. |
BaseTheme |
Base theme. |
ProductTheme |
Product theme. |
Responsibility |
Zero or more. |
Name |
Name of responsibility. If Name and or Id is specified, then only that particular responsibility will be returned. If both are empty, then all responsibilities will be returned. |
Id |
Id of responsibility. If Name and or Id is specified, then only that particular responsibility will be returned. If both are empty, then all responsibilities will be returned. |
Group |
Zero or more. |
Name |
Name of group. If Name and or Id is specified, then only that particular group will be returned. If both are empty, then all groups will be returned. |
Id |
Id of Group. If Name value and or Id value is specified, then only that particular group will be returned. If both are empty, then all groups will be returned. |
DisplayName |
Display name. |
Sequence |
Sequence. |
GroupTheme |
Group theme. |
Description |
Description. |
GroupItem |
Zero or more. |
Id |
Id of Group Item. If Id and or Type is specified, then only that particular group item will be returned. If both are empty, then all group items will be returned. |
Type |
Type of Group Item (Relationship, Attribute, LinkedItem, or Resource). If Id and or Type is specified, then only that particular group item will be returned. If both are empty, then all group items will be returned. |
Sequence |
Sequence. |
GroupItemTheme |
Group item theme. |
Attribute |
An attribute child object of GetCfgObjectStructureGetObjStructure request message. |
Relationship |
A relationship child object of GetCfgObjectStructureGetObjStructure request message. |
LinkedItem |
A LinkedItem child object of GetCfgObjectStructureGetObjStructure request message. |
Resource |
Refer to Resource child object of GetCfgObjectStructureGetObjStructure request message. |
GroupDecoration |
Group properties. |
Name |
Name value. |
Value |
Pairs. |
Object Decoration |
Object properties name value pairs. |
Request Example:
{
"SiebelMessage": {
"MessageType": "Integration Object",
"IntObjectName": "WebChannelObjGroupItems",
"IntObjectFormat": "Siebel Hierarchical",
"ListOfWebChannelObjGroupItems": {
"Object": {
"Id": "3SIA-33XTX",
"Name": "",
"Parent Class Id": "",
"Object Type": "Product",
"ListOfUI Option": {
"UI Option": {
"Name": "",
"Base Theme": "",
"Product Theme": "",
"ListOfGroup": {
"Group": {
"Name": "",
"ListOfGroup Item": {
"Group Item": {
"Id": "",
"Group Item Theme": "",
"Sequence": "",
"ListOfAttribute": {
"Attribute": {
"Name": "",
"Internal Type": "",
"Display Name": "",
"Unit Of Measure": "",
"ListOfAttribute Domain": {
"Attribute Domain": {
"Internal Value": ""
}
},
"ListOfAttribute Decoration": {
"Attribute Decoration": {
"Name": "",
"Value": ""
}
},
"ListOfAttribute Default Value": {
"Attribute Default Value": {
"Display Value": ""
}
}
}
},
"ListOfRelationship": {
"Relationship": {
"Id": "",
"Name": "",
"Maximum Cardinality": "",
"Minimum Cardinality": "",
"ListOfRelationship Decoration": {
"Relationship Decoration": {
"Name": "",
"Value": ""
}
},
"ListOfRelationship Domain": {
"Relationship Domain": {
"Name": "",
"Id": ""
}
}
}
},
"ListOfLinked Item": {
"Linked Item": {
"Name": "",
"Id": ""
}
},
"ListOfResource": {
"Resource": {
"Name": "",
"Id": ""
}
}
}
}
}
},
"ListOfResponsibility": {
"Responsibility": {
"Id": "",
"Name": ""
}
}
}
},
"ListOfObject Decoration": {
"Object Decoration": {
"Name": "",
"Value": ""
}
}
}
}
}
}