Siebel Community

Welcome to Siebel Community. In this place you can find all the topics related to Siebel. This place is dedicated to provide information about how to implement Siebel CRM application. Siebel Technical/Functional consultants can get information from basics of Siebel CRM to advanced topics like EAI, EIM, eScripting, Workflows, Assignment Manager, Actuate Reports, Territory Management. This place also included Forums and Blogs to help you further.

Wednesday, August 3, 2011

Runtime Events

Siebel allows you to detect events on the Application, Applet or BusComp Objects.
You can take an action or multiple actions on these events. For instance you can set profile attributes, or you can call a Business service or a workflow.

When do you use it? Say when the Effective Start Date is set on the Service Agreement, On the pre write record of Business Component, You want to call a Business Service to validate a lot of different conditions... That is when you will define an action set to SetProfileAttribute for Account Id and then call the Business Service or a workflow.

Siebel Version Runtime events is available in Siebel v7.5 onwards. The instructions/example in this blog is from siebel 8.0 to access siebel runtime events screen login to Siebel Client.

Go to Sitemap --> Administration - Runtime Events.
Some common RuntimeEvents:
Listed below are some commonly used events for each object
Applet: InvokeMethod PreInvokeMethod DisplayApplet
BusComp: PreSetFieldValue SetFieldValue PreWriteRecord WriteRecord Query PreQuery NewRecord PreNewRecord
Application: Login Logout Timeout ViewActivated

Some Sample Actionsets:
To create an actionset
1. Login to siebel client
2. Go to Sitemap --> Administration - Runtime Events --> Action Sets
3. Click New, and enter Name = Test Actionset Start Date = Yesterday's date Active = Y Enable Export = Y
4. Create a New Record in the child applet, and enter
Name = SetProfileAttr1
Action Type = Attribute Set
Sequence = 1
Profile Attribute = Set
Operator = Set
Value = 5.

Create another New Record, and enter
Name = Effective Date Validation
Action Type = BusService
Sequence = 3
Business Service Name = Workflow Process Manager
Business Service Method = RunProcess
Business Service Context = "ProcessName", "Contract Validation Workflow"
Example of Events Now let’s say you want to call this actionset Before Write record event of "Service Agreement".

Here is what you will do to achieve this:
Go to Events View and create a New Record:
Sequence = 1
Object = BusComp
Object Name = Service Agreement
Event = PreWriteRecord
Action Set Name = Contract Start Date Validation Actionset

How to know what events are called when your application is running? Now In Order to know what the Sequence of Events is which is called when you do a certain operation in Siebel, do the following:

To know the sequence of events that are fired, enable the personalization log in your thick client by setting the following 2 parameters in your cfg file:

EnablePersonalization = TRUE
PersonalizationLog = C:\Personal.log

EIM Performance tuning



EIM performance tuning
Various strategies for tuning EIM on Oracle.EIM is a process used to load large data volumes into a Siebel database.
EIM can also be used for ongoing data loads where data is processed (typically from an external system) to create, update, merge or delete records.

Data quality
EIM can load data fast. Very fast. However, if the data is missing key fields from the source system, the entire data load will have to be repeated. Exhaustive, thorough checking, testing and validation of all data will have significant benefits. EIM performance degrades in direct proportion to the number of rejected records.Consider using a staging table with multiple check constraints to validate the data and enforce integrity as much as possible.
Testing
Test, test, check and double check the load procedure. Check that data is actually visible in the Siebel application. Failure to populate a single primary column may mean data will not be visible to the end user.

Profiling
Analyse the SQL statements issue by EIM and the performance profile. The IFB parameter SQLPROFILE may be specified to generate a detailed breakdown of each EIM step together with the most resource intensive SQL statements.Gathering statspack snapshots at the start/end of EIM processing may be used to report on general Oracle performance metrics.

Disable Transaction Logging
Siebel supports mobile web clients (remote users who work in a discinnected mode and synchronise with the Siebel server). For large scale data loads,the Siebel System Preference 'Docking: Transaction Logging' should be set to 'FALSE'. When the data load is complete, mobile web clients should be extracted.

Tune the IFB
ONLY BASE COLUMNS
The parameters 'ONLY BASE TABLES and, in particular, 'ONLY BASE COLUMNS' limit the amount of processing done by EIM. In addition, the resulting IFB documents the data mappings.
DEFAULT/FIXED COLUMNS
The EIM parameter 'DEFAULT COLUMN' and 'FIXED COLUMN' are relatively inefficient. EIM generates an UPFDATE statement for each such column for each batch processed. It is preferable to populate constant values prior to the EIM load either using SQL*Loader or updating the data.

Index hints
1. Two IFB parameters USE ESSENTIAL INDEX HINTS (default=TRUE) and USE INDEX HINTS (default=FALSE) should usually both be set to TRUE on Oracle. The parameters issue additional index hints to choose the appropriate indexes.

2. Direct path inserts
EIM also supports direct path inserts. The IFB parameter 'ORACLE INSERT APPEND MODE = TRUE' should be specified. This will add the /*+ APPEND */ hint to all insert statements.
Direct path load locks the target table. However, this isn't an issue here as the insert operation is the last part of EIM processing and is followed by a commit.

Tune the batch size
EIM processes data in batches. The size of each batch is determined by the IF_BATCH_NUM column in the EIM interface table. It is worth experimenting with batch size between 2,500 and 25,000 to determine the optimal value. There isn't a massive difference and 5,000 or 10,000 is normally a decent choice (and helps makes the sums easier).

Index monitoring
Maintaining all those indexes is expensive. Oracle provides a feature to monitor index usage. This technique can be used to enable index monitoring, execute an EIM data load. Any non-unique indexes that were not used during EIM processing may be dropped.

The necessary DDL to re-create the indexes should be captured. This allows the indexes to be reinstated when data loading is complete. Parallel index creation may be used to create the indexes quickly. The Siebel DDLSYNC utility will also recreate any missing indexes but is sequential (and relatively slow).

Tune Oracle
Siebel is an OLTP application with users connecting using a web browser. EIM is a batch application. Consequently, there is scope to reconfigure the SGA. The size of the shared pool may be reduced and the memory allocated to the buffer cache.
Pre-allocate tablespaceFor large data loads, it is recommended to pre-allocate the necessary tablespace. Dynamic extent allocation is expensive and should be avoided.

Redo logs
EIM generates large volumes of redo information. In addition to the actual insert's of new records into the target tables, EIM performs updates on the EIM interface tables to set and modify status values. In addition, some primary columns will also result in update statements.
ParallelismThe final step of EIM tuning should be to run multiple EIM processes in parallel. EIM is database intensive and consumes relatively few resources on the Siebel application server. With modern disk storage technologies, the limiting factor for EIM throughput should be the CPU resources on the database server.