24Siebel Configurator Technical Reference
Siebel Product Configurator Technical Reference
This chapter provides technical information of use to server administrators and integrators. It includes the following topics:
In addition, see Siebel Product Configurator API Reference.
Siebel Product Configurator Architecture
The key components of Siebel Product Configurator architecture are as follows:
Object Manager. All services that run within a Siebel application are bound by the Object Manager they are running within. The same applies to all caches as well. Therefore services cannot be shared across object managers and neither can cached objects.
UI Business Service. The UI Business service is used by Siebel Product Configurator to render the UI. The UI business service binds the structure of the customizable product to the Web templates and submits them to the Siebel Web Engine for rendering to the client browser. The UI service is the means by which the user interacts with Siebel Product Configurator. A unique instance of the UI service is required for each user.
Instance Broker. The Instance Broker is a service that interacts with the UI Business Service. The Instance Broker maintains all the information about the current instance of the customizable product that the user is configuring. The Instance Broker interacts with other services in response to user requests during a configuration session.
Object Broker. The Object Broker is a service that extracts the customizable product definition from the database for use by other Siebel Product Configurator services.
Config Services. Config Services consists of factories.
Factory. A factory is a service that translates the customizable product definition retrieved by the Object broker into a format the worker can understand.
Constraint Engine or Worker. The Constraint engine is also called the worker or the Siebel Product Configurator engine. It is a service that computes solutions and enforces all the constraints associated with the configuration. This includes the declarative portion of the customizable product plus constraints added by the user (user picks).
Siebel Product Configurator Server Deployment
For more information about deploying Siebel Product Configurator, see Siebel Deployment Planning Guide. For more information about Siebel Product Configurator performance tuning, see Siebel Performance Tuning Guide.
Enabling Snapshot Mode
To use SnapShot Mode, you must turn it on by setting a server parameter. When Snapshot Mode is turned on, the Siebel Product Configurator server runs using cached objects, factories, and workers as much as possible. This improves performance. For more information about enabling Snapshot Mode, see Siebel Performance Tuning Guide.
Enabling Auto Match
When a new version of a customizable product is released, Auto Match adjusts the configuration of the product in a quote, asset, or order to reflect the changes. Auto Match is disabled by default.
For Web Client users, you turn Auto Match on by setting its server parameter to TRUE. The following table shows the Auto Match server parameter.
Table Server Parameter for Auto Match
Parameter Name | Display Name | Data Type | Default Value | Description |
---|---|---|---|---|
eProdCfgAutoMatchInstance |
Product Configurator - auto match quote on reconfigure. |
Boolean |
FALSE |
When set to FALSE, Auto Match is turned off. When set to TRUE, Auto Match is turned on. |
For Developer Web Client users (also called mobile client users), add the following entries to the configuration file used to start the application, for example Siebel.cfg.
;; This section will be read for mobile clients only [InfraObjMgr] eProdCfgAutoMatchInstance=TRUE
Specifying Keep Alive Time for Configuration Sessions
By default, product configuration sessions remain active indefinitely. They do not time out.
You can specify how long product configuration sessions remain active by setting the server parameter for Keep Alive Time. This parameter specifies the time in seconds that a session can remain idle before the session is timed out. The default value of -1 means that the session can remain idle indefinitely and will not be timed out. The following table shows this server parameter.
Table Server Parameter for Auto Match
Parameter Name | Display Name | Data Type | Default Value | Description |
---|---|---|---|---|
eProdCfgKeepAliveTime |
Product Configurator - Keep Alive Time of Idle Session |
Integer |
-1 |
The amount of time in seconds that a configuration session can remain inactive before the session is killed. |
Enforcing the Field Length for Entering Advanced Rules
The Advanced Rule template allows you to enter a rule containing several thousand characters. However, the database can store rules that contain only up to 900 characters.
You can revise the business component associated with the Advanced Rule template so that you cannot enter more than 900 characters. This business component is used for populating several lists. Revising the business component enforces the 900 character limit on all these lists. Use Oracle's Web Tools to determine the other lists that are affected.
To enforce the field length
In Oracle's Web Tools, open a workspace and then navigate to Object Explorer.
For more information on using workspace dashboards, see Using Siebel Tools.
Click the Business Component in Object Explorer, and locate the Rule Designer Dummy List VBC business component.
It is located in the Rule Designer project.
Locate the field called 0 (zero) and set the Text Length value to 900.
Deliver the updated workspace.
Displaying RAL in the Constraints View
You can revise the Constraints list to add a field that displays the Rule Assembly Language (RAL) translation of your template rules. This is a useful way to learn how to use RAL to write configuration rules.
You must use Oracle's Web Tools to add the field to the Constraints record, and then recompile the siebel.srf file. You must be familiar with creating and modifying applets in Oracle's Web Tools before performing this procedure.
To revise the Constraints view, perform the following tasks:
Locate the Constraints View Applet
This task selects a target browser and queries for the Cfg SWE Rule Manager Applet.
To locate the Constraints View applet
In Oracle's Web Tools, open a workspace and then navigate to Object Explorer.
For more information on using workspace dashboards, see Using Siebel Tools.
Select View, Toolbars, Configuration Context.
In the Target Browser Group drop-down menu, select Target Browser Config.
In Available browser groups, select ALL and transfer it to "Selected browser groups for layout editing."
Click OK.
Click Applet in the Object Explorer.
In the Applets list, query for the Cfg SWE Rule Manager Applet.
Modify the Constraints View Applet
This task adds the Rule Spec field to the Cfg SWE Rule Manager Applet.
To modify the Constraints View applet
With the SWE Rule Manager Applet highlighted, select Tools, Lock Project.
Right click the highlighted applet record and select Edit Web Layout.
In the window displaying the layout, right-click and select Preview from the pop-up menu.
Click the Template icon and select the Applet List (Base/EditList) template. It is the default.
In the Mode drop-down menu, select 3: Edit List.
In the Controls/Columns window, click Rule Spec, and move it to the [field] beside the End date in the applet display.
Click Save.
Click OK to save your changes.
Deliver the workspace.
Turning Off Default Instance Creation
When you add a customizable product to a quote, order, or agreement, a default product instance is created. This causes the default items in the customizable product to display as line items. When the user clicks Customize, another instance is created for the configuration session. The default instance is not used.
For large products with components, creating the default instance can significantly increase the time required to add the customizable product to Line Items to the quote or order. To improve performance, you can turn off default instance creation. When you add a customizable product, this causes it to display as a single line item. The default components do not display as line items.
This will not affect performance when the user clicks Customize since this creates a new product instance. Turning off default instance creation applies only to products with components. It does not apply to bundles.
When you turn off default instance creation and the user launches Configurator, a Configurator violation message is displayed. You must also configure the Siebel application to skip this violation message.
To turn off default instance creation
In Oracle's Web Tools, open a workspace and then navigate to Object Explorer.
For more information on using workspace dashboards, see Using Siebel Tools.
Locate the Quote Item, Order Entry - Line Items or FS Agreement Item business component.
Display user properties.
Set the Skip Loading Default Cfg Instance user property to Y.
Deliver the workspace.
To skip the violation message
In Oracle's Web Tools set the User Property Skip Loading Default Cfg Instance of the Business Service SIS OM PMT Service to Y.
Edit the Workflow, SIS OM Edit Delta Quote Line Item by adding a new input argument to the workflow step Reconfigure Product Instance and giving it the following values:
Input Argument = Skip Required Attribute Warning
Type = Process Property
Property Name = Skip Required Attribute Warning
Make the same changes described in Step 2 to the following workflows:
SIS OM Edit Service Order Line Item
SIS OM Edit Complex Asset Workflow
Revising the Default Cardinalities
When you create a relationship in a customizable product, you can specify a minimum, maximum, and default cardinality. If you do not specify cardinalities, the application uses the following defaults:
Minimum cardinality = 0
Default cardinality = 0
Maximum cardinality = 999
If you do not specify cardinalities this means that users are not required to select any items from the relationship and are limited to selecting a maximum of 999 items.
You can change these defaults as needed. For example, you can set the maximum application default cardinality to a number larger than 999.
To revise the default cardinalities
In Oracle's Web Tools, locate the Complex Product Structure BusComp.
Within the business component, locate the desired field: Default Cardinality, Max Cardinality, or Min Cardinality.
Display the user properties for the field.
Set the Pre Default Value user property to the desired amount.
The amount must be an integer that is greater than or equal to 0.
Configuring the Object Broker
If you modify the assignment of Cfg UI Field properties on the fields of the Cfg ISS Prod Def business component, you must do the following:
After you make the changes, manually clean the file system's ISS_OBrkCache folder, as described in Displaying Fields from S_PROD_INT in Selection Pages.
Run all installations of Siebel applications that use the same file system from the runtime repository where you made the changes.
Displaying Fields from S_PROD_INT in Selection Pages
You can add fields from S_PROD_INT to selection pages.
To add the fields from the Product Master tables (S_PROD_INT) to selection pages, perform the following steps:
Add fields to the Cfg ISS Prod Def Buscomp and define user properties. This buscomp is part of the Object Broker and extracts data from S_PROD_INT. For more information, see Add Fields to the Cfg ISS Prod Def Buscomp.
Add controls to the repository. You can add a new control to the repository to display the name of this new field. For more information, see Add Controls to the Repository.
Add SWE Code to the desired Web Template. The SWE code retrieves the field from the business component and displays it in the selection pages. Fields display as text boxes. For more information, see Add SWE Code to the Web Template.
Delete the contents of the ISS_OBrkCache directory. This forces the system to create a new instance of the customizable product containing the fields. For more information, see Delete Contents of ISS_OBrkCache Directory.
You can display text fields only for product items or for the product root. This means you can insert the SWE code only in the following places:
For-each loops that iterate on relationship domains or the children of relationship domains. You cannot insert the code in for-each loops that iterate on attributes or on groups.
At the root level. The template in which you insert the SWE code must not be called from inside a for-each loop in any other Web template.
The procedures in this topic require you to have a thorough knowledge of Oracle's Web Tools. You must also have a thorough understanding of Siebel Product Configurator Web template structure.
Add Fields to the Cfg ISS Prod Def Buscomp
This procedure adds the fields you want to display to the Object Broker and recompiles the application. This makes the fields available for display.
To add fields to the Cfg ISS Prod Def Buscomp
In Oracle's Web Tools, open a workspace and then navigate to Object Explorer.
For more information on using workspace dashboards, see Using Siebel Tools.
Locate the Cfg ISS Prod Def Buscomp in Oracle's Web Tools.
Add the desired fields from S_PROD_INT to the buscomp.
For each field you add, define a user property called Cfg UI Field.
Set the user property value to TRUE.
Deliver the workspace.
Add Controls to the Repository
You can add a new control in the repository to show the localized field name for a new field.
To add a new control to the repository
In Oracle's Web Tools, locate the applet Cfg Cx Runtime Instance Frame (JS HI).
Add a new control.
For example, you can add Name = lblTest, Caption = TestLabel.
Use this control in the template.
Add SWE Code to the Web Template
The following example shows the SWE code you would insert in a Web template to retrieve the Part Number field for display:
<od-type="control" id="swe:101Id+4400" CfgUIControl="CfgLabel" CfgHtmlType="CfgLabel" property="FormattedHtml" CfgFieldName="Part Number"/>
The "id" must be that specified in the for-each loop iteratorName, and the increment amount must be unique within the for-each loop.
If you want to display a field name next to the field value, insert an od-type="control" statement that extracts the field name from the repository. This allows you to support localization. You can insert the od-type="control" wherever needed in the template. It does not have to be inside a for-each loop. Here is an example of an od-type="control" tag that extracts the field name for Part Number from the repository. The "id" in the tag must be present but is not used for anything. The lblPartNumber value is the name of the label control in the repository.
For the Open UI interface, insert the following code:
<!-- Template Start: eCfgRelationContentsPriceQuantityJS --> <table border="0" cellpadding="0" cellspacing="3" width="100%"> <od-iterator id="500" CfgLoopType="Children" startValue="1500" count="Dynamic" iteratorName="101Id" CfgFieldList="CfgFieldName:Quantity, CfgUIControl:lblQuantity, HtmlAttrib_width:80, HtmlAttrib_align:left, Default:Y* CfgFieldName:Name, CfgUIControl:lblName, HtmlAttrib_width:250, HtmlAttrib_align:left, Default:Y* CfgFieldList="CfgFieldName:Part Number, CfgUIControl:lblPartNo, DataSource:Broker, NeedRefresh:N, HtmlAttrib_align:center, HtmlAttrib_width:80* CfgFieldName:RequireMoreChild, Default:Y* CfgFieldName:List Price, CfgUIControl:lblListPrice, DataType:DTYPE_CURRENCY, NeedRefresh:N, HtmlAttrib_align:center, HtmlAttrib_width:80* CfgFieldName:Current Price, CfgUIControl:lblYourPrice, DataType:DTYPE_CURRENCY, HtmlAttrib_align:center, HtmlAttrib_width:80* CfgFieldName:Explanation, CfgUIControl:lblExplanation, HtmlAttrib_width:70, HtmlAttrib_align:center* CfgFieldName:Customize, CfgUIControl:lblCustomize, HtmlAttrib_width:70, HtmlAttrib_align:center" >
To add SWE code to a template
Copy the desired template and give it a new filename.
Insert the SWE code into the new template.
Add the new template to the Pick UI Style dialog box.
Select the new template as the UI control for a relationship or an item.
Delete Contents of ISS_OBrkCache Directory
You must delete the contents of this directory. This makes sure that the application loads your changes when generating a customizable product, rather than loading the objects from the cache directory.
To delete the contents of the ISS_OBrkCache directory
Locate the Siebel File System directory.
To see the directory path or system name for the directory, from the Siebel application Help menu, choose Technical Support.
In the Siebel File System directory, locate the ISS_OBrkCache directory.
Delete all the files in the ISS_OBrkCache directory.
ASIs for Managing Products
Oracle provides Application Service Interfaces (ASIs) which are business services that allow Siebel applications to share information with other applications through integration servers. There are two ASIs for managing products: External Simple Product and Siebel Simple Product. These are briefly described below. For a full technical description of these ASIs, see Siebel Application Services Interface Reference.
External Simple Product
This ASI sends information about simple products created in the Siebel application to an external, third-party application. It allows you to create, update, query, and delete a product in the third-party application. This ASI is intended for inclusion in Siebel workflows that automate exporting products. It does not support sending information about products with components or bundles.
The export feature included in the Siebel Product Administration interface exports basic product information to an XML file and is intended for Siebel-to-Siebel transfers of product records. The External Simple Product ASI exports a much larger set of information about the product.
This information sent includes almost all of the fields in the product record.
This ASI receives the following information:
Confirmation
Error messages
Status
Product ID
Siebel Simple Product
This ASI receives information about simple products created in third-party applications. It allows users to create, update, query, and delete products in the Siebel application. It ASI is intended for use in automated business processes in third-party applications that need to synchronize the Siebel application to external product masters. This ASI does not support receiving information about products with components or bundles. The information accepted by this ASI includes the following:
Product name
Product description
Part number
Product attributes and attribute values
Product unit of measure
Product classification
Product type
Substitute product name
Literature
Product catalog
Product category
Price list
This ASI sends the following information:
Confirmation
Error messages
Status
Product ID
Auto Match Business Service for Siebel Product Configurator
Within certain limitations, the Auto Match business service allows Siebel Product Configurator to automatically match components in a quote, order, or asset with components in the current version of the product model. This capability is important when the product components in a quote, order, or asset were generated from an old version of a product model or when they were populated directly from an external application with different product models.
This can occur in a few different situations. For example:
After a software upgrade, such as upgrading from Siebel 6.x to Siebel 7.x, it may be necessary or desirable to regroup product components under different relationships in a product with components.
During an upgrade, if existing product models are converted to newer product models, regrouping of product components may occur as part of the conversion.
In each of these situations, when product components are regrouped under different relationships, there will be conflicts between the new version of the product with components and existing transaction data in quotes, orders, and assets. Depending on how the products with components have changed, it may be possible to use Auto Match to help resolve such conflicts.
Here is a high-level summary of how Auto Match works: Before Siebel Product Configurator is launched, the order management workflows run Auto Match to ensure that the product instance from the quote, order or asset is compatible with the latest version of the product with components definition. There are three relationship criteria Auto Match validates. It looks for a product that meets any of these criteria:
Has no component relationship foreign key
Has an invalid product relationship foreign key
No longer appears in a valid product relationship
If it finds a product component that fits any of these criteria then the Auto Match business service looks to see whether that product component belongs to a different relationship under the same parent component in the hierarchy. If it finds a valid relationship, the Auto Match business service updates the relationship foreign key of the product component in the in-memory product instance. If no valid relationship is found then the Auto Match business service generates a warning message and deletes the component from the product instance.
For products with attributes, Auto Match business service looks to see whether any required attributes are missing. If so, it returns an error message in the Auto Match report.
Operating System Environment Variables Used with Siebel Product Configurator
When you are setting up Siebel Product Configurator, it can be useful to set the operating system environment variables described in the following table.
Table Operating System Environment Variables Used with Siebel Product Configurator
Variable Name | Description |
---|---|
CFG_BROKER_FS |
Additional file system directory used by the Broker to support multiple file system locations. The value of this variable is appended to the list of possible locations. When remote Siebel Product Configurator is used, set this variable on both the operating system of the Application Object Manager and the operating system of the remote Siebel Product Configurator. It is used by the object broker and object administration. |
CFG_IGNORE_MISSING_ELEMENTS |
Flag to determine whether to ignore the overwritten attributes with the missing base definitions. The possible values are TRUE or FALSE. When remote Siebel Product Configurator is used, set this variable on the operating system of the remote Siebel Product Configurator. It is used by the factory. |
CFG_PASSWORD |
Login password used in remote service. When remote Siebel Product Configurator is used, set this variable on the operating system of the Application Object Manager. It is used by the remote proxy. |
CFG_USERNAME |
Login user name used in remote service. When remote Siebel Product Configurator is used, set this variable on the operating system of the Application Object Manager. It is used by the remote proxy. |
PRESERVE_ENGINE_AND_USER_PICKS |
Flag to determine whether the application preserves engine and user pick. The possible values are Y or N. When remote Siebel Product Configurator is used, set this variable on the operating system of the remote Siebel Product Configurator. It is used by the instance service. |
SIEBEL_ENFORCE_REQUIRED_ATTRIBUTES |
Flag to determine whether the application enforces the required attributes. The possible values are Y or N. When remote Siebel Product Configurator is used, set this variable on both the operating system of the Application Object Manager and the operating system of the remote Siebel Product Configurator. It is used by the engine and the user interface. |
SKIP_HIDDEN_AND_NOT_REQUIRED_ATTRIBUTES |
Flag to determine whether the application skips the attributes that are hidden and not required. The possible values are Y or N. When remote Siebel Product Configurator is used, set this variable on the operating system of the remote Siebel Product Configurator. It is used by the instance service and session. |
SEBL_CFG_SEARCH_LIMIT |
The number that determines the search limit. Used to limit the counter for the number of failed searches. Set on all application servers. By setting a very high number, you tell the engine not to exit the solve operation. In some cases, if the engine cannot find a solution after a reasonable number of iterations, it displays an error message, but if this variable has a high value, it keeps trying, which can slow the response time to unacceptable levels. When remote Siebel Product Configurator is used, set this variable on the operating system of the remote Siebel Product Configurator. |
VOD_PROFILER_ON |
Flag to determine whether to collect the statistical data on instrumented functions. The possible values are TRUE or FALSE. When remote Siebel Product Configurator is used, set this variable on both the operating system of the Application Object Manager and the operating system of the remote Siebel Product Configurator. |