Showing posts with label Siebel-Tutorials. Show all posts
Showing posts with label Siebel-Tutorials. Show all posts

Siebel Tutorials Collection

6/06/2013 No Comment

Siebel Configuration Articles, Documents and Tutorials.

Building blocks of Siebel 3-tier Architecture

11/29/2012 No Comment

Siebel 3-Tier Architecture.

What comprises the building blocks of Siebel 3-tier Architecture?

Siebel 3-tier architecture consist of  the following
  • 1. Client - Web server interphase layer
  • 2. Applications servers layer
  • 3. Database layer 

1. Siebel Client - Web server inter phase layer:

This is the first layer which consist of end users who will be accessing Siebel CRM thin clients over internet and a web server enabled with SWSE plugins. Request or transaction is made by client which through Web Server is passed on with authentications and mechanism to Application Layer.

2. Siebel Applications Servers layer:

Application Server layer is the most important layer which contain Siebel Enterprise which comprises of Siebel Gateway Server, Siebel Application Server. Each Siebel Application Server has collections of Application Object Managers which servers as the logical units for all the transactions happening. Request get passed from Application Servers to Database layer.

3. Siebel Database layer:

Request comes to DB and it internally get converted to RDBMS queries or language understandable by Database software. Which then fetch result from the underlying table abd pass it back to Application Server layer which in turn pass it to web server and then to clients user interface.

This was just an overview of how a 3-tier Architecture looks like. I would further add on this, specifically about how complex and different implementations a Siebel can have.
I hope beginners will find it interesting and keep it as a good learning experience.

Siebel Workflow and How to Invoke a Workflow Processes

10/22/2012 No Comment

Siebel Workflow Processes Tutorial.

What is a Siebel Workflow.

Workflow = Timely management of events of an event in order to ensure proper handling
  • Companies establish bus rules and procedures
  • Business Rules and procedures are not consistently enforced
  • Sometimes rules enforced pragmatically are inflexible to changing bus needs
  • Difficult to manage across multiple channels + external applications
Solution: Siebel Workflow allows and solves the following
  • companies to define their workflow steps and the events that trigger them
  • is a set of tools to graphically define the processes and steps
  • an engine to automate these processes
  • invoke either immediately (via run-time events) or over time (via workflow policies)
Siebel Workflow process
Defined as a series of steps (usually with inputs + outputs) and embedded sub-processes executed in response to a defined set of conditions. (could be process properties)

Steps in a Siebel Workflow Process.

# Siebel Decision Point Step = use branch to various steps based on conditions
  • I.e. SR Severity = High vs Low
Siebel Business Service Step = perform a Siebel-provided or custom function
  • I.e. send email
# Sub Process Step = used to start another process within an existing process
  • I.e. to re-use previously defined workflow processes
  • Requires input arguments and may have outputs (i.e. pass Id)
# Operation Step = updates and inserts Siebel data w/o programmatic knowledge
  • I.e. insert, update,query
# Siebel Wait Step = define a period of time before executing a subsequent process
  • Pause for time until:
  • ---> Amount of time,
  • ---> Until run-time event occurs,
  • ---> Timeout parameter, 
  • ---> NO RESTART
  • I.e. do not send email follow-up for 24 hrs
  • I.e. send email on day 1 of campaign, Day 2 of campaign, etc
# User Interact Step = navigates user to a view + waits for a response
  • I.e. navigates user to a view to enter credit card number before purchasing items in shopping cart
# Connector = used to define the direction of flow between two workflow steps
# Exception = used to handle system and user-defined errors
# Start Step = trigger workflow process
# Stop = notify user of error and stop workflow
# End = finish the process

Siebel Steps:
# Define Rules to be automated = design
# Create Workflow process = use process designer
# Define Step Details = use aforementioned steps
# Test the process = user process simulator; default values with Default String in Process properties
# Activate the process = compiles process, checks syntax

Versioning = only one active version of a given workflow process at a time

Workflow Management Component Group must be enabled for the enterprise.

Consists of Five server components:
Generate triggers
  • Creates insert, update, delete triggers on base tables using workflow policies
Workflow Action Agent
  • Optional component that executes actions associated with workflow policies
Workflow Monitor Agent
  • Monitors policies to invoke workflow processes
Workflow Process Batch Manager
  • Enables workflow processes to be run in batch mode allowing actions to be executed for multiple records
Workflow Process Manager
  • Workflow engine for Workflow processes and is used for real-time process automation (i.e. user defined events)

How to Invoke a Workflow Process

Invoke a Siebel Workflow by Workflow policies.

  1. Defined set of rules to be monitored and the actions to take when a rule condition is met (i.e. SR = Critical).
  2. Policies should be limited, and should be used primarily to invoke a workflow process and the process should contain the complex logic
  3. Steps:
  • Create Workflow group
  • ---> I.e. Borrower Contact Creation vs. Transaction processing at Dept of Ed
  • ---> Collection of WF Policies monitored concurrently
  • ---> Why multiple? To assign to different Agents for load balancing across many application servers, assign different polling intervals for different groups
  • Create Workflow policy action
  • ---> Why action before Policy? B/c actions can be used by multiple policies
  • ---> Actions initiate ‘something’, primarily a workflow process
  • ---> Actions are independent of Policies
  • Create Workflow Policy
  • ---> All conditions must be met AND duration must be satisfied to trigger WFP Actions
  • ---> Consist of: # Conditions = i.e. SR Priority = Medium,  # Actions = ie. eCRM Call XYZ ,Workflow , # Arguments = not always populated
  • Generate Database Triggers
  • ---> WF Policies use database triggers to ID which records satisfy policy conditions
  • ---> Re-execute this step after changing or adding new policies
  • ---> EXEC must = TRUE
  • ---> When triggers execute, copies records to S_ESCL_REQ table
  • Start Workflow monitor Agent
  • ---> Monitor Agent monitors all policies (S_ESCL_REQ) within a single WF Group
  • ---> Policy must be part of a workflow group
  • ---> Start from command line:
  • ---> Start task for component WorkMon server DCCASO1 with SleepTime = 60, GroupName =’eCRM 

