Sunday, February 26, 2012

Error Messages in SI Mode


Time again to stimulate your grey cells. Architectural differences between SI and HI clients are well documented. Recently working with SI application we observed a strange thing. SI client handles processing of error/Validation messages from BC layer and UI layer in different ways.

While invoking RaiseErrorText from BC error message was displayed on the top view bar but while invoking the same from applet was taking to different error web page resulting in context loss. User has to click Back button to go to previous page.

Same holds true for DVM messages. While invoking from BC layer using run time events the error message is displayed on the same view but while invoking from UI layer error message is displayed in different error web page. I am not able to break this thing why it behaves differently on different layers. Any insight/thought on this would be of some help.

Happy Debugging!!



Sunday, February 19, 2012

Disabling button in SI Mode


Working with SI applications can be as good as playing with fire. Recently we faced an issue when some naughty users clicked button multiple times resulting in underline action getting executed multiple times. As in case of SI applications, if the method is taking time to execute then button is not disabled it remains active giving end user an impression of nothing-is-happening. So user may end up clicking the button multiple times.

The only way to prevent multiple clicks is to disable button as soon as it is clicked. Fortunately there is an article on support which provides solution to achieve the desired but a scripted one. Following piece of code can be used to disable button after click.

function WebApplet_ShowControl (ControlName, Property, Mode, &HTML)
{
    if(ControlName == "SubmitButton")
    {
      if(Property == "FormattedHtml")
      {
          var index = HTML.indexOf("onclick=");
          var start = HTML.substring(0,index+9);
          var end = HTML.substring(index+9);
          var func = 'setTimeout("a()",10);; ';
          var funcA = "<script>function a(){";
          funcA += "var c = document.getElementById('SUBMIT');";
          funcA += "c.outerHTML='';";
          funcA += "} <script>";
          HTML=start + func + end + funcA;
      }
    }
}
However, we wanted to implement the solution by configuration and yes, we were able to achieve by using following piece of code in "HTML Attributes" property of button.

onclick="function fn(){disabled=true;}setTimeout(fn, 100);"

The idea is to diable button once it is clicked and making a recursive call after 100 milliseconds by using setTimeout function so that it gives user an impression that button is disabled. There could be alternates to achieve this. Again piece of advice/comment is always welcome. 

Happy Crunching!!

Tuesday, February 7, 2012

Cosmetic UI Changes


Cosmetics may be a weapon of women but it is always better to look over rather than over looked. Siebel OOB comes with a soothing look and feel but still it may not fit into coloring schemes. In this post we will discuss about some basic UI modifications.

Statutory Warning: Please take backup of existing files before you play around.

1 - Changing Oracle logo
This is the foremost change which should be done. lookout for the "CCFrameBanner.swt" template file and modify below code to suit your requirement.

<td align="right"><a href="http://www.oracle.com" target="_blank" ><swe:image name="POWERED_BY" category="HTML Control Icons"/></a></td>

Change this code to below code

<td align="right"><a href="http://YOURURL.com" TARGET="_blank"><img src = "images/YOURIMAGE.jpg" height ="30"></a></td>


2 - Changing login screen
In order to determine the positioning of the items on the login screen or change the graphics that appear on the login screen one has to modify web template file "SWELogin.swt". This web template file determines the layout of the web page items on the login screen.

3 - Changing Menubar color 
The menubar color can be changed by changing the jmenubar.js file.Background color of menubar is hard coded in the "jmenubar.js" file. Below attributes can be changed for desired appearance.
var MENUBAR_BGCOLOR = "#FF6633";
var MENUBAR_TEXTCOLOR = "#FFFFFF";
var MENUBAR_HIGHLIGHT_COLOR = "#FFFFFF";
var MENUBAR_SHADOW_COLOR = "yellow";

4 - Changing Screen Bar 
The screen tab are now implemented as java controls in Siebel 7.8. Their appearance is determined by the settings in the file jctrls.css. Below section controls the appearance of screen bar.
.clsScreenBar
{
   NC-TAB-BACKGROUND-COLOR: #333399;
   NC-TAB-BACKGROUND-COLOR-SELECTED: #F0F0F0;
   NC-TAB-BACKGROUND-COLOR-MOUSE: #F0F0F0;
   NC-TAB-FONT-COLOR: #FFFFFF;
   NC-TAB-FONT-COLOR-SELECTED: #333399;
   NC-TAB-FONT-FAMILY: Arial;
   NC-TAB-FONT-SIZE: 15;
   NC-LINK-FONT-FAMILY: Arial Black;
   NC-LINK-FONT-SIZE: 18;
   NC-LINK-FONT-COLOR: #333399;
   NC-LINK-FONT-COLOR-SELECTED: #333399;
}

