Subscribe

RSS Feed (xml)

Powered By

Skin Design:
Free Blogger Skins

Powered by Blogger

Showing posts with label How - To. Show all posts
Showing posts with label How - To. Show all posts

Monday, May 19, 2008

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

Requirement:

  • 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.
Solution:

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.

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.

Navigating Siebel - Via Keyboard!

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.

Siebel How To - Create Inbound and Outbound Webservice?

I was fortunate enough early in my carrer to get a chance to work on Siebel EAI. It was the first implementation of Web Services in our project. So, had to struggle a lot to understand basics of web service. But I always from my school time had intrest in XML and Web so understanding that part was not that difficult but I really had to work hard to understand web services from Siebel Prespective. I am thankful to God now that there was nobody to guide me at that time which resulted in terrific learning and understanding of a fact

'Siebel is Huge' like a sea and what I have explored till now is not even 10% of whole Siebel.

During my days working on Siebel Web Services I created a Powerpoint Presentation (PPT) which had minimum steps that you need to perform to create Inbound and Outbound Service with Screen Shots. Which I would like to share with you all. It can act as a your guide to check If you are missing any steps in creating Web Service. It is not a comprehensive guide but just a tutorial to give you insight and to point you to the right direction if you are involved in EAI.

Click on the Link Below to download the PPT.

Download Now!!!!

Siebel Tools How To - Have Mutiple Local database Instances?

This article is a step by step guide to have mutiple local database instances on the same system.
Below mentioned points might be the reason why you would want to do that

  • You are working on mutilple projects and they all have repository named 'Siebel Repository'. You want to work on both repositories simultaneously.
  • You share your system and you want the changes made by other developer to be on a different instance rather than yours.
  • You have a server that can be accessed by mutiple people who work on it simultaneously

So, How do you do that? Here is the answer

  • Make a copy of your siebel local database (that is file named sse_data.dbf) rename it to be anything such as sse_data_copy.dbf
  • Make a copy your tools.cfg file (which should be residing in siebel install dir\tools\bin\enu\) and rename it to such as tool_copy.cfg
  • Open the tools_copy.cfg file scroll down to section [Local]
  • Find parameter named Connect String and change the value to reflect the name and path of you newly created copy of your dbf file.

for example

Previous Value : C:\PROGRA~1\Siebel\7.8\Tools\local\sse_data.dbf -q -m -x NONE -gp 4096 -c256m -ch256m -ch256m

New Value : C:\PROGRA~1\Siebel\7.8\Tools\local\sse_data_copy.dbf -q -m -x NONE -gp 4096 -c256m -ch256m -ch256m

you can change the other parameters also. To learn more about other parameters please read my post Siebel CRM - Configuration File (cfg) Disected and Explained.

  • Change the parameter named DockRepositoryName to different name if you don't want to have repository of your newly created instance to be Siebel Repository.
  • Create a copy of your shortcut which you use to access your siebel tools instance.
  • Right Click on the newly created instance and choose properties from the context menu
  • In the Target field of the newly opened window scroll to the point where it mentions the name of the cfg file which should be tools.cfg
  • Rename just the name of the file to tools_copy.cfg (the name of the copy of the cfg file you made)

for example

Orignal Value : "C:\Program Files\Siebel\7.8\Tools\BIN\siebdev.exe" /c "C:\PROGRA~1\Siebel\7.8\Tools\bin\enu\tools.cfg"

New Value : "C:\Program Files\Siebel\7.8\Tools\BIN\siebdev.exe" /c "C:\PROGRA~1\Siebel\7.8\Tools\bin\enu\tools_copy.cfg"

And you are done. Now you have two Siebel tools instances on the same system.

This solution will not work if :

  1. If you mutiple users work on the system at same time. (For example a terminal server where multiple users can login and work simultenously)
  2. If you want to Check in your changes to a different server

In next article we will discuss about additional changes that can be done to overcome this problem.

I Hope this post was helpful to you. If yes, Please post your comments or suggestion to make this site better.

Siebel CRM How To - Invoke Workflow through BC User Property

Till siebel 7.5 the only method know to invoke workflows were

  • Runtime Events in start step of workflow
  • Business Service
  • Business Component Script
  • Workflow Policies
But from Siebel 7.7 ownwards there is one more method by which we can invoke a workflow. That way is Siebel business Component user property. You can 'Named Methodn' user property in a BC which can invoke a workflow where n is increment to the last named method user property defined on that BC.

Name: Named Method

