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, July 24, 2012

Parent Applet Focus on navigating through drilldows

As per Siebel vanilla functionality, if we click on any hyper link (Drill down) field then it will navigates to another view, but after navigating to the destination view, the focus will be always on child applets instead of “Parent Applet”.







In order to set the focus always on the parent applet we may have to do the following configuration changes:






Tools Level Changes:






1. At View Level, we have “Default Applet Focus” property. Set “Applet name” for this property.






2. At View User Property (Child object of View), set the following:






Name : DefaultAppletFocus






Value : “Applet Name”






After setting the above properties, if focus still remains on child applet then we have to verify the following parameters of the CFG file.






3. In cfg file we have “EnableSIFocusTracking” property; this property should have value as “TRUE”.






Application Side Changes:






4. Navigate to sitemap > Administration – Server Configuration – Enterprises:






Query with your “Enterprise Server” name and Query with “ObjMgrName” in “Component Definitions”






In the “Component Parameters” under “Component Definitions”, Query with “Enable SIFocusTracking” parameter.






Set “Enable SIFocusTracking” parameter to “True”.






Hope this helps you a lot to overcome the Applet focus issue.






Readers who viewed this page, also viewed:


DefaultAppletFocus user property


Importance of dicdata.dat and a diccache.dat files in Siebel

Diccache.dat is a cache file used by Siebel server programs to enhance performance when loading the Siebel Repository.

 
Diccache.dat contains a subset of the repository (called the “dictionary”) needed by the server programs. This subset includes information about tables, columns, indexes and docking objects.

 
Diccache.dat, located in the SIEBSRVR_HOME\bin directory, is accessed whenever a server program is started. The file is automatically recreated if the file does not exist or if it is out of date (The version number of the schema and repository is stored in the header of the file).

Dicdata.dat is a subset of diccache.dat file that is downloaded to mobile clients and used by the synchronization process whenever transactions are applied to the local database.

The Generate New Database component creates this subset of the diccache.dat and copies it to siebel_server_root\DBTEMPL\dbXXrYY.ZZ\dicdata.dat file (where XX, YY, ZZ correspond to current schema version).


When a mobile client synchronizes, the dicdata.dat is copied to the siebel_client_rootLOCALdicdata.dat on the client machine.

Wednesday, June 20, 2012

Ignore Permission Errors OnDelete

This Integration component user property set to Y can be used to suppress the errors that arise from having the NoDelete user properties set to Y.


The error is ignored and processing continues.

For Example,

An Integration Object : Order Entry Orders IO has two Integration Components :

Order Entry - Orders and

Order Entry - Line Items (Parent IC : Order Entry - Orders)

Generally Orders have multiple line items.

If an Inbound request XML message contains Order record details ; and only few Line Item Record Details (Not all line items).

And if this input is passed to 'EAI Siebel Adapter' Business Service and Method Update

This Operation will update only the line Items as mentioned in Input XML message ; but will delete the line items which are not mentioned in XML Message

Only use of IC user Property NoDelete was giving errors.

To avoid this use Integration Component User Property for IC Order Entry - Line Items

NoDelete with value Y and IgnorePermissionErrorsOnDelete with value Y

Pick List User Keys

In case of dynamic picklists, pick map may bring many fields,One of the tasks the integration object designer needs to perform is to determine which of these fields is used to identify the required field.


For example:
Consider a field Accout which is a dynamic picklist and contains many fields such as Account, Account Location, Account Integration Id, Currency Code,Price List, and so on

If the PicklistUserKeys user property on the integration component field that is mapped to the field with the picklist (in the example above: Account) is not defined, then any integration component fields that are mapped to columns in the U1 index of business component's base table, and are present in the pickmap will be used by the EAI Siebel Adapter to find the matching record in the picklist. (In the example above, this would be Account and Account Location.)

In cases where the default user key for the picklist does not satisfy your business requirements (for example, Account Integration Id should be solely used instead of the default user key to pick an Account), or you want to make the user key explicit for performance reasons, then use the

PicklistUserKeys user property.

Syntax for Integration component Field User Property:

Name: PicklistUserKeys Value : PickmapFieldname

