Let me clarify this in start this post discuss kind of advance concepts so if you are not able to understand the terms Quote Line items, Product Configurator, SiebelMessage, EAI Siebel Adapter, Root Item then this post is not for you.
Few days back I had a chance to work on interesting requirement. We were to receive an XML in form of SiebelMessage that will have basic information for Quote and complete information about Product (Quote Item) and its attributes (Quote Item XA)
We needed to provide user with a button which will allow user to browse for XML file on his system and once he chooses correct XML it will update the Quote with new information and create Quote Item and Quote Item XA records.
Solution Approach:
I am not going to share complete technical details but just going to provide approach for the solution.
- Create a New Form Applet based on attachment BC
- Create a button control on applet, on which you want user to click
- Have method name as ShowPopup
- Create control user property specifying Mode and Name of Applet that you created above
- On Submit button of this pop up applet call a workflow or business service that will do processing on this attachment.
Problem:
Updating Quote, creating Quote Item and Quote Item XA record was pretty straight forward using EAI Siebel Adapter bs with Upsert method we created records successfully but we were not able to customize those products in Product Configurator.
As soon as we clicked on customize button which opened Product Configurator session, all the product attributes and products there were inserted from XML were removed and we used to get a default product structure.
Solution:
After lot of R&D we were able to find root cause of the problem.
There are three important fields in Quote Item which should be populated with correct values, if we want Product Configurator to work correctly
- Cfg State Code
- Cfg Type
- Product Port Id
Cfg State Code: This field should have value ‘Saved Item’ (without quotes). When you configure a product in product Configurator session and click on ‘Done’ button, Product Configurator sets this value and if this value is missing then Product Hierarchy is considered to be invalid and it is reset.
Cfg Type: This field should have value ‘eConfigurator’ (without quotes). I haven’t tried it with other values but I think Product Configurator requires some value in this field and if it is null then it will reset the hierarchy.
Product Port Id: This field should have the Relationship Id of the product that you are trying add. Only way I know to get the correct value is to use business service ‘Remote Complex Object Instance’ with GetAllPorts method, which gives you a hierarchy as an output and you need to traverse that hierarchy to get the correct value.
Cfg Type and Cfg State Code values only needs to be set at Root Quote Item but Product Port Id field needs to be set for all the sub products that are part of hierarchy. Once you populate these fields with correct values you will be able to customize the product correctly.

