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, and required responsibilities table.

Business Service Method Required Responsibilities
SWI Cfg Object Broker

GetConfigObjectSet

GetObjStructure

GetObjGroupItems

GetObjDefaultGroupItems

ShoppingCartConfiguratorService

Execute

ProductOrderConfiguratorService Execute
Note:

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.

Configurator Web Service Operations 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.

Request Parameters 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 and description 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": ""
                    }
                }
            }
        }
    }
}