You are on page 1of 8

Dynamic User defined Error Message in Siebel

Create a User Defined Error Message which can smartly display dynamic text. Solution: 1. Create a User Defined Error with the text %1 followed by your text

2. Add the script behind the button where you want to invoke this error from If(MethodName== Click) { varMessage= TheApplication().LookupMessage("User Defined Errors","Notification","Fax"); TheApplication().RaiseErrorText(Message); }

If(MethodName== Click2) { varMessage= TheApplication().LookupMessage("User Defined Errors","Notification","Letter"); TheApplication().RaiseErrorText(Message); }

The parameter that is substituted in place of %1 is "Letter" or Fax, which is present in the message test

Siebel Pricing Component Based Pricing


Siebel Component-based pricing is a pricing method that will allow you to price a customizable product. You need to have a good understanding of customizable product and eConfigurator to understand the possibilities of Siebel Component-based pricing. A customizable product is a product that has one of several component(s). Each of these components can also be a customizable product. In Siebel, you can define a product structure with as many customizable products you need, at any level (well, except at the last level!). Please note: Readers must know what a CxP is to understand this series of articles. These articles will contain several screenshots of Siebel. Note that We have modified the Applets Layout to better show relevant information. Functionalities: Follows this (high level) workflow: Component-Based Pricing is implemented in the Dynamic Pricing Procedure (WP) workflow process, at step Customizable Product Adjustment. That unique step contains all the logic required for this type of pricing.

This workflow is typically used to calculate the Start Price in the Quote/Order. This is important to know because it means that Component-Based Pricing is designed to calculate the price of a customizable product based on the different components selected in the product configurator. The price can change based on selected components, but this price will still be seen as the normal price, i.e. a price that does not include any discount you may receive (Volume discount, Promotions) This is why it is shown in the Start Price and not in the Net Price. All forms of discount are calculated in the Net Price by a different WP: Pricing Procedure Calculate Net Price. Following are 3 different scenarios to illustrate Component-Based Pricing There are more variations but those 3 I hope, should cover most situations: 1. Fixed Pricing : Your CxP has a fixed price, changes in the components will not affect the price.This is a possible solution when you want to bundle products together. 2. Roll-Up Pricing : The CxP has a price of zero, selection of components will define the CxPs price. This is the approach to consider when you require BOM Pricing. 3. Combination of Fixed and Roll-Up Pricing : The CxP has a base price that can change depending of the configuration of the product.This can be used to implement some sort of discount rules ,Components can be purchased separately but at a different price.

Finding the cause of a slow Siebel Repository File (SRF) compile with Siebel Tools
A full SRF compile usually completes in under an hour for the standard Horizontal and Industry repositories. Many times developers report that a full SRF compile is very slow and is taking a significantly longer time. The following suggestions can help narrow down what is causing the slow performance when compiling a new SRF file. 1. Set up Dedicated Web Client logging for Siebel Tools. The Siebel_Log_Events environment variable will create a SIEBDEV.LOG file in the Siebel tools log directory. This log file documents the sql used when Tools is compiling a new SRF. The file includes the sql statements, their timings and timestamps. Review the siebdev.log file for slow sql timings and large timestamp gaps. Please review this metalink document for more information on Dedicated Web Client logging. How Should Client Side Logging Be Set? How to enable server side logging? . Narrow down the scenario where the SRF compilation has slow performance.

Possible causes for the slow performance could be the network, the server database, or the specific repository. It is helpful to know under what conditions the SRF compile is slow and where it is fast. Is the slow compile for all developers or just some? Is the SRF compile slow when connected to the local or the server database? Does the slow compile performance happen for all of the server databases or just dev, test or production? This is to see if the slow compile is specific to one database. In this case, comparing the SIEBDEV.LOG files from a fast and slow compile can help confirm what is slow. If the slow srf file is specific to a database, have the statistics been updated recently? If the SRF compile is slow for the server or the local database, verify that the statistics have been collected recently. Where is the server database and where are the local developers? If the slow performance is for local developers on a specific machine, verify the network performance is good. Is there antivirus software running when the SRF is being compiled? Is the SRF files or the Siebel Tools install directory excluded from the anti-virus checking? Antivirus software running in the Siebel Tools installation directory is the most common cause of slow SRF compiles. Try compiling the srf to a network drive that is known to be excluded from the antivirus processing. If compiling a specific repository is slow, verify if the repository was recently moved to that database or if there have been large changes to that repository recently. 3. Does the database have many repositories in the local or server database? A large number of repositories in the Siebel tables can slow down local and server SRF compiles. Test compiling in a local or server database with a few repositories in the Siebel tables. For example, try compiling a new SRF from the production database, which should have one production repository in the Siebel tables. 4. The following documents discuss product defects that can cause slow SRF compile times. There are some unexpected performance behaviors when compiling with Siebel Tools 8.0 with the ST eScript Engine enabled. In general, when encountering a slow SRF compile time, first review the SIEBDEV.log file. Then verify under what conditions the SRF compile is slow. If the full compile takes longer than an hour, then narrow down the scenario where the full compile is slow. The following is an example of a 7.7 siebdev.log file (c:\sea\tools\log\siebdev.log file) where the slow compile was caused by anti virus software scanning the Siebel Tools directories.