Invoke a Siebel Workflow by Siebel Run-time events

  • Responds to an action or occurence
  • Minimizes need for customer scripting and workflow policy invocations
  • E.g. NewRecord, ButtonClick, Hyperlink, Field Change
  • Applet Events
  • Business Component events
  • Application Events

Invoke a Siebel Workflow by Scripting Language

  • Can invoke WF Policies via VB or eScript

S_SRM_REQUEST and S_ESCL_REQ getting queued issue

9/11/2012 No Comment

Assignments getting queued and S_ESCL_REQ and S_SRM_REQUEST tables growing.

Here are few checks, I would like you to ensure.

Check if there is any record in s_escl_req table
  • select count(*) from s_escl_req;
If the o/p is more than zero and keeps growing or remains constant, then WorkMonTask comp might be stuck and not processing the records.

Check the task status of WorkMonTask (list tasks for comp WorkMonTask) and see if the row_id or rule_id displayed as part of task_status keeps changing.

It is possible that, S_ESCL_REQ table keeps growing and WorkMonTask is still processing if multple imports gets kicked in and AsgnSrvr keeps inserting records into S_ESCL_REQ table.

So, we need to use the combination of WorkMonTask comp task status, Record count on S_ESCL_REQ and S_ESCL_LOG (for every record gets processed from S_ESCL_REQ, a new record gets added into S_ESCL_LOG).

Check AsgnSrvr,SrProc,WfProcMgr and WorkMonTask for any errors/issues.

- If you find records in in S_SRM_REQUEST with status Active, Queued or Errored (pls note that S_ESCL_REQ table may have Zero records), means assignments are stuck for end user. Actual assignments happens only if the records in S_SRM_REQUEST gets processed. You might need to check logs for WfProcMgr and SRProc for any conclusion.
  • 1. Check if your environment is meeting all the SRSP listed requirements for softwares and hardwares used?
  • 2. Ensure that there is enough free drive space.
  • 3. Ensure to check with Oracle Support if there is any Fix available for particular issue.

Understanding Bulk Order functionality and Implementation

8/29/2012 No Comment

Siebel Order functionality and Implementation.

Siebel 'Bulk Order' module provides the ability to mass-generate orders for a group of assets that are based on a set of common actions. 

For e.g. A telco is launching new-services, say pre-paid cards. Bulk Order functionality could be used to create bulk pre-paid numbers which could directly be connected/activated to/for the direct user once sold (this example is just an imagination for understanding). Please note that this is an optional module that requires additional licensing and installation files.

Siebel Industry Applications - Bulk Orders Installation Toolkit could be downloaded from Oracle's eDelivery site (

Siebel Bulk Order implementation instructions:

1. Lock the Symbolic String Project and add the ENU and FRA records as necessary.

2. The following file was imported:
  • Table_BulkRequest.sif
3. The database was then extended for the following tables:
4. The following files were then imported in order:
  • SIS_OM_Base_Architecture.sif
  • Order_Entry.sif
  • CUT_Siebel_Communications.sif
  • ABO_Bulk_Request.sif
  • ABO_Bulk_Request_UI.sif
  • Product Selection UI.sif
5. Compile SRF.

6. Add the following new views in Administration - Application -> Views:
  • ABO Bulk Request Action Set Orders View
  • ABO Bulk Request Exceptions List View
  • ABO Bulk Request List View
  • ABO Bulk Request Users Actions View
  • ABO Order Item Drill Down View
  • SIS OM Warning Message View (ABO Bulk Request)
7. Assign the views to the appropriate responsibility.

8. Log into Siebel eCommunication application using a login including the views added as above (e.g. SADMIN).

Siebel Error Codes during installation and solutions

8/18/2012 No Comment

Unknown database: 20101. Initialization Failed

Symptom or Error Message

”Unknown database: 20101. Initialization Failed”. This ODBC error may occur while executing the config_dbsrvr Wizard causing install.ksh and imprep.ksh to fail.

Incorrect environment settings for UNIX LANG or language collation settings installation. These differ for all languages, including the Western European group (ENU, FRA, ESN, DEU, etc.). For information on supported collation sequences, see the System Requirements and Supported Platforms document on SupportWeb.

Diagnostic Steps
  • Ensure the LANG parameter matches the installed database language.
  • Check the Siebel Server locale setting.
  • Run ${SiebSrvr_Root}\ If errors are generated, the locale setting isn’t set properly. Setting the locale is described in the Server Installation Guide for your platform.
  • Execute the Solaris command ”locale” to match the database.
The Local settings need to match the database settings

Error 5007 or GEN-05007

Symptom or Error Message

”Error 5007” or ”GEN-05007” Unable to read the gateway server backing file, which normally occurs when running srvredit with incorrect parameters or when the Gateway can not be found.

1. The Siebel Gateway is not specified correctly in the Registry.
2. When launching the application, the corresponding .cfg file does not display the Gateway connect string correctly.

Diagnostic Steps
1. Check the namesrvr.log files in the /Gtwy directory and the SWEapp logs.
2. Check whether the Server Admin screen can be accessed.

1. Ensure the proper Gateway and connect string parameters have been entered in the .cfg files.
2. Ensure the Enterprise is running on a supported platform as posted in System Requirements and Supported Platforms Guide document on SupportWeb.
[SWSE] Set Error Response; Session: Error: 00028573 Message: An internal error with the Connector DLL has occurred

Symptom or Error Message
1. [SWSE] Set Error Response (User: Session: Error: 00028573 Message: An internal error with the Connector DLL has occurred. Please ask your systems administrator to check your database connectivity settings.)
2. This error may occur when logging in from the client browser.

