Thursday, August 28, 2014

Quote Catalog not Loading

 

We faced a peculiar issue on the Quote Catalog view , Siebel version 8.1.1.11 SIA [23030].

When users went to the Quote Catalog view, which is where one starts adding products to the quote for the Pricing Engine, they noticed the Catalog did not load. This happened usually on the the first quote after login.

image

But once the Price List of the Quote was selected, or reselected, and the view was refreshed, the Catalog Items would start appearing.

The Business Component is [Quote Catalog Internal Product by Price List Optional] and it has a user property [SetPriceListSearch] set to ‘Y’. A simple search brings the bookshelf where it is mentioned that

‘This user property indicates whether the [Price List Id] = GetProfileAttr("PriceListId") search specification is applied to the business component. By default, it is set to Y, so only products in the current price list are displayed.’

Turns out, this is one of those many vanilla Profile Attributes managed by Siebel itself. It is set  to the Quote’s Price List’s Id when a Price List value is selected in the Quote. Otherwise, it is blank.

Try out this in the browser ui: javascript:alert(theApplication().GetProfileAttr("PriceListId"));

image

So the issue happens only for the first Quote selected by the user after login, if he has not changed the PriceList value of the Quote. The profile attribute is not set, even if there is already a Price List value at the Quote.

Inorder to fix this, I added a simple RunTimeEvent on the QuoteForm applets’ DisplayApplet event.

 

image

Action Set:

image

This would set the value of this ProfileAttribute when the Quote applet is loaded. With this fix in place, the Catalog items now appear correctly.

image

Trying out : javascript:alert(theApplication().GetProfileAttr("PriceListId"));

image

The other way to fix this is to disable the BC User property, so that items from every Price list is visible. But this would depend on your business use case.