Siebel Product Configurator SetUIOption API – A case Study.

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);
}

14 Responses to Siebel Product Configurator SetUIOption API – A case Study.

  1. 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

  2. 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

  3. 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

  4. 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

  5. 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

  6. 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

  7. @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.

  8. @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.

  9. Hello we have a requirment of editing atributes or adding additional components for existing products form the siebel install base screen our users do not want to click customize and edit attributes or add components via product configurator screen so our question is that can we edit or add components from first screen.

  10. Hello we have a requirment of editing atributes or adding additional components for existing products form the siebel install base screen our users do not want to click customize and edit attributes or add components via product configurator screen so our question is that can we edit or add components from first screen.

  11. Hi Neel,

    I have a requirment similar to this.But as i am new to siebel i am not clear with this information, my requirement is like this:”First time when customer is ordering for the product by clicking on customize configurator screen will display with all the attributes defined in that product.

    After provisioning (order completed), it will create one asset in corresponding account. Customer took this product for 1 year, after 1 year customer should renew the product. Then CSR should go to Accounts—Installed assets—CSR will click on Renew or suspend. It will create a sales order for that particular action

    Now if customer clicks on customize they need get one more UI with only few attributes. That means customer want to get a new UI. “

Leave a Reply

Contribute