Change icons on screen tabs in Siebel Open UI

Have you ever tried to add or change icons on screen tabs in Siebel HI application?

Before that,

Do you think, we can configure screen tab icons in Siebel HI at all?

And what about Siebel Open UI?

Configuring Siebel Open UI

Answer is YES!

We can add or change icons on screen tabs in Siebel HI as well as Open UI application.

There are two ways to change screen tab icons in Siebel –

1. Repository Dependent Process – Configure Bitmap category and Bitmap in Siebel Tools

2. Repository Independent Process – Find out the image name and replace it with custom image

We all like fast and non srf solution, isn’t!

Here, we will discuss about repository independent process in details. Though we will brief you about srf dependent process also but main focus will be on non srf solution.

You may think, what is the use or business value of changing screen tab icons?

Well,

It’s not like that it does not have any business value. Better user experience is also a business value, right?

You know, image can engage users more than just a text.

Even we have seen a customer who asked to replace all texts from screen tabs with images completely just for better user experience.

So,

Steps for non srf solution to change icons on screen tabs in Siebel HI or Open UI:

Step 1. Find out the image name, responsible to display icon on screen tab

You already know how to find out any element or object in Siebel Open UI, right?

If not, you must go through our Open UI training articles, particularly Siebel Open UI theme customization.

Here we will change screen icon for ‘Account‘ tab.

So, right click on ‘Account‘ screen icon and click on ‘Inspect Element‘ to launch inspector.

change icons on screen tabs in Siebel Open UI

Under Elements tab, you should see highlighted ‘img‘ html tag. Once you keep the cursor over that highlighted script, you will see a popup of that image and icon on screen tab will also be highlighted.

Modify screen tab icons in Siebel Open UI

Now seeing the image, you can tell the image file name and size.

For ‘Account‘, image file name is ‘accounts_icon.gif‘ and size is ‘16X16‘ pixels.

Image size is important because we have to replace this image with same size image. Otherwise Siebel will not display the icon properly.

For this tutorial, we have got a custom image with 16X16 pixels.

If you want to increase the size for screen tab icons, then you have to modify CSS rules.

You can test it by updating CSS properties inline using browser developer tool.

Update icons on Screen tab in Siebel Open UI

On the right hand side, you can see few CSS properties from theme-base.css file, right?

Just change the height parameter from 16px to any other value and see, icon size is changed. Likewise you can test font size, padding, line height also. To know more about theme related configuration, read our article on Siebel Open UI theme.

Anyway, back to our topic.

So far, we know what is the image name and where to find it.

Step 2. Verify custom image

Same as application loading image, screen tab icon also has size limit. From the previous step, we have got to know that best fit image size is 16X16 pixels.

To resize custom image, you can use any third party tool like Microsoft Office picture ManagerPicresize.

Also don’t forget to save it with .gif format.

Step 3. Replace the out of box image

Now,

Copy your custom image file under ‘IMAGES‘ folder.

For dedicated client, copy the image under ..Client\PUBLIC\<lang>\IMAGES.

For web client, copy it under Siebel Web Server\PUBLIC\<lang>\images.

Do not delete the out of box image!

Before copying the custom image, rename the vanilla one. So that, if it requires, you can always get the vanilla image.

Change screen tab icons in Siebel Open UI

Step 4. Verify Siebel Open UI application

Now clear browser cache and relaunch Siebel Open UI application, you should see the new icon.

Customize icons on screen tabs in Siebel Open UI

Simple and easy!!

But,

It has a drawback 🙁

What will happen if the same vanilla image has been used in other place/s as well?

In this scenario, vanilla image will not appear in any other place as you have changed the name.

But,

Good thing is that, we have never faced such issue but it may occur. In this case, you have to go for srf dependent process to change icons on screen tabs.

So, just a brief about Repository Dependent Process.

First, find out the ‘Bitmap Category’ and ‘Bitmap’ responsible to display the icon.

If the screen tab has icon, it will have ‘Bitmap Category’ also.

So navigate to Siebel Tools -> Screen and search for the screen.

From ‘Bitmap Category’ property in Screen object, you will get the category name.

If there is no category associated, you have to create a new one.

So copy the category name and query for the category under ‘Bitmap Category’ object.

Come down to the ‘Bitmap‘ child object and query with Name = Screen Tab Icon. If it is not there, then we have to create a new one with image name.

Name: Screen Tab Icon
Filename: Custom image file name

Do not forget to copy the custom image under ‘IMAGES’ folder as specified in step 3.

Compile all changes and launch the application. You must see the custom icon instead of vanilla.

Good enough!

If you have any question, please let us know.

Also if you want us to discuss any business scenario in this ‘Configuring Siebel Open UI‘ series, please leave your comment below.

Don’t forget to leave your feedback in the comment section!