Eg: Name: PicklistUserKeys Value : Account Integration Id

To Open a Popup window

Business Requirement: Customer wanted to open a new IE window from within Siebel and freeze Siebel application until the new window is closed.


Technical Solution: Used Siebel browser-script function theApplication().ShowModalDialog() to achieve this requirement.The function "theApplication().ShowModalDialog()" opens a new IE window from within Siebel and does not allow any operation in Siebel application until the new IE window is closed.

The syntax for ShowModalDialog() function is as follows:

TheApplication().ShowModalDialog(sURL [, vArguments] [, sFeatures])

Loading Account Parent-child hierarchy during the Initial Load into UCM

The way to do this in Siebel UCM 8.0 is to use the EIM_UCM_ORG table (one record per account), filling the PAR_OU_ID field with the ROW_ID of the related parent account. This entails the need to load parent accounts before respective children, and get their ROW_IDs. One tiny possible configuration is to add an EIM Foreign Key Mapping for the field S_UCM_ORG_EXT.PAR_OU_ID. This way, it would be possible to specify the parent account using its user key values (name, location, and organization) instead of the ROW_ID.


The attached document describes this change ("How To Add an EIM Foreign Key Mapping for S_UCM_ORG_EXT.PAR_OU_ID.doc").

But take into consideration that Oracle Siebel Expert Service must be involved before applying it in a production environment, since a modification to the S_UCM_ORG_EXT.PAR_OU_ID base table column is needed.

Restrict the Entry of Characters in a List Column or Control

The length of the fields can be restricted on the application UI level with the help of the Field User Property called Text Length Override. Below is the syntax for configuring this Field User Prop:


Name: Text Length Override

Value:

For example, if the requirement is to restrict the 'Description' field in the 'My Opportunities View' to 10 characters, then perform the following steps:

Log into Siebel Tools.

Query for the Opportunity business component, expand to its child object Field, and then query for field "Description".

Expand to this field child's object Field User Prop and add a new record.

Specify the properties Name as Text Length Override (Case is Important) and value as 10.

This user property is restricted for Text type fields. This cannot be used for Number type fields

Workflow monitor agent controls

The Action Interval parameter of Workflow Monitor Agent is always controls, how the Action should be executed.


1) Just Navigate to Sitemap-> Administration->Server Configuration->Enterprises->Component Definitions->Choose Workflow Monitor Agent Component.

In the Component Parameters List choose Action Interval and check the default value is “3600” seconds (This is the default value to Action Interval Parameter).

2) Change the default value to 60. It means depending on the value of the Action Interval parameter for Workflow Monitor Agent, the action is taken.

3) Once Workflow Monitor Agent performs an action on the record in violation, an entry is logged into the S_ESCL_LOG table. If the same record comes into violation again within the Action Interval time, the Workflow Monitor Agent will not perform the action again on the same record. It will only remove the row from S_ESCL_REQ table. As a result, it is possible that Workflow Monitor Agent clears many records from the S_ESCL_REQ table for which no actions have been performed.

4) Setting the Action Interval = 0 is not recommended by Siebel Systems because the following behaviors have been observed to occur with this setting:

-> Actions performed for rows in S_ESCL_REQ without checking if conditions are met or not.

-> Actions do not get executed at all at times.

-> Duplicate actions occur for the same record.

-> Performance issues occurs because this setting causes Workflow Monitor Agent to be busy all the time. Thus, Workflow can cause resource crunch in terms of CPU utilization and memory, etc.

Tuesday, May 29, 2012

Sending and Receiving Messages with the EAI HTTP Transport

We can use the EAI HTTP Transport to send and receive messages. The following procedure illustrates how you can use EAI HTTP Transport with the SendReceive method to query employee information from the Siebel Database, send it out, echo it using the Workflow Utilities ECHO service, and send it back to the workflow to write the response back to a file.