1. The LD_LIBRARY_PATH is set incorrectly in the odbc.ini file for UNIX. This is explained in Siebel Server Installation Guide for UNIX.
2. An incorrect or corrupt dll may cause this error on the server.

Diagnostic Steps
  • Check SWEApp log files.
  • Ensure all enterprise components are patched to the same Maintenance Release level.
  • Ensure the RDBMS Environment variables are set correctly.
  • Check the ODBC datasource.
1. Set the LD_LIBRARY_PATH correctly.
2. Reinstall the dedicated client.
[SWSE] Set Error Response; User: Session: Error: 00028673 Message: You have entered an invalid set of logon parameters

Symptom or Error Message

[SWSE] Set Error Response (User: Session: Error: 00028673 Message: You have entered an invalid set of logon parameters. Please type in your logon parameters again.)

1. The AnonUser password is not encrypted correctly. If encryption is turned off in the eapps.cfg but enabled on the corresponding Object Manager component on the SiebSrvr, a mismatch will occur.
2. With Siebel EAI, the error can occur if the ”SWEExtCmd=Execute” parameter is missing in the URL settings.

Diagnostic Steps
  • Check the anonymous user and password in the eapps.cfg. These values are set in the [defaults] section and also under the specific application (i.e. [esales], [erm]) etc.
  • If using LDAP, verify that the anonymous users are defined.
  • Make sure that the User Id has a valid Position and Responsibility.
See diagnostics.
Siebel Server Communications Applet is required in order to run this application

Symptom or Error Message

1. The Siebel Server Communications applet is required in order to run this application. Please close the browser and login using a new browser window.

2. This Siebel applet is required in order to run the application. Please close the browser and login using a new browser window.

  • Users may have installed the Java Runtime Environment versions 1.3.1_01a or 1.3.1_02 plug-in which becomes the default JVM for both Internet Explorer and Netscape, although the Siebel Web Client is configured to use the native Microsoft Java Virtual Machine (JVM).
  • Incorrect browser settings
  • In Siebel version with the Siebel Option Pack For Internet Explorer (IEOP) enabled, users are prompted for the Siebel toolbar control at every login. Acceptance of the IEOP is mandatory. If the user declines the Siebel Toolbar download, the application login will not work and the error message above is produced.
  • Incorrect Internet Explorer 6.0 security options which do not allow the JS and JAR files to be downloaded.
  • Strong system security settings which do not allow users to install programs or write to certain parts of the Registry.
  • Siebel application uses the XRPC file to run XML RPC commands as part of the startup routine. If another website or URL downloads this XRPC simultaneously, a conflict occurs.
  • The SiebelJI_enu.jar and SiebelJI_Common.jar files are added to the CLASSPATH environment variable.
Diagnostic Steps
  • Open Internet Explorer, select ”Internet Options…” from the ”Tools” menu. Click on the ”Advanced” tab. Scroll down the list, you will find a section labeled ”Java (Sun)” with the check box ”Use Java 2 v1.3.1_01 for (requires restart)” checked.
  • Confirm that users have installed Siebel version with the Siebel Option Pack For Internet Explorer enabled.
  • Confirm whether another site used downloads the XRPC file.
  • Confirm that the SiebelJI_enu.jar and SiebelJI_Common.jar files are specified in the CLASSPATH environment variable.
1. To force the Siebel Web Client to use the native Microsoft JVM by default, do the following:
  • Open Internet Explorer.
  • Select ”Internet Options…” from the ”Tools” menu.
  • Click on the ”Advanced” tab.
  • Scroll down the list to find the section labeled ”Java (Sun)”.
  • Deselect the check box ”Use Java 2 v1.3.1_01 for.

Get a Field Value Through Browser Scripting in Siebel

8/16/2012 No Comment

Get a Siebel Field Value Through Browser Script.

How Can You Get a Field Value for Fields Not Exposed in the Active Applet.


In browser script, only the values of the fields currently exposed on the active view can be retrieved using the BusComp.GetFieldValue method. The following rules apply:

If a field is exposed only in the More section of the applet, it is available through browser script only when the applet is expanded.

Although the system field Id can always be retrieved from a browser script, other system fields which are available through server script are not by default available through browser script. The Force Active and Link Specification field properties do not make a field value available through browser script.

These restrictions are in place to reduce the amount of data that must be passed from the server to the browser, thereby improving performance. In order to retrieve through browser script the value of fields not exposed on the active view, you can either expose the fields as hidden fields on the applet, or you can execute a business service on the server to retrieve the field value. Document 477229.1 provides details on how to set up hidden fields for this purpose. This document provides the business service solution.


Please note that this code is provided as an example only. It should be modified as needed for your business requirements and to add error handling, and tested carefully in your test environment prior to any production implementation. For general scripting best practices, please refer to Document 477766.1.

In Siebel Tools, create a new business service called MyGetFieldValue. To this business service:
  • Add a new Method GetField with the following method arguments: 
  • Add server script using eScript or Siebel VB that instantiates the business component out of the UI context so that you can activate the field using ActivateField method. The sample code shown below is written in eScript. 
