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.

Tuesday, September 27, 2011

External Business Component – EBC

The external business component feature provides a way to access data that resides in a non-Siebeltable or view using a Siebel business component.
This feature is avaiable from Siebel 7.7 version.
Basically, whenever we need to show the external data in Siebel, we will use EBCs or VBCs.
Limitations:If you import a database view instead of DDL then you cannot update or inserts records. Joins to base tables in EBC usually don’t work External database must be accessible directly to Siebel Performance can be an issue if database connectivity is not good Advantages:You can integrate with external application with minimal of effort. Siebel BC can base joins on External table and display information You can import tables from different databases such as DB2, MS SQL, Siebel Analytics.
Steps for Creating:
1. Gthe DDL file for the external table.
His how a sample ddl file will look like:
CREATE TABLE EBCINTEGRATION.EBC_VEC(
field1 VARCHAR2(20),
field2 VARCHAR2(20),
field3 NUMBER(10))
OR
Create a ODBC Data Source
2. Use siebel object creation wizard to create this table.File –> New Object –> External Table Schema Import (You can use either the DDL File or the ODBC Source)
3. The wizard will ask for following inputs:
i. Select Project this table will be part of from the list -
ii. Select the database where external table resides – Enter the database, for this example it is Oracle Server Enterprise Editioniii. Specify full path of the file where table definition resides -iv. Specify a 3 digit batch code for this import – eg 001v. Click on Next and then click on Finish
4. This will create your External table. with a name like EX_001_0000001.
The names of External tables begin with “EX_” the next 3 characters are batch codes and the rest is just a serial number.
* The Type field will be “External” for this table.
* You will also have to map one of the table columns to the Siebel’s Id field. to do this: go to the desired table column and in the “System Field Mapping” column select “Id”
5. Changes to be made in cfg file now follow the below steps
create an entry for a new datasource under [DataSources] section
EBCDS= EBCDS
add a new section [EBCDS] to describe the datasource params:
[EBCDS]
Docked = TRUE
ConnectString = EBCINTEGRATION
TableOwner = EBCINTEGRATION
DLL = abc.dll
SqlStyle = OracleCBO
DSUserName = INTEGRATION
DSPassword = integration
Now that you have defined the Datasource in cfg file, go back to siebel tools and add the datasource to your external table. Go to your external table, and go to the Data Source and add a new record:Name = EBCDS
External table is now ready for use in a EBC.
Use siebel object wizard to create a BC based on this table. Once the BC is created, change the Data Source property of the BC to “EBCDS” .You are now ready to use this BC in a applet/view.
When you access that view Siebel in real-time using that data source connects to external table and displays you the data. You even have option to update, insert and delete records from Siebel.

Tuesday, September 20, 2011

Cannot connect using web ded client

Sometimes, we cannot access database using web dedicated client, receives the error that User id or password is invalid. Using the same user/password can connect fine to the database using SQL*Plus/ODBC.

Cause: This was caused by some missing entries on ODBC pointed by the ServerDbODBCDataSource of the .cfg file.
Solution:
To resolve this issue open registry and click on HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\ and add the following keys:
Name: ColumnsAsChar
Value: 1
Name: ColumnSizeAsCharacter
Value: 1
Name: PacketSize
Value: 0
Name: EnableScrollableCursors
Value: 0
Delete diccache.dat file and login again.

Monday, September 12, 2011

Siebel CRM - (Siebel Architechture).

What happens once you have put the URL of your siebel Application in the browser and hit enter?This is different approach to Siebel Architecture. The answer to this question will be an explaination of Siebel Architechture. So, Let’s start.==> You have opened your browser window and have enterned the URL and Clicked Go button of your browser windowhttp://yourseiebelapp/apptype_lang/start.sweBefore going into background I would like to explain or dissect the above given URL.
http : Is the protocol that is being used to transfer the data over web from one computer to another.yoursiebelapp : is the host name of the Web Server on which your Siebel Component resides. We will go into details of these components laterapptype_lang can be divided into two partsapptype : Represents the module you are using can be sales, callcenter, mkt etc.lang : Represents the language of your implementation can be enu, fin etc.start.swe : 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.
Now we know the meaning of the URL we have just entered we will move behind the scenes.
==> The Request goes to the Webserver (Discussing Webserver is out of scope for this post) where an important component resides called Siebel Webserver Extensions (SWSE).
SWSE :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.==> 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.
Siebel Gateway Name Server (SGNS):SGNS can be considered as Sieber Server contact information storehouse for all the siebel servers. It serves as the dynamic address registry for Siebel Servers and components. At start up, a Siebel Server within the Siebel Enterprise Server stores its network address in the Gateway Name Servers nonpersistent address registry.It also has a important file called siebns.dat containg information of Siebel Servers such as1. Operational parameters2. Connectivity information3. Definitions and assignments of component groups and components
Siebel Enterprise Server (SES) :SES is not a physical server it is just a logical entity in simple terms SES is a logical grouping on serveral siebel servers such as Siebel Server shaing one database can part of SES.
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.
==> 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.
Siebel Server (SS) :Siebel Server is the system on which Siebel Server Components are installed and it functions as Application server. Each server component performs a defined function.Server components or groups of components determine what applications and services a Siebel Server supports. The Siebel Server runs as a system service under Windows and a process under UNIX. 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.
==> Once the request is received by siebel server it is passed to a component called Application Object Manager (AOM)
Application Object Manager (AOM) :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 session environment in which this application runs. When an AOM receives a user request to start an application, it does the following:
==> The business object layer starts an application user session, processes any required business logic, and sends a data request to the data manager.
Data Manager (DM) :Data Manager is that another component that is a part of AOM. Its primary function is to receive user request create corresponding SQL and Forward it to database Server. It also receives results from Database server and forwards it to Siebel Business Object Layer for additional processing.
==> Siebel Business Object Layer forwards the results to Siebel Web Engine (SWE) another component residing in AOM.
==> SWE helps create UI for the data and forwards the web pages to the SWSE Component which resides on Web Server.
==> Webserver then sends back the results to the users who had intially requested it.