To create a workflow process to send and receive messages
1. Create a named subsystem HTTPsendreceive_conn for subsystem HTTPSubSys with HTTPLoginMethod=GET
HTTPLoginURLTemplate="http://smthpa12.siebel.com:16007/eai_enu/start.swe?SWEExtCmd=ExecuteLogin&SWEExtSource=MyEcho&UserName=SADMIN&Password=db2"
HTTPLogoffMethod=GET
HTTPLogoffURLTemplate="http://smthpa12.siebel.com:16007/eai_enu/start.swe?SWEExtCmd=Logoff"
HTTPRequestMethod=POST
HTTPRequestURLTemplate="http://smthpa12.siebel.com:16007/eai_enu/start.swe"

2. Create a named subsystem MyEchoSubsys for subsystem EAITransportDataHandlingSubsys with
DispatchService="Workflow Utilities"
DispatchMethod=ECHO
NOTE: For details on named subsystems, see Configuring Named Subsystems and Receiver Server Components.

3. In your eai.cfg file, add the following line in the [HTTP Services] section:
MyEcho = MyEchoSubsys

4. Log in to the Siebel client as an administrator connected to the server.

5. From the application-level menu, choose View > Site Map > Business Process Administration > Workflow Processes.

6. Create a new workflow process as shown below.

7. Select the Process Properties tab and add the following properties:
Name Data Type In/Out Default String
Employee Message Hierarchy In/Out -
Employee XML Binary In/Out -
Error Code String In/Out -
Error Message String In/Out -
Object Id String In/Out 1-548
Response Binary In/Out -
8. Retrieve employee message using the EAI Siebel Adapter with the Query method to query the information from the database using the following input and output arguments:
Input Arguments Type Value Property Name Property Data Type
Output Integration Object Name Literal Sample Employee - -
Object Id Process Property - Object Id Sting
Property Name Type Value Output Argument
Employee Message Output Argument - Siebel Message
9. Convert the message to XML using the EAI XML Converter with the Integration Object Hierarchy to XML Document method and the following input and output arguments to convert the message:
Input Arguments Type Value Property Name Property Data Type
Siebel Message Process Property - Employee Message Hierarchy
Property Name Type Value Output Argument
Employee XML Output Argument - XML Document
10. Send and receive the converted XML message using the EAI HTTP Transport with the Send and Receive Response method and the following input and output arguments:
Input Arguments Type Value Property Name Property Data Type
Message Text Process Property - Employee XML String
Connection Subsystem Literal HTTPsendreceive_conn - -
Property Name Type Value Output Argument
Response Output Argument - Message Text
11. Write the message to the file using the EAI File Transport with the Send method and the following input arguments:
Input Arguments Type Value Property Name Property Data Type
Message Text Process Property - Response Binary
File Name Literal C:\SendRec.txt - -
12. Save your workflow process and test it using the Workflow Process Simulator.Examples Using HTTP Request
This section provides you with a couple of examples of using the EAI HTTP Transport in two modes: Session and Sessionless. This is to help in understanding how to use the EAI HTTP Transport in your business.
Controlling Login Sessions with Session Mode
The session mode allows control over login sessions. In this mode you log in first and open a session. Any message can be exchanged without having to log in again until you explicitly log off.
The following example shows parameters for Login, Request, and Logoff in a session mode HTTP request. Session cookies are required in a case such as this.
NOTE: You enter each of the following URLs as a continuous line of code.
 The following URL logs in to a server with passed parameters for username and password:
HTTPLoginURLTemplate = "http://$ServerPath$/start.swe?SWEExtSource=$Source$&SWEExtCmd=ExecuteLogin&User
Name=$Username$&Password=$Password$"
 The following URL passes a query string as the SWEExtData value along with the GET request:
HTTPRequestURLTemplate = "http://$ServerPath$/start.swe?SWEExtData=somedata
HTTPRequestMethod='GET'"
 The following URL logs off from the server:
HTTPLogoffURLTemplate = "http://$ServerPath$/start.swe?SWEExtCmd=Logoff"
ServerPath = "siebel1/eai"
Username = "pdavis"
Password = "1234abcd"
Source = "testdoc"
In the preceding example, the ServerPath variable value of siebel1/eai is substituted for the token $ServerPath$. The Source variable value of testdoc is substituted for the $Source$ token, the Username variable value of pdavis for the token $Username$, and the Password variable value of 1234abcd for the $Password$ token.
Any XML document represented by the entry for SWEExtData can be put into the body. This would change the sample code so that the HTTPRequestURLTemplate would read as:
HTTPRequestURLTemplate = "http://$ServerPath$/start.swe?
Sending Requests in Sessionless Mode
The following example includes a Request Method, a Request, and a Login for a sessionless mode request. In this example, the request is simply passed to the secure server using the POST command. Unlike the Session Mode example, this request sends data in the body of the request. This request does not require cookies.
HTTPRequestMethod = "POST"
HTTPRequestURLTemplate = "https://accounts.mypartner.com/server/login.asp"
HTTPRequestBodyTemplate = "Acct=ABCIntl&User=$Username$&pwd=$Password$"
Username = "acctuser"
Password = "123456789abcdefg"

Guidelines to configure additional UCM Source Data and history (SDH) Child objects

1. Create UCM SDH Business Component


Source and Data History are stored in predefined UCM tables.
The primary SDH object for account, contact, financial account, household, address, privacy are store in S_UCM_ORG_EXT, S_UCM_CONTACT, S_UCM_ASSET, S_UCM_ORGGRP, S_UCM_ADDR_PER, and S_UCM_PRIVACY.
All other account child components are stored in table S_UCM_ORG_CHILD, all other contact child components are stored in table S_UCM_CON_CHILD, and all other household child components are stored in table S_UCM_OGP_CHILD.
Since all other child components of each UCM business object are stored in one table, the component object type has to be configured to distinguish the child components.
Naming standard of UCM SDH Business Component:
“UCM” + ”Parent Component Name” + ”Child Component Name” + “Source and Data History”
For example: Using standard field 'Specialty' in Account BC to show Segment information associated to a account.
Segment data is stored in Pharma Professional Primary Specialty Business Component ( S_MED_SPEC table) .
SDH Parent Bus Comp: “UCM Account Source Data and History”
SDH Child Bus Comp: “UCM Account Segment Source Data and History”


Business Component:
Name : UCM Contact Account Source Data and History
Table : S_UCM_ORG_CHILD
Search Specification : [Object Name] = “Pharma Professional Primary Specialty”


Business Component Field:
Name Column Predefault Value
Required fields…
Object Name OBJECT_NAME Pharma Professional Primary Specialty
Object Table OBJECT_TABLE S_MED_SPEC
Par Row Id PAR_ROW_ID
UCM UId UCM_UID Field: ‘Id’


For 1:M relationship… Use character column
Primary Flg ATTRIB_08 N


Additional component specific fields… Use appropriate column for data type and length…
Specialty Code ATTRIB_03
Specialty Name ATTRIB_01

How to configure EBC data source in thin client

Below are the steps that we need to follow in order to configure the external data source in Thin client:

1. Navigate to Administration - Server Configuration screen

2. Create a Data Source definition same as 'Server Datasource’.

3. Navigate to the Administration - Server Configuration > Enterprises > Compoent Definitions

4.
From the Enterprise Server, view select the Profile Configuration tab.
Copy an existing record that has a Subsystem Type of InfraDatasources.
Change the Profile and Alias properties to the Data Source name configured in Siebel Tools.
Update the profile parameters to correspond to the external RDBMS:
DSConnectString = the data source connect string.
DSSSQLStyle = database SQL type.
DSTableOwner = data source table owner.
DSUsername = default user name used for connections.
DSPassword = default password used for connections.

NOTE: The DSUsername and the DSPassword parameters are optional. If specified, this willoverride the default user name and password.

Siebel Monitoring Techniques

Event Logging

Increasing the log level for events on Siebel servers or components is a common practice and is well documented. Of course, this includes the notorious environment variables such as SIEBEL_LOG_EVENTS. Administrators have to be aware of the performance implications of these settings.
 
SQL Spooling


Apart from using the well-known /s switch with a stand-alone executable, we can also get the generated SQL from object managers and other server components. This is useful when we want to trace down database related performance problems.


E-mail Alerts

Introduced in Siebel 7.7, the Siebel Administrator Notification component uses specialized alert profiles to send e-mails when a component is in trouble.


SARM

There is one simple rule: "Turn SARM on!". The Siebel Application Response Measurement module provides an administrator with ample information about what is going on and how fast/sluggish it is going on.


