Techno-Mantra

Amalgamation of Technical and Non-Technical World

Siebel eScript – An Overview

Posted by killingeyes on October 21, 2007

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

Posted in eScript, I Wish I Knew | Leave a Comment »

Siebel Database User not abel to Login

Posted by killingeyes on October 21, 2007

Problem:

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.

Solution:

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.

Posted in Problem-Solutions | Leave a Comment »

Siebel eScript – How to track performance with Timing Scripts

Posted by killingeyes on October 18, 2007

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);
Clib.fclose(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!!!!

    Posted in eScript, How - To | Leave a Comment »

    Siebel Configuration – An Overview

    Posted by killingeyes on October 17, 2007

    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.

    Posted in I Wish I Knew | Leave a Comment »

    Drill Downs – Common mistakes made.

    Posted by killingeyes on October 16, 2007

    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.

    Reason:

    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.

    Posted in Problem-Solutions | Leave a Comment »

    Siebel CRM How To – Automate login into Siebel Dedicated Client

    Posted by killingeyes on October 16, 2007

    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.

    Posted in Back to Basics, How - To | Leave a Comment »

    Siebel Enterprise Integration Manager (EIM) – An Overview.

    Posted by killingeyes on October 15, 2007

    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.

    Posted in I Wish I Knew | 3 Comments »

    Siebel Search Specification (Search Spec) – What about it?

    Posted by killingeyes on October 15, 2007

    This article has been submitted by Nidhi Puri having Siebel experience of 2+ years and right now working as Project Lead.

    A Search Spec is nothing but a filter on the returned set of records and if we we look atc it from database point it acts as where clause in the SQL that is formed which restricts the number of records that will be retruned from database.

    In Siebel we can apply search spec to

    • Applet
    • Business Component
    • Link
    • Picklist

    1. For an Applet, a search spec filters the records that are displayed on UI. The underlying BC brings back a set of records and before they can be displayed, the applet search spec applies the filter on them and displays only a subset of records.

    2. For a Business Component, a search spec filters all records that would be returned from the underlying base table. This would also result in the filtering of records on the applet tied to this BC. However, the search spec in 1 above works only for that particular applet while on a BC, the search spec is inherently applied to all applets that are based on this BC.

    3. A search spec on a Link will filter all child records from the destination BC.

    For Example
    Account/Address link. Search spec looks something like this: [City] = ‘London’, this will bring back all address records for the account where the City = London.

    4. A search spec on a Picklist will filter the data that the picklist points to. For static picklist, the data exists on the List of values, so the search spec for a static picklist would look something like this:

    [Value] ‘Corporate’. This would show all values other than “Corporate” when you click on the dropdown. For dynamic picklists, the search spec would something look like this: [Active Flag] = ‘Y’, this would bring back all records from the destination BC (on which the picklist is based on) where the Active Flag = Y

    Posted in Configuration | 1 Comment »

    NextRecord DeleteRecord – Use with caution!!

    Posted by killingeyes on October 11, 2007

    Number of times we have written code in which we have to traverse number of records in a loop and n number of times we have missed one important statement that results in our code to stuck in infinite loop. Yes, I am talking about the statement Object.NextRecord()

    This statment is generally used at the end of the loop so that after all the processing is complete we move on to the next record in the record set and perform processing on the next record. I am giving a Psuedo code to explain that.

    while(not end of recordset)

    {

    perform operation

    recordset.NextRecord()

    }

    But here I am going to to tell you about a situation where doing a NextRecord(). will result in problems. Yes, I we are deleting the records in the loop then we don’t need to use the NextRecord() function.

    Reason for that is using DeleteRecord() results in pointer to moved to next record automatically and if we use NextRecord then it will result in skipping of the last record we are trying to delete. Pseudo to explain this

    while(not end of RecordSet)

    {

    do processing

    recordset.DeleteRecord();

    // recordset.NextRecord(); // no need to use next record as delete will automatically move the pointer to next line

    }

    Hope this tip is helpful. Happy Scripting 🙂

    Posted in eScript | Leave a Comment »

    Navigating Siebel – Via Keyboard!

    Posted by killingeyes on October 11, 2007

    We generally navigate siebel with the help of mouse. Suppose, one fine day your mouse stops working would that mean that you are stuck and will not be able to work on siebel? I don’t think so, to overcome that situation Siebel has provided keyboard shortcuts or acclerators to navigate and perform important functions in siebel so that you are dependent on Mouse to do all your work in siebel.

    And I have always been a fan of keyboard as it saves you lot of time while working on system. So, here I am presenting list of keyboard shortcuts provided by siebel to perform various functions.


    Record Management

    New Record : CTRL + N
    Copy Record : CTRL + B
    Delete Record : CTRL + D
    Save Record : CTRL + S
    Undo Record : CTRL + U OR ESC
    Select All Records in List : CTRL + A

    Record Navigation

    Next Record : CTRL + Down Arrow Key
    Next Page of Records : CTRL + ALT + . (In List Applets)
    Last Page of Records : CTRL + ALT + L (In List Applets)
    Previous Record : CTRL + Up Arrow Key
    Previous Page of Records : CTRL + ALT + , (In List Applets)
    First Page of Records : CTRL + ALT + F (In List Applets)

    Query Management

    New Query : CTRL + Q
    Execute Query : ENTER in a Field OR CTRL + ENTER in a Text Area
    Refine Query : CTRL +R

    General Navigation

    Go to Site Map : CTRL + SHIFT + A
    Open Search Center : CTRL + F OR CTRL + SHIFT + F
    Run Report : CTRL + SHIFT + R

    Layout Management

    Define Columns Displayed : CTRL + SHIFT + K
    Define Sort Order : CTRL + SHIFT + O

    Online Help Shortcut

    Open Online Help : CTRL + ALT + H
    Help with Record : CTRL + ALT + K
    Technical Support : CTRL + ALT + J

    Application Management Shortcut

    Connect as New User : CTRL + SHIFT + W (Works in Dedicated Client)
    Log Out : CTRL + SHIFT + X (Works in Dedicated Client)

    Field Navigation

    Next Field : Tab
    Previous Field : SHIFT + TAB

    If you think I have missed something or you know something that others don’t feel free to share it here. I will be more than happy to include it with your reference.

    Posted in How - To | 4 Comments »

     
    Design a site like this with WordPress.com
    Get started