Keep in touch, follow TechOneStop on Facebook / Twitter / LinkedIn / Google+.

<< Change application default loading image       Highlight required fields in Siebel Open UI >>

Watch our YouTube Video on how to configure Siebel Open UI to change icons on screen tabs:

Configuring Siebel Open UI – Change application loading image

Configuring Siebel Open UI‘ is our next series where we will discuss how to customize application as per business requirements.

Well,

Have gone through all Siebel Open UI training articles?

If not, we would suggest you to read Open UI tutorials first and then start configuration. 

Now its time to customize Siebel Open UI application.

We will start with few easy and interesting configuration requirements. Later we will discuss actual business scenarios.

Remember,

You must follow best practices as much as possible during Siebel Open UI configuration.

So,

Lets start with a simple requirement – change the application default loading image.

Though it does not have much business impact but we have seen many customers to change default loading images.

By default Siebel Open UI loading image looks like this – Siebel open ui default loading image(spinning wheel).

We will change it to this – Siebel open ui custom loading image(running man).

Though our custom image looks like static image but actually it is an animated image 🙂

Configuring Siebel Open UI -Change application default loading image

Sounds interesting?

Lets look configuration steps.

Steps for configuring Siebel Open UI loading image:

1. Verify custom image size

2. Rename out of box loading image (loadingAjax.gif)

3. Copy custom image

4. Verify Siebel Open UI application

Step 1: Verify custom image size

Very first step is to check custom image size. Image size must be less than or equal to 32 X 32 pixels. Otherwise Siebel will display only part of the image during application load.

To resize custom image, you can use any third party tool like Microsoft Office picture Manager, Picresize .

If you are using animated image, then don’t forget to save it with .gif format.

Step 2: Rename out of box loading image (loadingAjax.gif)

Do you know that loadingAjax.gif is responsible to display spinning wheel during application load?

So, before copying the custom image, rename ‘loadingAjax.gif’ file to keep the out of box image.

To rename the file, go to IMAGES folder under ..Client\PUBLIC\enu\IMAGES (for dedicated) or ..webserver\PUBLIC\enu\images (for web client), search for the file ‘loadingAjax.gif’ and rename it.

Step 3: Copy custom image

Now copy-paste your custom image file under IMAGES folder and rename it as loadingAjax.gif.

Step 4: Verify Siebel Open UI application

Delete browser’s cookies / history and launch the application. You should see your custom loading image instead of default image.

Simple and easy, isn’t it!!

If you have changed the default loading image in Siebel HI, then you are already familiar with these steps.

We have followed almost similar approach for Open UI also.

Do you want us to discuss any business scenario in this ‘Configuring Siebel Open UI’ series? please write us.

Also dont forget to leave your feedback in the comment section below.

Keep in touch, follow TechOneStop on Facebook / Twitter / LinkedIn / Google+.

                                                                                                                 Change icons on screen tabs >>

Watch our YouTube Video on how to configure Siebel Open UI to change application default loading image:


Siebel Open UI Quiz

Hope you have enjoyed our Siebel Open UI training series. Now it’s time to check your Open UI knowledge with our Siebel Open UI Quiz.

We have divided our quiz in three levels – Beginner, Intermediate and Expert.

Right now we have published beginner level quiz only. Soon we will publish other two levels also.

For ‘Beginner’ level Siebel Open UI quiz: Click here

If you have any question or want to share your feedback, please feel free to comment below.

Keep in touch, follow TechOneStop on Facebook / Twitter / LinkedIn / Goolge+.

How to remove ‘Case Required’ prompt from all fields, displayed on home page search applet

Fixing issues in Siebel Open UI is really fun. Well, let me explain you why so. Have you noticed such behavior in Siebel Open UI where ‘Case Required’ prompt is displayed for all fields on home page search applet? In SupportWeb, Oracle has reported this symptom as ‘There is inconsistent UI behavior between home page search applets and regular form/list applets when the field is reconfigured to support case insensitive searches’. Now see the below screenshot, you can see ‘‘ prompt for Opportunity name and Account name field but expected behavior is that there will not be any such prompt as those are not case sensitive search at all.

Case Required on home page in SIebel Open UI - techonestop.com

