We have moved to a Please visit there for updated posts

Thursday, October 25, 2007

Address Changed

We have moved to a new domain.

from now on I will be posting my new entries at the above address. Please visit and post your comments to make that site better.

Your suggestions has helped us to reach where we are today and looking forward for same kind of response.

I have changed the feed address so all that have subscribed to the blog will get all the updates.

I am in process of selecting the right theme so you might see some changes happening in next few days.

Neel Read more!

Sunday, October 21, 2007

Siebel eScript – An Overview

Scripting is one of the most important areas in Siebel Development but irony is that it is never recommended to write script in Siebel. Siebel scripting is done in a language known as eScript. eScript shares it’s syntax with JavaScript. If you have worked in JavaScript then you would find it pretty easy to adapt to eScript.

eScript can be broadly classified into two categories

  • Server Scripts
  • Browser Scripts
Server Scripts: as its name suggests is executed on server side. Which means that the user request is sent to server where the scripts is then executed

Browser Script: is actually converted into JavaScript and is executed on client side.

Usually scripting is written on objects in Siebel such as Applets, Business Components etc. But the main use of eScript is done to write Business Services. There are lots of things that you achieve through a business service. Detail discussion on business service is subject to different post but it is similar to somewhat workflows implementing complete business processes with the help of script.

Scripting should be used as a last resort. Everything can be done through script of course but it makes the manageability and up gradation of Application difficult.

But as I said in my earlier post to be a successful Siebel developer Scripting and Configuration should be your strong points. Scripting can be fun but should be avoided as long as possible Read more!

Siebel Database User not abel to Login


You have created a database user e.g. SIE_USR that is going to be used for anonymous login to perform various tasks. All the proper roles and privileges have been assigned to it but still it is not working.


Whenever you create a database user you have to create corresponding user profile to it. Every user that has to login through Object Manager needs to have its user profile created in Siebel. If user profile for that database user doesn’t exist that user will not be able to login to Siebel through object manager.

You can create user profile by going to

Administration User ==> Employees View

In next post I will present a case study where we had to create database user and faced the problem mentioned above after forgetting the user profile creation of that user.
Read more!

Thursday, October 18, 2007

Siebel eScript – How to track performance with Timing Scripts

Timing scripts can come in handy to know exactly how much our code is taking to execute. There can be several reasons for doing this.

  • We are calling several business services in code and we need to know performance of each one.
  • We need to know time our script on business component, Applet is taking
  • We have several approaches to solve the problem and need to know the exact time taken by each.
The code to achieve that is:

var fileVar = Clib.fopen("c:\\Timing.txt", "at");
var timeVar = Clib.ctime(Clib.time());
Clib.fputs(timeVar + ": Starting trace in of code", fileVar);

//code which you want to track time