5 - Changing view bar
Their appearance is determined by the settings in the file jctrls.css. Below section controls the appearance of view bar. 
.clsSubDetailView
{
   NC-TAB-BACKGROUND-COLOR: #466FB4;
   NC-TAB-BACKGROUND-COLOR-SELECTED: #F0F0F0;
   NC-TAB-BACKGROUND-COLOR-MOUSE: #000000;
   NC-TAB-FONT-COLOR: #FFFFFF;
   NC-TAB-FONT-COLOR-SELECTED: #333399;
   NC-TAB-FONT-FAMILY: Tahoma;
}

6 - Changing Background Color of selected row 
Again this could be easily achieved by changing settings in jctrls.css file. Below section controls it.
.clsJLCMain
{
JBACKGROUND-COLOR-ROW-ACTIVE: #FFFFFF;
}


One can definitely change applet and view layouts by changing underlying web templates.There is no second chance to create first impression so better have a good looking UI. 

Happy Beautification!!

Thursday, February 2, 2012

Distinct Property


Distinct clause is one of the powerful clause in SQL which helps to remove duplicates from the result set. In real time scenarios we are bound to have requirements which involves updates or removal of distinct records.



Siebel provides a,how-i-missed-type, "Distinct" property on business components that helps us to achieve just this. Business components in siebel 7.8 and higher have this property. Setting this property to TRUE allows the equivalent of a select distinct query as it suppresses system fields.This property enforces a "DISTINCT" clause on all fields present in the BC, which may lead to errors during execution. It is better to clone business component and include only fields which are required in distinct clause.

Document ID 867149.1 in support web explains this siebel virtue in detail.

Happy Crunching!!


Monday, January 23, 2012

Multilingual Confirm/Alert in Browser Script


Working with multilingual can be as challenging as playing tennis with rafael nadal on clay court. Siebel provides outstanding set up to enable multilingual application.

There are different object managers for different langauges. There are symbolic strings for multiple language references, there are message categories to enhance re-usability. Lookup's for value comparison in different languages and not to forget multilingual email templates along with BIP reports giving end user 100 percent localized effect.

There are still some non-localizable elements including log files and help applets. However while working on the browser side i was not able to translate the message in the desired language using "LookupMessage" method as it is only supported on the server side. In order to achieve localization we used below java methods to identify the language in url display message accordingly.

Lets say you want to display confirm box in french application probably this piece may help you to achieve desired results.


var sURL = document.location.href;
var sCount = sURL.search(/fra/i); // this will search for object manager language
if(sCount > 0)
var sMsg = "Décochez va supprimer les données, Voulez-vous procéder";
else
var sMsg = "Uncheck will remove the data, Do you want to proceed?";
if(confirm(sMsg))
return ("ContinueOperation");
else
return ("CancelOperation");


There could be alternates to achieve this. As i write, another issue related to multilingual is dangling in Stop step in workflow. Question is whether we can use LookupMessage function in workflows or not? Any thoughts on this are much appreciated.

Happy Crunching!!





Tuesday, January 17, 2012

Vision 2012



Welcome to 2012, year being panned for much touted release of Windows 8, Olympics, US presedential elections, iphone 5 and supposedly end of world but i am sure we are more interested in how Oracle releases siebel gems.


If anything to go by the last siebel release letter from oracle, 2012 seems an exciting year for siebel community. There are enhanced funtionality in the areas of


- Public sector 
  Enhanced eService application and appeal management system being the highlights.

Loyalty for Travel

Rapid deployment and easier management of complex promotions. Enhanced user experience, control and productivity. Enhanced loyalty engine performance being the key focus areas.

- Automotive
Enhanced warranty management and claims processing solutions.

- Life Sciences
Personalized Content Delivery features to enhance the interactive digital experience.

- Financial Services
Integration capabilities with Oracle FLEXCUBE for Banking customers.

If  that comet doesn't strike then stay tuned for more bombarding features/patches/versions from oracle.

Happy 2012!!!




Tuesday, December 27, 2011

Happy New Year!!


Time of year has arrived when travel plans, party plans presides over defects and status reports. So i take liberty of being non technical and thanks all readers across the globe for wonderful support and comments with very warm new year wishes.

May new year brings lot of happiness with less defects,more siebel patches, hefty pay hike, hot gal friend or boy friend (only for bachelors), trimmed waistline.

May you get a clean bill from your dentist, your cardiologist, your gastro-enterologist, your podiatrist, your mechanic and your plumber.

May your hair, your teeth, your abs and your stocks not fall; and may your blood pressure, your cholesterol, your white blood count and your mortgage interest rates not rise.

May New Year's Eve find you seated around the table, together with your beloved family and cherished friends.

May every day of the new year glow with good cheer and happiness for you and your family.

Happy 2k12!!