function Service_PreInvokeMethod (MethodName, Inputs, Outputs)
{ if (MethodName == "GetField")
{ var sfield = Inputs.GetProperty("fieldname");
var sId = Inputs.GetProperty("Id");
var boName = Inputs.GetProperty("boName");
var bcName = Inputs.GetProperty("bcName");
var bo = TheApplication().GetBusObject(boName);
var bc = bo.GetBusComp(bcName);
bc.SetSearchSpec("Id", sId);
 if (bc.FirstRecord())
var svalue = bc.GetFieldValue(sfield);
else Outputs.SetProperty("fieldvalue","");
 return (CancelOperation);
return (ContinueOperation);}
function Service_PreCanInvokeMethod (MethodName, &CanInvoke)
{ if (MethodName == "GetField")
{ CanInvoke = "TRUE";
 return (CancelOperation);
 return (ContinueOperation);
Call the business service from browser script to retrieve the name of a field not being displayed on the active applet. This sample code assumes the browser script is on an applet: 
var inp = theApplication().NewPropertySet();
var outs = theApplication().NewPropertySet();
inp.SetProperty("Id", this.BusComp().GetFieldValue("Id"));
inp.SetProperty("fieldname","City State");
outs = serv.InvokeMethod("GetField",inp);
svalue = outs.GetProperty("fieldvalue");
var serv = theApplication().GetService("MyGetFieldValue");
The business service has to be registered to be used by the application.
For Siebel 7.x, remember to declare the Business Service in the application .cfg file using the ClientBusinessServiceX parameter in the SWE section, for example:

ClientBusinessService0 = "MyGetFieldValue"

For more information, refer to Siebel Bookshelf version 7.8 > Siebel Object Interfaces Reference > Interfaces Reference > Application Methods > GetService Method

For Siebel 8.x, please do the following:
  • Log into Siebel Tools and locate the application name you are using (e.g :“Siebel Universal Agent”) researching on Application object type from the Object Explorer. 
  • Expand the Application object to expose the “Application User Prop” objects. 
  • Create a new record for each business service to be declared, setting the Name and Value properties as such for each: 
Name = ClientBusinessService0
Value = XML Converter

This information is also mentioned at Document 477064.1. For more information, refer Siebel Bookshelf version 8.0> Siebel Object Interfaces Reference > Interfaces Reference > Application Methods > GetService Method

Compile a new .srf file and test the functionality to ensure it meets your business requirements.

Cannot connect to server error in Siebel CRM

8/16/2012 1 Comment

Siebel "Cannot connect to server" error.

Cause of error that occurs during initialization or synchronization.

[ERR33] ((2455) err=1801020 sys=0) NET-01020: Internal: unknown hostname

[ERR33] (dockact.cpp 10(2455) err=1700175 sys=0) DCK-00175: Cannot open connection to siebelsvr

[TRC33] 2000-10-27 10:26:23 End Connect to server DCK-00175: Cannot open connection to siebelsvr
As the error text suggests, there is some unexpected behavior with the connection, in this case the connection from the Siebel Remote client to the Siebel server.

If this error occurs, do the following:
1. Ping the server from the client machine by calling the following command from the MS DOS window of the client:

If it could not reach the server by name, please try the IP address. The expected result is that the ping is able to resolve the host name to an IP address and connect to the machine.
Post the results of this test to SupportWeb or perform the following via DOS prompt:

telnet 40400 
2. Before synchronizing again, refer to FAQ 1322: How to set client side logging?
To turn client side tracing first before submitting trace files to Siebel Technical Support. Send the sync thread trace file which is located in the ”log” directory of the client and is named syncthrd***.trc.

If the connection is established on the server then there may also be a sync manager trace file. This is named SynchMgr***.trc and is located in a subdirectory of the ”log” directory in the Siebel Server installation directory. Send all files to Siebel Technical Support via a service request.

3. Check the DockConnString
Check the parameter in the client CFG file and whether it is set to the host name of the Siebel Server that this client will use to synchronize. Send the client .cfg file also via the service request.
It is recommended to specify the DockConnString in the following format:

Siebel server machine name: network protocol: sync port #: server: encryption or simply Siebel server machine name, if you are using all default values including 40400 port number.

Remote users use the ”DockConnString” parameter in the .cfg file to synchronize to the server. Details regarding the syntax of the DockConnString parameter can be found in the Siebel System Administration Guide version This is under the section – ”Setting Siebel Remote Preference”. This is a common cause for the error, so check and make sure it is set correctly.

4. If Synchronization Manager component is not running: 
For version 5.x and higher check %Siebel_server%\log\SynchMgr* log file.
For version 4.x check %Siebel_server%\log\Synchsrvr* log file
If it is failing with ’Login Failed’ then verify if the correct username and password is used by the Synchronization Manager task when connecting to the database.

Note: This component was named ”Synchronization Server” in version 4.x. This should be the system administrator user (SADMIN) and not the table owning user (SIEBEL). The system administrator’s password in the database must match the password registered in the Gateway Server. Please note, that in version 4.x, it was called Name Server. If the SADMIN password has been changed in the database but not in the Gateway Server, users will not be able to login to the Server Manager views to register the new password.

However, the srvredit utility can be used to register the new password in the Gateway Server

v6.x srvredit -g -e -s -r $Server.Password=
v5.x: srvredit /g /s /r $Server.Password= /f /y
v4.x: srvredit /n /s /r $Server.Password= /f /y
v6.x: /g: specifies the host name of the machine running the gateway
v6.x: -e enterprise server name
v5.x: /g: specifies the host name of the machine running the gateway
v4.x: /n: specifies the host name of the machine running the name server
/s: specifies the Siebel Server Name
/f: forces the change into the gateway (name server), and
/y: causes the password to be encrypted.

Stop and restart the Siebel server service to bring the change into effect. If the password of the database account is unchanged, the password of the system administrator account can be changed via the Server Manager views. To change the password in the User Interface, launch the Siebel Client; go to the Server
Parameter view (Screens > Server Administration > Servers > Server Tasks).

The ”Password” parameter contains the encrypted password for SADMIN. To change it, enter the new password in clear text in the ”Current Value” field. The next time a query is done, it will show the encrypted password. It is not necessary to shutdown and re-start the Siebel Server.

5. On the command line, run ”netstat -a | more” or ”netstat -a > netstat.log” (without the quotes) and check if the machine is listening to the correct port (default is 40400).

Note: Execute this command from server machine.This test will perform a diagnostic on the Siebel server to verify conflicting port number usage. If more then one Siebel server is being used with the same port number it will error out. Each Siebel server must have an individual static port number.

The following are the steps to view the current sync manager port number:
Navigate to Screens > Server > Server Components in the bottom Assigned Components applet. Select the Synchronization Manager component to go to the Server Component screen; from the left view applet select Component Parameter view. In the bottom Component Parameter applet, go to the last parameter ”Static Port Number” on the column ”Value on Restart”.

The existing port is seen in use.
Modify the port number here. After changing it, step off the record to commit changes. After making the above changes, recycle the Siebel Gateway and Server. First shut down Siebel Server Services and after that shut down Siebel Gateway services, then first start Siebel Gateway Name Server followed by Siebel Server.

6. To test, copy a .cfg file from a user that is able to connect or synchronize into the client machine where the behavior is occurring and see if it is able to synchronize. Compare the two .cgf files for any noticeable differences.

Error SBL-DAT-00323 The Method Is Not Supported On Business Service

8/15/2012 No Comment

Siebel Error SBL-DAT-00323.

The Method Is Not Supported On Business Service.

Summary: After applying Fix pack, following error is shown when invoking two methods from one Business service:

The method 'DateManipulation' is not supported on Business Service 'DTSK Utilities'.(SBL-DAT-00323)

1. Apply v8.1.1.3 SIA on v8.1.1.2
2. Go to Orders screens and click the Submit button (in custom application).
3. When two methods are invoked from one Business Service.

The method 'DateManipulation' is not supported on Business Service 'DTSK Utilities'.(SBL-DAT-00323)
Same error DOES NOT happen on Fix pack version

Due to this error, business service method cannot be executed. 

Reproduced customer's issue in standard srf. Similar to CR 10597452-Invoking service script cause error SBL-DAT-00323

Reproduced issue on Vanilla

- Create "TEST Service" business service with two methods "Method1" and "Method2". Each will have string input "Input1" and string output "Output1". Service_PreInvokeMethod will contain following script:
function Service_PreInvokeMethod (MethodName, Inputs, Outputs)
switch (MethodName)
case "Method1":
return (CancelOperation);
case "Method2":
return (CancelOperation);
return (ContinueOperation);
- Query for "Order Entry - Orders" business component and insert following script into BusComp_PreSetFieldValue method:
function BusComp_PreSetFieldValue (FieldName, FieldValue)
switch (FieldName)
case "Description":
var psInputs:PropertySet = TheApplication().NewPropertySet();
var psOutputs:PropertySet = TheApplication().NewPropertySet();
// call business service
var oBS:Service = TheApplication().GetService("TEST Service");
psInputs.SetProperty("Input1", FieldValue);
return (ContinueOperation);
Query for "Verify Header (Order)" workflow. Revise it and insert step calling "Method2" from "TEST Service". Publish and activate workflow.

Query for "Order Entry - Order Form Applet Dashboard (Sales)" applet and insert following script into WebApplet_PreCanInvokeMethod method:
function WebApplet_PreCanInvokeMethod (MethodName, &CanInvoke)
var boLOV:BusObject = null;
if (MethodName == "QuotesAndOrdersValidate") boLOV = TheApplication().GetBusObject("List Of Values");
return (ContinueOperation);
Now please proceed following steps to reproduce error:
  • Login to Siebel v8.1.1.3
  • Site Map > Sales Order > Create order
  • Drilldown on Order record and click on Line Items tab.
  • In "Order Entry - Order Form Applet Dashboard (Sales)" applet insert any string into "Comments" field.
  • Click on "Verify"
Error message, that method is not supported by business service will appear.
After applying the 21219 SBA QF0312 SEBL_ARU, issue was resolved. To download this Quick Fix > Please go to the My Oracle Support ( ):

Platform Available: SOLARIS, WINDOWS
Product Certified: HOR,SIA
Languages Certified: Language Independent
Base Required: Fix Pack[21219]

Patch Abstract: 21219 SBA QF0312 SEBL_ARU

Siebel Tutorials : Siebel Data Model and Party Business Components

8/12/2012 No Comment

Understanding Siebel Data Model: Party Business Components.

Siebel Party: Refers to instances of entities that have access to records.

S_PARTY is abstraction of the business components that own records
I.e. Groupings created for access to master data

Stores party name + party type
“ for S_ORG_EXT

Includes BCs that represent groupings of party instances
User List: groupings of Users
Access Group: grouping of Access Group Members
  • Only non-person entities
Why? Allows Persons and/or Orgs to own data
Must import data in S_PARTY prior to loading into People or Org tables

Siebel Person related entities

Person = anyone associated with Siebel Application (record in S_CONTACT); E.g. Contact, Employee, User, Partner
  • Contact Person = someone with Contact team 
  • User = Contact that can log in 
  • Employee is user with EMP_PER flag set in S_EMP_PER 
  • Many BCs use these tables: Consumer, Contact, Borrower, Employee
Relationship to responsibility
  • M:M table (S_PER_RESP) stored relationship between Person (S_CONTACT) and responsibility (S_RESP)
  • Significant because users don’t have to be EEs to login

Organization related entities

Any business enterprise associated with Siebel Application (Stored in S_ORG_EXT); E.g. Partner Company, External Account purchasing your products, Position, Division, Organization
  • Flags on S_ORG_EXT for Internal Division, Channel Partner

Organization-related BCs

  • Store main data in S_ORG_EXT
  • In addition to others, may use S_BU to:
Used for indexing Organization Name;
Supports organizational visibility

Single Organization Visibility
  • Uses BU_ID fk
  • BCs have records that can be assigned to one and only one organization
Multi-organizational Visibility
  • Uses Intersection table between S_BU + table for BC. Eg:S_PRI_LST_BU is int between S_BU + S_PRI_LST

Could't Invoke Assignment Manager to Assign Service Request

8/07/2012 No Comment

Could't Invoke Assignment Manager to Assign SR.

After encountering a cluster server crash which forced a restart of the application server it was no more possible to invoke Assignment Manager to Assign Service Requests.

Error reported includes:
  • Could not route message to AsgnSrvr with registered key (null)
  • No other server
  • Stack trace:
  • Service [Synchronous Assignment Manager Requests].InvokeMethod(), Built-in function
  • BusComp [Service Request].BusComp_WriteRecord(), From the logs:

SBL-SRB-00047: Could not route message to AsgnSrvr with registered key (null)

GenericLog GenericError 1 0 2008-07-15 07:53:48 (scbcomp.cpp (822) err=7100011 sys=0) SBL-SCB-00011: Failed to connect to pipe (SEBL_32_2460) on process 2460. Cause

After a review of siebns.dat, the following section showed that the AsgnMgmt components were 'Online' but not 'Enabled'
[/enterprises/VFECRMPRD/servers/SIEBRPT01/component groups/AsgnMgmt]

[/enterprises/VFECRMPRD/servers/SIEBRPT01/component groups/AsgnMgmt/definition]

[/enterprises/VFECRMPRD/servers/SIEBRPT01/component groups/AsgnMgmt/definition/enable state]

Details in the Gateway server caches provides statuses and availability of each server and it's components within the enterprise and this is what is used at startup.

The Cluster Server crash corrupted the siebns.dat and so after the restart, the corrupted values for the assignment components 'State' were being used.

The corrupted siebns.dat file was amended by resetting the assignment manager components 'enabled state' to 'enabled'.

[/enterprises/VFECRMPRD/servers/SIEBRPT01/component groups/AsgnMgmt/definition/enable state]
[/enterprises/VFECRMPRD/servers/SIEBRPT01/component groups/AsgnMgmt/definition/enable state]
Once all the changes have been made, the system was restarted in the correct order to bring all components back to an available state.

a) Start Database
b) Start Gateway
c) Start Siebel Server

Invoking the Workflow Process Manager asynchronously

8/01/2012 No Comment

How to invoke Workflow Process Manager asynchronously.

A Workflow Process Manager (WfProcMgr) task can be invoked from the Workflow Monitor Agent (WorkMon) using the standard workflow policy program Run Workflow Process.

In Siebel 7, to invoke a WfProcMgr task, WorkMon submits a server request to the Server Request Broker (SRBroker), which in turn delivers the request to the WfProcMgr component.

The program argument 'Submit Type' is set to 'Sync' (synchronous) by default. 

This means that WorkMon waits for the SRBroker to confirm that the task has completed successfully before processing the next server request. If confirmation is not received, for example because the WfProcMgr or SRBroker has failed, WorkMon concludes that the server request has failed. As a result, WorkMon exits with error, and the record in S_ESCL_REQ is not deleted.

The Siebel Administrator has a chance to review and correct the error before restarting WorkMon. When a new WorkMon task is started, it will try to execute the action again by submitting another server request. In this case, the request is recoverable.

It is possible to configure the application so that the WfProcMgr task is invoked asynchronously, by changing 'Submit Type' to 'Async'. 

As with 'Sync', WorkMon submits a server request to the SRBroker, which in turn delivers the request to the WfProcMgr. In contrast to 'Sync', if the request is delivered, the SRBroker sends confirmation to WorkMon that it has completed the delivery of the request successfully and the record is deleted from S_ESCL_REQ.

WorkMon does not wait for the SRBroker to confirm whether or not the WfProcMgr task completed without errors and the SRBroker does not provide confirmation. If the WfProcMgr or SRBroker fail after the request has been delivered, WorkMon will not try to submit another request. In this case, the request is not recoverable.

By default, server requests are not stored in the database. Instead, requests delivered by the SRBroker are held in a working queue stored in memory. If a request sitting in the working queue has been submitted synchronously but is lost before it has been handled by the WfProcMgr, for example due to a power failure, the record will not be deleted from S_ESCL_REQ and the request will be re-executed by WorkMon when it has been restarted again. If it was submitted asynchronously, it will not be recovered.

Therefore, if it is vital that a Workflow process is executed successfully, Siebel Systems Inc. strongly recommends that customers invoke the WfProcMgr synchronously from WorkMon to make sure that a request is not lost.

Increase the logging for debugging Task Based UI in Siebel

7/30/2012 No Comment

How to increase the logging for debugging Task Based UI.

On some occasions you may want to increase Siebel Component Event Logging to help diagnose a behavior or gather more detailed information in Task based UI.

There are specific events available to track details about the task execution in the log file.

If you are using dedicated client, You can set the log level for Siebel thick clients by setting the environment variable SIEBEL_LOG_EVENTS. For example, to set the logging level for TskNav and TskExec to 3 and the level for StpExec and TskPresInfo to 4, execute the following command (in a command prompt):
Set SIEBEL_LOG_EVENTS = TskNav =3, TskExec=3, StpExec=4, TskPresInfo=4

  • Choose Start > Settings > Control Panel > System > Environment Tab.
  • In the User Variables list, click the Variable box and replace the Variable field's name with SIEBEL_LOG_EVENTS.
  • Replace the Value field's content with TskNav =3, TskExec=3, StpExec=4, TskPresInfo=4
  • Click Set and the newly added environment variable will be displayed in the User Variables list.
  • Launch the Siebel client application and the new setting will become effective.
Client side trace files are always stored in the \log directory and the file name object manager log file or Siebel.log file.

If you are using a thin client connected to the Siebel server (Server-Side Logging)

  • From the application-level menu, choose Navigate > Site Map > Administration - Server Configuration > Servers > Components > Events.
  • In the Components applet, choose the component for which you want to generate tracing (Call Center Object Manager, Custom Application Object Manager).
The log event reports different operations during execution of a task and prints certain data structure for analysis
  • Workflow Definition Loading - 3 or 5
  • Task Execution - 3 or 5
  • Task Navigation - 3 , 4, or 5
  • Workflow Process Execution - 4
  • Workflow Step Execution - 4
  • Task Presentation Information - 4 
For additional troubleshooting of the Object Manager Shadow Store, you can increase the tracing level for the following events:
Task UI Object Manager Log
Task UI Conflict Log
Task UI Union Sql Log For more information on the different Log Level values available for Component Event Configuration, see the Siebel System Monitoring and Diagnostics Guide.

Example of a log file:
The following is an example of a log file with TskExec, TskNav, and TskPresInfo log events enabled.
TskExec TskState 3 0000000243fc1350:0 2006-02-22 23:49:49 Task state transition changes : Action invoked: 'Navigate', Current State: 'Navigate', Next State: 'Navigate'.
TskNav Oper 3 0000000243fc1350:0 2006-02-22 23:49:49 Task engine requested to navigate to next view.
TskNav Oper 3 0000000243fc1350:0 2006-02-22 23:49:49 Task engine requested to navigate to next step: 'Task View 1'.
TskNav PathChange 3 0000000243fc1350:0 2006-02-22 23:49:49 Pushing frame to stack : '1*05*Start0*1*00*'.

Huge amount of records stuck in S_ESCL_REQ

7/29/2012 No Comment

Records stuck in S_ESCL_REQ by multiple Workflow policies.

Issue and Symptoms

We have a group of policies for Service request, we read in the bookshelf that for a multiple conditions in a policy, an "AND" operator is evaluated for all of them. But when we analyze the trigger that Siebel has generated in Oracle Data Base, we didn't see that the operator AND is evaluated.

For this reason we are having trouble with too many records insert in table S_ESCL_REQ ( we have 2 000 000 record pending). In TOADWF image we see the result of a query that demonstrates that one record apply for all rules of one group, we have 6 records inserted at the same time, this behavior does not seems to be normal.

The question is if this behavior is normal?? We attached the trigger and one image for the policy that is generating multiple records in the table that I mentioned.

From what I understood you have created several Workflow policies with similar conditions and noticed that there are too many records created in S_ESCL_REQ. Please note that the triggers generated in your DB are just initial filters of the records that will be evaluated by Workflow Monitor in a second step. It is possible that many records that are inserted in S_ESCL_REQ will not cause an action to be executed because not all records will pass the Workflow policy conditions that are evaluated by workmon component.

In your case, to reduce the number of records in S_ESCL_REQ, I would suggest to only have 1 wf policy and only keep the following 2 conditions:

Service Request Owner IS NULL
Service Request Status = Abierto

Then inside a main Workflow process to be created you can create a logic to evaluate the Area and Sub-Area and depending on these values you can have a decision step that will lead the logic to a different sub-process. Each sub-process will execute the Workflow process that you have currently defined for each one of your Workflow policies.

By having just one Workflow policy and implementing the logic of calling different wf processes inside a main Workflow process you should be able to have just one record in S_ESCL_REQ by BT_ROW_ID and reduce the number of records on this table

We are working on implementing the solution that you provided to us, it will take some time. In the meantime we raised the number of request per iteration value in order to keep low the number of records in S_ESCL_REQ.

Siebel Server Manager command line in Unix, Linux

7/28/2012 No Comment

Siebel Server Manager command line in Unix/Linux.

To Stop the Siebel server in Unix:
/export/home/siebel $cd /opt/siebel/siebsrvr
/opt/siebel/siebsrvr $. ./
/opt/siebel/siebsrvr $stop_server ALL

The above command should be fired only during a scheduled rollout or a production down emergency after necessary approvals/ notifications to the Business.

To Start the Siebel server in Unix: 
/export/home/siebel $cd /opt/siebel/siebsrvr
/opt/siebel/siebsrvr $. ./
/opt/siebel/siebsrvr $start_server ALL

If the ps response returns negative for the Siebel server running status, and it is not a scheduled outage window, then the above command can be fired.

Enable SSL in Siebel client web browsers

7/27/2012 No Comment

How to enable SSL in Siebel.

How do you enable secure socket layer (SSL) communications between client web browsers and the Siebel Web Server (SWSE) in Siebel 8?

Important: This article only addresses how to enable SSL between the client web browsers and the SWSE server. There are other places in the Siebel implementation where SSL can be enabled including:
  • Between the SWSE Server and Siebel Application Servers
  • Between the multiple Siebel Application Servers
  • Between the Siebel Application Servers and the database server (depending on platform)
  • Between the Siebel Application Servers and external security directories such as LDAP or ADSI
If you are trying to enable SSL for one of these types of connections, do NOT follow this article. Instead refer to appropriate documentation.

To enable SSL communications between the client web browser and the Siebel Web Server in Siebel 8 there are two sets of tasks you need to do.

1. Set Up Your Web Server to Use SSL
  • Obtain a SSL server certificate from a certification authority (CA).
  • Install the SSL server certificate on your web server(s) following the web server vendor (IIS, Apache, etc.) instructions for doing this.
  • Enable the web server to use SSL. Again, please follow the documentation for your specific web server.
  • Set the virtual directory or directories (for example /sales_enu) you want to use SSL with to require secure connections. Please follow the vendor web server documentation for instructions on how to do this.
2. Configure the application object manager (AOM) in Siebel to use SSL

To do this follow the steps outlined in Chapter 8 of the Siebel 8 Security Guide. In short, you will set the SecureLogin and SecureBrowse parameters to TRUE for any AOMs that you want to use this type of SSL with. No changes are required elsewhere in Siebel or in the eapps.cfg file.

After making these changes you should stop and restart the Siebel Server service(s).

Worklfow Policy Action is Not Executed

7/19/2012 No Comment

Why Workflow Policy Action is Not Executed after First Action Execution and Records Removed from S_ESCL_REQ.

When the workflow policy is executed, the first execution is successful and the subsequent ones never triggers any action, at the same time why the records from S_ESCL_REQ table gets deleted.

Workflow policy conditions can monitor changes in the Siebel application database tables or columns. If the conditions are met, the specified workflow policy action will be executed. Workflow policy violations are monitored by the Workflow Monitor Agent server task and its parameter values. Depending on the value of the Action Interval parameter for Workflow Monitor Agent, the action is taken.

Workflow Policy Action Monitored by the Action Interval Parameter
The Action Interval parameter of Workflow Monitor Agent controls how often the action should be executed. The default value is 3600 seconds. The default value of 3600 seconds means that if the action is executed once for the violated record, then no actions will be executed in the next 3600 seconds even if violations may occur during this period. The minimum value that can be set for Action Interval is 1 second.

NOTE: The default value of the Action Interval parameter for Siebel 6.x, 7.x, and 8.0 are all 60 minutes. However, the unit of measurement has changed between the versions as shown in the following table:

Siebel Version
Default Value
Minimum Value
Unit of Measurement
Siebel version 6.x
Siebel version 7.x and 8.0

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 occur 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.
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.

Flow of Records between S_ESCL_REQ, S_ESCL_LOG, and S_ESCL_STATE Tables

Workflow policy without duration value
When the workflow policy columns are violated, a new row gets inserted into S_ESCL_REQ table. Workflow monitor agent verifies the record in S_ESCL_REQ table and compares if the violated record matches the policy condition. If the condition is met, then ‘workflow monitor agent’ checks in S_ESCL_LOG table if this row already had been violated by the policy during the action interval period. If the record had not been in prior violation, and if no duration was specified, and if ‘Use Action Agent’ parameter was set to ‘False’, then the ‘Workflow Monitor Agent’ invokes the policy action. Once the action is performed, the Workflow Monitor Agent logs the information into S_ESCL_LOG table that the row had been violated by the policy. Finally, ‘workflow monitor agent’ deletes the row from S_ESCL_REQ table.

Workflow policy with duration value specified.
If duration is specified in the policy, Workflow Monitor Agent inserts a new record into the S_ESCL_STATE table and removes the row from S_ESCL_REQ table. Depending on the sleep time parameter, Workflow Monitor Agent wakes up and verifies the S_ESCL_STATE table to check whether the row had reached its expiration time in the END_TM column.

Once the record completes the duration period, Workflow Monitor Agent verifies if the record is still in violation and removes the row from the S_ESCL_STATE table.

NOTE: Executing Workflow Action Agent as a separate task is not recommended. This means that the Use Action Agent parameter should be used only for the consolidate email feature. If this feature is not needed, it is recommended to run Workflow Monitor Agent with the Use Action Agent parameter’s default value set as False.

If the above suggestion does not help, log a service request to Siebel Technical Support providing details of the policy and Workflow Monitor Agent log file.

Data Validation Manager in Siebel

7/18/2012 No Comment

Siebel Data Validation Manager Tutorial. 

How to invoke a Data Validation Manager in Siebel.

Data validation through ”Administration – Data Validation” and invoking it through Runtime Events.
  • When ever a user creates an Contact record under Account screen and tries to save it the system should throw an error saying that ”Address is a required field” 
  • When ever a user creates an Activity record on ’Serivce Request – Activities’ view and tries to save it the system should throw an error saying that ”Comments is a required field” 

Siebel Client
Administration – Data Validation -> Validation Messages

  • Message Code: any idetifier for the message to be displayed to the end user
  • Message Level: Name of the BC where when the record is created, validation needs to run.
  • Message Source: Name of the rule set to be formed.
  • Message Text: Exact text message to be displayed to the end User.
Administration – Data Validation -> Rule Sets
  • Name: Same name as used in Message Source above.
  • Business Component: Name of the BC where when the record is created, validation needs to run.
  • Status: Active
  • Business Object: Name of the BO for which the BC needs to be validated
  • View: If the validation needs to be specified for a certain view only, then specify 
Administration – Data Validation -> Rule Sets -> Rules
  • Name: any logical name
  • Sequence: Unique integer in a Rule Set which defines the sequence of the validations in a rule set.
  • Apply To: Current Record
  • Expression: Build an expression for the data to be validated: e.g. Address Id IS NOT NULL
  • Stop on Error: TRUE
  • Immediate Display: TRUE
  • Return Code: Message Code defined above.
Administration -> Runtime Events -> Action Sets
  • Name: Any logical Name.
  • Active: TRUE 
Administration -> Runtime Events -> Action Sets -> Actions applet
  • Name: Any logical Name.
  • Active: TRUE
  • Sequence: Unique integer in a Action set which defines the sequence of the actions to be performed
  • Action Type: BusService
  • Business Service Name: Data Validation Manager
  • Business Service Method: Validate
  • Business Service Context: ”Rule Set Name”, ”Name of the Rule Set created” 
Administration -> Runtime Events -> Events
  • Sequence: Unique identifier which defines the sequence of the Actions on an Object.
  • Object Type: BusComp
  • Object Name: Name of the Bus Comp.
  • Event: PreWriteRecord
  • Action Set Name: Name of the Action set created in Runtime Event screen above.
  • Conditional Expression: optional

Commands to stop the Siebel Gateway Name Server

7/14/2012 No Comment

Stop the Siebel Gateway Name Server in Unix/Linux.

To stop the Gateway server:
/opt/siebel/siebsrvr $cd /opt/siebel/gtwysrvr
/opt/siebel/gtwysrvr $. ./
/opt/siebel/gtwysrvr $stop_ns

The Gateway server on unix has not been shut down even during scheduled outages. This command should only be fired during a patch on the box or any other production emergency that needs a box reboot.. Confirm that the Siebel Server is first bought down before shutting down the gateway service.

To Start the Gateway server:
/opt/siebel/siebsrvr $cd /opt/siebel/gtwysrvr
/opt/siebel/gtwysrvr $. ./
/opt/siebel/gtwysrvr $start_ns

This command should be fired if the ps response for Gateway returns negative

Aired | The content is copyrighted and may not be reproduced on other websites. | Copyright © 2009-2015 | All Rights Reserved 2015

Contact Us | About Us | Privacy Policy and Disclaimer