timeVar = Clib.ctime(Clib.time());
Clib.fputs("Ending trace of code: " + timeVar, fileVar);

    PS: This code will work only if you are trying to run it in dedicated client or your Siebel server is windows server. This code will fail if you are trying to run it from thin client and your Siebel Server is a unix server as it will not able to find the path. You will have to change the path to unix path e.g. /apps/srvr/bin if your server is unix.

    Hope this helps!!!!

    Read more!

    Siebel Data Sources – An Overview

    Database is an indispensable part of any software including Siebel. Then also rarely do we know or try to know that how our software is interacting or connecting with database.
    In this series of articles I will try to divulge the details of what happens in the background and how this information can be helpful in troubleshooting database connectivity problems.

    Siebel like many other software uses Open Database Connectivity (ODBC) to connect to the database. ODBC is a industry standard that was developed in 1992. It gives you the interface to connect to database and hides all the details and coding required for connecting and interacting with database.

    In Windows 9x you can go to control panel and click on the ODBC Data Source icon to see the details of data sources that exists on your system.

    In Windows XP and Windows 2000 you can use a enter odbcad32 in run box
    or you can go Control Panel ==> Administrative tools ==> ODBC Data Sources

    There are two types of data sources (DSN) available

    User DSN: Available to only particular user account under which they are created
    System DSN: They are pretty much same as User DSN except the following differences

    • ONLY the System Administrator can; Add, Remove and Configure System DSN's.
    • System DSN's will be used only if the DSN does not exist as a User DSN.In other words; your User DSN has precedence over the System DSN.
    • Everyone shares the same list of System DSN's.
    These DSN use different drivers to connect to different databases. Drivers contain the special code required to talk to the specific type of database you will work with. The Drivers often come from the vendor of the database. Your System Administrator is the only user who can install and register a Driver. You will select a Driver to use when adding a new DSN.

    Siebel comes with a driver named Siebel Database. If you are to create a data source to connect to local database you will be using Siebel Database Driver.

    In next few posts we will discuss, How to create and configure Siebel Data sources and How to change cfg file to use our new data sources etc. Read more!

    Wednesday, October 17, 2007

    Siebel Configuration - An Overview

    If Siebel could be visualized as human body then configuration has to be the heart of that body. Without configuration Siebel cannot work and configuration is what comprises of 70% of Siebel Development.

    Siebel configuration is done using an IDE provided by Siebel i.e. Siebel Tools. If you want to be a successful Siebel professional then you need have strong configuration skills. Configuration is mostly based on concepts and facts. Once you have understanding of the concepts and facts properly then you wouldn’t face any problems. I would like to like to give example of computer networking here to explain the above statement.

    In networking a RJ-45 jack is required for UTP cable to connect to system. Once we have this knowledge it doesn’t change it doesn’t matter how many times you perform that task it is always going to remain same. Similar case is with Siebel configuration once you know how to create an Applet you are done. It doesn’t matter how many times you create and Applet the procedure will remain the same. Though there are several ways but they all work in predefined way and once you know them they will always be same.

    Siebel Configuration is a little different from Siebel scripting. Unlike scripting, in which everybody has his own unique ways to approach things Siebel configuration works on predefined set of rules that have been decided by Siebel. So you can be successful at Siebel configuration even if don’t have strong programming skills but as a downside Configuration and Scripting goes hand in hand. So, the chances that you will be working on configuration alone are pretty slim.

    Siebel Configuration is one area which comprises of 50% of interview questions. So, when you want to appear for interview make sure you are up to date with your configuration concepts and fundamentals. Main responsibility of a Siebel configurator is to work on business layer of Siebel and implement business logic and business rules.

    Hope this helps you to point into right direction.
    Read more!

    Tuesday, October 16, 2007

    Drill Downs - Common mistakes made.

    Problem statement:

    • We configure a drill down and we test it. It works fine and it takes us to the destination view that we have provided. Another user logs in for him the drill down disappear. It is just plain text field.

    • When we click on the drill down it gives us an error

      “You do not have permission to view this record or this record has been deleted”

    • Drill down is working for some users and some users are facing error while using that drill down.


    The reason behind the problems mentioned above is Responsibilities. Yes, It is as simple as that.

    We are going from one view to another view and if we don’t have that view in our responsibility we migh face one of the above mentioned errors. Some time more than one destination is provided, as is the case of the dynamic drill down and they are executed in the sequence that we provide. If views that have been mentioned in the sequence are not assigned to our responsibility then we can again face the above mentioned error.

    Will try to add specific case studies explaining the above mentioned scenarios.
    Read more!

    Siebel CRM How To - Automate login into Siebel Dedicated Client

    The trick I am going to tell you in this article might seem to you very simple and basic if you have been working on siebel for a long time but for a newbie it can be small time saving trick during his early days of dabbling with Siebel Development. I have come to know in last few days while talking to a friend, assuming that a simple thing is known to everybody is a mistake and there is nothing such as useless simple thing.

    My experience has taught me that it is pretty common to ignore simple things but they usually are the one's that can save you a lot of hassel if used in a proper way. During our intital time of Siebel development there is atleast 50 time we open Siebel Dedicated Client and Siebel tools while we are trying to explore Siebel to the best of our ablity. This simple trick can automate your login to the client and tools and save some time of entering username or password.

    • Right Click the shortcut through which you acess the Siebel Client or Siebel Tools and choose Properties from the context menu.
    • Scroll right to the end of Target Text Field Value enter the following text in the end.

    /u sadmin /p sadmin /d sample

    These text will automate your login to sample database. If you want to automate your login to Local Database enter the following code.

    /u username /p pwd /d Local

    replace username with your local username and pwd with your local database password

    You can create copies of the shortcut that you use and can configure different shortcuts to login to different databases. Detail about switches being used in the above article and other switches that can be used is a subject of another post.

    Hope this post helps you. If yes, Then please post your comments or suggestion to improve this blog.

    Read more!

    Monday, October 15, 2007

    Siebel CRM How To – Restrict a Field to only Accept Certain Characters?


    • We have a multilingual application and we have Unicode enabled database but still we would like to restrict user from entering certain characters.

    • We want to prevent user from entering numbers in alpha-numeric fields.

    Use charCodeAt function given by Siebel but not documented properly by Siebel. Here I am giving a Pseudo code to explain how it can be used.

    if (FieldName == "First Name") {
    for (var i=0;i less than field length ;i++) {
    var ASCII_code = fieldvalue.charCodeAt(i)
    if(ASCII_code is not valid code)
    Error("Not Valid Code");

    charCodeAt() returns the ASCII code of the character that is supplied to it. ASCII code comparison is way faster than the number function that are used to compare strings so we can also use this function where we want to compare two strings by just modifying the above given Pseudo code.

    Hope this helps! If yes, Please put your comments below.
    Read more!

    Siebel Enterprise Integration Manager (EIM) - An Overview.

    This article has been provided by Shalini Chauhan having Siebel experince of over 1.5 years and Leading an EIM team.

    Not everybody today uses Siebel but when they decide to use Siebel they just cannot leave data in their legacy system as such. They would like to retain that in their new improved Siebel CRM system. But how do you import that terabytes of data probably existing in CSV or a DAT file. This is where EIM comes into picture.

    EIM stands for Enterprise Integration Manager. It is a SIEBEL Component which is used for Data Migration from legacy as well as other Siebel systems.

    When I heard about EIM, it appeared to be a very dull, complicated and difficult subject. But when I really started working, I found it as much fascinating and challenging as I wished to work upon.

    Why EIM:
    Siebel has very unique and complicated Database structure which already has relationship defined between n number of tables hence it is not recommended to insert, delete or update data stored in what is known as Base Tables in Siebel. During migration lot of things can happen which can lead to data integrity issues. To answer all those concerns Siebel has provided EIM.

    For most of base tables in Siebel an EIM table is also in existence which allows you to play with data and perform thing that you normally wouldn’t want to perform on base tables. So, you can import-export data to and from EIM tables and we can perform following operations on the data that resides in EIM tables

    a) Insert
    b) Update
    c) Merge
    d) Delete

    Once the data is manipulation and scrubbing is complete we can import that data in base tables and Siebel EIM component takes care of things like Foreign Key, Composite Keys, User Keys and also issues related with data integrity.

    The source of data can be dat files, CSV files or any other kind of legacy database. So as the process, we need to push data to these interface tables using third party tool like SQL Loader, DTS etc and then migrate data to Siebel base tables using EIM component.

    Main Responsibilities of person responsible for EIM are

    • Identifying and creating mapping between EIM and Base Tables.
    • Cleansing of data to be imported.
    • Loading of data in EIM tables.
    • Running EIM batch job.
    To be successful in EIM, one must be aware of basic understanding of RDBMS, SQL, cursors, etc and should have interest in database and also should have an adaptive learning approach. It is really a challenging job but only when you are ready to exhibit your dedication and hard work. Read more!