Oracle has taken this one as product bug (BUG #19001914) and stated like ‘This is a cosmetic issue as searching against the fields in the home page search applet will still be case insensitive, Until a fix for this is available there is no workaround’. But do not wait for their work around, we can fix it within few minutes. Follow below steps to fix it.

Step 1: Do ‘Inspect Element’
– Login into Siebel Open UI application and navigate to home page of any entity (Opportunity or Account or Contact) 
– Right click on any field from search applet and click on ‘Inspect Element’ option to launch inspector window

Inspect Element in Siebel Open UI - techonestop.com


Step 2: Locate CSS and file name

– Inspector window will keep the corresponding script highlighted under Elements tab. If it is not highlighted, then again right click on the field and choose ‘Inspect Element’ option.
From the script, you get to know that class ‘siebui-watermark-text‘ is responsible to display ‘‘ tag in watermark.
– From right hand side window, locate the CSS class ‘siebui-watermark-text‘ and change the color from ‘#C0C0C0’ to ‘#FFFFFF’. Can you see ‘Case Required’ tag now? You have just changed the color to White (:D)
– For us, CSS file name is ‘theme-gray.css’. This CSS file could be different based upon the theme that you are using
– Now refresh your application, it will display ‘Case required’ again
CSS in Siebel Open UI - techonestop.com


Step 3: Change theme-gray.css file

– Open the file ‘theme-gray.css’, located under ..Client_1PUBLICenuFILES (for dedicated client) or ..SWEAppPUBLICenufiles (for web client)
– Find the string ‘siebui-watermark-text’ and change the color code from ‘#C0C0C0’ to ‘#FFFFFF’.
  It should look like below:
                     .siebui-watermark-text{
                           color: #FFFFFF !important;

                     }

– Save and close the file

Step 4: Verify changes
– Restart web server service (For Windows environment, web server service name is IIS Admin Service)
– Clear browser cache and launch Siebel Open UI application
‘<Case Required>‘ is gone from search applet!! Same way, you can change field text color, font, background color and many more. To get more details, read our article on Siebel Open UI theme.
If you face any problem, please let us know. For more updates on recent activities, follow ‘TechOneStop‘ on Facebook / Twitter / LinkedIn or join our website as follower.

To know more, watch our YouTube video:

SBL-DAT-00500 / SBL-EAI-04451: There were more rows than could be returned

SBL-DAT-00500 and SBL-EAI-04451: There were more rows than could be returned. Please refine your query to bring back fewer rows.

Reason:

By default any business component query with ForwardBackward mode can fetch up to 10000 records at a time. If any query (generated by eScript or Workflow or any other way) returns more than 10000 records, Siebel throws this error ‘There were more rows than could be returned.’

How to fix:

Below we have mentioned 3 solutions to fix this error. You could choose one as per your requirement.

Solution 1: Use ExecuteQuery with ForwardOnly mode

This is the best solution if it fulfills your requirement. Oracle also suggests not to use ‘ForwardBackward’ mode with ExecuteQuery if it is not absolutely required. Instead of ‘ForwardBackword’, use execute query with ‘ForwardOnly’ mode that does not limit on fetching records.

Solution 2: Refine query

If you have to use ‘ForwardBackward’ mode to meet the requirement, try to add few more conditions so that Siebel fetches less than 10000 records at a time.

If there is an absolute need of fetching more than 10000 records using ‘ForwardBackward’ query mode, then only go for solution 3.

Solution 3: Change ‘DSMaxFetchArraySize’ parameter value

DSMaxFetchArraySize is a subsystem parameter that determines the number of records a business component query with ‘ForwardBackword’ mode can fetch at a time. By default, DSMaxFetchArraySize has value ‘0’ that means business component can return only 10000 records in ForwardBackward query mode. It does not restrict the number of records in ForwardOnly execution mode. If you want to get all rows from ForwardBackward query, set DSMaxFetchArraySize parameter value as -1 (negative 1). But you do it only when you don’t have any workaround because setting DSMaxFetchArraySize to -1 has impact on application performance due to large memory use. Even Siebel Object Manager could crash because of memory exhaustion.

To change this parameter value, follow below steps:

  • Login into Siebel application as Administrator
  • Navigate to Administration-Server Configuration > Enterprises
  • Under ‘Profile Configuration’ tab, search for the profile ‘Server Datasource’
  • In the Profile Parameters list, click on ‘Advanced’ button to get all advanced profile parameters
  • Query on Alias field for DSMaxFetchArraySize and set the value to -1
  • Restart Siebel Server services

Beside ‘DSMaxFetchArraySize’, you check ‘Maximum Cursor Size’ property at Business Component level also. This property also restricts the number of records that Siebel CRM can fetch from server. If ‘Maximum Cursor Size’ property contains any value, it overrides MaxCursorSize parameter, defined in the configuration file. This parameter is applicable only on Oracle or DB2 database.

– Set ‘Maximum Cursor Size’ property value to -1 if you want records until Siebel encounters an end of file
– Set it to ‘0’ to get 10000 records
– If you set any number greater than 0, Siebel fetches that many number of records

Same as DSMaxFetchArraySize, this property also has performance impact. So before setting this property value to -1, check all other possibilities to avoid it.

If your Siebel application is using IBM DB2, then you need to check another two parameters – DSPreFetchSize and DSMaxCursorSize.

Do you have any question? Please feel free to comment below.

Keep in touch, follow TechOneStop on Facebook / Twitter / LinkedIn / Goolge+.

<< The method IsPortableUIMode is not supported            Error has occurred executing a Sql >>

Debugging in Siebel Open UI (Siebel Open UI Training – Part 7)

Debugging in Siebel Open UI is the most important and difficult task for any Open UI developer, isn’t it!!

But don’t worry, after reading this article, it will be easier for you to debug script in Siebel Open UI. In Open UI, we write script mainly for Presentation Model, Physical Renderer and Theme. Here we will discuss step by step approach of debugging Siebel Open UI script.

We will use browser developer tool extensively to debug Open UI script. In our previous module on Siebel Open UI theme, you have seen how to use browser developer tool for development purpose. Here you will use the same tool for debugging.

So what is Browser Developer Tool ?

Browser developer tool is a vanilla tool provided by almost all modern browsers like Google Chrome, Mozilla Firefox, IE 8+. It gives an inspector to verify JS or CSS files are downloaded properly on the browser or not. It allows inline modification of HTML and CSS rules to see how changes affect look and feel of the webpage. You can also see variables values, set breakpoints in JavaScript code from developer tool.

To open browser developer tool, right click on any web page and then click on ‘Inspect Element’. You could use shortcut keys also like F12 for Google Chrome, Shift+Ctrl+Q for Mozilla Firefox.

Steps for debugging in Siebel Open UI:

  1. Verify JavaScript and CSS files are downloaded properly in the browser
  2. Verify Javascript Class is properly loaded
  3. Use SiebelJS.Log() function to log messages
  4. Use debugger statement to add breakpoints inside script

1. Verify JavaScript and CSS files are downloaded properly in the browser

If your code does not work, first step is to verify all files are downloaded properly in the browser. Best tool to do so is browser developer tool (Inspect Element). You first open Siebel Open UI application Debugging in Siebe Open UIand right click to choose ‘Inspect Element’ to open developer tool. If your browser is Google Chrome, then go to ‘Source’ tab and search for files.If there is any error or warning in downloading file, you will see a small red or yellow icon on the top right hand corner. You click on those icons and down the ‘Inspect Element’ window, another window will show all errors.

There may be several reasons behind download failure.

– JS file is not properly defined in Manifest Administration. To know more about Manifest Administration, read our article ‘Manifest File Customization

– Error in JS file itself

2. Verify JavaScript Class is properly loaded

To verify JavaScript Class is properly downloaded to the client, go to Inspector tab and type SiebelAppFacede.<First few letters of class name>JavaScript debugging in Siebel Open UI

– If class is properly loaded, auto complete feature of the console will recognize the class

– If browser does not suggest the class, then verify the class is properly registered in the namespace of JS file or not

3. Use SiebelJS.Log() function to log messages

Use SiebelJS.Log() to print variable values or any other log messages on inspector tab

– Use GetFieldValue() to get values of controls in the Presentation Model

Presentation Model Debugging

– Use val() to get values of elements in the Physical Renderer

Physical Renderer Debugging

– To see the output of log messages, open browser tool and go to Inspector tab

  • All log messages appear in execution order
  • If you have used log statement in multiple places, then add file name or any separator among log messages. It will help you to understand which log message is coming from which file.

4. Use debugger statement to add breakpoints inside script

– Almost all modern browsers have built-in breakpoints feature with developer tool. You could add expression on breakpoints also.

Siebel Open UI debugging

– If the developer tool does not give breakpoints functionality or you want to set breakpoints explicitly, then use ‘debugger’ statement in your script.

Debugging techniques in Siebel Open UI

– ‘debugger’ behaves the same way as breakpoints, code execution will stop at that point.

Few Recommendations :

– Use JavaScript code quality checking tools like JSHint, JSLint to verify JS file before deployment

– Remove debugger and SiebelJS.log() from script before moving to production

– Try to avoid alert() to print variable values

              ♦ While debugger and SiebelJS.log() are invisible to end users, alert() throws alert message to end users

– Test with all browser and device combinations before moving the script to production

Session Highlights – Debugging in Siebel Open UI:

1) Use browser developer tool to verify that the JS or CSS files have been downloaded properly

2) Use SiebelJS.Log() to print variable values or to decide that the code execution has reached certain point

3) Use debugger to add breakpoints

This ends our seventh Open UI training module – Debugging in Siebel Open UI.

To check your Siebel Open UI skill, click here – Siebel Open UI Quiz 

If you have any question about Siebel Open UI Debugging, please feel free to comment below.

Keep in touch, follow TechOneStop on Facebook / Twitter / LinkedIn / Goolge+.

<< Module 6: Siebel Open UI Theme                             Module 8: Presentation Model Methods >>

Watch our YouTube Video on Debugging in Siebel Open UI: