<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-3614618453743598606</id><updated>2011-11-28T06:38:43.642+05:30</updated><category term='Siebel Data Source'/><category term='Introduction'/><category term='cfg File'/><category term='Siebel Tools'/><category term='Problem-Solutions'/><category term='List of Values'/><category term='Siebel Logs'/><category term='Back to Basics'/><category term='How - To'/><category term='Web Services'/><category term='Workflows'/><category term='Runtime Events'/><category term='I Wish I Knew'/><category term='eScript'/><category term='Got Problems???'/><category term='Case Study'/><category term='Check In -Check Out'/><category term='Signals'/><category term='Best Practices'/><category term='Configuration'/><title type='text'>Siebel CRM - Demystified</title><subtitle type='html'>we have moved to a new address http://siebelunleashed.com. Please visit there for updated posts</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://siebel-answers.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3614618453743598606/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://siebel-answers.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Neel</name><uri>http://www.blogger.com/profile/11002839933851198680</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>40</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3614618453743598606.post-1253134657897079284</id><published>2007-10-25T14:46:00.000+05:30</published><updated>2007-10-25T15:11:58.449+05:30</updated><title type='text'>Address Changed</title><content type='html'>&lt;strong&gt;&lt;span style="font-size:180%;"&gt;We have moved to a new domain. &lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-size:180%;"&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;a href="http://siebelunleashed.com/"&gt;&lt;strong&gt;&lt;span style="font-size:180%;"&gt;http://siebelunleashed.com&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-size:180%;"&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-size:180%;"&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-size:180%;"&gt;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.&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-size:180%;"&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-size:180%;"&gt;Your suggestions has helped us to reach where we are today and looking forward for same kind of response.&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-size:180%;"&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-size:180%;"&gt;I have changed the feed address so all that have subscribed to the blog will get all the updates.&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-size:130%;"&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-size:130%;"&gt;I am in process of selecting the right theme so you might see some changes happening in next few days.&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-size:130%;"&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-size:180%;"&gt;Thanks&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-size:180%;"&gt;Neel&lt;/span&gt;&lt;/strong&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3614618453743598606-1253134657897079284?l=siebel-answers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://siebel-answers.blogspot.com/feeds/1253134657897079284/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3614618453743598606&amp;postID=1253134657897079284' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3614618453743598606/posts/default/1253134657897079284'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3614618453743598606/posts/default/1253134657897079284'/><link rel='alternate' type='text/html' href='http://siebel-answers.blogspot.com/2007/10/address-changed.html' title='Address Changed'/><author><name>Neel</name><uri>http://www.blogger.com/profile/11002839933851198680</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3614618453743598606.post-7488651927802814503</id><published>2007-10-21T18:11:00.000+05:30</published><updated>2007-10-21T18:16:54.122+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='I Wish I Knew'/><category scheme='http://www.blogger.com/atom/ns#' term='eScript'/><title type='text'>Siebel eScript – An Overview</title><content type='html'>&lt;strong&gt;Scripting&lt;/strong&gt; is one of the most important areas in Siebel Development but irony is that it is &lt;strong&gt;never recommended&lt;/strong&gt; to write script in Siebel. Siebel scripting is done in a language known as &lt;strong&gt;eScript&lt;/strong&gt;. eScript shares it’s syntax with &lt;strong&gt;JavaScript&lt;/strong&gt;. If you have worked in JavaScript then you would find it pretty easy to adapt to eScript.&lt;br /&gt;&lt;br /&gt;eScript can be broadly classified into two categories&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Server Scripts&lt;/li&gt;&lt;li&gt;Browser Scripts&lt;/li&gt;&lt;/ul&gt;&lt;strong&gt;Server Scripts:&lt;/strong&gt; 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&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Browser Script:&lt;/strong&gt; is actually converted into JavaScript and is executed on client side.&lt;br /&gt;&lt;br /&gt;Usually scripting is written on objects in Siebel such as Applets, Business Components etc. But the main use of eScript is done to write &lt;strong&gt;Business Services&lt;/strong&gt;. There are lots of things that you achieve through a business service. &lt;em&gt;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.&lt;br /&gt;&lt;/em&gt;&lt;br /&gt;Scripting should be used as a &lt;strong&gt;last resort&lt;/strong&gt;. Everything can be done through script of course but it makes the &lt;strong&gt;manageability&lt;/strong&gt; and &lt;strong&gt;up gradation&lt;/strong&gt; of Application &lt;strong&gt;difficult&lt;/strong&gt;.&lt;br /&gt;&lt;br /&gt;But as I said in my earlier post to be a successful Siebel developer Scripting and Configuration should be your &lt;strong&gt;strong points&lt;/strong&gt;. Scripting can be&lt;strong&gt; fun&lt;/strong&gt; but should be avoided as long as possible&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3614618453743598606-7488651927802814503?l=siebel-answers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://siebel-answers.blogspot.com/feeds/7488651927802814503/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3614618453743598606&amp;postID=7488651927802814503' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3614618453743598606/posts/default/7488651927802814503'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3614618453743598606/posts/default/7488651927802814503'/><link rel='alternate' type='text/html' href='http://siebel-answers.blogspot.com/2007/10/siebel-escript-overview.html' title='Siebel eScript – An Overview'/><author><name>Neel</name><uri>http://www.blogger.com/profile/11002839933851198680</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3614618453743598606.post-6539107542067833583</id><published>2007-10-21T12:19:00.000+05:30</published><updated>2007-10-22T18:53:57.512+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Problem-Solutions'/><title type='text'>Siebel Database User not abel to Login</title><content type='html'>&lt;strong&gt;Problem:&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;strong&gt;Solution:&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;You can create user profile by going to&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Administration User ==&gt; Employees View&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;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. &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3614618453743598606-6539107542067833583?l=siebel-answers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://siebel-answers.blogspot.com/feeds/6539107542067833583/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3614618453743598606&amp;postID=6539107542067833583' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3614618453743598606/posts/default/6539107542067833583'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3614618453743598606/posts/default/6539107542067833583'/><link rel='alternate' type='text/html' href='http://siebel-answers.blogspot.com/2007/10/siebel-database-user-not-abel-to-login.html' title='Siebel Database User not abel to Login'/><author><name>Neel</name><uri>http://www.blogger.com/profile/11002839933851198680</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3614618453743598606.post-6435891888336742151</id><published>2007-10-18T19:54:00.000+05:30</published><updated>2007-10-18T20:06:25.180+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='eScript'/><category scheme='http://www.blogger.com/atom/ns#' term='How - To'/><title type='text'>Siebel eScript – How to track performance with Timing Scripts</title><content type='html'>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.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;We are calling several business services in code and we need to know performance of each one.&lt;/li&gt;&lt;li&gt;We need to know time our script on business component, Applet is taking&lt;/li&gt;&lt;li&gt;We have several approaches to solve the problem and need to know the exact time taken by each.&lt;/li&gt;&lt;/ul&gt;&lt;span class="fullpost"&gt;&lt;strong&gt;The code to achieve that is:&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;var fileVar = Clib.fopen("c:\\Timing.txt", "at");&lt;br /&gt;var timeVar = Clib.ctime(Clib.time());&lt;br /&gt;Clib.fputs(timeVar + ": Starting trace in of code", fileVar);&lt;br /&gt;&lt;br /&gt;//code which you want to track time&lt;br /&gt;…………………………………….&lt;br /&gt;…………………………………….&lt;br /&gt;&lt;br /&gt;timeVar = Clib.ctime(Clib.time());&lt;br /&gt;Clib.fputs("Ending trace of code: " + timeVar, fileVar);&lt;br /&gt;Clib.fclose(fileVar);&lt;/em&gt; &lt;/li&gt;&lt;br /&gt;&lt;ul&gt;&lt;/ul&gt;&lt;p&gt;&lt;em&gt;&lt;span style="color:#666666;"&gt;&lt;strong&gt;PS:&lt;/strong&gt; 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.&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p&gt;Hope this helps!!!! &lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3614618453743598606-6435891888336742151?l=siebel-answers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://siebel-answers.blogspot.com/feeds/6435891888336742151/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3614618453743598606&amp;postID=6435891888336742151' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3614618453743598606/posts/default/6435891888336742151'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3614618453743598606/posts/default/6435891888336742151'/><link rel='alternate' type='text/html' href='http://siebel-answers.blogspot.com/2007/10/siebel-escript-how-to-track-performance.html' title='Siebel eScript – How to track performance with Timing Scripts'/><author><name>Neel</name><uri>http://www.blogger.com/profile/11002839933851198680</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3614618453743598606.post-6525322351151649225</id><published>2007-10-18T16:16:00.000+05:30</published><updated>2007-10-21T12:17:49.673+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Siebel Data Source'/><title type='text'>Siebel Data Sources – An Overview</title><content type='html'>Database is an indispensable part of any software including &lt;strong&gt;Siebel&lt;/strong&gt;. Then also rarely do we know or try to know that how our software is interacting or connecting with database.&lt;br /&gt;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.&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;Siebel like many other software uses &lt;strong&gt;Open Database Connectivity (ODBC)&lt;/strong&gt; 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.&lt;br /&gt;&lt;br /&gt;In &lt;strong&gt;Windows 9x&lt;/strong&gt; you can go to control panel and click on the &lt;strong&gt;ODBC Data Source icon&lt;/strong&gt; to see the details of data sources that exists on your system.&lt;br /&gt;&lt;br /&gt;In &lt;strong&gt;Windows XP and Windows 2000&lt;/strong&gt; you can use a enter &lt;strong&gt;odbcad32 in run box&lt;/strong&gt;&lt;br /&gt;or you can go Control Panel ==&gt; Administrative tools ==&gt; ODBC Data Sources&lt;br /&gt;&lt;br /&gt;There are two types of data sources (DSN) available&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;User DSN&lt;/strong&gt;: Available to only particular user account under which they are created&lt;br /&gt;&lt;strong&gt;System DSN&lt;/strong&gt;: They are pretty much same as User DSN except the following differences&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;ONLY the System Administrator can; Add, Remove and Configure System DSN's. &lt;/li&gt;&lt;li&gt;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. &lt;/li&gt;&lt;li&gt;Everyone shares the same list of System DSN's.&lt;/li&gt;&lt;/ul&gt;These DSN use different &lt;strong&gt;drivers&lt;/strong&gt; 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.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="color:#006600;"&gt;Siebel comes with a driver named &lt;strong&gt;Siebel Database&lt;/strong&gt;. If you are to create a data source to connect to local database you will be using &lt;/span&gt;&lt;span style="color:#666600;"&gt;&lt;strong&gt;Siebel Database Driver&lt;/strong&gt;.&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;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.&lt;/li&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3614618453743598606-6525322351151649225?l=siebel-answers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://siebel-answers.blogspot.com/feeds/6525322351151649225/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3614618453743598606&amp;postID=6525322351151649225' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3614618453743598606/posts/default/6525322351151649225'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3614618453743598606/posts/default/6525322351151649225'/><link rel='alternate' type='text/html' href='http://siebel-answers.blogspot.com/2007/10/siebel-data-sources-overview.html' title='Siebel Data Sources – An Overview'/><author><name>Neel</name><uri>http://www.blogger.com/profile/11002839933851198680</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3614618453743598606.post-6388331386439564148</id><published>2007-10-17T14:29:00.000+05:30</published><updated>2007-10-17T14:44:19.556+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='I Wish I Knew'/><title type='text'>Siebel Configuration - An Overview</title><content type='html'>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.&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;Siebel configuration is done using an &lt;strong&gt;IDE &lt;/strong&gt;provided by Siebel i.e. &lt;strong&gt;Siebel Tools&lt;/strong&gt;. If you want to be a successful Siebel professional then you need have &lt;strong&gt;strong configuration skills&lt;/strong&gt;. Configuration is mostly based on &lt;strong&gt;concepts&lt;/strong&gt; and &lt;strong&gt;facts&lt;/strong&gt;. 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.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;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.&lt;/em&gt; &lt;em&gt;Similar case is with Siebel configuration once you know how to create an Applet you are done.&lt;/em&gt; 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.&lt;br /&gt;&lt;br /&gt;Siebel Configuration is a &lt;strong&gt;little&lt;/strong&gt; &lt;strong&gt;different&lt;/strong&gt; from &lt;strong&gt;Siebel scripting&lt;/strong&gt;. 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&lt;strong&gt; successful&lt;/strong&gt; at Siebel configuration even if &lt;em&gt;don’t have strong programming skills&lt;/em&gt; 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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Hope this helps you to point into right direction.&lt;/strong&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3614618453743598606-6388331386439564148?l=siebel-answers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://siebel-answers.blogspot.com/feeds/6388331386439564148/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3614618453743598606&amp;postID=6388331386439564148' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3614618453743598606/posts/default/6388331386439564148'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3614618453743598606/posts/default/6388331386439564148'/><link rel='alternate' type='text/html' href='http://siebel-answers.blogspot.com/2007/10/siebel-configuration-overview.html' title='Siebel Configuration - An Overview'/><author><name>Neel</name><uri>http://www.blogger.com/profile/11002839933851198680</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3614618453743598606.post-3028257506724077785</id><published>2007-10-16T23:45:00.000+05:30</published><updated>2007-10-17T23:44:04.255+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Problem-Solutions'/><title type='text'>Drill Downs - Common mistakes made.</title><content type='html'>&lt;div&gt;&lt;strong&gt;Problem statement:&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;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.&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;When we click on the drill down it gives us an error&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;“You do not have permission to view this record or this record has been deleted” &lt;/strong&gt;&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;Drill down is working for some users and some users are facing error while using that drill down.&lt;/li&gt;&lt;/ul&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;div&gt;&lt;strong&gt;Reason:&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;The reason behind the problems mentioned above is &lt;strong&gt;Responsibilities&lt;/strong&gt;. Yes, It is as simple as that.&lt;/div&gt;&lt;br /&gt;&lt;div&gt; &lt;/div&gt;&lt;br /&gt;&lt;div&gt;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 &lt;strong&gt;one destination&lt;/strong&gt; is provided, as is the case of the dynamic drill down and they are executed in the &lt;strong&gt;sequence&lt;/strong&gt; 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.&lt;/li&gt; &lt;/div&gt;&lt;br /&gt;&lt;div&gt; &lt;/div&gt;&lt;br /&gt;&lt;div&gt;Will try to add specific case studies explaining the above mentioned scenarios.&lt;/div&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3614618453743598606-3028257506724077785?l=siebel-answers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://siebel-answers.blogspot.com/feeds/3028257506724077785/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3614618453743598606&amp;postID=3028257506724077785' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3614618453743598606/posts/default/3028257506724077785'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3614618453743598606/posts/default/3028257506724077785'/><link rel='alternate' type='text/html' href='http://siebel-answers.blogspot.com/2007/10/drill-downs-common-mistakes-made.html' title='Drill Downs - Common mistakes made.'/><author><name>Neel</name><uri>http://www.blogger.com/profile/11002839933851198680</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3614618453743598606.post-6940728473453601022</id><published>2007-10-16T15:59:00.000+05:30</published><updated>2007-10-16T16:04:46.879+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='How - To'/><category scheme='http://www.blogger.com/atom/ns#' term='Back to Basics'/><title type='text'>Siebel CRM How To - Automate login into Siebel Dedicated Client</title><content type='html'>The trick I am going to tell you in this article might seem to you&lt;strong&gt; very simple&lt;/strong&gt; 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 &lt;strong&gt;Siebel Development&lt;/strong&gt;. 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.&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;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&lt;strong&gt; Siebel Dedicated Client&lt;/strong&gt; and&lt;strong&gt; Siebel tools&lt;/strong&gt; 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. &lt;/span&gt;&lt;span class="fullpost"&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Right Click the shortcut through which you acess the Siebel Client or Siebel Tools and choose Properties from the context menu. &lt;/li&gt;&lt;li&gt;Scroll right to the end of Target Text Field Value enter the following text in the end. &lt;/li&gt;&lt;/ul&gt;&lt;p align="center"&gt;&lt;strong&gt;/u sadmin /p sadmin /d sample &lt;/strong&gt;&lt;/p&gt;&lt;strong&gt;&lt;p&gt;&lt;/strong&gt;These text will automate your login to sample database. If you want to automate your login to &lt;strong&gt;Local Database&lt;/strong&gt; enter the following code. &lt;/p&gt;&lt;p align="center"&gt;&lt;strong&gt;/u username /p pwd /d Local &lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;&lt;span style="font-family:courier new;"&gt;replace username with your local username and pwd with your local database password&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p&gt;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. &lt;/p&gt;&lt;p&gt;&lt;strong&gt;Hope this post helps you. If yes, Then please post your comments or suggestion to improve this blog.&lt;/strong&gt;&lt;/p&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3614618453743598606-6940728473453601022?l=siebel-answers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://siebel-answers.blogspot.com/feeds/6940728473453601022/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3614618453743598606&amp;postID=6940728473453601022' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3614618453743598606/posts/default/6940728473453601022'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3614618453743598606/posts/default/6940728473453601022'/><link rel='alternate' type='text/html' href='http://siebel-answers.blogspot.com/2007/10/siebel-crm-how-to-automate-login-into.html' title='Siebel CRM How To - Automate login into Siebel Dedicated Client'/><author><name>Neel</name><uri>http://www.blogger.com/profile/11002839933851198680</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3614618453743598606.post-3966345169055287623</id><published>2007-10-15T19:23:00.000+05:30</published><updated>2007-10-20T10:47:13.912+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='eScript'/><category scheme='http://www.blogger.com/atom/ns#' term='How - To'/><title type='text'>Siebel CRM How To – Restrict a Field to only Accept Certain Characters?</title><content type='html'>&lt;strong&gt;Requirement: &lt;/strong&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;We have a multilingual application and we have Unicode enabled database but still we would like to restrict user from entering certain characters.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;We want to prevent user from entering numbers in alpha-numeric fields.&lt;/li&gt;&lt;/ul&gt;&lt;strong&gt;Solution:&lt;br /&gt;&lt;/strong&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;Use &lt;strong&gt;charCodeAt&lt;/strong&gt; function given by Siebel but &lt;strong&gt;not documented properly&lt;/strong&gt; by Siebel. Here I am giving a Pseudo code to explain how it can be used.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="color:#3333ff;"&gt;if (FieldName == "First Name") {&lt;br /&gt;for (var i=0;i &lt;strong&gt;less than&lt;/strong&gt; field length ;i++) {&lt;br /&gt;var ASCII_code = fieldvalue.charCodeAt(i)&lt;br /&gt;if(ASCII_code is not valid code)&lt;br /&gt;Error("Not Valid Code");&lt;br /&gt;}} &lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;charCodeAt() returns the ASCII code&lt;/em&gt; 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.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Hope this helps! If yes, Please put your comments below.&lt;/strong&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3614618453743598606-3966345169055287623?l=siebel-answers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://siebel-answers.blogspot.com/feeds/3966345169055287623/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3614618453743598606&amp;postID=3966345169055287623' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3614618453743598606/posts/default/3966345169055287623'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3614618453743598606/posts/default/3966345169055287623'/><link rel='alternate' type='text/html' href='http://siebel-answers.blogspot.com/2007/10/siebel-crm-how-to-restrict-field-to.html' title='Siebel CRM How To – Restrict a Field to only Accept Certain Characters?'/><author><name>Neel</name><uri>http://www.blogger.com/profile/11002839933851198680</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3614618453743598606.post-1393676661466070550</id><published>2007-10-15T14:59:00.000+05:30</published><updated>2007-10-15T15:16:12.342+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='I Wish I Knew'/><title type='text'>Siebel Enterprise Integration Manager (EIM) - An Overview.</title><content type='html'>&lt;strong&gt;&lt;span style="color:#006600;"&gt;This article has been provided by Shalini Chauhan having Siebel experince of over 1.5 years and Leading an EIM team.&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;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 &lt;strong&gt;terabytes of data&lt;/strong&gt; probably existing in &lt;strong&gt;CSV or a DAT file&lt;/strong&gt;.&lt;/em&gt; This is where &lt;strong&gt;EIM &lt;/strong&gt;comes into picture.&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;strong&gt;EIM&lt;/strong&gt; stands for &lt;strong&gt;Enterprise Integration Manager&lt;/strong&gt;. It is a SIEBEL Component which is used for Data Migration from legacy as well as other Siebel systems.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Why EIM:&lt;/strong&gt;&lt;br /&gt;Siebel has very&lt;strong&gt; unique and complicated&lt;/strong&gt; Database structure which already has relationship defined between &lt;em&gt;n number&lt;/em&gt; 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 &lt;em&gt;data integrity issues.&lt;/em&gt; To answer all those concerns Siebel has provided&lt;strong&gt; EIM&lt;/strong&gt;.&lt;br /&gt;&lt;br /&gt;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&lt;br /&gt;&lt;br /&gt;a) Insert&lt;br /&gt;b) Update&lt;br /&gt;c) Merge&lt;br /&gt;d) Delete&lt;br /&gt;&lt;br /&gt;Once the data is&lt;strong&gt; manipulation and scrubbing&lt;/strong&gt; is complete we can import that data in base tables and Siebel EIM component takes care of things like &lt;em&gt;Foreign Key, Composite Keys, User Keys&lt;/em&gt; and also issues related with data integrity.&lt;br /&gt;&lt;br /&gt;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 &lt;strong&gt;SQL Loader&lt;/strong&gt;, &lt;strong&gt;DTS&lt;/strong&gt; etc and then migrate data to Siebel base tables using EIM component.&lt;br /&gt;&lt;br /&gt;Main Responsibilities of person responsible for EIM are&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Identifying and creating mapping between EIM and Base Tables.&lt;/li&gt;&lt;li&gt;Cleansing of data to be imported.&lt;/li&gt;&lt;li&gt;Loading of data in EIM tables.&lt;/li&gt;&lt;li&gt;Running EIM batch job.&lt;/li&gt;&lt;/ul&gt;To be&lt;strong&gt; successful&lt;/strong&gt; in EIM, one must be aware of basic understanding of &lt;strong&gt;RDBMS, SQL, cursors, etc&lt;/strong&gt; 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.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3614618453743598606-1393676661466070550?l=siebel-answers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://siebel-answers.blogspot.com/feeds/1393676661466070550/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3614618453743598606&amp;postID=1393676661466070550' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3614618453743598606/posts/default/1393676661466070550'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3614618453743598606/posts/default/1393676661466070550'/><link rel='alternate' type='text/html' href='http://siebel-answers.blogspot.com/2007/10/siebel-eim-enterprise-integration.html' title='Siebel Enterprise Integration Manager (EIM) - An Overview.'/><author><name>Neel</name><uri>http://www.blogger.com/profile/11002839933851198680</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3614618453743598606.post-3543656327701994485</id><published>2007-10-15T12:29:00.000+05:30</published><updated>2007-10-15T12:54:52.940+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Configuration'/><title type='text'>Siebel Search Specification (Search Spec) – What about it?</title><content type='html'>&lt;strong&gt;This article has been submitted by &lt;em&gt;Nidhi Puri&lt;/em&gt; having Siebel experience of 2+ years and right now working as Project Lead.&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;A &lt;strong&gt;Search Spec&lt;/strong&gt; is nothing but a &lt;strong&gt;filter&lt;/strong&gt; on the returned set of records and if we we look atc it from database point it acts as &lt;strong&gt;where clause&lt;/strong&gt; in the &lt;strong&gt;SQL&lt;/strong&gt; that is formed which &lt;strong&gt;restricts&lt;/strong&gt; the number of &lt;strong&gt;records &lt;/strong&gt;that will be&lt;strong&gt; retruned&lt;/strong&gt; from database.&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;In Siebel we can apply search spec to&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Applet&lt;/li&gt;&lt;li&gt;Business Component&lt;/li&gt;&lt;li&gt;Link&lt;/li&gt;&lt;li&gt;Picklist&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;1. For an &lt;strong&gt;Applet&lt;/strong&gt;, a search spec &lt;strong&gt;filters&lt;/strong&gt; the records that are &lt;strong&gt;displayed&lt;/strong&gt; on &lt;strong&gt;UI&lt;/strong&gt;. 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.&lt;br /&gt;&lt;br /&gt;2. For a &lt;strong&gt;Business Component&lt;/strong&gt;, a search spec &lt;strong&gt;filters&lt;/strong&gt; all records that would be returned from the &lt;strong&gt;underlying base table&lt;/strong&gt;. 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.&lt;br /&gt;&lt;br /&gt;3. A search spec on a &lt;strong&gt;Link &lt;/strong&gt;will&lt;strong&gt; filter all child records from the destination&lt;/strong&gt; BC.&lt;/p&gt;For Example&lt;br /&gt;&lt;em&gt;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.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;4. A search spec on a &lt;strong&gt;Picklist&lt;/strong&gt; will&lt;strong&gt; filter&lt;/strong&gt; the&lt;strong&gt; data&lt;/strong&gt; that the &lt;strong&gt;picklist &lt;/strong&gt;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:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;[Value] &lt;&gt; '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&lt;/em&gt; &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3614618453743598606-3543656327701994485?l=siebel-answers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://siebel-answers.blogspot.com/feeds/3543656327701994485/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3614618453743598606&amp;postID=3543656327701994485' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3614618453743598606/posts/default/3543656327701994485'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3614618453743598606/posts/default/3543656327701994485'/><link rel='alternate' type='text/html' href='http://siebel-answers.blogspot.com/2007/10/search-specification-search-spec-what.html' title='Siebel Search Specification (Search Spec) – What about it?'/><author><name>Neel</name><uri>http://www.blogger.com/profile/11002839933851198680</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3614618453743598606.post-738222576241518595</id><published>2007-10-11T14:42:00.000+05:30</published><updated>2007-10-17T17:24:35.074+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='eScript'/><title type='text'>NextRecord DeleteRecord - Use with caution!!</title><content type='html'>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.&lt;strong&gt;NextRecord()&lt;/strong&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;while(not end of recordset)&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;{&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;perform operation &lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;recordset.NextRecord()&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;}&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;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 &lt;strong&gt;NextRecord()&lt;/strong&gt; function.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Reason for that is using &lt;strong&gt;DeleteRecord()&lt;/strong&gt; results in pointer to moved to next record &lt;strong&gt;automatically&lt;/strong&gt; and if we use NextRecord then it will result in skipping of the last record we are trying to delete. Pseudo to explain this&lt;br /&gt;&lt;br /&gt;&lt;em&gt;while(not end of RecordSet)&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;{&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;do processing&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;recordset.DeleteRecord();&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="color:#009900;"&gt;// recordset.NextRecord();&lt;/span&gt; &lt;span style="color:#009900;"&gt;// no need to use next record as delete will automatically move the pointer to next line&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;}&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Hope this tip is helpful. Happy Scripting :)&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3614618453743598606-738222576241518595?l=siebel-answers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://siebel-answers.blogspot.com/feeds/738222576241518595/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3614618453743598606&amp;postID=738222576241518595' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3614618453743598606/posts/default/738222576241518595'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3614618453743598606/posts/default/738222576241518595'/><link rel='alternate' type='text/html' href='http://siebel-answers.blogspot.com/2007/10/nextrecord-deleterecord-use-with.html' title='NextRecord DeleteRecord - Use with caution!!'/><author><name>Neel</name><uri>http://www.blogger.com/profile/11002839933851198680</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3614618453743598606.post-8642859138081251375</id><published>2007-10-11T13:17:00.001+05:30</published><updated>2007-10-11T14:32:17.133+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='How - To'/><title type='text'>Navigating Siebel - Via Keyboard!</title><content type='html'>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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;strong&gt;Record Management&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;New Record  : &lt;strong&gt;CTRL + N&lt;br /&gt;&lt;/strong&gt;Copy Record : &lt;strong&gt;CTRL + B&lt;br /&gt;&lt;/strong&gt;Delete Record : &lt;strong&gt;CTRL + D&lt;br /&gt;&lt;/strong&gt;Save Record : &lt;strong&gt;CTRL + S&lt;br /&gt;&lt;/strong&gt;Undo Record : &lt;strong&gt;CTRL + U OR ESC&lt;br /&gt;&lt;/strong&gt;Select All Records in List : &lt;strong&gt;CTRL + A&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Record Navigation&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Next Record : &lt;strong&gt;CTRL + Down Arrow Key&lt;/strong&gt;&lt;br /&gt;Next Page of Records  : &lt;strong&gt;CTRL + ALT + . (In List Applets)&lt;/strong&gt;&lt;br /&gt;Last Page of Records : &lt;strong&gt;CTRL + ALT + L (In List Applets)&lt;/strong&gt;&lt;br /&gt;Previous Record : &lt;strong&gt;CTRL + Up Arrow Key&lt;/strong&gt;&lt;br /&gt;Previous Page of Records : &lt;strong&gt;CTRL + ALT + , (In List Applets)&lt;br /&gt;&lt;/strong&gt;First Page of Records : &lt;strong&gt;CTRL + ALT + F (In List Applets)&lt;/strong&gt; &lt;/span&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;strong&gt;Query Management&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;New Query : &lt;strong&gt;CTRL + Q&lt;/strong&gt;&lt;br /&gt;Execute Query : &lt;strong&gt;ENTER in a Field&lt;/strong&gt; OR &lt;strong&gt;CTRL + ENTER in a Text Area&lt;/strong&gt;&lt;br /&gt;Refine Query : &lt;strong&gt;CTRL +R&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;General Navigation&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Go to Site Map : &lt;strong&gt;CTRL + SHIFT + A&lt;br /&gt;&lt;/strong&gt;Open Search Center : &lt;strong&gt;CTRL + F OR CTRL + SHIFT + F&lt;br /&gt;&lt;/strong&gt;Run Report : &lt;strong&gt;CTRL + SHIFT + R&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Layout Management&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Define Columns Displayed : &lt;strong&gt;CTRL + SHIFT + K&lt;/strong&gt;&lt;br /&gt;Define Sort Order : &lt;strong&gt;CTRL + SHIFT + O&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Online Help Shortcut&lt;/strong&gt; &lt;/span&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;Open Online Help  : &lt;strong&gt;CTRL + ALT + H&lt;br /&gt;&lt;/strong&gt;Help with Record : &lt;strong&gt;CTRL + ALT + K&lt;br /&gt;&lt;/strong&gt;Technical Support : &lt;strong&gt;CTRL + ALT + J&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Application Management Shortcut&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;Connect as New User : &lt;strong&gt;CTRL + SHIFT + W (Works in Dedicated Client)&lt;br /&gt;&lt;/strong&gt;Log Out : &lt;strong&gt;CTRL + SHIFT + X (Works in Dedicated Client)&lt;/strong&gt; &lt;/span&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;strong&gt;Field Navigation&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Next Field : &lt;strong&gt;Tab&lt;/strong&gt;&lt;br /&gt;Previous Field : &lt;strong&gt;SHIFT + TAB&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3614618453743598606-8642859138081251375?l=siebel-answers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://siebel-answers.blogspot.com/feeds/8642859138081251375/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3614618453743598606&amp;postID=8642859138081251375' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3614618453743598606/posts/default/8642859138081251375'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3614618453743598606/posts/default/8642859138081251375'/><link rel='alternate' type='text/html' href='http://siebel-answers.blogspot.com/2007/10/navigating-siebel-via-keyboard.html' title='Navigating Siebel - Via Keyboard!'/><author><name>Neel</name><uri>http://www.blogger.com/profile/11002839933851198680</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3614618453743598606.post-5233532283407130307</id><published>2007-10-10T15:37:00.000+05:30</published><updated>2007-10-10T15:44:00.237+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='List of Values'/><title type='text'>Siebel List of Values - A Strategic Move - Continued.</title><content type='html'>Last time I said that I will be presenting a Solution to make Required Fields dynamic and SRF independent. So I am back with What I promised.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Requirement:&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Siebel Service Request&lt;/strong&gt; module was to be implemented because of a new implementation the business requirements were being changed all the time. One &lt;strong&gt;Strange&lt;/strong&gt; requirement was to make the &lt;strong&gt;Required Fields&lt;/strong&gt; of a business component &lt;strong&gt;dynamic&lt;/strong&gt;. So that they can be changed without a release. Now, we all know one way to make a field required is to set the &lt;strong&gt;Required Property&lt;/strong&gt; of the &lt;strong&gt;field to true&lt;/strong&gt;. But that would mean that if I were to change that a new &lt;strong&gt;SRF deployment&lt;/strong&gt; will be required.&lt;br /&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;strong&gt;Solution:&lt;/strong&gt;&lt;br /&gt;LOV's again were the life saver for us. We created an LOV called &lt;strong&gt;SRV_REQ_FIELD&lt;/strong&gt; and in the &lt;strong&gt;Display value&lt;/strong&gt; we provided the &lt;strong&gt;names&lt;/strong&gt; of the fields that we wanted as &lt;strong&gt;Required Fields&lt;/strong&gt;. In the Business Component PreWrite Record we queried for that particular LOV and traversed through the records that were active. If the Field provided in the LOV did not &lt;strong&gt;contained a value&lt;/strong&gt; then an error was raise stating that the value for that particular required field was not supplied. I am giving the Pseudo Code below to what that script might look like&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;em&gt;BOLOV = TheApplication().GetBusObject("List Of Values");&lt;br /&gt;BCLOV = BOLOV.GetBusComp("List Of Values");&lt;br /&gt;with (BCLOV)&lt;br /&gt;{&lt;br /&gt;Query for LOV Type as 'SR_REQ_FIELD' and Active Flag = 'Y'&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;IsRecord = BCLOV.FirstRecord();&lt;br /&gt;while( Last record is not reached)&lt;br /&gt;{&lt;br /&gt;this.ActivateField(BCLOV.GetFieldValue("Name"));&lt;br /&gt;if ( this.GetFieldValue(BCLOV.GetFieldValue("Name")) == "" )&lt;br /&gt;Raise Errro Text ("Value not given")&lt;br /&gt;BCLOV.NextRecord();&lt;br /&gt;}&lt;br /&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This solution is&lt;strong&gt; not recommended&lt;/strong&gt; if the&lt;strong&gt; number&lt;/strong&gt; of fields that are required is &lt;strong&gt;fairly large&lt;/strong&gt;. But still can be &lt;strong&gt;really handy&lt;/strong&gt; in many situations.&lt;br /&gt;&lt;br /&gt;Hope you liked this post! If yes, Do post your comments.&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3614618453743598606-5233532283407130307?l=siebel-answers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://siebel-answers.blogspot.com/feeds/5233532283407130307/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3614618453743598606&amp;postID=5233532283407130307' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3614618453743598606/posts/default/5233532283407130307'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3614618453743598606/posts/default/5233532283407130307'/><link rel='alternate' type='text/html' href='http://siebel-answers.blogspot.com/2007/10/siebel-list-of-values-strategic-move_10.html' title='Siebel List of Values - A Strategic Move - Continued.'/><author><name>Neel</name><uri>http://www.blogger.com/profile/11002839933851198680</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3614618453743598606.post-3197523172888098263</id><published>2007-10-09T23:32:00.000+05:30</published><updated>2007-10-12T18:35:42.256+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='I Wish I Knew'/><title type='text'>Siebel Administrator - An Overview!</title><content type='html'>&lt;strong&gt;Siebel Adminstrator&lt;/strong&gt; is different domain all together. Again a pretty intresting area to work in siebel &lt;em&gt;&lt;span style="color:#660000;"&gt;(I have been saying this for everything I have mentioned so far, haven't I :) )&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;But this is one area where I wish to work some day. Haven't had chance to do that because as far as other areas are concerned they are inter linked and sooner or later you will be working on them but this one area is pretty seperate from others. Siebel EAI, Scripting, Workflows can be considered as a part of Siebel Development but Siebel Admin is a different ball game altogether.&lt;br /&gt;&lt;br /&gt;Main Responsibilties of a Siebel Admin are&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Install Siebel Servers and its components&lt;/li&gt;&lt;li&gt;Manage Siebel Servers and Components&lt;/li&gt;&lt;li&gt;Manage Web Servers such as iPlanet and IIS&lt;/li&gt;&lt;li&gt;Troubleshoot Seibel Server Related issues&lt;/li&gt;&lt;li&gt;Deploying of SRF and Repositories from one environment to others.&lt;/li&gt;&lt;li&gt;Co-ordinating with various teams such Web Server, Database and Integration teams&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Knowledge of &lt;strong&gt;Unix, Linux and shell scripting&lt;/strong&gt; can be an &lt;strong&gt;added advantage&lt;/strong&gt; as most of Siebel Server installation are on Unix Servers. If you have interest in OS, troubleshooting and you love to work from &lt;strong&gt;command line&lt;/strong&gt; then this is the area for you. Generally, all the siebel implementation have more than one servers that a person has to manage. You, will need to be pretty thorough with your &lt;strong&gt;siebel architechture&lt;/strong&gt; basic if you want to succeed in this area.&lt;/p&gt;&lt;p&gt;Usually the work of a siebel admin is managing as there are fresh implementations are pretty rare. Also, you will need to have strong database skills if you want to really make your mark as siebel admin.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Pro's of Siebel Administrator&lt;/strong&gt;&lt;br /&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Good chance of going abroad :)&lt;/li&gt;&lt;li&gt;Intresting and challenging Assignments&lt;/li&gt;&lt;li&gt;You can get pretty good experience on Unix which can help you to go towards System Admin in case you want to switch.&lt;/li&gt;&lt;li&gt;Pretty good demand in Indrustry&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Con's of Siebel Administrator&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Most of the implementations are abroad so you might have to work late in night &lt;em&gt;&lt;span style="color:#660000;"&gt;(may be shifts)&lt;/span&gt;&lt;/em&gt;&lt;/li&gt;&lt;li&gt;Most of the times work involved is only of maintaince and troubleshooting.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;But still, If you love &lt;strong&gt;linux or Unix&lt;/strong&gt; and your area interest in database this is the area for you. &lt;/p&gt;&lt;p&gt;All the best for future!!&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3614618453743598606-3197523172888098263?l=siebel-answers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://siebel-answers.blogspot.com/feeds/3197523172888098263/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3614618453743598606&amp;postID=3197523172888098263' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3614618453743598606/posts/default/3197523172888098263'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3614618453743598606/posts/default/3197523172888098263'/><link rel='alternate' type='text/html' href='http://siebel-answers.blogspot.com/2007/10/siebel-administrator-overview.html' title='Siebel Administrator - An Overview!'/><author><name>Neel</name><uri>http://www.blogger.com/profile/11002839933851198680</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3614618453743598606.post-5435960075810972687</id><published>2007-10-09T19:58:00.000+05:30</published><updated>2007-10-12T18:25:28.891+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='I Wish I Knew'/><title type='text'>Siebel Business Analyst - An Overview!</title><content type='html'>&lt;strong&gt;Siebel Business Analyst&lt;/strong&gt; (BA) is quite an interesting and lucrative job . Lucrative because most of the opportunities for a Siebel BA are &lt;strong&gt;Abroad.&lt;br /&gt;&lt;/strong&gt;Yes, the ones who's dream is to go abroad this is the choice for you. But beware &lt;strong&gt;not everybody&lt;/strong&gt; can be a &lt;strong&gt;BA&lt;/strong&gt;. One of the most important pre-requisite to be a BA is to have &lt;strong&gt;good communication skills&lt;/strong&gt;. You, are at the client end representing your company so you have to good in communication skills.&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;Business Analyst job can be broadly divided into &lt;strong&gt;two streams&lt;/strong&gt;.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Technical Business Analyst.&lt;/li&gt;&lt;li&gt;Functional Business Analyst.&lt;/li&gt;&lt;/ul&gt;&lt;strong&gt;Technical Business Analyst :&lt;/strong&gt; They are also known as &lt;strong&gt;Technical Solution Architects&lt;/strong&gt; &lt;em&gt;&lt;span style="color:#660000;"&gt;[Sound's impressive isn't it. Well I have worked as one :) ]&lt;/span&gt;&lt;/em&gt;. Their main responsibility is to&lt;strong&gt; talk&lt;/strong&gt; to client, understand the &lt;strong&gt;requirement &lt;/strong&gt;and then &lt;strong&gt;design&lt;/strong&gt; it. The most interesting and challenging part of Technical BA is to design the requirement.&lt;br /&gt;How many times while working as developer we have scolded the person who had created the design. Well, the only way to change it is to be the one to design &lt;strong&gt;:).&lt;/strong&gt; You, need to have &lt;strong&gt;strong technical skills&lt;/strong&gt; if you want to be a Technical BA.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Functional Business Analyst :&lt;/strong&gt; Their main Responsibility is to understand the requirement functionally. The&lt;strong&gt; line between&lt;/strong&gt; the Technical and Functional BA is &lt;strong&gt;really thin&lt;/strong&gt; and most of the time both duties are performed by one person. Functional BA's can afford to be technically weak :).&lt;br /&gt;&lt;br /&gt;Siebel BA role can be summarized as below&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Talk to client, gather requirements and design it.&lt;/li&gt;&lt;li&gt;Should have functional and Technical knowledge of product.&lt;/li&gt;&lt;li&gt;It is Step Forward towards Management Role&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;strong&gt;Pro's of BA Role&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;You earn in a foreign currency :)&lt;/li&gt;&lt;li&gt;Challenging and Interesting Job.&lt;/li&gt;&lt;li&gt;You get to travel to various places.&lt;/li&gt;&lt;li&gt;Tremendous contribution towards your Personality growth.&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;strong&gt;Con's of BA&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Being on client side you are constantly under lot of pressure.&lt;/li&gt;&lt;li&gt;You have to be away from you family and country most of the times.&lt;/li&gt;&lt;li&gt;You have to perpare Technical and Functional Documents&lt;em&gt;&lt;span style="color:#660000;"&gt; [I hate that :) ]&lt;br /&gt;&lt;/span&gt;&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;strong&gt;My Advice :&lt;/strong&gt; If you don't mind being away from family and you don't want to be a techie then this is job you want, provided you have good communication skills. But, If you like India and family like me then may be you might like to stay away from it. But still a good domain option in Siebel and contributes a lot in your personal development and your experience.&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#000066;"&gt;&lt;strong&gt;PS :&lt;/strong&gt; The views expressed in above post are my personal. If you think differently feel free to post comments or write to me. I will be more than happy to include them in this post.&lt;/span&gt;&lt;/li&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3614618453743598606-5435960075810972687?l=siebel-answers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://siebel-answers.blogspot.com/feeds/5435960075810972687/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3614618453743598606&amp;postID=5435960075810972687' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3614618453743598606/posts/default/5435960075810972687'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3614618453743598606/posts/default/5435960075810972687'/><link rel='alternate' type='text/html' href='http://siebel-answers.blogspot.com/2007/10/siebel-business-analyst-overview.html' title='Siebel Business Analyst - An Overview!'/><author><name>Neel</name><uri>http://www.blogger.com/profile/11002839933851198680</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3614618453743598606.post-6931129217822698968</id><published>2007-10-09T15:06:00.000+05:30</published><updated>2007-10-09T15:54:17.805+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='List of Values'/><title type='text'>Siebel List of Values - A Strategic Move!</title><content type='html'>List of Values (LOV) is assumed to pretty &lt;strong&gt;simple entity&lt;/strong&gt; in &lt;strong&gt;siebel&lt;/strong&gt; and having very &lt;strong&gt;limited use&lt;/strong&gt;, of showing values in &lt;strong&gt;dropdown picklist&lt;/strong&gt;. But lately I found they can be used in more than one ways. They can be a real life saver. One use I have found of them is to avoid hard coding. Yes, you can avoid hard coding of values and use LOV instead which you can then change &lt;strong&gt;without SRF Release.&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;I will list below some real scenarios which I have come across and used &lt;strong&gt;List of Values&lt;/strong&gt; to accomplish task which otherwise would have a real pain while moving stuff different environments.&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;strong&gt;Workflows - Requirement :&lt;/strong&gt;&lt;br /&gt;We were creating workflows that were going to &lt;strong&gt;integrate Siebel&lt;/strong&gt; with some other application with the help of &lt;strong&gt;MQ Series&lt;/strong&gt;. Now, to accomplish that we had to enter two paramerters related to MQ Series in the first step of workflows, &lt;strong&gt;Queue Manager&lt;/strong&gt; and &lt;strong&gt;Physical Queue Name&lt;/strong&gt;.&lt;/span&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;If, we were to&lt;strong&gt; hardcode&lt;/strong&gt; then it would be difficult to &lt;strong&gt;move workflow&lt;/strong&gt; between &lt;strong&gt;different envoirnments&lt;/strong&gt; such as QA and production because they had &lt;strong&gt;different&lt;/strong&gt; Physical Queue Name . There LOV's came to our &lt;strong&gt;Rescue&lt;/strong&gt;. We created two LOV's with the values of the Queue Manager and Queue Name and used &lt;strong&gt;LookupValue()&lt;/strong&gt; method in &lt;strong&gt;workflows&lt;/strong&gt; to acomplish that. &lt;/span&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;LookupValue method accepts two arguments 'LOV Type' and Language Independent Code ('LIC') and returns the display value of that LOV Type. The syntax is as following&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="fullpost"&gt;&lt;/span&gt;&lt;span class="fullpost"&gt;&lt;div align="center"&gt;&lt;br /&gt;&lt;strong&gt;LookupValue("LOV Type","LIC")&lt;/strong&gt; &lt;/div&gt;&lt;div align="left"&gt;&lt;br /&gt;Example : &lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;div align="left"&gt;Create an new LOV Type&lt;em&gt;&lt;span style="color:#666666;"&gt; &lt;/span&gt;&lt;span style="color:#660000;"&gt;(in this case we are created MQ_PHY_QUEUE_NAME. It should be same in all the environments where you want to deploy the workflow) &lt;/span&gt;&lt;/em&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="left"&gt;Enter the Display Value &lt;em&gt;&lt;span style="color:#660000;"&gt;(actual value that you want to speficy like in this case we specify ESBLDAS for dev env and ESBLQAS for QA Env) &lt;/span&gt;&lt;/em&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="left"&gt;Enter the LIC &lt;em&gt;&lt;span style="color:#660000;"&gt;(can be anything descriptive like in this case we had given 'Physical Queue Name') &lt;/span&gt;&lt;/em&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="left"&gt;In the Input Arguments of workflow choose input argument type as Expression and specify the value as LookupValue("MQ_PHY_QUEUE_NAME","Physical Queue Name")&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Now, it is going to pick the value as &lt;strong&gt;'Display Value'&lt;/strong&gt; of the&lt;strong&gt; LOV&lt;/strong&gt; that you have &lt;strong&gt;specified. &lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;In next post I will describe how can we use&lt;strong&gt; LOV&lt;/strong&gt; to &lt;strong&gt;dynamically specify Required Fields&lt;/strong&gt; for a Business Component.&lt;br /&gt;&lt;br /&gt;For other posts Related to LOV please go through the category of &lt;a href="http://siebel-answers.blogspot.com/search/label/List%20of%20Values"&gt;&lt;strong&gt;List of Values&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3614618453743598606-6931129217822698968?l=siebel-answers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://siebel-answers.blogspot.com/feeds/6931129217822698968/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3614618453743598606&amp;postID=6931129217822698968' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3614618453743598606/posts/default/6931129217822698968'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3614618453743598606/posts/default/6931129217822698968'/><link rel='alternate' type='text/html' href='http://siebel-answers.blogspot.com/2007/10/siebel-list-of-values-strategic-move.html' title='Siebel List of Values - A Strategic Move!'/><author><name>Neel</name><uri>http://www.blogger.com/profile/11002839933851198680</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3614618453743598606.post-6078196670269774926</id><published>2007-10-08T19:13:00.000+05:30</published><updated>2007-10-12T18:25:57.836+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='I Wish I Knew'/><title type='text'>Siebel EAI - An Overview.</title><content type='html'>&lt;em&gt;'Man is a social animal'&lt;/em&gt; they say and we have to depend on others to thrive and grow. It is pretty much true when it comes to software. A software in itself is rarely complete it generally dependent on other software for things like information, processing the information, storing the information etc. So, there has to be mechanism to join or integrate various softwares so that they can work together seemlessly appearing as one system capable of doing everything. &lt;strong&gt;Siebel EAI&lt;/strong&gt; is the domain that deals with &lt;strong&gt;integrating siebel&lt;/strong&gt; to other hetrogenous and homogenous systems or Applications such as Java, .Net and siebel itself.&lt;br /&gt;&lt;br /&gt;EAI stands for &lt;strong&gt;Enterprise Application Integration.&lt;/strong&gt; &lt;span class="fullpost"&gt;It is according to me is one of the most intresting and challenging jobs in siebel. If you love web and web related things then you are going to love it too. But beware you might end up spending sleepless nights (just kidding, but still you need to put a lot of hard work). The most common implementation of EAI today is &lt;strong&gt;Web Services.&lt;/strong&gt; To get more information on Web Services you can go through articles on &lt;a href="http://siebel-answers.blogspot.com/2007/09/web-services-part-1-introduction.html"&gt;Web Services&lt;/a&gt; and &lt;a href="http://siebel-answers.blogspot.com/2007/10/siebel-how-to-create-inbound-and.html"&gt;Web Service PPT&lt;/a&gt; that I created during my intial days of working on &lt;strong&gt;EAI&lt;/strong&gt;.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Siebel EAI&lt;/strong&gt; can be summarised by following points&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="fullpost"&gt;&lt;ul&gt;&lt;li&gt;Integration with other Applications such as .Net, Java and Siebel Itself.&lt;/li&gt;&lt;li&gt;Integrating with the help of 3rd Party Middlewares such as TIBCO, MQ Series, BizTalk, Oracle Apps etc.&lt;/li&gt;&lt;li&gt;Integrating directly using Web Services.&lt;/li&gt;&lt;li&gt;Understanding of XML, XSD, HTTP is desirable.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Pros of Siebel EAI&lt;/strong&gt; &lt;/p&gt;&lt;ul&gt;&lt;li&gt;Dearth of Siebel EAI experts can raise the market value of your skills.&lt;/li&gt;&lt;li&gt;Intresting and Challenging Assignments.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Cons of Siebel EAI&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Might result in long hours in office.&lt;/li&gt;&lt;li&gt;Integration projects are small in number.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;strong&gt;My Advice&lt;/strong&gt; : Jump on it if you get a chance, you won't regret it. But if you &lt;em&gt;don't like&lt;/em&gt; XML,Web, HTML and woudn't want to spend long hours in office then stay away from it.&lt;br /&gt;&lt;br /&gt;Read Below if you want to know what others have to say :&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Vipul Saxena&lt;/strong&gt; : It is break away job from routine configuration and scripting jobs. Challenging Assignments and great statisfaction when you are able to do it successfully. A rare skill, must have if you have intrest in scripting and web.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Ankit Walia&lt;/strong&gt; : Don't loose it if you get the chance.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Gaurav Gupta&lt;/strong&gt; : Analytics and Siebel EAI are at par. Hottest thing happening in siebel. Best thing that you can get when entering into siebel. Nothing is better than this.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Anupam Rastogi&lt;/strong&gt; : Not a cup of tea for everybody only a person with intrest can excel and succeed in it. If you understand EAI properly can also be used on unorthodox places.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Siebel EAI Rocks !!!!!!&lt;/strong&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3614618453743598606-6078196670269774926?l=siebel-answers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://siebel-answers.blogspot.com/feeds/6078196670269774926/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3614618453743598606&amp;postID=6078196670269774926' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3614618453743598606/posts/default/6078196670269774926'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3614618453743598606/posts/default/6078196670269774926'/><link rel='alternate' type='text/html' href='http://siebel-answers.blogspot.com/2007/10/siebel-eai-overview.html' title='Siebel EAI - An Overview.'/><author><name>Neel</name><uri>http://www.blogger.com/profile/11002839933851198680</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3614618453743598606.post-1644373701946408214</id><published>2007-10-08T14:26:00.000+05:30</published><updated>2007-10-21T18:17:25.248+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='I Wish I Knew'/><title type='text'>Siebel CRM - I wish I knew !</title><content type='html'>A lot of time when we look at the things that we have done in past we get a feeling that If I would have known a few things earlier I could have done a lot of things in a different and better way.&lt;br /&gt;&lt;br /&gt;This is specially true in case of &lt;strong&gt;Siebel,&lt;/strong&gt; being a&lt;strong&gt; specialized technology&lt;/strong&gt; there aren't many people who can guide us in right direction. When I started in Siebel everything was a blur for me. I had absolutely no idea, &lt;em&gt;what siebel is all about? what choices do I have?&lt;/em&gt;&lt;br /&gt;I had to learn things gradually from my &lt;strong&gt;experience &lt;/strong&gt;through &lt;strong&gt;my mistakes&lt;/strong&gt; and I of course my &lt;strong&gt;luck&lt;/strong&gt;. I was lucky enough to be put in &lt;strong&gt;Siebel EAI&lt;/strong&gt; and had intresting assignments and most important of all I wanted to do it, but there were others not so lucky on whom the choices were thrust upon because they had absolutely no information to base their choices upon.&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;Through this article I would like to spread the awareness of the choice that we have when we enter the &lt;strong&gt;world of siebel&lt;/strong&gt;, different aveneus that we can explore .So, that we can take our own decision based on our interest and taste rather than sitting back and let somebody else make the choice for us.&lt;br /&gt;According to my knowledge following are the major functional areas in siebel from which you can choose to specialze.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://siebel-answers.blogspot.com/2007/10/siebel-configuration-overview.html"&gt;Siebel Configuration&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://siebel-answers.blogspot.com/2007/10/siebel-eai-overview.html"&gt;Siebel EAI&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://siebel-answers.blogspot.com/2007/10/siebel-eim-enterprise-integration.html"&gt;Siebel EIM&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Siebel Workflows&lt;/li&gt;&lt;li&gt;&lt;a href="http://siebel-answers.blogspot.com/2007/10/siebel-escript-overview.html"&gt;Siebel Scripting&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://siebel-answers.blogspot.com/2007/10/siebel-business-analyst-overview.html"&gt;Siebel Business Analyst&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://siebel-answers.blogspot.com/2007/10/siebel-administrator-overview.html"&gt;Siebel Administrator&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Siebel Testing (QA)&lt;/li&gt;&lt;/ul&gt;Each area has its own &lt;strong&gt;Pros and Cons&lt;/strong&gt;. I will enabling links once the detail information is put on that particular area and also I will aslo be putting in &lt;strong&gt;comments&lt;/strong&gt; from my friends and colleges &lt;strong&gt;working on siebel&lt;/strong&gt; in these particular domains. From the areas metioned above Siebel &lt;strong&gt;Configuration and Siebel Scripting&lt;/strong&gt; are the areas that you need to have basic knowledge. They can be considered as a kind of must to progress in any area of siebel development.&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3614618453743598606-1644373701946408214?l=siebel-answers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://siebel-answers.blogspot.com/feeds/1644373701946408214/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3614618453743598606&amp;postID=1644373701946408214' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3614618453743598606/posts/default/1644373701946408214'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3614618453743598606/posts/default/1644373701946408214'/><link rel='alternate' type='text/html' href='http://siebel-answers.blogspot.com/2007/10/siebel-crm-i-wish-i-knew.html' title='Siebel CRM - I wish I knew !'/><author><name>Neel</name><uri>http://www.blogger.com/profile/11002839933851198680</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3614618453743598606.post-9108669673653071731</id><published>2007-10-07T19:24:00.000+05:30</published><updated>2007-10-15T10:40:29.292+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Configuration'/><category scheme='http://www.blogger.com/atom/ns#' term='eScript'/><title type='text'>Siebel Profile Attributes - an Overview.</title><content type='html'>&lt;strong&gt;Profile Attributes&lt;/strong&gt; I stumbled upon them in siebel when I was working on my first assignment involving &lt;strong&gt;Siebel EAI&lt;/strong&gt;. Till that time I had only used and heard of Global Variables which you could use throught out your script.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;But as the requirement said only if user clicked a button in View A and then performed some particular action in View B trigger a workflow.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;As views involved had different BC's it was not possible to have done through global variables. Then my senior colluege introduced me to a new entity in siebel called &lt;strong&gt;'Profile Attributes'. &lt;/strong&gt;They are important because they have a &lt;strong&gt;unique property&lt;/strong&gt;. They are available throughout the application. The best term that comes to my mind to describe them is &lt;strong&gt;'Session Variables'&lt;/strong&gt;. Those who have worked a little bit on development of Web Application will understand exactly what I am saying and for those who hasn't worked on them I will explain.&lt;br /&gt;&lt;br /&gt;As you know from siebel 7 onwards it has &lt;strong&gt;Web Architecture&lt;/strong&gt;. So, as soon as you login into siebel through your browser a session is started which last till time you log out or you close your browser window or according to the length set through session parameter at server level.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;&lt;span style="color:#666666;"&gt;Now discussing in details that how server maintains this session and what goes on behind the scene is out of scope of this article &lt;/span&gt;&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;but what you need to know is that &lt;strong&gt;Siebel server&lt;/strong&gt; recognises every unique user through session id that is given to you when you login to siebel and it remains valid until you session closes due to above mentioned reasons. &lt;em&gt;So, Profile Attributes are variables that can hold any value during the session of the user.&lt;/em&gt; There are two methods available to in siebel escript that help you to work with Profile Attributes.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;GetProfileAttr&lt;/li&gt;&lt;li&gt;SetProfileAttr&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;GetProfileAttr&lt;/strong&gt; method is used to retrieve the value of a particular profile attribute. The syntax is&lt;/p&gt;&lt;p align="center"&gt;TheApplication().GetProfileAttr("ProfileAttrName")&lt;/p&gt;&lt;p align="left"&gt;&lt;strong&gt;SetProfileAttr&lt;/strong&gt; method is used to set the value of Profile Attribute. If the Profile Attribute that you mention is not already existing it creates a new Profile Attribute. The syntax is&lt;/p&gt;&lt;p align="center"&gt;TheApplication().SetProfileAttr("ProfileAttrName",Value)&lt;/p&gt;&lt;p align="left"&gt;So, to accomplish the our requirement we Set a profile attribute when clicked the button on view A and then when he went to View B and did the particular action we wanted we retrieved the value of the profile attribute and if all the conditions were met we executed the workflow and everybody developed &lt;strong&gt;happily ever after :)&lt;/strong&gt;&lt;/p&gt;&lt;p align="left"&gt;But, there is a twist in the story and it was&lt;strong&gt; not a happy ending&lt;/strong&gt; after all which &lt;strong&gt;highlights&lt;/strong&gt; the &lt;strong&gt;fragile&lt;/strong&gt; nature of &lt;strong&gt;Profile Attributes&lt;/strong&gt;. Now, in a particular situation this solution won't work. If user clicked button on View A and then logged off which meant profile attribute is destroyed hence the functionality failed. So, as you all must have guessed this solution was scrapped &lt;strong&gt;:(&lt;/strong&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family:verdana;"&gt;So, the moral of the story is use &lt;strong&gt;Profile Attributes&lt;/strong&gt; with &lt;strong&gt;caution&lt;/strong&gt; and only if you are sure that if the session is destroyed you functionality wouldn't fail.&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3614618453743598606-9108669673653071731?l=siebel-answers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://siebel-answers.blogspot.com/feeds/9108669673653071731/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3614618453743598606&amp;postID=9108669673653071731' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3614618453743598606/posts/default/9108669673653071731'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3614618453743598606/posts/default/9108669673653071731'/><link rel='alternate' type='text/html' href='http://siebel-answers.blogspot.com/2007/10/siebel-profile-attributes-overview.html' title='Siebel Profile Attributes - an Overview.'/><author><name>Neel</name><uri>http://www.blogger.com/profile/11002839933851198680</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3614618453743598606.post-1346876730486622773</id><published>2007-10-07T17:07:00.000+05:30</published><updated>2007-10-12T10:05:15.477+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='eScript'/><category scheme='http://www.blogger.com/atom/ns#' term='How - To'/><title type='text'>Siebel How To - enable or disable a button conditionally?</title><content type='html'>I was working on my desk one day and newbie to siebel approached me to ask a question&lt;span style="color:#333333;"&gt;(also a avid reader on asked me the same question on mail)&lt;/span&gt;. He asked me about a simple requirement or rather I should say the requirement that appeared simple to me.&lt;br /&gt;&lt;br /&gt;The requirement was :&lt;br /&gt;&lt;br /&gt;A button on an Applet should be enabled if a particular user logs into the application otherwise it should remain disabled.&lt;span class="fullpost"&gt;The Solution is a simple script that we can write on Applet_PreCanInvoke event to enable or disable a button conditionally.&lt;br /&gt;&lt;br /&gt;I am providing the pseudo code for that script below&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;color:#663300;"&gt;&lt;em&gt;function WebApplet_PreCanInvokeMethod (MethodName, &amp;amp;CanInvoke)&lt;br /&gt;{&lt;br /&gt;if (MethodName == "UrButtonMethod")&lt;br /&gt;{&lt;br /&gt;if(UserLogin == "AuthorisedUser")&lt;br /&gt;{&lt;br /&gt;CanInvoke="TRUE";&lt;br /&gt;return (CancelOperation);&lt;br /&gt;}&lt;br /&gt;else&lt;br /&gt;{&lt;br /&gt;CanInvoke="FALSE";&lt;br /&gt;return (CancelOperation);&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="font-family:trebuchet ms;"&gt;if(TheApplication().GetProfileAttr("Me.Login") == "AuthorisedUserLogin")&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;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.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;If this post was helpful to you, Please post your comments or suggestions to make this site better.&lt;/strong&gt; &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3614618453743598606-1346876730486622773?l=siebel-answers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://siebel-answers.blogspot.com/feeds/1346876730486622773/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3614618453743598606&amp;postID=1346876730486622773' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3614618453743598606/posts/default/1346876730486622773'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3614618453743598606/posts/default/1346876730486622773'/><link rel='alternate' type='text/html' href='http://siebel-answers.blogspot.com/2007/10/siebel-how-to-enable-or-disable-button.html' title='Siebel How To - enable or disable a button conditionally?'/><author><name>Neel</name><uri>http://www.blogger.com/profile/11002839933851198680</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3614618453743598606.post-2905942563753249250</id><published>2007-10-07T15:47:00.000+05:30</published><updated>2007-10-07T16:01:26.384+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web Services'/><category scheme='http://www.blogger.com/atom/ns#' term='How - To'/><title type='text'>Siebel How To - Create Inbound and Outbound Webservice?</title><content type='html'>I was fortunate enough early in my carrer to get a chance to work on &lt;strong&gt;Siebel EAI&lt;/strong&gt;. It was the first implementation of &lt;strong&gt;Web Services&lt;/strong&gt; 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 &lt;strong&gt;XML&lt;/strong&gt; 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 &lt;strong&gt;God&lt;/strong&gt; now that there was nobody to guide me at that time which resulted in terrific learning and understanding of a fact&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;'Siebel is Huge' like a sea and what I have explored till now is not even 10% of whole Siebel&lt;/em&gt;.&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;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.&lt;br /&gt;&lt;br /&gt;Click on the Link Below to download the PPT.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://rapidshare.com/files/60854421/WebService.ppt" target="_blank" rel="nofollow"&gt;Download Now!!!!&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Hope this post helps you. Please post your comments and suggestions.&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3614618453743598606-2905942563753249250?l=siebel-answers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://siebel-answers.blogspot.com/feeds/2905942563753249250/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3614618453743598606&amp;postID=2905942563753249250' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3614618453743598606/posts/default/2905942563753249250'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3614618453743598606/posts/default/2905942563753249250'/><link rel='alternate' type='text/html' href='http://siebel-answers.blogspot.com/2007/10/siebel-how-to-create-inbound-and.html' title='Siebel How To - Create Inbound and Outbound Webservice?'/><author><name>Neel</name><uri>http://www.blogger.com/profile/11002839933851198680</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3614618453743598606.post-2008297389382371395</id><published>2007-10-06T19:17:00.000+05:30</published><updated>2007-10-06T19:57:56.226+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Siebel Tools'/><category scheme='http://www.blogger.com/atom/ns#' term='How - To'/><title type='text'>Siebel Tools How To - Have Mutiple Local database Instances?</title><content type='html'>&lt;strong&gt;This article is a step by step guide to have mutiple local database instances on the same system.&lt;br /&gt;&lt;/strong&gt;&lt;strong&gt;Below mentioned points might be the reason why you would want to do that&lt;/strong&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="fullpost"&gt;You are working on mutilple projects and they all have repository named 'Siebel Repository'. &lt;/span&gt;&lt;span class="fullpost"&gt;You want to work on both repositories simultaneously. &lt;/span&gt;&lt;/li&gt;&lt;li&gt;You share your system and you want the changes made by other developer to be on a different instance rather than yours.&lt;/li&gt;&lt;li&gt;You have a server that can be accessed by mutiple people who work on it simultaneously&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;So, How do you do that? Here is the answer&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Make a copy of your siebel local database &lt;span style="color:#666666;"&gt;&lt;em&gt;(that is file named &lt;strong&gt;sse_data.dbf&lt;/strong&gt;) &lt;/em&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;rename it to be anything such as sse_data_copy.dbf&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Make a copy your &lt;a href="http://siebel-answers.blogspot.com/2007/09/siebel-crm-configuration-file-cfg.html"&gt;tools.cfg&lt;/a&gt; file &lt;strong&gt;&lt;em&gt;&lt;span style="color:#666666;"&gt;(which should be residing in siebel install dir\tools\bin\enu\) &lt;/span&gt;&lt;/em&gt;&lt;/strong&gt;and rename it to such as tool_copy.cfg&lt;/li&gt;&lt;li&gt;Open the tools_copy.cfg file scroll down to section [Local]&lt;/li&gt;&lt;li&gt;Find parameter named Connect String and change the value to reflect the name and path of you newly created copy of your dbf file.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;for example&lt;/p&gt;&lt;p&gt;Previous Value : &lt;strong&gt;C:\PROGRA~1\Siebel\7.8\Tools\local\sse_data.dbf -q -m -x NONE -gp 4096 -c256m -ch256m -ch256m&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;New Value &lt;strong&gt;:&lt;/strong&gt; &lt;strong&gt;C:\PROGRA~1\Siebel\7.8\Tools\local\sse_data_copy.dbf -q -m -x NONE -gp 4096 -c256m -ch256m -ch256m&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;you can change the other parameters also. To learn more about other parameters please read my post &lt;a href="http://siebel-answers.blogspot.com/2007/09/siebel-crm-configuration-file-cfg.html"&gt;Siebel CRM - Configuration File (cfg) Disected and Explained.&lt;/a&gt; &lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Change the parameter named &lt;strong&gt;DockRepositoryName&lt;/strong&gt; to different name if you don't want to have repository of your newly created instance to be Siebel Repository.&lt;/li&gt;&lt;li&gt;Create a copy of your shortcut which you use to access your siebel tools instance.&lt;/li&gt;&lt;li&gt;Right Click on the newly created instance and choose properties from the context menu&lt;/li&gt;&lt;li&gt;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&lt;/li&gt;&lt;li&gt;Rename just the name of the file to tools_copy.cfg &lt;strong&gt;&lt;em&gt;&lt;span style="color:#666666;"&gt;(the name of the copy of the cfg file you made)&lt;/span&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span style="color:#000000;"&gt;for example&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Orignal Value : &lt;strong&gt;"C:\Program Files\Siebel\7.8\Tools\BIN\siebdev.exe" /c "C:\PROGRA~1\Siebel\7.8\Tools\bin\enu\tools.cfg"&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;New Value : &lt;strong&gt;"C:\Program Files\Siebel\7.8\Tools\BIN\siebdev.exe" /c "C:\PROGRA~1\Siebel\7.8\Tools\bin\enu\tools_copy.cfg"&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;And you are done. Now you have two Siebel tools instances on the same system. &lt;/p&gt;&lt;p&gt;This solution will not work if :&lt;/p&gt;&lt;ol&gt;&lt;li&gt;If you mutiple users work on the system at same time. (For example a terminal server where multiple users can login and work simultenously)&lt;/li&gt;&lt;li&gt;If you want to Check in your changes to a different server&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;In next article we will discuss about additional changes that can be done to overcome this problem.&lt;/p&gt;&lt;p&gt;I Hope this post was helpful to you. If yes, Please post your comments or suggestion to make this site better.&lt;/p&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3614618453743598606-2008297389382371395?l=siebel-answers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://siebel-answers.blogspot.com/feeds/2008297389382371395/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3614618453743598606&amp;postID=2008297389382371395' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3614618453743598606/posts/default/2008297389382371395'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3614618453743598606/posts/default/2008297389382371395'/><link rel='alternate' type='text/html' href='http://siebel-answers.blogspot.com/2007/10/siebel-tools-how-to-have-mutiple-local.html' title='Siebel Tools How To - Have Mutiple Local database Instances?'/><author><name>Neel</name><uri>http://www.blogger.com/profile/11002839933851198680</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3614618453743598606.post-2499375598397486228</id><published>2007-10-06T15:31:00.000+05:30</published><updated>2007-10-06T20:22:25.295+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Back to Basics'/><title type='text'>Siebel CRM - Back to Basics (Siebel Architechture).</title><content type='html'>&lt;p&gt;In a &lt;strong&gt;perfect world&lt;/strong&gt; this would have been my first article. But this &lt;strong&gt;world is not perfect&lt;/strong&gt; and as the saying goes &lt;em&gt;'Better late than never'&lt;/em&gt; here it is.&lt;br /&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;I will approach &lt;strong&gt;Siebel Architecture&lt;/strong&gt; in a different way. Then I will take each technical term used in this article that is important and requires further exploration and explain it further in next articles of &lt;strong&gt;Back to Basics&lt;/strong&gt; series.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color:#000066;"&gt;Ever wondered what happens once you have put the URL of your siebel Application in the browser and hit enter?&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;This is different approach to Siebel Architecture. The answer to this question will be an explaination of Siebel Architechture. So, Let's start.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color:#660000;"&gt;==&gt; You have opened your browser window and have enterned the URL and Clicked Go button of your browser window&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;http://yourseiebelapp/apptype_lang/start.swe&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;Before going into&lt;strong&gt; background&lt;/strong&gt; I would like to &lt;strong&gt;explain or dissect&lt;/strong&gt; the above given &lt;strong&gt;URL.&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;http :&lt;/strong&gt; Is the protocol that is being used to transfer the data over web from one computer to another.&lt;br /&gt;&lt;strong&gt;yoursiebelapp :&lt;/strong&gt; is the host name of the Web Server on which your Siebel Component resides. We will go into details of these components later&lt;br /&gt;&lt;strong&gt;apptype_lang&lt;/strong&gt; can be divided into two parts&lt;br /&gt;&lt;strong&gt;apptype :&lt;/strong&gt; Represents the module you are using can be sales, callcenter, mkt etc.&lt;br /&gt;&lt;strong&gt;lang :&lt;/strong&gt; Represents the language of your implementation can be enu, fin etc.&lt;br /&gt;&lt;strong&gt;start.swe&lt;/strong&gt; : It might be used or might not be used but represents a command recoganized by siebel component called 'SWSE' which stands for Siebel WebServer Extensions.&lt;br /&gt;&lt;br /&gt;Now we know the meaning of the URL we have just entered we will move behind the scenes.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color:#660000;"&gt;==&gt; The Request goes to the Webserver &lt;span style="color:#666666;"&gt;&lt;em&gt;(Discussing Webserver is out of scope for this post)&lt;/em&gt;&lt;/span&gt; where an important component resides called Siebel Webserver Extensions (SWSE).&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;SWSE :&lt;/strong&gt;&lt;br /&gt;The responsibility of this component is to identify if the request that has arrived on webserver is a Siebel request or not and also it helps to format the html pages that are server to the Web Clients of siebel. It also supports Load balancing if you have more than one siebel server which generally is the case.&lt;br /&gt;&lt;strong&gt;&lt;span style="color:#660000;"&gt;==&gt; If the request received is a siebel request then SWSE contacts Siebel Gateway Name Server to obtain information about Siebel Servers and Siebel Enterprise Server.&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;Siebel Gateway Name Server (SGNS):&lt;/strong&gt;&lt;br /&gt;SGNS can be considered as &lt;strong&gt;Sieber Server&lt;/strong&gt; &lt;strong&gt;contact information storehouse&lt;/strong&gt; for all the siebel servers. It serves as the &lt;strong&gt;dynamic address registry&lt;/strong&gt; for Siebel Servers and components. At start up, &lt;strong&gt;a Siebel Server&lt;/strong&gt; within the &lt;strong&gt;Siebel Enterprise Server&lt;/strong&gt; stores its &lt;strong&gt;network address&lt;/strong&gt; in the Gateway Name Servers nonpersistent &lt;strong&gt;address registry&lt;/strong&gt;.&lt;br /&gt;It also has a important file called &lt;strong&gt;siebns.dat&lt;/strong&gt; containg &lt;strong&gt;information&lt;/strong&gt; of &lt;strong&gt;Siebel Servers&lt;/strong&gt; such as&lt;br /&gt;&lt;strong&gt;1. &lt;/strong&gt;Operational parameters&lt;br /&gt;&lt;strong&gt;2. &lt;/strong&gt;Connectivity information&lt;br /&gt;&lt;strong&gt;3. &lt;/strong&gt;Definitions and assignments of component groups and components&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Siebel Enterprise Server (SES) :&lt;/strong&gt;&lt;br /&gt;SES is &lt;strong&gt;not a physical server&lt;/strong&gt; it is just a&lt;strong&gt; logical entity&lt;/strong&gt; in simple terms SES is a logical grouping on serveral siebel servers such as Siebel Server shaing one database can part of SES.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;The Siebel Servers in a Siebel Enterprise Server are configured, managed, and monitored as a single logical group which helps the Siebel Administrator to start, stop, monitor, or set server parameters for all Siebel Servers within the Siebel Enterprise Server. &lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="color:#660000;"&gt;==&gt; Once the SWSE gets information about Siebel Server it forwards the request to the Siebel Server on Round Robin basis due its load balancing feature.&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Siebel Server (SS) :&lt;br /&gt;&lt;/strong&gt;Siebel Server is the system on which &lt;strong&gt;Siebel Server Components&lt;/strong&gt; are &lt;strong&gt;installed &lt;/strong&gt;and it functions as Application server. Each server &lt;strong&gt;component &lt;/strong&gt;performs a &lt;strong&gt;defined function&lt;/strong&gt;.Server components or groups of components determine what applications and services a Siebel Server supports. The &lt;strong&gt;Siebel Server&lt;/strong&gt; runs as a &lt;strong&gt;system service&lt;/strong&gt; under &lt;strong&gt;Windows&lt;/strong&gt; and a &lt;strong&gt;process&lt;/strong&gt; under &lt;strong&gt;UNIX&lt;/strong&gt;. This system service or process monitors and controls the state of all server components on that Siebel Server. Each Siebel Server is one instantiation of the Siebel Server system service or process within the current Siebel Enterprise Server. &lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="font-family:georgia;color:#660000;"&gt;==&gt; Once the request is received by siebel server it is passed to a component called Application Object Manager (AOM) &lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;strong&gt;Application Object Manager (AOM) :&lt;br /&gt;&lt;/strong&gt;One of the most important types of server components is the Application Object Manager (AOM).They process user requests and are application or service-specific. For example A Sales Application will have Sales AOM and Call center application will have a Call Center AOM.This Application Object Manager provides the&lt;strong&gt; session environment&lt;/strong&gt; in which this application runs. When an AOM receives a user request to start an application, it does the following: &lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="font-family:georgia;color:#660000;"&gt;==&gt; The business object layer starts an application user session, processes any required business logic, and sends a data request to the data manager. &lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;strong&gt;Data Manager (DM) :&lt;br /&gt;&lt;/strong&gt;Data Manager is that another component that is a &lt;strong&gt;part of AOM&lt;/strong&gt;. Its primary function is to receive user request create corresponding &lt;strong&gt;SQL&lt;/strong&gt; and Forward it to database Server. It also receives results from Database server and forwards it to Siebel Business Object Layer for additional processing.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="color:#660000;"&gt;==&gt; Siebel Business Object Layer forwards the results to Siebel Web Engine (SWE) another component residing in AOM.&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="color:#660000;"&gt;==&gt; SWE helps create UI for the data and forwards the web pages to the SWSE Component which resides on Web Server.&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="color:#660000;"&gt;==&gt; Webserver then sends back the results to the users who had intially requested it.&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3614618453743598606-2499375598397486228?l=siebel-answers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://siebel-answers.blogspot.com/feeds/2499375598397486228/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3614618453743598606&amp;postID=2499375598397486228' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3614618453743598606/posts/default/2499375598397486228'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3614618453743598606/posts/default/2499375598397486228'/><link rel='alternate' type='text/html' href='http://siebel-answers.blogspot.com/2007/10/siebel-crm-back-to-basics-siebel.html' title='Siebel CRM - Back to Basics (Siebel Architechture).'/><author><name>Neel</name><uri>http://www.blogger.com/profile/11002839933851198680</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3614618453743598606.post-1754758669029761321</id><published>2007-10-06T00:30:00.000+05:30</published><updated>2007-10-08T14:24:43.553+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Workflows'/><category scheme='http://www.blogger.com/atom/ns#' term='How - To'/><title type='text'>Siebel CRM How To - Invoke Wrokflow through BC User Property</title><content type='html'>&lt;span style="font-family:georgia;"&gt;Till siebel 7.5 the only method know to invoke workflows were &lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family:georgia;"&gt;Runtime Events in start step of workflow&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:georgia;"&gt;Business Service&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Business Component Script&lt;/li&gt;&lt;li&gt;Workflow Policies&lt;/li&gt;&lt;/ul&gt;&lt;span class="fullpost"&gt;&lt;span style="font-family:georgia;"&gt;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 &lt;strong&gt;'Named Method&lt;em&gt;n&lt;/em&gt;'&lt;/strong&gt; user property in a BC which can invoke a workflow where &lt;strong&gt;n&lt;/strong&gt; is &lt;strong&gt;increment&lt;/strong&gt; to the last named method user property defined on that BC.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="font-family:georgia;"&gt;Name: Named Method &lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:georgia;"&gt;&lt;strong&gt;Value&lt;/strong&gt;:[Event Name] &lt;methodname&gt;, "INVOKESVC", &lt;bc&gt;, "Workflow Process Manager", "RunProcess", 'ProcessName',[Name of the Workflows] &lt;workflow&gt;, 'RowId', [Row Id Value]&lt;objectid&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style="font-family:georgia;"&gt;Example &lt;/span&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="font-family:georgia;"&gt;The below mentioned will invoke a workflow named 'Example Workflow' when a new record is created in Example BC.&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="font-family:georgia;"&gt;Name: Named Method 1&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;strong&gt;&lt;span style="font-family:georgia;"&gt;Value: "New Record", "INVOKESVC", "Example", "Workflow Process Manager", "RunProcess", "'ProcessName'", "Example Wrokflow", "'RowId'", "[Id]" &lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="font-family:georgia;"&gt;&lt;strong&gt;Hope this post helps you. If yes, Please post your comments.&lt;/strong&gt;&lt;/span&gt; &lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3614618453743598606-1754758669029761321?l=siebel-answers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://siebel-answers.blogspot.com/feeds/1754758669029761321/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3614618453743598606&amp;postID=1754758669029761321' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3614618453743598606/posts/default/1754758669029761321'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3614618453743598606/posts/default/1754758669029761321'/><link rel='alternate' type='text/html' href='http://siebel-answers.blogspot.com/2007/10/siebel-crm-how-to-invoke-wrokflow.html' title='Siebel CRM How To - Invoke Wrokflow through BC User Property'/><author><name>Neel</name><uri>http://www.blogger.com/profile/11002839933851198680</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3614618453743598606.post-3564981694937827250</id><published>2007-10-05T16:49:00.000+05:30</published><updated>2007-10-06T20:23:37.334+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Check In -Check Out'/><title type='text'>Siebel Tools - Check In - Check Out an Introduction.</title><content type='html'>&lt;strong&gt;Check In - Check Out &lt;/strong&gt;are the very common terms that Siebel Developers hear. A rather simple but a very&lt;strong&gt; important&lt;/strong&gt; feature for development. Without this feature their would be an &lt;strong&gt;absolute chaos&lt;/strong&gt; during development. I will try to explain Check In - Check Out (CICO) with the help of &lt;strong&gt;simple Analaogy:&lt;/strong&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;span style="font-family:arial;color:#660000;"&gt;&lt;em&gt;Imagine a room full of documents. You are allowed to make a copy of document take it home and work on it. What If everybody was allowed to go in at any time into the room and modify any document they want? The answer is again Absolute Chaos. Imagine working really hard on the document and to see next day that what you have taken home is invalid because somebody took a copy and made some changes to and you have to do the rework&lt;/em&gt;.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Based on above analogy we can map '&lt;strong&gt;Room'&lt;/strong&gt; as &lt;strong&gt;'Siebel Server Repository'&lt;/strong&gt;, &lt;strong&gt;Documents&lt;/strong&gt; as &lt;strong&gt;'Siebel Objects'&lt;/strong&gt;, &lt;strong&gt;Home&lt;/strong&gt; as &lt;strong&gt;'Local Environment'&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;So, the only way to control this is to have a some sort of mechanism to prevent you from taking that document while somebody else is working on it. Siebel &lt;strong&gt;Check In - Check Out process&lt;/strong&gt; is precisely that &lt;strong&gt;chaos saving mechanism&lt;/strong&gt;.&lt;br /&gt;&lt;br /&gt;We all know that siebel is based on &lt;strong&gt;Client - Server Architecture&lt;/strong&gt; and the same architechture is followed in case of &lt;strong&gt;siebel tools&lt;/strong&gt;. You have&lt;strong&gt; siebel server repository&lt;/strong&gt; and you siebel &lt;strong&gt;client dbf&lt;/strong&gt; or &lt;strong&gt;local database&lt;/strong&gt; where you perform you development.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="font-family:arial;"&gt;Check In - Check Out in siebel refers to the process of getting a copy of siebel objects in the your local environment, work on it and then update it back to the server after you are done.&lt;br /&gt;&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;There are various terms in siebel that you need to understand the check in - check out process&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Check Out :&lt;/strong&gt; Process of getting a copy from Server Repository to your local database and also locking he object on server so that nobody else can modify it.&lt;br /&gt;&lt;strong&gt;Check In :&lt;/strong&gt; Process of putting the object from local environment back to server and also release the lock so that others can work on it&lt;br /&gt;&lt;strong&gt;Get :&lt;/strong&gt; Process of getting copy from Server Repository to your local database without locking the object.&lt;br /&gt;&lt;strong&gt;Full Get :&lt;/strong&gt; Process to update you local tools repository will the latest objects from Siebel Server Repository. Unlike Get you don't select a particular object to update but all the projects&lt;br /&gt;&lt;br /&gt;You can &lt;strong&gt;check out&lt;/strong&gt; a &lt;strong&gt;single object&lt;/strong&gt; or a &lt;strong&gt;whole project&lt;/strong&gt;. If you check out a &lt;strong&gt;whole project&lt;/strong&gt; then &lt;strong&gt;all the objects&lt;/strong&gt; that are part of that project &lt;strong&gt;will be locked&lt;/strong&gt; with your Id and nobody else will be able to work on them. So, It is not a good idea. &lt;strong&gt;General practice&lt;/strong&gt; is just to &lt;strong&gt;check out&lt;/strong&gt; a &lt;strong&gt;single object.&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Now, I will explain the steps to perform each operation mentioned above&lt;br /&gt;&lt;br /&gt;Check - Out :&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;1. &lt;/strong&gt;Query for the object that you want to check out.&lt;br /&gt;&lt;strong&gt;2.&lt;/strong&gt; Right Click and Choose Check Out. (You can also press F10 or choose Tools Menu ==&gt; Check Out)&lt;br /&gt;&lt;em&gt;&lt;span style="color:#000066;"&gt;Tip:The option of check out single object will only be available if your tools.cfg as parameter EnableObjectCOCI set to true.&lt;br /&gt;&lt;/span&gt;&lt;/em&gt;&lt;strong&gt;3.&lt;/strong&gt; Again Click on Check Out in the new window that appears.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Check In :&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;1.&lt;/strong&gt; Click Tools (Menu) ==&gt; Check In (You can also press CTRL + F10)&lt;br /&gt;A new window will appear. It will show the objects that have check out by your id&lt;br /&gt;&lt;strong&gt;2.&lt;/strong&gt; Select the Object that you want to check in and click Check In&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Get :&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;1.&lt;/strong&gt; Query for the object that you want to Get.&lt;br /&gt;&lt;strong&gt;2.&lt;/strong&gt; Right Click and Choose Check Out. (You can also press F10 or choose Tools Menu ==&gt; Check Out)&lt;br /&gt;&lt;em&gt;&lt;span style="color:#000066;"&gt;Tip:The option of check out single object will only be available if your tools.cfg as parameter EnableObjectCOCI set to true.&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;strong&gt;3.&lt;/strong&gt; Again Click on Get in the new window that appears.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Full Get :&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;1.&lt;/strong&gt; Click Tools (Menu) ==&gt; Check Out&lt;br /&gt;&lt;strong&gt;2.&lt;/strong&gt; Select 'All Projects' Radio button in the new window that appears&lt;br /&gt;&lt;strong&gt;3.&lt;/strong&gt; Click Get.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Hope this post was helpful. If Yes, Please post your comments.&lt;/strong&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3614618453743598606-3564981694937827250?l=siebel-answers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://siebel-answers.blogspot.com/feeds/3564981694937827250/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3614618453743598606&amp;postID=3564981694937827250' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3614618453743598606/posts/default/3564981694937827250'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3614618453743598606/posts/default/3564981694937827250'/><link rel='alternate' type='text/html' href='http://siebel-answers.blogspot.com/2007/10/siebel-crm-tools-check-in-check-out.html' title='Siebel Tools - Check In - Check Out an Introduction.'/><author><name>Neel</name><uri>http://www.blogger.com/profile/11002839933851198680</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3614618453743598606.post-4176769259357518682</id><published>2007-10-05T12:43:00.000+05:30</published><updated>2007-10-15T19:45:21.054+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='How - To'/><category scheme='http://www.blogger.com/atom/ns#' term='List of Values'/><title type='text'>Siebel CRM How To - Create a new LOV?</title><content type='html'>&lt;span style="font-family:georgia;color:#000066;"&gt;Whatever I have posted in this blog assumes that you have fair bit of idea working on &lt;strong&gt;Siebel CRM&lt;/strong&gt;. I noticed there is hardly anything in this blog that can help a &lt;strong&gt;newbie&lt;/strong&gt;. So thought of starting a new Category that is &lt;strong&gt;'Siebel CRM How To'&lt;/strong&gt;. This Category will include step by step How To's to various things in &lt;strong&gt;Siebel CRM&lt;/strong&gt;. Starting this series is a simple 'How To' of creating a new List of Value and adding to the existing List of Value (LOV). &lt;/span&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;span style="font-family:georgia;color:#660000;"&gt;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&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-family:georgia;"&gt;Creating a new LOV&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;You can create an LOV from two places both have a different way of creating LOV in Siebel CRM.&lt;/span&gt;&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;&lt;strong&gt;Administration ==&gt; Data ==&gt; List of Values&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;Administration ==&gt; Data ==&gt; LOV Explorer&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;Through List of Values to add a new LOV following steps have to be followed. As an Example we will add a &lt;strong&gt;new LOV&lt;/strong&gt; for &lt;strong&gt;Martial Status&lt;/strong&gt; of a person.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="fullpost"&gt;&lt;ol&gt;&lt;li&gt;&lt;span style="font-family:georgia;"&gt;Click New and Choose LOV_TYPE in Type Field&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:georgia;"&gt;Enter MARITAL_LOV in &lt;strong&gt;'Display Value'&lt;/strong&gt;.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:georgia;"&gt;Enter 'Marital Status' in &lt;strong&gt;Language-Independent Code Field&lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:georgia;"&gt;Enter 'English-American' if you implementation language is English otherwise it will be according to the language of your implementation. &lt;strong&gt;Save the record&lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:georgia;"&gt;Click New again and choose 'MARITAL_LOV' in &lt;strong&gt;Type Field&lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:georgia;"&gt;Enter 'Married' in &lt;strong&gt;Display Value and Language-Independent Code Field&lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:georgia;"&gt;Enter 'English-American' if you implementation language is English otherwise it will be according to the language of your implementation. &lt;strong&gt;Save the record.&lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:georgia;"&gt;&lt;strong&gt;Follow steps 5 -7&lt;/strong&gt; for all values that you want to associate with this LOV&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;span style="font-family:georgia;"&gt;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'&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:georgia;"&gt;Through &lt;strong&gt;LOV Explorer&lt;/strong&gt; you have to perform the following steps.&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;span style="font-family:georgia;"&gt;Click New and enter 'MARITAL_LOV' in the Type field&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:georgia;"&gt;Click on the &lt;strong&gt;+ &lt;/strong&gt;sign in the left hand side of the &lt;strong&gt;LOV&lt;/strong&gt; &lt;strong&gt;Explorer window&lt;/strong&gt; for the type that you created&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:georgia;"&gt;Click on the &lt;strong&gt;Values &lt;/strong&gt;folder.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:georgia;"&gt;In the Right hand side &lt;strong&gt;Applet&lt;/strong&gt; click on New&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:georgia;"&gt;Enter 'Married' in the &lt;strong&gt;'Code'&lt;/strong&gt; and &lt;strong&gt;'Display Value' Field&lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:georgia;"&gt;Enter 'English-American' if you implementation language is English otherwise it will be according to the language of your implementation. &lt;strong&gt;Save the record.&lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:georgia;"&gt;&lt;strong&gt;Repeat steps 4-6&lt;/strong&gt; for the all the values that you want to enter.&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="font-family:georgia;"&gt;That's it. You are done with &lt;strong&gt;creating&lt;/strong&gt; the &lt;strong&gt;New LOV&lt;/strong&gt; with new Values&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:georgia;"&gt;To enter &lt;strong&gt;New Values&lt;/strong&gt; in the&lt;strong&gt; existing Siebel LOV&lt;/strong&gt; just perform the following steps.&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;span style="font-family:georgia;"&gt;&lt;strong&gt;Query&lt;/strong&gt; for the &lt;strong&gt;LOV Type&lt;/strong&gt; that you want to add New Values.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:georgia;"&gt;Copy the record Enter the &lt;/span&gt;&lt;span style="font-family:georgia;"&gt;&lt;strong&gt;Display Value and Language Independent Code Field&lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:georgia;"&gt;Change the &lt;strong&gt;value &lt;/strong&gt;in the &lt;strong&gt;Order Field&lt;/strong&gt; to be the &lt;strong&gt;unique number&lt;/strong&gt; and save the record.&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;strong&gt;&lt;span style="color:#000099;"&gt;Related Posts that you might like to Read:&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://siebel-answers.blogspot.com/2007/10/siebel-list-of-values-strategic-move.html"&gt;Siebel CRM - List of Values a Strategic Move!&lt;/a&gt;&lt;br /&gt;&lt;a href="http://siebel-answers.blogspot.com/2007/10/siebel-list-of-values-strategic-move_10.html"&gt;Siebel CRM - List of Values a Strategic Move- Continued!&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3614618453743598606-4176769259357518682?l=siebel-answers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='enclosure' type='text/html' href='http://siebel-answers.blogspot.com/2007/10/siebel-list-of-values-strategic-move_10.html' length='0'/><link rel='replies' type='application/atom+xml' href='http://siebel-answers.blogspot.com/feeds/4176769259357518682/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3614618453743598606&amp;postID=4176769259357518682' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3614618453743598606/posts/default/4176769259357518682'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3614618453743598606/posts/default/4176769259357518682'/><link rel='alternate' type='text/html' href='http://siebel-answers.blogspot.com/2007/10/siebel-crm-how-to-create-new-lov.html' title='Siebel CRM How To - Create a new LOV?'/><author><name>Neel</name><uri>http://www.blogger.com/profile/11002839933851198680</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3614618453743598606.post-5908528720503995897</id><published>2007-10-04T09:50:00.000+05:30</published><updated>2007-10-06T20:25:28.615+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Problem-Solutions'/><title type='text'>Siebel Dedicated Client - Executing Workflows!</title><content type='html'>&lt;span style="font-family:georgia;"&gt;&lt;strong&gt;Problem Statement :&lt;/strong&gt;&lt;br /&gt;Whenever we try execute a functionality in siebel dedicated client involving workflows we get an error message!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;&lt;strong&gt;Problem Description:&lt;/strong&gt;&lt;br /&gt;Ever tried executing functionality that involved workflows from dedicated client. If you have then you must be familiar from this problem. Whenever you try to execute functionality in siebel which involves execution of workflows with the default CFG file you will get an error message. &lt;strong&gt;&lt;span style="color:#666666;"&gt;(Will update the post with exact error message)&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;&lt;strong&gt;Solution/Answer:&lt;br /&gt;&lt;/strong&gt;If you go through the CFG file you will see a section [InfraObjMgr] which contains a parameter: &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:georgia;color:#660000;"&gt;RequestServerName = CHANGE_ME&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;Just update the value CHANGE_ME to the name of your workflow server, save your CFG and your problem is solved. Example given&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;RequestServerName = server2 &lt;span style="color:#666666;"&gt;(server2 will be the server where workflow manager resides)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:georgia;color:#666666;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-family:georgia;color:#000000;"&gt;Hope this post Helps you.If yes, Do post your comments!!!!&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3614618453743598606-5908528720503995897?l=siebel-answers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://siebel-answers.blogspot.com/feeds/5908528720503995897/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3614618453743598606&amp;postID=5908528720503995897' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3614618453743598606/posts/default/5908528720503995897'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3614618453743598606/posts/default/5908528720503995897'/><link rel='alternate' type='text/html' href='http://siebel-answers.blogspot.com/2007/10/siebel-dedicated-client-executing.html' title='Siebel Dedicated Client - Executing Workflows!'/><author><name>Neel</name><uri>http://www.blogger.com/profile/11002839933851198680</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3614618453743598606.post-2267250771021818377</id><published>2007-10-01T14:03:00.000+05:30</published><updated>2007-10-01T14:10:03.177+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Got Problems???'/><title type='text'>Got A Problem?</title><content type='html'>If you are facing problem in siebel and have not been able to find an answer.&lt;br /&gt;&lt;br /&gt;Or If you have something that you would like to share with the rest of the world about siebel.&lt;br /&gt;&lt;br /&gt;Or there is something that you want me to include in this blog.&lt;br /&gt;&lt;br /&gt;Drop a mail at &lt;a href="mailto:neelmani.gautam@gmail.com"&gt;neelmani.gautam@gmail.com&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Will post you suggestions, ideas with your credentials.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Don't wait, write now.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3614618453743598606-2267250771021818377?l=siebel-answers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://siebel-answers.blogspot.com/feeds/2267250771021818377/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3614618453743598606&amp;postID=2267250771021818377' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3614618453743598606/posts/default/2267250771021818377'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3614618453743598606/posts/default/2267250771021818377'/><link rel='alternate' type='text/html' href='http://siebel-answers.blogspot.com/2007/10/got-problem.html' title='Got A Problem?'/><author><name>Neel</name><uri>http://www.blogger.com/profile/11002839933851198680</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3614618453743598606.post-4547609496025155220</id><published>2007-10-01T10:39:00.001+05:30</published><updated>2007-10-06T20:30:33.294+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='cfg File'/><category scheme='http://www.blogger.com/atom/ns#' term='Configuration'/><title type='text'>Siebel CRM - Configuration File (cfg) Disected and Explained.</title><content type='html'>Today we are going to discuss about one of the most important files for Siebel CRM. Yes, those who have worked on Siebel will know what I am talking about.&lt;br /&gt;Yes, we are going to discuss ".cfg" file which stands for configuration file which largley controls siebel bhavieor. There are basically 3 important cfg files.&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;1. eapps.cfg&lt;br /&gt;2. tools.cfg&lt;br /&gt;3. cfg file for Siebel Client(Name can depend on the kind of siebel application you are using)&lt;br /&gt;so for this article we will assume uagent.cfg which is used if you are using call center.&lt;br /&gt;&lt;br /&gt;To discuss eapps.cfg is out of scope for this article so in this article we will be discussing tools.cfg and uagent.cfg file.&lt;br /&gt;&lt;br /&gt;Tools.cfg is used for Siebel Tools and uagent exsits for Siebel Client both dedicated and thin. First of all the location of the file.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Tools.cfg&lt;/strong&gt; exsits in :&lt;strong&gt;siebel installation directory\tools\bin\enu&lt;br /&gt;&lt;/strong&gt;Here&lt;strong&gt; enu&lt;/strong&gt; means the &lt;strong&gt;language&lt;/strong&gt; that you have choosen. It can be different if you have installed siebel tools in langauage other than english.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;uagent.cfg&lt;/strong&gt; exsits in : &lt;strong&gt;siebel installation directory\web client\bin\enu&lt;/strong&gt;.&lt;br /&gt;For thin client the cfg file exsits on server and the path is&lt;br /&gt;&lt;strong&gt;/siebel install dir/siebsrvr/bin/enu&lt;/strong&gt; if the server is &lt;strong&gt;Unix&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;siebel install dir\siebsrvr/bin/enu&lt;/strong&gt; if the server is &lt;strong&gt;Windows&lt;/strong&gt;&lt;br /&gt;Now I will describe various sections of CFG file.&lt;br /&gt;&lt;br /&gt;In CFG file anything that starts from&lt;strong&gt; []&lt;/strong&gt; is a &lt;strong&gt;section&lt;/strong&gt; that contains certain P&lt;strong&gt;arameters&lt;/strong&gt; to &lt;strong&gt;control siebel&lt;/strong&gt;. I will list important sections that are important and we need modify them often&lt;br /&gt;&lt;br /&gt;1. [Siebel]&lt;br /&gt;2. [DataSources]&lt;br /&gt;3. [Local]&lt;br /&gt;4. [Sample] &lt;em&gt;Only used if you have installed sample database&lt;/em&gt;&lt;br /&gt;5. [ServerDataSrc] Very important and modified often.&lt;br /&gt;6. [SWE]&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-family:trebuchet ms;"&gt;Tip: If you want to comment anything in cfg file use ; a semicolon in front of any line would mean that siebel is going to ignore that line treating it as comment.&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;I am goint to list only the important parameters in the sections.&lt;br /&gt;&lt;br /&gt;1. &lt;strong&gt;[Siebel]&lt;/strong&gt; : This section contains important parameters related to siebel. Which are as following&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;RepositoryFile &lt;/strong&gt;:Name of the SRF file to be used&lt;br /&gt;&lt;strong&gt;ApplicationName&lt;/strong&gt; :Name of the Application to be used&lt;br /&gt;ApplicationTitle :Name that is going to appear in Title of your browser window and can be anything&lt;br /&gt;&lt;strong&gt;ApplicationSplashText&lt;/strong&gt; :Name that is going to appear when you start you dedicated client and can be anything&lt;br /&gt;&lt;strong&gt;EnableScripting&lt;/strong&gt; :Often used for debugging purposes. If set to false no script is going to execute when you start you client&lt;br /&gt;&lt;strong&gt;LocalDbODBCDataSource&lt;/strong&gt; :Name of the ODBC data source that is going to be used when you start dedicated client with local database (SSD Local Db default instance by default)&lt;br /&gt;&lt;strong&gt;ServerDbODBCDataSource&lt;/strong&gt; :Name of the ODBC data source that is going to be used when you start dedicated client with server database (SSD default instance by default)&lt;strong&gt;&lt;br /&gt;DockRepositoryName&lt;/strong&gt; :Name of the repository that is going to be used.&lt;br /&gt;WebClientSiteDir : Path to the directory from where the browser scripts and images are going to be picked up&lt;br /&gt;&lt;strong&gt;EnablePersonalization &lt;/strong&gt;: To Enable or Disable personlaization for Siebel Users&lt;br /&gt;&lt;strong&gt;EnableRuntimeEvents&lt;/strong&gt; : To Enable or disable Runtime Events&lt;br /&gt;&lt;strong&gt;EnableObjectCOCI&lt;/strong&gt; : To Enable object check in check out when set to false you are not allowed to check out a single object. Remember Object checkout has to be enabled from tools also before you can do that&lt;br /&gt;&lt;br /&gt;2. &lt;strong&gt;[DataSources]&lt;/strong&gt; : This section contians the what you can see from the dropdown of you dedicated client. Default values are&lt;br /&gt;Local = Local&lt;br /&gt;Sample = Sample&lt;br /&gt;ServerDataSrc = Server&lt;br /&gt;&lt;br /&gt;You can specify more datasources under this section to specify more section you have to define it in the following way.&lt;br /&gt;&lt;br /&gt;MyNewDataSource = NewDataSource&lt;br /&gt;&lt;strong&gt;MyNewDataSource&lt;/strong&gt; is the &lt;strong&gt;name&lt;/strong&gt; of the &lt;strong&gt;Section&lt;/strong&gt; that should be &lt;strong&gt;present &lt;/strong&gt;in the &lt;strong&gt;cfg file&lt;/strong&gt; that is going to contain parameters to be used for this datasource&lt;br /&gt;&lt;strong&gt;'NewDataSource'&lt;/strong&gt; is the value that is going to appear in the &lt;strong&gt;dropdown&lt;/strong&gt; of &lt;strong&gt;dedicated siebel tools or client.&lt;/strong&gt;&lt;br /&gt;3. &lt;strong&gt;[Local] &lt;/strong&gt;: In this section only one parameter is important and that we can change to our advantage&lt;br /&gt;&lt;strong&gt;ConnectString&lt;/strong&gt; = C:\PROGRA~1\Siebel\7.8\Tools\local\sse_data.dbf -q -m -x NONE -gp 4096 -c256m -ch256m&lt;br /&gt;&lt;br /&gt;As you can see the &lt;strong&gt;value&lt;/strong&gt; of the &lt;strong&gt;connection string&lt;/strong&gt; is in the form of &lt;strong&gt;Path&lt;/strong&gt; and then &lt;strong&gt;switches&lt;/strong&gt;.&lt;br /&gt;&lt;br /&gt;The path is the&lt;strong&gt; path&lt;/strong&gt; to &lt;strong&gt;your dbf file&lt;/strong&gt; and the &lt;strong&gt;switches&lt;/strong&gt; that you can give are as following&lt;br /&gt;&lt;strong&gt;-q&lt;/strong&gt; : means start local database in quite mode.This prevents a SQL Anywhere window from showing up.&lt;br /&gt;&lt;strong&gt;-m&lt;/strong&gt; : truncate transaction log after checkpoint.&lt;br /&gt;&lt;strong&gt;-x NONE&lt;/strong&gt; : Do not load any network drivers.&lt;br /&gt;&lt;strong&gt;-gp 4096&lt;/strong&gt; : Tells the engine that the database page size is 4,096 bytes.&lt;br /&gt;&lt;strong&gt;-c256m&lt;/strong&gt; : Initial cache size is 256 MB&lt;br /&gt;&lt;strong&gt;-ch256m&lt;/strong&gt; : Maximum cache size can be mb256.&lt;br /&gt;&lt;br /&gt;4. &lt;strong&gt;[Sample]&lt;/strong&gt; : This section is pretty &lt;strong&gt;similar &lt;/strong&gt;to&lt;strong&gt; Local Section&lt;/strong&gt; with exception of one parameter&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;FileSystem&lt;/strong&gt; : It contains path to you file system where you attachments are stored&lt;br /&gt;&lt;br /&gt;5. &lt;strong&gt;[ServerDataSrc]&lt;/strong&gt; : This is one of the &lt;strong&gt;most important&lt;/strong&gt; section and &lt;strong&gt;you have to change&lt;/strong&gt; few parameter before you can &lt;strong&gt;actually login&lt;/strong&gt; to server through &lt;strong&gt;Dedicated Client&lt;/strong&gt;.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;ConnectString&lt;/strong&gt; : Here just like local section indicates the connection string to be used to connect to server&lt;br /&gt;&lt;strong&gt;FileSystem &lt;/strong&gt;: Path to you file system. Similar to local section&lt;br /&gt;&lt;strong&gt;GatewayAddress &lt;/strong&gt;: This will contain the name of your Siebel Gateway Server. This section has to be changed to a valid value&lt;br /&gt;&lt;strong&gt;EnterpriseServer &lt;/strong&gt;: This will contain the name of your Siebel Enterprise Server.This section has to be changed to a valid value&lt;br /&gt;&lt;br /&gt;6. &lt;strong&gt;[SWE]&lt;/strong&gt; : This section contains parameters related to the &lt;strong&gt;bitmaps&lt;/strong&gt; and &lt;strong&gt;appearance&lt;/strong&gt; of Siebel Client. But It contains &lt;strong&gt;an important&lt;/strong&gt; &lt;strong&gt;parameter&lt;/strong&gt; which is as following.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;ClientBusinessService&lt;/strong&gt; : This parameter is used if you want a business service to be called from browser scripts. The Business service has to be mentioned here in this section.&lt;br /&gt;The format to mention the business service is&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;ClientBusinessService&lt;em&gt;&lt;span style="font-family:verdana;"&gt;n&lt;/span&gt;&lt;/em&gt;&lt;/strong&gt;&lt;em&gt; &lt;/em&gt;= "Business Service Name" where &lt;strong&gt;n&lt;/strong&gt; is a &lt;strong&gt;incremental number&lt;/strong&gt; &lt;strong&gt;one more&lt;/strong&gt; than the&lt;strong&gt; number&lt;/strong&gt; mentioned in&lt;strong&gt; last ClientBusinessService entry&lt;/strong&gt;. For example&lt;br /&gt;ClientBusinessService0 = "Message Bar"&lt;br /&gt;ClientBusinessService1 = "Communications Client"&lt;br /&gt;&lt;br /&gt;If I want to have one more entry in the file then I will enter&lt;br /&gt;ClientBusinessService2 = "Business Service Name"&lt;br /&gt;&lt;br /&gt;This completes the listing and explaination of important parameters of the cfg file used by siebel tools and siebel client.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Hope this post was helpful to you. If yes please post your comments and visit again for more.&lt;/strong&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3614618453743598606-4547609496025155220?l=siebel-answers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://siebel-answers.blogspot.com/feeds/4547609496025155220/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3614618453743598606&amp;postID=4547609496025155220' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3614618453743598606/posts/default/4547609496025155220'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3614618453743598606/posts/default/4547609496025155220'/><link rel='alternate' type='text/html' href='http://siebel-answers.blogspot.com/2007/09/siebel-crm-configuration-file-cfg.html' title='Siebel CRM - Configuration File (cfg) Disected and Explained.'/><author><name>Neel</name><uri>http://www.blogger.com/profile/11002839933851198680</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3614618453743598606.post-8155944975014599018</id><published>2007-09-30T18:08:00.000+05:30</published><updated>2007-10-06T20:38:39.177+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Signals'/><category scheme='http://www.blogger.com/atom/ns#' term='Case Study'/><title type='text'>Siebel 7.8 Signals - A Case Study!</title><content type='html'>I am back with what I promised.&lt;br /&gt;A case study how we used signals to improve the perfomance by &lt;strong&gt;83%.&lt;/strong&gt; I will try to tell you&lt;strong&gt; facts&lt;/strong&gt; that I found while working on them and &lt;strong&gt;not available in bookshelf and supportweb&lt;/strong&gt;. If you want to know about singals please read my post &lt;a href="http://siebel-answers.blogspot.com/2007/09/siebel-crm-78-signals-demystified.html"&gt;Siebel CRM 7.8 - Signals Demysitified&lt;/a&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;We are working on Siebel 7.8.2.3. It is a&lt;strong&gt; Call Center module&lt;/strong&gt; but major and complex functionality is weaved around &lt;strong&gt;Quote Module&lt;/strong&gt; which includes customizable products. Now these coustmizable products can have upto &lt;strong&gt;10 products and 300 attributes&lt;/strong&gt; in one Quote Item record. In addition to Quote and Quote Item various custom entities are also copied as Quote Item Child. So, In total there are &lt;strong&gt;11 entites&lt;/strong&gt; are copied over when you 'Copy' or 'Revise' Quote.&lt;br /&gt;&lt;br /&gt;Now it is not possible to copy all these through configuration as by configuration only &lt;strong&gt;'Root Quote Item'&lt;/strong&gt; or just the &lt;strong&gt;First record&lt;/strong&gt; of Quote Item is &lt;strong&gt;copied&lt;/strong&gt; over, not all the records that are created as a result of customization of product. So, The intial solution was to copy or revise quote through scripting copying the Quote Item and all of its child. But the result was that it took upto 3 minutes to copy or revise the quote which was unacceptable and due to accessive scripting the process was not stable and often broke giving one or the other scripting error.&lt;br /&gt;&lt;br /&gt;So, we started exploring the Solution through &lt;strong&gt;vaniall singals&lt;/strong&gt; i.e '&lt;strong&gt;CopyQuote'&lt;/strong&gt; to copy quote and '&lt;strong&gt;ReviseCopyQuote'&lt;/strong&gt; to revise quote. When these signals were enabled they resulted in copy and revision of just 'Quote' and 'Quote Item'. After further exploring we found that these signal use a 'Data Map' which can be modified through Application&lt;br /&gt;&lt;br /&gt;Data Maps are available&lt;br /&gt;&lt;strong&gt;Adminstration ==&gt; Application ==&gt; Data Map Administration.&lt;/strong&gt;&lt;br /&gt;This view is not available by default especially if you have upgraded your application to &lt;strong&gt;Siebel 7.8&lt;/strong&gt;. You might have to enter a different license key for this view. Data Maps are nothing but declarative mapping of BO, BC and Fields. You specify the Source BC, Fields and Destination BC, Fields. Just creating the mapping is not enough you have to have supporting configuration of the BC's to make it work.&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#000066;"&gt;Every BC that you enter should be added to the BO. It should have a Link to it's parent (if any) and that links should be added in the Business Component Section of BO.&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#660000;"&gt;Add the custom fields to the datamap.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Now comes the&lt;strong&gt; tricky part&lt;/strong&gt;. Even if you do all this you &lt;strong&gt;will not&lt;/strong&gt; see any &lt;strong&gt;improvement&lt;/strong&gt; in &lt;strong&gt;performance&lt;/strong&gt; and you might &lt;strong&gt;face some errors&lt;/strong&gt;. This is what you have to do in addition to what you have already done.&lt;br /&gt;&lt;br /&gt;1. Create&lt;strong&gt; 'MapId'&lt;/strong&gt; Advanced Property for Child Business Component Fields.&lt;br /&gt;2. Create &lt;strong&gt;Light version&lt;/strong&gt; of Child Business Components.&lt;br /&gt;&lt;br /&gt;Now, I will explain all the three steps in detail.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;MapId&lt;/strong&gt; : Data Maps support an advanced property called 'MapId' which is really important if you want this to work. 'MapId' is not properly defined in Bookshelf. I will try to explain this property with help of an example.&lt;br /&gt;&lt;br /&gt;We assume that Quote Item has a child called Delivery Schedule and we want it to be copied over when we copy quote. A field called 'Quote Item Id' is present in delivery schedule which stores the row id of Quote Item and is used by Link hence establishing the Parent-Child relationship.&lt;br /&gt;&lt;br /&gt;When we specify a source field in data map the value of that field is copied to the field specified in the destination field section. Which means when we specify 'Quote Item Id' Field value from source 'Quote Item Id' is copied to the destination field. To simply this further suppose the source 'Quote Item Id' had a value '1-6666' which means destination 'Quote Item Id' would have value '1-6666'. But this is wrong. This behaviour would mean that new delivery schedule record is now child of old 'Quote Item' not new.&lt;br /&gt;&lt;br /&gt;Here is where '&lt;strong&gt;MapId'&lt;/strong&gt; property comes into picture. You have to specify 'MapId' property for all the fields which are suppose to store the row id of parent business component. You have to enter the following information in the MVG that opens when you click on Advanced property field&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Property Name :MapId (remember it is case sensitive)&lt;br /&gt;Property Value : Name of parent business component&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;According to above example the Advanced property would be something like this&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Property Name : MapId&lt;br /&gt;Property Value : Quote Item&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;This should solve one of your problems.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Light Version BC&lt;/strong&gt;: When we are copying we don't need the validations or stuff like precision or Currency code property.&lt;br /&gt;&lt;span style="color:#660000;"&gt;Making the BC Light mean that create a copy of the original BC and perform the following steps&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;1. Change the Class of the Bus Comp CSSBCBase.&lt;br /&gt;2. Disable all the user properties of the buscomp.&lt;br /&gt;3. Remove all the Post Defaults and Pre Defaults (Until and unless really required)&lt;br /&gt;4. Remove all the picklists&lt;br /&gt;5. All the values from the validations&lt;br /&gt;6. All the values from the precision fields&lt;br /&gt;&lt;br /&gt;I think you Get the idea now So, remove all that you think can be unnecessary. But there are something that are required so you have to use a little common sense before removing all these things.&lt;br /&gt;&lt;br /&gt;And you are done!!!!!!!&lt;br /&gt;&lt;br /&gt;Using these signals we were able to&lt;strong&gt; reduce&lt;/strong&gt; the copy/revise time to &lt;strong&gt;under 10 seconds&lt;/strong&gt; when it had records in all the 11 custom entities.&lt;br /&gt;&lt;br /&gt;If you face any problems while implementing solutions then mail me at &lt;a href="mailto:neelmani.gautam@gmail.com"&gt;neelmani.gautam@gmail.com&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Hope this post helps you! If yes then please do write you comments and come back for more.&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3614618453743598606-8155944975014599018?l=siebel-answers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://siebel-answers.blogspot.com/feeds/8155944975014599018/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3614618453743598606&amp;postID=8155944975014599018' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3614618453743598606/posts/default/8155944975014599018'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3614618453743598606/posts/default/8155944975014599018'/><link rel='alternate' type='text/html' href='http://siebel-answers.blogspot.com/2007/09/siebel-78-signals-case-study.html' title='Siebel 7.8 Signals - A Case Study!'/><author><name>Neel</name><uri>http://www.blogger.com/profile/11002839933851198680</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3614618453743598606.post-3425255398639268277</id><published>2007-09-29T16:22:00.000+05:30</published><updated>2007-10-06T20:41:18.404+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Signals'/><title type='text'>Siebel CRM 7.8 - Signals Demystified.</title><content type='html'>Anybody who has worked on &lt;strong&gt;Siebel 7.8&lt;/strong&gt; must have come accross the term '&lt;strong&gt;Signal&lt;/strong&gt;'. I came across this term just a few months ago. When were wroking for some &lt;strong&gt;Performance issues&lt;/strong&gt; in our Project. It is one of the most useful thing that I have come across in Siebel in past 2 years of experience. It has the ability to change the way we do lot of things.&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;What I found out during my &lt;strong&gt;Reaserch&lt;/strong&gt; to find out more on singals is the fact that it is absolutely not a new thing in siebel. It has been part of siebel from very start which is way back in &lt;strong&gt;Siebel 6&lt;/strong&gt;. I know you might be confused a little bit. Let me explain.&lt;br /&gt;&lt;br /&gt;we all know that siebel is a &lt;strong&gt;Event Driven&lt;/strong&gt; &lt;strong&gt;language&lt;/strong&gt;. We can choose to handle those events or let siebel handle those events.In events we do some coding for the custom methods that we have defined. And we all know that in the end we have to write a &lt;strong&gt;statement 'return(CancleOperation)&lt;/strong&gt;'. Of Late what I knew was that we just have to write this statement otherwise we get and error message 'MethodName is not Supported'.&lt;br /&gt;&lt;br /&gt;The reason for this kind of behaviour is 'Signals' that's right!!! Signals are responsible for it. Now I will explain how.&lt;br /&gt;&lt;br /&gt;Everything Method Invoked in Siebel is a 'Signal' which is passed on to the &lt;strong&gt;C++ code&lt;/strong&gt; that makes the core siebel. When a vanilla method is invoked such as 'SetFieldValue' , 'GetFieldValue', 'InvokeMethod' Siebel has the code in it is &lt;strong&gt;C++ Classes&lt;/strong&gt; to handle it. But when we invoke the custom method Siebel has absolutely no idea how to handle that code. So, we write the statement 'return(CancleOperation)' so that the custom method never reaches Siebel C++ code.&lt;br /&gt;&lt;br /&gt;Now the question is what has changed in Signals in version 7.8? Well, the answer is Prior this version of siebel we coudn't create custom signals and we couldn't modify the existing signals. But now in&lt;strong&gt; Siebel 7.8&lt;/strong&gt; we can change &lt;strong&gt;vanilla&lt;/strong&gt; singals and also create new signals.&lt;br /&gt;&lt;br /&gt;The view that let's us do that is &lt;strong&gt;Adminstration ==&gt; Order Management ==&gt; Signals.&lt;br /&gt;&lt;br /&gt;&lt;/strong&gt;You can see in this view a lot of signals related to pricing as they are used extensively for Pricing in siebel. But you can also see signals like 'SetFieldvalue'.&lt;br /&gt;&lt;br /&gt;In my next post I will be explaining in detail how we used Copy and Revise Vanilla Signals to rectify the &lt;strong&gt;performance issues&lt;/strong&gt; related to &lt;strong&gt;Copy and Revision&lt;/strong&gt; of Quote.&lt;br /&gt;&lt;br /&gt;If this post has been helpful. Please post your comments and visit again for more.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3614618453743598606-3425255398639268277?l=siebel-answers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://siebel-answers.blogspot.com/feeds/3425255398639268277/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3614618453743598606&amp;postID=3425255398639268277' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3614618453743598606/posts/default/3425255398639268277'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3614618453743598606/posts/default/3425255398639268277'/><link rel='alternate' type='text/html' href='http://siebel-answers.blogspot.com/2007/09/siebel-crm-78-signals-demystified.html' title='Siebel CRM 7.8 - Signals Demystified.'/><author><name>Neel</name><uri>http://www.blogger.com/profile/11002839933851198680</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3614618453743598606.post-4858282263974888353</id><published>2007-09-28T12:29:00.000+05:30</published><updated>2007-10-06T21:02:36.098+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Configuration'/><title type='text'>Siebel Business Component Outer Join - How Important?</title><content type='html'>During my past two years of working on Siebel I have come across lot of situations where just &lt;strong&gt;one little miss&lt;/strong&gt; can wreck havoc with the application. It can result in &lt;strong&gt;performance issues&lt;/strong&gt; and &lt;strong&gt;Data issues&lt;/strong&gt;. I think some of you might have guessed by know what miss I am talking about.&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;I am talking about Outer Join Flag on Join Section of the Business Component. Joins are the integral part of Siebel configuration. They are indispensable, joins are required because we know the &lt;strong&gt;database&lt;/strong&gt; (it can be oracle, DB2 or Microsoft SQL Server) is a &lt;strong&gt;relational database&lt;/strong&gt; known as &lt;strong&gt;RDBMS&lt;/strong&gt; in short form. Which means the information that resides in it is in the form of related tables and we always need information of one table in another. These tables are related with the help of &lt;strong&gt;Foreign Keys&lt;/strong&gt; (FK). So, when we want to show information of one table in another we use Joins and we use them all the times.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;When we are creating Joins in Siebel you can see a field called Outer Join Flag. Please see the screenshot below.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://bp1.blogger.com/_TaTb2is797I/RvymxQ_S0BI/AAAAAAAAAQc/Mmzp7_BlAIk/s1600-h/Join.png"&gt;&lt;span style="font-family:georgia;"&gt;&lt;img id="BLOGGER_PHOTO_ID_5115146642090283026" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://bp1.blogger.com/_TaTb2is797I/RvymxQ_S0BI/AAAAAAAAAQc/Mmzp7_BlAIk/s320/Join.png" border="0" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;and every time we don't check that flag we are heading for trouble.&lt;br /&gt;&lt;strong&gt;Now, what exactly does that flag represent?&lt;/strong&gt; Before I explain it I assume that you have basic understanding of SQL and simple joins. As I have mentioned earlier that everything that configure or do on UI is converted into &lt;strong&gt;SQL&lt;/strong&gt; and that is where this flag comes into picture. &lt;/p&gt;&lt;p&gt;For example see the simple sql pulling data from another table with the help of simple join&lt;br /&gt;&lt;/p&gt;&lt;p&gt;select name b&lt;br /&gt;from siebel.s_opty a, siebel.s_doc_quote b&lt;br /&gt;where b.par_row_id = a.row_id&lt;br /&gt;and a.somefield = b.somefield&lt;br /&gt;and a.row_id = 'Some Id' &lt;/p&gt;&lt;p&gt;Now this SQL is suppose to select name of the quote where the par_row_id column (which store row id of its parent) is equal to the row if of opportunity and in addition to that somefield of opportunity is equal to some field of quote. Now we assume that you had created a join between Opportunity-Quote and forgot to check the outer join flag.You will be amazed to see that there are No Records on UI. The reason being it will try to match the exact values in the field and any record that is a not a match will be discarded. Which means if there are some records that have no value in 'somefield' either in Opportunity or on Quote will be discarded. What if we want those records to shown? We have to check the Outer join flag which will result in a query as given below &lt;/p&gt;&lt;p&gt;select name b&lt;br /&gt;from siebel.s_opty a, siebel.s_doc_quote b&lt;br /&gt;where b.par_row_id = a.row_id&lt;br /&gt;and a.somefield = b.somefield&lt;span style="color:#cc0000;"&gt;&lt;strong&gt;(+)&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;and a.row_id = 'Some Id' &lt;/p&gt;&lt;p&gt;Which will result in all the Quotes that have 'Some Id' in par_row_id or in simple terms that have Opportunity Id with 'Some Id' as their parent. &lt;/p&gt;&lt;p&gt;My experience has taught me to ask this as the first question whenever I face problem mentioned above and I have seen developers sweat over this kind of problem for hours before they spot it. I will mention some &lt;strong&gt;real life situations&lt;/strong&gt; I have faced which were due this little (&lt;span style="color:#666666;"&gt;or rather huge)&lt;/span&gt; &lt;strong&gt;miss&lt;/strong&gt; while doing configuration. &lt;/p&gt;&lt;p&gt;&lt;strong&gt;Examples - Real Life Situations:&lt;/strong&gt;&lt;br /&gt;We have developed a &lt;strong&gt;web service&lt;/strong&gt; that resulted in the insertion of quotes from a Java Application. When we inserted a quote it got &lt;strong&gt;inserted successfully&lt;/strong&gt; and when we tried to &lt;strong&gt;update it&lt;/strong&gt;, &lt;strong&gt;&lt;span style="color:#ff0000;"&gt;it Failed&lt;/span&gt;&lt;/strong&gt;. It took us almost a day to find out that a developer had created a new join in business component and &lt;strong&gt;forgot to check that Outer Join flag&lt;/strong&gt; which resulted in update to failed as it was not able to fetch that record.&lt;/p&gt;&lt;p&gt;I had created a &lt;strong&gt;new View in Assets Screen&lt;/strong&gt;. When user was in &lt;strong&gt;My Assets&lt;/strong&gt; view then he was &lt;strong&gt;able to see the records&lt;/strong&gt; but as soon as he choose &lt;strong&gt;All view&lt;/strong&gt; the &lt;strong&gt;records disappeared&lt;/strong&gt;. The reason same a new join and&lt;strong&gt; forgot&lt;/strong&gt; to check &lt;strong&gt;Outer join flag&lt;/strong&gt;. &lt;/p&gt;&lt;p&gt;Whenever you face &lt;strong&gt;this kind of problem&lt;/strong&gt; go through &lt;strong&gt;logs&lt;/strong&gt; and more often than not you will find this as your root cause. To know more about logs read my Post &lt;a href="http://siebel-answers.blogspot.com/2007/09/siebel-logs-how-useful-are-they.html"&gt;Siebel - Logs How useful are they?&lt;/a&gt;&lt;/p&gt;&lt;p&gt;If this Post was helpful to you please post some comments and come back for more.&lt;/p&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3614618453743598606-4858282263974888353?l=siebel-answers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://siebel-answers.blogspot.com/feeds/4858282263974888353/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3614618453743598606&amp;postID=4858282263974888353' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3614618453743598606/posts/default/4858282263974888353'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3614618453743598606/posts/default/4858282263974888353'/><link rel='alternate' type='text/html' href='http://siebel-answers.blogspot.com/2007/09/siebel-business-component-outer-join.html' title='Siebel Business Component Outer Join - How Important?'/><author><name>Neel</name><uri>http://www.blogger.com/profile/11002839933851198680</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp1.blogger.com/_TaTb2is797I/RvymxQ_S0BI/AAAAAAAAAQc/Mmzp7_BlAIk/s72-c/Join.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3614618453743598606.post-2815428082384203989</id><published>2007-09-27T18:14:00.000+05:30</published><updated>2007-10-06T21:07:34.182+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Siebel Logs'/><category scheme='http://www.blogger.com/atom/ns#' term='Workflows'/><title type='text'>Siebel CRM - Workflow Debugging through Logs.</title><content type='html'>When we talk about Siebel, I think Workflows are the most common term that we come across after Object Manager. We can achive really complex functionality through worklfows but what it means is that debugging them is equally complex. We generally test workflows through Simulation but if we were debug workflows in real time it can be quite painful and time consuming.&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;A simple method to debug workflow is to increase the log level for Workflow Process Manager (WPM) component. But if somebody has ever tried that he can vouch that it can be quite a headache to go through that log (believe me it is a lot and it can go up in MB's even if the workflow is of moderate complexity). And what's more is that most of the information that is contained in that log is useless and not realted to workflow functionality.&lt;br /&gt;So here in this article I am going to present a pretty &lt;strong&gt;simple technique&lt;/strong&gt; which can help you to get just the &lt;strong&gt;right amount&lt;/strong&gt; of i&lt;strong&gt;nformation&lt;/strong&gt; that you need to &lt;strong&gt;debug&lt;/strong&gt; a &lt;strong&gt;workflow.&lt;/strong&gt; &lt;br /&gt;Instead of increasing the log level of complete &lt;strong&gt;WPM component&lt;/strong&gt; if you just increase the log level of just &lt;strong&gt;selective sub-components&lt;/strong&gt; that should do the trick. I will list down the Sub-Components that you need to increase the log level to get just the appropirate information that you need.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Workflow Definition Loading&lt;/strong&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Workflow Engine Invoked&lt;/strong&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Workflow Process Execution&lt;/strong&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Workflow Step Execution&lt;/strong&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;SQL Tracing&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt;Just increase the log level of the above said components from 1 to 4 and you are done !!!!!&lt;br /&gt;To get logs from dedicated client you need set the &lt;strong&gt;Environmental Variable&lt;/strong&gt; on your system. To understand the process of doing that Please go through my &lt;a href="http://siebel-answers.blogspot.com/2007/09/siebel-logs-how-useful-are-they.html"&gt;Old Post &lt;/a&gt;where I have explained about siebel logs.&lt;br /&gt;&lt;br /&gt;Hope this post has helped you.&lt;br /&gt;If the answer is "YES"!! Please leave your comments and visit again.&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3614618453743598606-2815428082384203989?l=siebel-answers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://siebel-answers.blogspot.com/feeds/2815428082384203989/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3614618453743598606&amp;postID=2815428082384203989' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3614618453743598606/posts/default/2815428082384203989'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3614618453743598606/posts/default/2815428082384203989'/><link rel='alternate' type='text/html' href='http://siebel-answers.blogspot.com/2007/09/siebel-workflows-debugging-through-logs.html' title='Siebel CRM - Workflow Debugging through Logs.'/><author><name>Neel</name><uri>http://www.blogger.com/profile/11002839933851198680</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3614618453743598606.post-2250070187098465439</id><published>2007-09-26T21:13:00.000+05:30</published><updated>2007-09-27T18:31:29.601+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Siebel Logs'/><title type='text'>Siebel Logs - How Useful are they ?</title><content type='html'>&lt;span style="font-family:georgia;"&gt;If you have worked on &lt;strong&gt;Siebel CRM&lt;/strong&gt; I am sure that you have heard the term &lt;strong&gt;LOGS &lt;/strong&gt;lot of times. They are one of the most important and useful things if you are a &lt;strong&gt;Siebel Developer&lt;/strong&gt;. But still most of us actually know how to use them to our advantage or to reduce our development time. Here in this Article I will try to explain some &lt;strong&gt;tips and tricks&lt;/strong&gt; to get the logs and &lt;strong&gt;debug&lt;/strong&gt; our &lt;strong&gt;code&lt;/strong&gt;. Now we all know that we have &lt;strong&gt;two&lt;/strong&gt; types of&lt;strong&gt; Siebel Application Clients&lt;/strong&gt;.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family:georgia;"&gt;Dedicated Client&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:georgia;"&gt;Web Client&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-family:georgia;"&gt;&lt;strong&gt;Siebel Web Client :&lt;/strong&gt; We will talk first about the&lt;strong&gt; Siebel Web Client&lt;/strong&gt;. Now to get&lt;strong&gt; logs&lt;/strong&gt; from Siebel Web Client there is no easy way and the only way to get logs is to &lt;strong&gt;increase&lt;/strong&gt; the &lt;strong&gt;log level&lt;/strong&gt; at &lt;strong&gt;server&lt;/strong&gt; for "&lt;strong&gt;Object Manager&lt;/strong&gt;" or particular &lt;strong&gt;component &lt;/strong&gt;that you want to get logs of for example Workflow Process Manager. I will talk detail about the Web Client Logging techniques in my next few posts.&lt;br /&gt;&lt;br /&gt;In this article I am going to discuss ways which can help us get &lt;strong&gt;logs &lt;/strong&gt;from &lt;strong&gt;dedicated clients&lt;/strong&gt; and speed up our debugging and development time. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;&lt;br /&gt;&lt;strong&gt;Dedicated Client&lt;/strong&gt; : There are essentialy two ways to get logs from dedicated client &lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family:georgia;"&gt;Spool&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:georgia;"&gt;Environmental Variable&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span style="font-family:georgia;"&gt;&lt;strong&gt;Spool :&lt;/strong&gt; it is a very basic and known technique to get the spool of all the &lt;strong&gt;SQL Queries&lt;/strong&gt; that are fired in the database level and we all come across it during our initial Siebel development days. We can enable the spool for Siebel Client as well as Siebel Tools. The steps to enable spool for both the Siebl tools and client there is common process which is as following&lt;/span&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;span style="font-family:georgia;"&gt;Right click the siebel tools or Siebel Client Shortcut&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:georgia;"&gt;Go to end of String which is in Target Text Field&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:georgia;"&gt;Enter the Following string at the end: /s "c:\spool.txt"&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;span style="font-family:georgia;"&gt;&lt;strong&gt;/s&lt;/strong&gt; switch here stands for &lt;strong&gt;Spool&lt;/strong&gt;. Various other switches that can be used are as following&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family:georgia;"&gt;/u : username&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:georgia;"&gt;/p : password&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:georgia;"&gt;/d : database&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span style="font-family:georgia;"&gt;With the following string you can automate login to your local or sample database depeding on the value you give in the switch. I am providing you examples of both&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:georgia;"&gt;&lt;strong&gt;/u sadmin /p sadmin /d sample&lt;/strong&gt; : String to login to Sample database with Sadmin user id&lt;br /&gt;&lt;strong&gt;/u user /p pwd /d local&lt;/strong&gt; : String to login to Local database with "user" user id.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:georgia;"&gt;&lt;strong&gt;Environmental Variable&lt;/strong&gt; : This is more powerful and less know method of generating logs for dedicated client. Siebel has provided couple of Environmental Variables which are as following :&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family:georgia;"&gt;SIEBEL_LOG_EVENTS&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:georgia;"&gt;SIEBEL_LOG_DIR &lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span style="font-family:georgia;"&gt;&lt;strong&gt;SIEBEL_LOG_EVENTS&lt;/strong&gt; : This environmental variable can have two types of values.&lt;br /&gt;Numeric or text. &lt;/span&gt;&lt;span style="font-family:georgia;"&gt;The numeric value is the &lt;strong&gt;log level&lt;/strong&gt; which can be between 1-4. 1 being the lowest and 4 being the highest. The Text value can be ALL which means &lt;strong&gt;Log Level&lt;/strong&gt; of 4.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:georgia;"&gt;&lt;strong&gt;SIEBEL_LOG_DIR&lt;/strong&gt; : This value of this variable is path where you want to create the logs. &lt;span style="font-size:85%;"&gt;&lt;strong&gt;Makes sure that the path you mention is valid otherwise the logs will be created in the temp directory.&lt;/strong&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:georgia;"&gt;Examples of both the environmental variables are as following&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:georgia;"&gt;SIEBEL_LOG_EVENTS : ALL&lt;br /&gt;SIEBEL_LOG_DIR : C:\siebel_logs&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:georgia;"&gt;The process to create these enviornmental variables is as following&lt;/span&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;span style="font-family:georgia;"&gt;Right click on the My Computer Icon&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:georgia;"&gt;Select Properties from context menu&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:georgia;"&gt;Go to ==&gt; Advanced Tab&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:georgia;"&gt;Click ==&gt; Environmental Variables&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:georgia;"&gt;In User Environmental Variables Tab click New&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:georgia;"&gt;Enter SIEBEL_LOG_EVENTS in Variable Name field&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:georgia;"&gt;Enter ALL in Variable Value Field&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:georgia;"&gt;Click New again and Enter the following details&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:georgia;"&gt;Variable Name : SIEBEL_LOG_DIR ; Variable Value : "your siebel log path"&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;span style="font-family:georgia;"&gt;Remember that Variable Names are case Sensitive. After you have created the variables when you start you dedicated client you will notice that in the path that you have given a file named siebel.log is created for Dedicated Client and file named siebel_dev is created for Siebel Tools.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:courier new;font-size:85%;color:#660000;"&gt;If you don't provide the SIEBEL_LOG_DIR environmental variable the logs are created by default in Temp Directory.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:georgia;"&gt;&lt;strong&gt;&lt;span style="font-size:85%;"&gt;Hope this posts helps you.&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:georgia;"&gt;&lt;strong&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;If the answer&lt;/span&gt; is yes. Please post your comments and visit again.&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3614618453743598606-2250070187098465439?l=siebel-answers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://siebel-answers.blogspot.com/feeds/2250070187098465439/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3614618453743598606&amp;postID=2250070187098465439' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3614618453743598606/posts/default/2250070187098465439'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3614618453743598606/posts/default/2250070187098465439'/><link rel='alternate' type='text/html' href='http://siebel-answers.blogspot.com/2007/09/siebel-logs-how-useful-are-they.html' title='Siebel Logs - How Useful are they ?'/><author><name>Neel</name><uri>http://www.blogger.com/profile/11002839933851198680</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3614618453743598606.post-3272786743833753869</id><published>2007-09-25T21:22:00.000+05:30</published><updated>2007-10-06T21:19:55.092+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Workflows'/><category scheme='http://www.blogger.com/atom/ns#' term='Runtime Events'/><title type='text'>Runtime Events Workflows - Part 2</title><content type='html'>&lt;div align="center"&gt;&lt;a href="http://siebel-answers.blogspot.com/2007/09/how-to-call-workflow-asynchronously.html"&gt;&lt;strong&gt;Click Here to Goto Part 1 of this Article&lt;/strong&gt;&lt;/a&gt;&lt;/div&gt;&lt;div align="center"&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;strong&gt;This Article is about Siebel CRM 7.X Workflows and Runtime Events. It tells you how can we use them to our advantange.&lt;/strong&gt;&lt;/div&gt;&lt;br /&gt;In this article I will tell you about the actual process of Setting up Runtime Event and Business Service assuming you have working knowledge of both. If you want to know the basics of these please see other posts of my blog.&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;Just one important thing that you should know about runtime evetns is that they are executed even before the Business Component Events.&lt;br /&gt;&lt;br /&gt;To explain it better I am taking an example where our requirement is to execute a workflow when you click Submit Oppty button on Opportunity Form Applet.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Goto &lt;strong&gt;Administration ==&gt;Runtime Events Screen&lt;/strong&gt;&lt;/li&gt;&lt;li&gt;Goto Action Sets View&lt;/li&gt;&lt;li&gt;Create a New Record in the Action Set View of Runtime Events Administration Screen&lt;/li&gt;&lt;li&gt;Enter Any Name in the Name Field of the Action Set List Applet&lt;/li&gt;&lt;li&gt;Create New Record List Applet Below it&lt;/li&gt;&lt;li&gt;Enter &lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;strong&gt;Name&lt;/strong&gt; = "TestRuntimeEvent" ;&lt;br /&gt;&lt;strong&gt;Action Type&lt;/strong&gt; = "Business Service" ;&lt;br /&gt;&lt;strong&gt;Sequence&lt;/strong&gt; = "1"&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;In the Form Applet Below Enter the Following Details Business Service = "TestBS" ; Business Service Method = "TestMethod"8. Click Menu ==&gt; Reload Runtime Events Make Sure that you have Active Flag checked in both List Applets.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;You are done in Action Set View. &lt;/p&gt;&lt;p&gt;Now Goto Events view and Follow the steps given below&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Click New and Enter the Following Information &lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;strong&gt;Sequence&lt;/strong&gt; = 1 ;&lt;br /&gt;&lt;strong&gt;Object Type&lt;/strong&gt; = "Applet" ;&lt;br /&gt;&lt;strong&gt;Object Name&lt;/strong&gt; = "Opportnity Form Applet" ;&lt;br /&gt;&lt;strong&gt;Event&lt;/strong&gt; = "InvokeMethod" ;&lt;br /&gt;&lt;strong&gt;Sub Event&lt;/strong&gt; = "Submit Oppty" ;&lt;br /&gt;&lt;strong&gt;Action Set&lt;/strong&gt; = "TestRunTimeEvent" &lt;/p&gt;&lt;p&gt;&lt;br /&gt;Conditional Expression should be given if you want the restrict the execution of this Runtime Event to certain conditions and Action Set Name is always the name of the action set that we created.&lt;/p&gt;&lt;p&gt;2. Click Menu ==&gt; Reload Runtime Events.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-family:verdana;font-size:85%;color:#000066;"&gt;* Everytime you make a change to runtime events you have to Reload them to activate the changes that you have made.&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Now we are through the Runtime Event parts.&lt;/p&gt;&lt;p&gt;What we have done so far is that When user clicks Submit Oppty button it is going to call BS named TestBS with method as "TestMethod".&lt;/p&gt;&lt;p&gt;Now we are going to write the code in the busines service which will actually result in the execution of Workflow Process Asynchronously.&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Go To Administration ==&gt; Business Service&lt;/li&gt;&lt;li&gt;Create a Business Record with name "TestBS"&lt;/li&gt;&lt;li&gt;Create a Record in List Applet for Service_PreInvokeMethod and choose Programming Langauge as "eScript"&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;br /&gt;Write the Following code in Code Window inside the &lt;strong&gt;function Service_PreInvokeMethod&lt;/strong&gt;&lt;/p&gt;&lt;div align="left"&gt;&lt;br /&gt;&lt;em&gt;if(MethodName == "TestMethod")&lt;br /&gt;{&lt;br /&gt;var svc;&lt;br /&gt;var child;&lt;br /&gt;var input;&lt;br /&gt;var output;&lt;br /&gt;var rowid;&lt;br /&gt;var bo = TheApplication().ActiveBusObject();&lt;br /&gt;var bc = bo.GetBusComp("Opportunity"); &lt;span style="color:#009900;"&gt;// Change the BusComp name with the name of the BusComp you want to execute the workflow with&lt;/span&gt;&lt;br /&gt;svc = TheApplication().GetService("Asynchronous Server Requests"); &lt;span style="color:#009900;"&gt;// Don't change this - Actual BS that is responsible for submitting a job to WPM&lt;/span&gt;&lt;br /&gt;input = TheApplication().NewPropertySet();&lt;br /&gt;child = TheApplication().NewPropertySet();&lt;br /&gt;output = TheApplication().NewPropertySet();&lt;br /&gt;input.SetProperty("Component", "WfProcMgr");&lt;br /&gt;rowid = bc.GetFieldValue("Id");&lt;br /&gt;&lt;span style="color:#009900;"&gt;// We would like to pass the row id of the Current record on which the user is working - You can pass more than one arguments&lt;/span&gt;&lt;br /&gt;child.SetProperty("ProcessName", "Service Agreement - Agreement Status");&lt;span style="color:#009900;"&gt; // Workflow process you want to execute&lt;/span&gt;&lt;br /&gt;child.SetProperty("RowId", rowid); &lt;span style="color:#009900;"&gt;// passing the values&lt;/span&gt;&lt;br /&gt;input.AddChild(child);&lt;br /&gt;svc.InvokeMethod("SubmitRequest", input, output); &lt;span style="color:#009900;"&gt;/// invoking the business service method&lt;/span&gt;&lt;br /&gt;svc = null; &lt;span style="color:#009900;"&gt;// nullfiying the objects&lt;/span&gt;&lt;br /&gt;child = null;&lt;br /&gt;output = null;&lt;br /&gt;input = null;&lt;br /&gt;return(CancelOperation);&lt;br /&gt;}&lt;br /&gt;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;And you are done!!!!!!!!!&lt;br /&gt;Please post your comments if this post helps you in anyway. &lt;/div&gt;&lt;p align="center"&gt;&lt;a href="http://siebel-answers.blogspot.com/2007/09/how-to-call-workflow-asynchronously.html"&gt;Click Here to Goto Part 1 of this Article&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3614618453743598606-3272786743833753869?l=siebel-answers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://siebel-answers.blogspot.com/feeds/3272786743833753869/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3614618453743598606&amp;postID=3272786743833753869' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3614618453743598606/posts/default/3272786743833753869'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3614618453743598606/posts/default/3272786743833753869'/><link rel='alternate' type='text/html' href='http://siebel-answers.blogspot.com/2007/09/how-to-call-workflow-asynchronously_25.html' title='Runtime Events Workflows - Part 2'/><author><name>Neel</name><uri>http://www.blogger.com/profile/11002839933851198680</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3614618453743598606.post-1792766264045073654</id><published>2007-09-25T21:13:00.000+05:30</published><updated>2007-10-06T21:26:13.157+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Workflows'/><category scheme='http://www.blogger.com/atom/ns#' term='Runtime Events'/><title type='text'>Siebel CRM - How To Call a Workflow Asynchronously?</title><content type='html'>&lt;span style="font-family:verdana;font-size:85%;color:#333333;"&gt;&lt;strong&gt;This Article is about Siebel CRM 7.X Workflows and Runtime Events. It tells you how can we use them to our advantange&lt;/span&gt;&lt;/strong&gt;.&lt;br /&gt;We all want the &lt;strong&gt;response time&lt;/strong&gt; of our Application to be as &lt;strong&gt;fast&lt;/strong&gt; as it can and we do everything that we can to achieve that. I am going to tell you about a way which can help you to reduce the response time without actually reducing any functionality. &lt;strong&gt;Siebel&lt;/strong&gt; can execute &lt;strong&gt;workflows&lt;/strong&gt; in&lt;strong&gt; two&lt;/strong&gt; ways.&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Synchronous&lt;/li&gt;&lt;li&gt;Asynchronous&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;br /&gt;&lt;strong&gt;Synchronous Execution&lt;/strong&gt; : When workflows are executed Synchronously then user gets the control back only when the workflow has finished it execution.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Asynchronous Execution:&lt;/strong&gt; When workflows are executed Asynchronously then user gets back the control immediately and the workflow is submitted to &lt;strong&gt;workflow process manager &lt;em&gt;(WPM)&lt;/em&gt;&lt;/strong&gt; as a job to be executed. WPM then executes the job later.&lt;/p&gt;&lt;p&gt;Often we have a functionality where large amount of processing needs to be done on an object which user is not going to use access right now. I can&lt;strong&gt; explain&lt;/strong&gt; it with an &lt;strong&gt;example&lt;/strong&gt;.&lt;/p&gt;&lt;p&gt;When user clicks copy button on a opportunity or quote we want certain custom entities to be copied over but which user will not access at that time but later. &lt;/p&gt;&lt;p&gt;So, we can reduce our response time by just copying the &lt;strong&gt;quote&lt;/strong&gt; or &lt;strong&gt;opportunity&lt;/strong&gt; synchronously and placing the code of copying of custom entities in workflow and executing that workflow asynchronously.&lt;/p&gt;&lt;p&gt;There are two way to execute a workflow asynchronously&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Workflow Policy&lt;/li&gt;&lt;li&gt;Runtime Event and Business Service (BS) Combination&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Workflow Policy is pretty traditional method of executing a workflow process.&lt;br /&gt;You create a policy. Enter the conditions Specify the workflow to be executed Generate Triggers&lt;br /&gt;I wouldn't go into details of creating a policy but I will tell you some &lt;strong&gt;disadvantages&lt;/strong&gt; of using &lt;strong&gt;Workflow Policy&lt;/strong&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Slow Execution&lt;/li&gt;&lt;li&gt;Difficult to setup&lt;/li&gt;&lt;li&gt;Not Reliable and Error Prone&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;But from siebel 7.7 onwards we have another more robust, efficient and quicker way to do that which is &lt;strong&gt;Runtime Events and Business Service.&lt;/strong&gt;&lt;/p&gt;&lt;p align="center"&gt;&lt;strong&gt;&lt;a href="http://siebel-answers.blogspot.com/2007/09/how-to-call-workflow-asynchronously_25.html"&gt;Continue to Part 2&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3614618453743598606-1792766264045073654?l=siebel-answers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://siebel-answers.blogspot.com/feeds/1792766264045073654/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3614618453743598606&amp;postID=1792766264045073654' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3614618453743598606/posts/default/1792766264045073654'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3614618453743598606/posts/default/1792766264045073654'/><link rel='alternate' type='text/html' href='http://siebel-answers.blogspot.com/2007/09/how-to-call-workflow-asynchronously.html' title='Siebel CRM - How To Call a Workflow Asynchronously?'/><author><name>Neel</name><uri>http://www.blogger.com/profile/11002839933851198680</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3614618453743598606.post-3240171702162229154</id><published>2007-09-22T17:03:00.000+05:30</published><updated>2007-10-08T19:42:47.576+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web Services'/><title type='text'>Web Services - Part 1 Introduction</title><content type='html'>&lt;p&gt;This is an age of &lt;b&gt;Digitization&lt;/b&gt; and &lt;b&gt;Communication&lt;/b&gt;. We want to make every aspect our life as easy as we can.We are trying to digitize every business process that we know such as marketing, sales. Internet is playing a pivotal role in making world a global village. We can reach anyone, anytime, anywhere. It is blurring the physical boundaries and eliminating the time differences. &lt;/p&gt;&lt;p&gt;Now we are ready to embrace the next generation &lt;b&gt;Internet&lt;/b&gt;.&lt;span class="fullpost"&gt; Which is not only going to connect&lt;br /&gt;computer but anything that can handle digital data. Already in Phase 1 was have mobile phones, pda, black berry's considerable changing our business models and the way we conduct our business. Now our office is a room with desk in it, it has expanded and can be a city, state or a country. And as we progress in this directions it will not be just mobile phones and computers we will have every equipment that will be able to connect and operated through Internet.&lt;/p&gt;&lt;p&gt;But how are we making this happen? How is that possible that such distinct equipments are able to connect and communicate? As we know that for anything to communicate there has to be something common between them. Now that common thing between all these things is a Web Service. Which is nothing but a language based on &lt;b&gt;XML&lt;/b&gt; and &lt;b&gt;SOAP&lt;/b&gt; which provides basis for these equipments to communication with each other. Future applications are going to be web enabled and based on&lt;br /&gt;&lt;b&gt;Service Oriented Architecture&lt;/b&gt; (SOA). To explain it in layman terms we can say that anybody who would want to use these application will have some services on his disposal, which he can use to get his work done. Before we can understand what a web service is we have to understand three things.&lt;br /&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;XML &lt;/b&gt;: Xtensible Markup Language&lt;/li&gt;&lt;li&gt;&lt;b&gt;SOAP&lt;/b&gt; : Service Object Access Protocol &lt;/li&gt;&lt;li&gt;&lt;b&gt;WSDL &lt;/b&gt;: Web Service Description Language&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;b&gt;XML&lt;/b&gt; : In simple language Extensible Markup Language (XML) is a simple, very flexible text&lt;br /&gt;format derived from SGML (ISO 8879). Originally designed to meet the challenges of large-scale electronic publishing, XML is also playing an increasingly important role in the exchange of a wide variety of data on the Web and elsewhere.&lt;br /&gt;&lt;span style="color:#666666;"&gt;&lt;strong&gt;&lt;em&gt;(To explain XML in detail is out of scope for this article but you can visit below links to get more details on XML)&lt;/em&gt; &lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.w3.org/XML/" target="_blank"&gt;W3 School&lt;/a&gt;&lt;a href="http://en.wikipedia.org/wiki/XML" target="_blank"&gt;Wikipedia&lt;/a&gt;&lt;a href="http://www.xml.com/" target="_blank"&gt;XML communities, Resources&lt;/a&gt;&lt;a href="http://www.xml.org/" target="_blank"&gt;XML Information, News&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;SOAP&lt;/b&gt; :SOAP originally stood for Simple Object Access Protocol, and lately also Service Oriented Architecture Protocol, but is now simply SOAP. SOAP makes use of an Internet application layer protocol as a transport protocol. SOAP is nothing but a wrapper around XML data. It describes the data it is carrying. That is how diverse application can understand the what is being sent to them without knowing who sent them. Of course there are other methods also to connect to diverse applications such as &lt;a href="http://en.wikipedia.org/wiki/CORBA" target="_blank"&gt;CORBA&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/GIOP" target="_blank"&gt;GIOP&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/ICE" target="_blank"&gt;ICE&lt;/a&gt;, and &lt;a href="http://en.wikipedia.org/wiki/DCOM" target="_blank"&gt;DCOM&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;WSDL&lt;/b&gt;: It is again nothing but XML structure defining or rather describing the service the application is providing. It describes what kind of data it can accept. What kind of function it can perform and what kind of output it is going to return. In more technical terms it can be described as an XML format that allows service interfaces to be described along with the details of their bindings&lt;br /&gt;to specific protocols. Typically used to generate server and client code, and for configuration.Which any application that has capability of understanding XML can use.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;A &lt;strong&gt;Web Service&lt;/strong&gt; is nothing but usage of above said technologies in combination to &lt;strong&gt;exchange data&lt;/strong&gt;&lt;br /&gt;between &lt;strong&gt;heterogeneous application.&lt;/strong&gt; &lt;/p&gt;&lt;a href="http://bp1.blogger.com/_TaTb2is797I/RvT-AQ_Sz-I/AAAAAAAAAP0/nV8X4Qpyvvk/s1600-h/Webservice_xrpc.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5112990757486252002" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://bp1.blogger.com/_TaTb2is797I/RvT-AQ_Sz-I/AAAAAAAAAP0/nV8X4Qpyvvk/s320/Webservice_xrpc.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;p align="center"&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family:Verdana, Arial, Helvetica, sans-serif;font-size:85%;color:#0c0c81;"&gt;&lt;i&gt;As next part of this article I will define Web Services in Context of &lt;strong&gt;Siebel&lt;/strong&gt;. &lt;/i&gt;&lt;/span&gt;&lt;span style="font-family:Verdana, Arial, Helvetica, sans-serif;font-size:85%;color:#0c0c81;"&gt;&lt;i&gt;Answers to questions like how are they helpful and a &lt;strong&gt;turtorial&lt;/strong&gt; to create a web services in &lt;strong&gt;Siebel&lt;/strong&gt; and a real case study.&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;To Download a step by step tutorial on creating Inbound and Outbound Web Services &lt;a href="http://rapidshare.com/files/60854421/WebService.ppt"&gt;&lt;strong&gt;&lt;span style="color:#ff0000;"&gt;Click Here&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;&lt;span style="color:#ff0000;"&gt;.&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3614618453743598606-3240171702162229154?l=siebel-answers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://siebel-answers.blogspot.com/feeds/3240171702162229154/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3614618453743598606&amp;postID=3240171702162229154' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3614618453743598606/posts/default/3240171702162229154'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3614618453743598606/posts/default/3240171702162229154'/><link rel='alternate' type='text/html' href='http://siebel-answers.blogspot.com/2007/09/web-services-part-1-introduction.html' title='Web Services - Part 1 Introduction'/><author><name>Neel</name><uri>http://www.blogger.com/profile/11002839933851198680</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp1.blogger.com/_TaTb2is797I/RvT-AQ_Sz-I/AAAAAAAAAP0/nV8X4Qpyvvk/s72-c/Webservice_xrpc.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3614618453743598606.post-8891106038668501219</id><published>2007-09-15T15:05:00.000+05:30</published><updated>2007-10-06T21:43:33.080+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Introduction'/><title type='text'>Siebel... First look</title><content type='html'>&lt;strong&gt;Siebel&lt;/strong&gt;, I heard this world when I entered the world of IT. I said to myself what the hell is that, out of university having mind full of the magic words like C++, Java, .Net. The word siebel didn't ring any bell. Then someone from the crowd of the newly joinees blurted out I think it is a CRM and I &lt;em&gt;&lt;strong&gt;&lt;span style="color:#999999;"&gt;(well, most of us)&lt;/span&gt;&lt;/strong&gt; &lt;/em&gt;had no idea what was he talking about. Then he started telling us some definitions which he must have learnt while completing his course and it was going all over our head we couldn't understand a word.Then as time passed we learnt what actually a &lt;strong&gt;CRM&lt;/strong&gt; is and what exactly is Siebel. I would say I was rather lucky to come or rather stumble across &lt;strong&gt;Siebel&lt;/strong&gt; &lt;strong&gt;&lt;span style="color:#999999;"&gt;&lt;em&gt;(Which I realised later.. of course)&lt;/em&gt;.&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Enough of background now something for which you are here.&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;CRM stands for Customer Relationship Management. We come across CRM everyday in our life but we seldom notice it. It is a very basic concept of any business even a street peddler selling trivial stuff uses CRM in on form or the other &lt;span style="color:#999999;"&gt;&lt;strong&gt;&lt;em&gt;(I know it sounds absurd right now, but just wait a little more)&lt;/em&gt;&lt;/strong&gt; &lt;/span&gt;and still we never notice it. &lt;br /&gt;&lt;br /&gt;An example would explain what exactly I mean&lt;br /&gt;&lt;br /&gt;&lt;p&gt;When we go to a our shop across the street and we buy say a toothpaste or a tea bag the shop owner knows that we prefer a specific brand and without our asking he presents us with a brand that we want. This in layman terms can defined as a CRM. He is able to provide you the personalized experience based on the perfrences he has come to know about you over a period of time and memorizing them to make you to come back to him. Now when we talk about MNC's and other really big companies they want to provide their customers with similar personalised experiences but it is not possible to remember all the details of muti millon dollar deals so they depend on CRM for these needs and that is where Siebel comes into picture.&lt;/p&gt;&lt;p&gt;We all know that in today's cut throat competition where World is a global village the most difficult thing to do for a business is to retain customers. Dynamics of today's business change very quickly we need to be flexible to accommodate changes may be on daily basis if required. This is where &lt;strong&gt;Siebel&lt;/strong&gt; comes into the picture. It helps us manage every transaction that we have with our customer using technologies like &lt;strong&gt;Siebel Analytics &lt;/strong&gt;forecast what the demand will be in few years to come.It helps in managing business transaction of mammoth level with ease. siebel can be used by wide variety of business including sales, marketing, callcenter etc.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;In next few posts I will discuss more about siebel and it various applications.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3614618453743598606-8891106038668501219?l=siebel-answers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://siebel-answers.blogspot.com/feeds/8891106038668501219/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3614618453743598606&amp;postID=8891106038668501219' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3614618453743598606/posts/default/8891106038668501219'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3614618453743598606/posts/default/8891106038668501219'/><link rel='alternate' type='text/html' href='http://siebel-answers.blogspot.com/2007/09/siebel-first-look.html' title='Siebel... First look'/><author><name>Neel</name><uri>http://www.blogger.com/profile/11002839933851198680</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3614618453743598606.post-6564011757356772044</id><published>2007-09-15T15:00:00.000+05:30</published><updated>2007-10-06T21:52:11.889+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Best Practices'/><title type='text'>Best Practices For Siebel</title><content type='html'>Through my experience I have learnt that there are always several ways to accomplish everything. Some of them are the &lt;strong&gt;right way&lt;/strong&gt; to do things and some of them are &lt;strong&gt;wrong way&lt;/strong&gt;. It might take a &lt;strong&gt;little more effort&lt;/strong&gt; to do things in &lt;strong&gt;right way&lt;/strong&gt; but it &lt;strong&gt;always pay&lt;/strong&gt; in the &lt;strong&gt;long run.&lt;/strong&gt; Wrong way might save you some time and effort but price you have and consequences you have to suffer are far greater. This post here would provide you some insight on doing thing right way in siebel.&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;W&lt;/strong&gt;henever there is a requirement to extend a column in a table it is suggested that instead of extending the Base Table we should extend the Extension table corresponding to it.&lt;br /&gt;Whenever you extend the column in a table make sure you also extend the EIM table corresponding to it and also make a record in the Attribute Mapping.&lt;br /&gt;Steps for it:&lt;br /&gt;&lt;br /&gt;a) Go to the EIM Interface table object and identify the correct EIM table.&lt;br /&gt;&lt;br /&gt;b) Extend the EIM Table.&lt;br /&gt;&lt;br /&gt;c) In EIM Table Mapping object &gt; Attribute Mapping Object &gt; create a record for newly added column. &lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;T&lt;/strong&gt;he customized buttons who have the Method Invoked Property as"EventMethod%" ie. prefixed with 'EventMethod' need not to be forcibly enable&lt;br /&gt;by using 'PreCanInvoke" event scripting.&lt;br /&gt;They are always enabled.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Hope this helps. Keep Coming for more&lt;/p&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3614618453743598606-6564011757356772044?l=siebel-answers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://siebel-answers.blogspot.com/feeds/6564011757356772044/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3614618453743598606&amp;postID=6564011757356772044' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3614618453743598606/posts/default/6564011757356772044'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3614618453743598606/posts/default/6564011757356772044'/><link rel='alternate' type='text/html' href='http://siebel-answers.blogspot.com/2007/09/best-practices-for-siebel.html' title='Best Practices For Siebel'/><author><name>Neel</name><uri>http://www.blogger.com/profile/11002839933851198680</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
