Requirement:
Based on value of some fields in Quote Item Product Configurator should display dynamic UI. To make it simpler I will put it this way.
If the value of the field Contract Type is ‘A’ then there should be three tabs in UI of Product Configurator and if the value of the field ‘Contract Type’ is ‘B’ then there should only be 2 Tabs should be displayed in UI.
Problems:
Hiding of Tab is easy but both UI had different set and type of fields on all the tabs and it is not possible to have different fields without heavy scripting and use of UI Properties which would render the product unusable and unmanageable.
Solution:
A Product Configurator API came to our aid in this case and made this solution possible.
SetUIOption: is an API this is used to display desired UI in product Configurator UI. It accepts a property set that should contain a Name/Value Pair where one pair represent the product Id and other pair represents the UI Name to be displayed (This is the value that you give in UI Options Field in Product Administration View)
- Modify the workflow Configurator Load (This is the workflow that is called when you click customize button to configure the product)
- Add a step after start to call a business service which will evaluate the value of the field ‘Contract Type’ on Quote Item and then calls the SetUIOption with appropriate argument values.
Psuedo Code of business service we created is as following :
if(GetFieldValue(ContractType) = ‘A’)
{
propertyset.setproperty(”ProductId”,Value);
propertyset.setproperty(”UIOption”,Value1);
SetUIOption(propertyset,outpropertyset);
}
else
{
propertyset.setproperty(”ProductId”,Value);
propertyset.setproperty(”UIOption”,Value2);
SetUIOption(propertyset,outpropertyset);
}

6 Comments at "Siebel Product Configurator SetUIOption API – A case Study."
Hi,
We are trying to do something similar and need to hide show tabs based on some value.
Would appreciate if you could share more details and the syntax to call this API
Regards,
Murali
Hi Muralidhararao,
I believe this post should help you out
http://siebelunleashed.com/product-configurator-%e2%80%93-setuioption-api/
[...] is in continuation with my earlier post about SetUIOption API which can be used to present the dynamic UI in Product [...]
Hi Neel,
We have a requirement in product config. where we have to convert a product into a new product, old prod.has one atrribute and new one will have four attributes. attribute values for new product (related to old prod.) are coming from external source. on click of renewal old product has to be converted in to new one using the external source atrrib. values.
how to achieve this? which is the better way?
plz help me.
Thanks,
Arvi
I think it is quite complex requirement. You will need to dig deep in Product Configurator API.
I can give you some name of API names that might help you out. But you have to read the details in the bookshelf. I can give you direction but not a solution
The API that you need look into are
GetAllPorts
LoadInstance
AddItem
SetAttribute
The solution will be something like
Load the instance of the current product and then make changes using AddItem and SetAttribute and then save that instance.
I know this is not of much help but that is what I can tell you for now. Once you start with the solution let me know I will try to help you with the specifics.
Hope this helps. You can get the details of these API’s in ProdAdmin.pdf
@Arvi,
Hi..
You need to invoke eConfigurator manually through Scripts and EAI to achieve this.
This will be a two step process:
1) Invoke interfaces to get the requisite values to be populated in the 3 attributes.
2) Populate the values in the product model through eConfigurator invocation.
ProdAdm.pdf has some limited info on this.
Warning: You may end up messing the complete application if done incorrectly!
I would very strongly recommend you go in for an expert who has done this before as it could mean a hell lot of effort even for him.
Good luck!!
sahil[dot]siebel[dot]sharma[at]gmail[dot]com.
Comment Now!