Removing vanilla buttons from the Product Configurator UI

Requirement:
Remove vanilla buttons from the configurstor UI.






Solution:
Solution doesn't involve any configuration in Siebel tools or compilation, it requires editing of the confgirator vanilla template files directly.

Buttons like Done , verify, reprice etc are displayed on confgurator UI as a part of  eCfgTopLevelButtonsJS.swt  template file. 

Buttons in this file are displayed inside the table cells and luckily there not much of css style attached on them.  

So to remove the buttons we can define a style property for each cell that we want to remove. style="display:none"


For Example to remove the Save button from the UI, you need to change the code from :

<td nowrap>
<swe:control id="swe:Cancel" CfgUIControl="Cancel" CfgHtmlType="MiniButton" InvokeMethod="PrevView"/>
</td>
to:

<td nowrap style="display:none">
<swe:control id="swe:Save" CfgUIControl="Save" CfgHtmlType="MiniButton" InvokeMethod="SyncInstance"/>
</td>


Comments (9)

Loading... Logging you in...
  • Logged in as
Interesting!!
Hi Guys,

<swe:control id="swe:101Id+400" CfgFieldName="CxEnabled" CfgUIControl="CfgLabel" CfgHtmlType="CfgLabel" property="FormattedHtml"/>';
I have a question. where do we get the value "swe:101Id+400"?? do you have any idea.

we're trying to customize the product configurator where in. we can hide the products conditionally.
in SI mode it's working but when we migrate it to HI and the reason is we're unable to get the value for <swe:control id="swe:101Id+400"
1 reply · active 812 weeks ago
sorry jay, Control id is still a mystery for me
hope you can throw some light on this.
here are some part of the code. we're not getting any value on the variable Id but on the remaining variable we're getting the correct value.
var ID = '<swe:control id="swe:101Id+2000" CfgFieldName="Product Id" CfgUIControl="CfgLabel" CfgHtmlType="CfgLabel" property="FormattedHtml"/>';
var Enabled = '<swe:control id="swe:101Id+400" CfgFieldName="CxEnabled" CfgUIControl="CfgLabel" CfgHtmlType="CfgLabel" property="FormattedHtml"/>';
var Selected = '<swe:control id="swe:101Id+600" CfgFieldName="Selected" CfgUIControl="CfgLabel" CfgHtmlType="CfgLabel" property="FormattedHtml"/>';

any suggestion guys?
1 reply · active 812 weeks ago
I think i didn't got your requirement clearly.
If your are trying to hide a product in an relationship then you can do it by excluding the product using a constraint and adding an Excluded = Y user property on the root product.

This will hide your product conditionally.. you can also specify this property on child products also.
hope this helps.
What i'm trying to do is hide the product conditionally in the product selection(Product configuration) so the product won't appear. co'z using the Hide From Prod Config flag will hide the product permanently. we're trying to do this by modifying the SWT file (Non_Customize_eCfgControlCheckJS.swt ) The code actually work in Standard Interactivity mode but when we customize it to High-Interactivity the code doesn't work.
1 reply · active 812 weeks ago
Jay,
If your condition is based on selection made by user then you have two predefined user properties in siebel to make the product hidden.
1. Excluded
2. Hide. both of them have totally "different" use.
But i think condition is not like that in your case.
For such condition i can suggest you changing the showcheckbox and showDomainAndChildrenControl method of cfgui.js file instead of the swt file.
This might help you to get your thing done in both the UIs.

Please share what solution works for you.
Hi,

we're modifying the showDomainAndChildrenControl method of cfgui.js and we are unable to get the profile attribute value.

We're trying to get the pass a value of a profile attribute from PreInvokeMethod event of FS Agreement Item BC to the cfgui.js showDomainAndChildrenControl function

We're using this syntax in the cfgui.js showDomainAndChildrenControl function to get the profile attribute

var sROSvcId = top.theApplication().GetProfileAttr("ROSvcId");

We are unable to get the value of the Profile Attribute because when we used the Alert (sROSvcId); we're getting null value

Do we have any other way on how to get the profile attribute from PreInvokeMethod to cfgui? any idea if it's possible
1 reply · active less than 1 minute ago
I don't know where you have messed up. I used the same trick in our implementation and it worked that time.
Try using browser cookies if profile attribute fails completely for you. Search on google for code to set and get browser cookies.

Post a new comment

Comments by

Other Siebel Blogs

siebel-admin-l @ IT - toolbox

siebel-dev-l @ IT - toolbox