Review the log file to find the time stamp gaps. This is a log from a single applet object compile that took nine minutes. Siebdev.log ... ObjMgrBusCompLog Delete 4 0 2011-03-22 15:27:19 BusComp "Repository Application Toolbar" at 179a37b8 was deleted ObjMgrBusCompLog Delete 4 0 2011-03-22 15:27:19 BusComp "Repository Page Tab" at 17caec30 was deleted ObjMgrBusCompLog Delete 4 0 2011-03-22 15:27:19 BusComp "Repository Toolbar" at 17c0d868 was deleted ObjMgrBusCompLog Delete 4 0 2011-03-22 15:27:19 BusComp "Repository Toolbar Item" at 17960868 was deleted ObjMgrBusCompLog Delete 4 0 2011-03-22 15:27:19 BusComp "Repository System Activity Object" at 17c93930 was deleted ***ObjMgrBusCompLog Delete 4 0 2011-03-22 15:33:44 BusComp "Repository Index" at f1f2d18 was deleted ObjMgrBusCompLog Delete 4 0 2011-03-22 15:33:44 BusComp "Repository Index Column" at f0c12c0 was deleted ObjMgrBusCompLog Delete 4 0 2011-03-22 15:33:44 BusComp "Repository Column" at f13a190 was deleted FDRLog FDRDetail 4 0 2011-03-22 15:33:44 Total # Buffer Wraps = 8 FDRLog FDRDetail 4 0 2011-03-22 15:33:44 Last Wrap Duration = 391 secs FDRLog FDRDetail 4 0 2011-03-22 15:33:44 Next Absolute Record ID = 16128 ... 0 2011-03-22 15:33:44 Business Service 'Siebel Tools Object Compiler' invoke method 'Start' Execute Time: 395.755 seconds. ObjMgrBusServiceLog InvokeMethod 4 0 2011-03-22 15:33:44 End: Business Service 'Siebel Tools Object Compiler' invoke method: 'Start' at c1fd9b8 ObjMgrBusServiceLog Delete 4 0 2011-03-22 15:33:44 Business Service 'Siebel Tools Object Compiler' was deleted at c1fd9b8

***ObjMgrBusServiceLog Delete 4 0 2011-03-22 15:36:29 Business Service 'Siebel Tools Server Debugger UI' was deleted at 1fa37e8 ObjMgrLog Info 3 0 2011-03-22 15:36:29 (modpref.cpp (922)) SBL-DAT-50808: SharedFileWriter: C:\sea77\Tools\bin\JO_CMS&Siebel Tools.spf_IT10120013X_2176_3840: Unlink succesfull.

How Should Client Side Logging Be Set?


Using the SIEBEL_LOG_EVENTS environment variable, you can set what kind of information is collected. You should set this environment variable temporarily while troubleshooting any behaviors. When running the Siebel client in a production environment, you should not set this environment variable because it will affect performance and disk space. To set this environment variable, follow the instructions below: 1. 2. Open a Command Window and change the current directory to the <ClientRootDir>\bin directory. Type the command as shown below.

set SIEBEL_LOG_EVENTS=<event level> NOTE: <event level> can be set between the values of 0 and 5. The higher the level, the more detailed information is collected. With the default value of 1, minimal information is collected in the log file. Set the event level to 3 or higher to troubleshoot a behavior, or if instructed by Siebel Technical Support. Please note that the higher the event level is set, the more disk space is consumed. When setting the event level to a higher value you should monitor that sufficient disk space is available. 3. Launch the Siebel client application specifying the following parameters from within the same Command Window. Here is an example for launching the Siebel client with the parameters; user=USERNAME, password=PASSWORD and login to the local database.

siebel /u USERNAME /p PASSWORD /d local

This environment variable can also be set permanently.

Windows XP 1. 2. 3. Choose Start > Control Panel > System Click the Advance tab, and then click Environment Variables. In the User variables section, click New to create a new environment variable and enter the following values

Variable Name = SIEBEL_LOG_EVENTS Variable Value = 3 4. Launch the Siebel client application and the new setting will become effective.

There are two types of log file name convention for Siebel version 6.x and later: 1. The log file name is, by default, <program>.log. (for example, Siebel.log or UpgWiz.log).

2.

The log file name is created based on the Process and Task Id (in other words, Syncthrd_nnn_yyy.log) where nnn specifies the process-id and yyy specifies the task-id. The file created with this naming convention is typically when a remote user starts the synchronization process with the Siebel Server.

For log files that follow the naming convention described above under item 1, each execution of the program creates a new log file, <program>.log, while archiving the previous versions as <program>_1.log, <program>_2.log, etc, pushing down the numbers in an increasing order chronologically. By default, only 10 archived log files are retained and the oldest log file is deleted. You can change this number by running the following command: set SIEBEL_LOG_ARCHIVES=<archive_number> where archive_number should be a positive integer and determines how many log files will be saved. You can also set SIEBEL_LOG_ARCHIVES as an environment variable similar to how you set the SIEBEL_LOG_EVENTS described above. Log files that follow the naming convention described above under item 2 will not be deleted regardless of what the value is set for the SIEBEL_LOG_ARCHIVES variable.

The location of the log file of a Siebel client application is determined by the following factors. If SIEBEL_LOG_DIR is set, for example: set SIEBEL_LOG_DIR=<dir> The log file will be created in the directory specified. Make sure this directory already exists and you have write permissions in that directory. You can also set SIEBEL_LOG_DIR as an environment variable similar to how you set the SIEBEL_LOG_EVENTS described above. If no SIEBEL_LOG_DIR is specified, the log file will be created in the <ClientRootDir>\log directory

Predefault a Field based on Applets


User wants to set different Predefault Values for a Field exposed in different Applets. Solution : A Vanilla Applet User Property PostInvokeMethod Can be used in the above Scenario Property Value Trigger:NewRecord Method:SetFieldValue Field Name:First Name Value:'DirecTutor' PostInvokeMethod NewRecord:SetFieldValue:First Name:'DirecTutor'

As the BC level Pre-Default will set the value in all the applets based on that BC, this user property gives an advantage of defaulting a field either in One Applet or with different values in multiple Applets. Limitation :The above user property only works if the Class of Applet is CSSINSFrameListUP which is a child of CSSFrameListBase