Using the Check No Match Property with a Primary Join

When a multi-value link has been configured with a primary join—which is the typical situation—there are circumstances in which the foreign key used by this join to identify the primary record is unable to find the primary. For example, this can happen when the primary record has been deleted from the multi-value group or the multi-value group is newly created and has no records. In such cases, the multi-value link can be configured to update the primary foreign key to a value of NULL, or to a special value of NoMatchRowId, depending on your requirements. This behavior is configured through the Check No Match property of the Multi Value Link object type, and has performance consequences.
The purpose of the special NoMatchRowId value is to prevent secondary queries on foreign key values that are known to have failed, thereby improving performance, much in the same way that using a primary join improves performance.
The NoMatchRowId generating and testing behavior is activated by setting Check No Match to FALSE for the MVL. This setting has the following results:
When the application encounters a master record where the primary foreign key is NULL or invalid, it performs a secondary query to determine if there are detail records in the multi-value group. If it finds there are no detail records, it sets the primary ID field to the special value NoMatchRowId.
When the application encounters a master record where the primary foreign key has the value "NoMatchRowId," this indicates to the system that there are no detail records in the multi-value group and the secondary query is not performed.
If you set Check No Match to TRUE, the Siebel application will perform a secondary query whenever the outer join on the primary fails, or is set to NULL or NoMatchRowId. If the secondary query finds a matching detail record, it updates the foreign key with that record's row ID, provided the MVL has an Auto Primary property setting of DEFAULT. If no matching child record is found, or Auto Primary is set to NONE, the application leaves the existing value intact.
A Check No Match setting of TRUE can have serious negative performance consequences. If a multi-value group is sparsely populated (that is, most master records do not have any detail records in the multi-value group) and has Check No Match set to TRUE, it will be almost as slow as not having a primary join at all.
Check No Match should be set to FALSE for most multi-value links because of the performance consequences. It should only be set to TRUE if the multi-value group could possibly have records added to it without going through the MVG itself. For example, account addresses might actually be inserted by means of the Business Address multi-value group on the Contact business component instead of the Address multi-value group on the Account business component. Also, if records can be added to the detail business component through EIM, the TRUE setting is the appropriate one.
The Use Primary Join property should be set to TRUE if CheckNoMatch is TRUE. If CheckNoMatch is set to TRUE and Use Primary Join is FALSE, then the Siebel application will always do the secondary query to find the child records.

How to set the color, disable, hide and text style property for a control at runtime

Prior to version 6, users could not change the property values of a control during runtime. In Siebel Enterprise version 6, a new method named 'SetProperty' was introduced; this method is used to change the following visual properties of a control:
Background Color - Must state the RGB value
Foreground Color - Must state the RGB value
Text Style - Example: Bold, Underlined etc
Enabled - True or False (used to activate or inactivate a control)
Shown - True or False (used to make a control visible or invisible)
Limitations:
1. The 'SetProperty' method may only be used to change the visual properties of controls that reside in a form applet. The method cannot identify a 'control' within a list applet because according to the application the 'list' part of the applet is a control and therefore cannot distinguish the fields within. Change Request12-3ANC6N has been logged as a Document Enhancement to clarify this information in the Bookshelf.
2. In the Siebel Enterprise version 6.X documentation for SetProperty it shows
oControl.SetProperty(propName, propValue)
The parenthesis should not be included as it generates a syntax error. It should therefore be removed as it causes confusion.
The correct syntax isoControl.SetProperty "propName", "propValue"
Change Request 12-1U0S1D has been logged as a Documentation Enhancement to address this.
Example:
The Siebel Visual Basic (VB) code below is placed in the PreSetFieldValue event in the 'Action' business component. When the user changes a value in the Activity Option Applet the 'Priority' field's background colour changes.
Dim applet As AppletDim control As Control
Set applet = theApplication.ActiveAppletSet control = applet.FindControl("Priority")control.SetProperty "BackgroundColor", "215 152 4"
There are further eScript examples in Bookshelf V6 section 'Siebel Object Interfaces Reference' Chapter 3 Page 3-231.
As mentioned in Bookshelf, if more than one property is to be set, each must be set in a separate statement.The SetProperty method is not supported in Siebel7.0.x. The SetProperty method is available for browser scripts in Siebel 7.5 for the following controls: CheckBox, ComboBox, TextBox, Text Area and Label. Change Request 12-DP6B5G has been logged as an Enhancement Request to allow this method to work with button controls.