Value:[Event Name] , "INVOKESVC", , "Workflow Process Manager", "RunProcess", 'ProcessName',[Name of the Workflows] , 'RowId', [Row Id Value]

Example

The below mentioned will invoke a workflow named 'Example Workflow' when a new record is created in Example BC.

Name: Named Method 1

Value: "New Record", "INVOKESVC", "Example", "Workflow Process Manager", "RunProcess", "'ProcessName'", "Example Wrokflow", "'RowId'", "[Id]"

Hope this post helps you. If yes, Please post your comments.

Siebel CRM How To - Create a new LOV?

Whatever I have posted in this blog assumes that you have fair bit of idea working on Siebel CRM. I noticed there is hardly anything in this blog that can help a newbie. So thought of starting a new Category that is 'Siebel CRM How To'. This Category will include step by step How To's to various things in Siebel CRM. Starting this series is a simple 'How To' of creating a new List of Value and adding to the existing List of Value (LOV).

Information about LOV and explaination about the various terms is subject of another post. In this post I am just going to have step by step tutorial of creating a new LOV and adding new values to existing LOV's

Creating a new LOV

You can create an LOV from two places both have a different way of creating LOV in Siebel CRM.

Administration ==> Data ==> List of Values
Administration ==> Data ==> LOV Explorer


Through List of Values to add a new LOV following steps have to be followed. As an Example we will add a new LOV for Martial Status of a person.


  1. Click New and Choose LOV_TYPE in Type Field
  2. Enter MARITAL_LOV in 'Display Value'.
  3. Enter 'Marital Status' in Language-Independent Code Field
  4. Enter 'English-American' if you implementation language is English otherwise it will be according to the language of your implementation. Save the record
  5. Click New again and choose 'MARITAL_LOV' in Type Field
  6. Enter 'Married' in Display Value and Language-Independent Code Field
  7. Enter 'English-American' if you implementation language is English otherwise it will be according to the language of your implementation. Save the record.
  8. Follow steps 5 -7 for all values that you want to associate with this LOV

For example we will follow steps 5 - 7 and just change the value Married to Single so that It can have two values 'Married' and 'Single'

Through LOV Explorer you have to perform the following steps.

  1. Click New and enter 'MARITAL_LOV' in the Type field
  2. Click on the + sign in the left hand side of the LOV Explorer window for the type that you created
  3. Click on the Values folder.
  4. In the Right hand side Applet click on New
  5. Enter 'Married' in the 'Code' and 'Display Value' Field
  6. Enter 'English-American' if you implementation language is English otherwise it will be according to the language of your implementation. Save the record.
  7. Repeat steps 4-6 for the all the values that you want to enter.


That's it. You are done with creating the New LOV with new Values

To enter New Values in the existing Siebel LOV just perform the following steps.

  1. Query for the LOV Type that you want to add New Values.
  2. Copy the record Enter the Display Value and Language Independent Code Field
  3. Change the value in the Order Field to be the unique number and save the record.
Related Posts that you might like to Read:

Siebel CRM - List of Values a Strategic Move!
Siebel CRM - List of Values a Strategic Move- Continued!

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);
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!!!!

Siebel How To - enable or disable a button conditionally?

I was working on my desk one day and newbie to siebel approached me to ask a question(also a avid reader on asked me the same question on mail). He asked me about a simple requirement or rather I should say the requirement that appeared simple to me.

The requirement was :

A button on an Applet should be enabled if a particular user logs into the application otherwise it should remain disabled.The Solution is a simple script that we can write on Applet_PreCanInvoke event to enable or disable a button conditionally.

I am providing the pseudo code for that script below

function WebApplet_PreCanInvokeMethod (MethodName, &CanInvoke)
{
if (MethodName == "UrButtonMethod")
{
if(UserLogin == "AuthorisedUser")
{
CanInvoke="TRUE";
return (CancelOperation);
}
else
{
CanInvoke="FALSE";
return (CancelOperation);
}
}
}

There is just one catch in the above mentioned code. How will you find that user is the authorised user or not. There are several ways of doing it some are easy and some are difficult.

I will tell you the easiest way to do that. You just need to write one line of code to accomplish that which is as following.

if(TheApplication().GetProfileAttr("Me.Login") == "AuthorisedUserLogin")

There is a whole bunch of such kind of profile attributes that are available to us all the time in the whole application, we can use them anywhere we want. But discussion on Profile Attributes is subject of another post. So, come back for more.

If this post was helpful to you, Please post your comments or suggestions to make this site better.

Featured Video