Client-side logging

To monitor the browser-side performance (at least for High-Interactivity clients), we can enable client side logging.


Usage Collection

Another technique which is more into usage tracking is the Siebel Usage Collection module

_stats.swe


The _stats.swe page is a default mechanism of collecting simple statistics about the request performance between the Siebel Web Server Extension and the object managers. And it's a reported vulnerability if you don't turn it off (or rename the _stats.swe page) in public Siebel web apps.

Friday, February 24, 2012

SBL-ESC-00053: Error loading rule definitions

Purpose
This document is intended to provide cause and corrective action information about Siebel Error Message SBL-ESC-00053: Error loading rule definitions.


Scope
This document is informational and intended for any user.
SBL-ESC-00053: Error loading rule definitions

Explanation
An error was encountered while reading the workflow policy definitions from the database. It is likely that the value provided as the Group Name parameter to the component is incorrect or that it points to an inactive Workflow Policy Group.

Corrective Action
Please make sure the Workflow Policy Group is active, and that the name is correctly specified on the Workflow Monitor Agent component in the Group Name parameter. If the failure appears related to recent customizations of workflow objects in the repository, then use the object validation mechanism in Siebel Tools to validate that the modified objects are configured correctly.

Wednesday, February 1, 2012

BCHasRows : Validation Without Scripting

Scenario: To check/search in child Bus comp field values for some validation without scripting.
For Example:
• When the Specified Account has any "Active" child Activity, the Activity flag should be true
• Implementation without scripting: – Create a calculated field: Check Activity
Calc Expression: BCHasRows("Account", "Action", '[Account Id] ="' + [Id] +'" AND [Type] = "Active"',"All")
Returns Y, if any child activity found.
– Create a User property “On Field Update Set” to set the Activity Flag ; Value : “Check Activity”, “Activity Flag”
Syntax: BCHasRows ( BO , BC , search_expr, visibility)

Tuesday, January 31, 2012

Guidelines for Using the S_PARTY_PER and S_PARTY_REL Tables

The predefined S_PARTY_PER and S_PARTY_REL intersection tables create a many-to-many relationship between party business components, such as Account and Contact. Which table you use depends on if you must or must not enforce access control.
Use the S_PARTY_PER table to create a many-to-many relationship between two party business components where you must create access control. Records in the S_PARTY_PER table provide data access rights from the parent to the child parties. However, to maintain a good response time with a query that is constrained by visibility, you must minimize the number of rows in the S_PARTY_PER table. Therefore, if you create a many-to-many relationship where you do not require access control, such as if you create a recursive many-to-many relationship between a party business component and itself, then use the S_PARTY_REL table.
For example, use the S_PARTY_PER table to create a relationship between the following members:
Access groups and members
Accounts and contacts
Employees and positions
User lists and users

Friday, January 13, 2012

Unexpected display of view after using Columns Displayed with list applet [ID 1203723.1]

Symptoms
When using the standard Columns Displayed menu item to add a new column to a list applet, on saving the view was redisplayed incorrectly with just a grey page and to redisplay the view correctly the user has to navigate away to a different screen and then return to the view.
Changes
This was a custom view.
Cause
It has been found that the unexpected behavior was related to the name of the view that the list applet is displayed. The name of the view contained a long hyphen character. When the long hyphen character was removed from the view name the unexpected behavior was resolved.
Solution
It is recommended that you should not use a long hyphen character (or any other "special" ascii characters) in the name of any of your custom views.Please see the following bookshelf reference:Configuring Siebel Business Applications > Overview of Configuring Siebel Applications > About Configuring Siebel Applications > Guidelines for Naming ObjectsIn general when naming the views it is advised to use similar naming convention to the standard objects including alpha-numeric characters and a limited number of other characters such as space, open and close brackets, underscore and the regular hyphen character.Using other characters such as accented characters and other symbol characters could cause unexpected behavior.

Wednesday, January 11, 2012

Day of Week in SQL

select datepart (dw, '5/11/7') as dayOfTheWeek, datename (dw, '5/11/7') as NameOfDay

/*dayOfTheWeek NameOfDay ------------ ------------------------------
6 Friday*/