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.

Thursday, December 1, 2011

Siebel Assignment Manager



Siebel Assignment Manager is a rules engine that allows sales and service organizations to assign the most qualified people to specific tasks. Assignment Manager accomplishes this function by matching candidates to predefined and user-configurable assignment objects. To assign the most qualified candidate to each object, Assignment Manager applies assignment rules that you define.


To define assignment rules, select:
• Objects to which each assignment rule applies
• Rule Groups to which each assignment rule applies (optional)
• Criteria for each assignment rule
• Values for each assignment criteria
• Skills to match assignment rules, objects, organizations, employees, and positions
• Expertise to weigh skill scores
• Scores for each assignment rule, criteria, and value
• Candidates that are scored using the assignment rule
• Workload rules to balance work across your organizationFor example, in a sales organization, you can create an assignment rule that scores positions (candidates) based on territory definitions (criteria) for an opportunity (object).


In a service organization, you can create an assignment rule that scores employees (candidates) based on product expertise (criteria) for a service request or product defect (object). Using the sum of scores for each assignment rule, Assignment Manager assigns the best candidates for each object.

Sunday, November 27, 2011

Siebel 8 debug mode problem with Internet Explorer 8 ?

I am working on Siebel 8.1, and had Internet explorer 7 running, which ran without any issues. After an upgrade to IE 8, I found that the Siebel debug mode would no longer open. The IE window would open up and throw a "page not found" error. But the Siebel client would open fine, when started via its own shortcut.


As a workaround, inorder to open Siebel 8.1 debug mode in IE, there should be no other instances of IE running. Just kill all other IE instances, and simulating the workflow should be fine.

Thursday, November 24, 2011

Contact Denormalization

The Following steps need to be done for Contact Denormalization:
Navigate to Site Map -> Assignment Admin -> Assignment Policy ScreenQuery for following Policy Records by Name field and backdate the expiration date for these recordsASGN: ContactContact DenormalizationLogin to Server Managersrvrmgr /g /e /s /u /p Start Batch Task for doing the jobStart task for comp asgnbatch with asgnmode=’Denorm’, AsgnObjName=’Account’, ObjWhereClause=Exit from Server managerexitObserve that all associated contact records have upadted there contact list position data with the associated Account record

Clarify the use of user property SSA DeDuplication Field

1) Does the sequence of SSA DeDuplication Field * in the User Properties of Business Component 'Contact' plays any role in giving stronger emphasis to one field over the other one ?

A: The number itself has no impact on the weight or importance of the fields in calculating the matching score, just need to make sure that the field# is consecutive and there is no gap.

2) If we plan not to include some of the SSA DeDuplication Fields in the matching process,after inactivating them, do we have to remove them from Contact Contact Matching Field * and Contact Contact_INS Personal Address Matching Field * in User Properties of Business Service ' UCM Data Quality Manager' ?

A: Yes, when the dedup fields are inactivated, make sure that the corresponding SSA DeDuplication Fields# for the active fields are modified accordingly to make sure there is no gap.

3) Does the Real Time DeDuplication that detects the possible duplicates at the base table level uses SSA settings at the Business Service level 'DeDuplication' or uses SSA settings at the UI level under Data Quality Settings ?

A: It uses SSA settings from DQ Admin level though most of the properties don’t overlap

4) For matching there are Key Type and Search Type. How does it determine which Match Level (Narrow, Typical or Conservative) to use for matching on the base table records ?

A: Data Quality Mgr business service has the following user prop

SSA Default Universal Setting Key Type
SSA Default Universal Setting Match Level
SSA Default Universal Setting Search Type

Please note for Key Type and Search Type, the settings in DQ Admin overwrites the setting defined at BS user property.
If no key type or search type defined under DQ Admin, the default value defined as BS user property is used.

The SDQ does not enable user to set Match level from DQ Admin. It will use the setting defined as BS user property.

Saturday, November 19, 2011

Siebel Tools Check In-Check Out

One of the most important activity performed by Siebel developer is Check In - Check Out.
This post will explains ins and outs of Siebel Check – In/Check – Out process.


Check In – Check Out process can be divided broadly into 2 phases.
Outside Siebel Tools
Inside Siebel Tools
Outside Siebel Tools: There are two types of data sources
that you need to setup before you can do any check – in or check – out. These are

Local Data Source
Server Data Source

Details on how to create these data sources can be found in the category Siebel Data Sources. These data sources tell Siebel from where to get data and where put it. In Check – Out process Local Data Source points to the destination [which of course is you local dbf file] is destination and Server data source is Source and vice versa in case of Check in. After you have setup your data sources you need to inform Siebel about them. This can be done in two ways.

1. Entry in your tools.cfg file. You need to modify two parameters.
LocalDbODBCDataSource= SSD Local Db default instance
ServerDbODBCDataSource= SSD default instance

These are the default values and should be sufficient in most of the cases but in case if you defined your own data sources you will have to mention it here.

2. Specify them inside Siebel tools.
So, till now what we have come to know is that we have to perform 2 things outside siebel for Check-In/Check-Out
Create Data sources (Optional)
Specify them in Tools.cfg (Optional)
Inside Siebel Tools: You can also specify your data sources to be used for check in and check out in Siebel tools. To specify your data sources go to

View » Option » Check In/Check Out Tab
You should see a Data Sources section here. On Server or Local sections click Change button and provide the following information.
Data Source Name
User Name
Password
Table Owner (Usually Table Owner is Siebel. Contact your Siebel Admin to know the value if different)

Similarly you can specify the same parameters for Local section also.If you specify parameters in Siebel tools they will overwrite the parameters specified in tools.cfg file.

Now after all these setting Inside and Outside Siebel (which I am sure is not very simple ), Check – In and Check – Out should be a pretty simple 5 step process given below.
Login to Siebel Tools with local database
Select an Object that you want to Check Out
Right Click and select Check – Out option (F10 keyboard shortcut)
Make your changes to the object
Select the object and press (CTRL + F10) or Tools » Check In

Wednesday, November 16, 2011

How to do "Generate Triggers" for new WF Policy to work?

"Generate Triggers", this is one of the step that one needs to perform whenever he created a new WF Policy and wants it to work as per the conditions specified for the policy.

Here is the process to do that :
1. Navigate to "Administration - Server Management -> Jobs" view and click on New.
2. Put the Component/Job = "Generate Triggers"
3. Now, in the Job Parameters applet, you need to provide the following four parameters :
a) EXEC : TRUE

b) Remove : FALSE
c) Privileged User : "Database Table Owner Name"
d) Privileged User Password : "Table Owner Password"
4. Click on Start.
5. After few seconds, refresh the view (by clicking on "Execute Query" button), you will see Execution Server will get assigned to the request and Status changes to "Active".
6. After few minutes, again refresh the record and once the trigger gets generated, Status changes to "Success".

Tuesday, November 15, 2011

Major enhancements in Siebel UCM 8.1

Oracle has done some major enhancements in Siebel UCM 8.1.


* These major enhancement in Siebel UCM 8.1 are with reference to Siebel UCM 7.8

1). The Data Quality module has become more refine now. Now we need not call any webservice for invoking Trillium.
We have an OOB business service i.e. UCM Data Quality Manager which provides us with methods Cleanse and Match for performing data quality activity.
2). The second important thing is regarding Privacy. UCM 8.1 provides OOB connector for Integrating Haley Business Rules which was previously called through webservice.
3). The UCM 8.0 onwards has provided Transaction History view which stores the audit trail for Contacts, Accounts, Financial Accounts and Households.
4).In Siebel 8 onwards you can now change component parameters and the parameter change is applied without having to restart the component. You can also set components to "Manual Start" through the click of a button to prevent them starting up automatically when the server starts. Components and Tasks can be paused and resumed.
5). In Siebel Tools, there are new Siebel Operation Steps in workflows including:
a) QueryBiDirectional: Essentially this means you can execute query in forward backward mode
b) NextRecord/PrevRecord: You can now query and scroll through multiple records.

Workflow Invocation

There are a number of ways that a workflow can be invoked using Siebel server script. This article will describe these alternatives and provide an example of each using Siebel eScript.


1. Call synchronous server request
2. Call asynchronous server request
3. Call workflow as a business service

1. Call synchronous server request
This method makes a request to invoke a task for the workflow to be invoked by the Workflow Process Manager Siebel component. When the request is made for the workflow to be executed, the script will wait for the workflow to completed prior to continuing (hence synchronous).
When the synchronous server request is submitted the request is routed to a siebel server which has the Workflow Process Manager component enabled and online. A new job/task is created for the workflow job, this task record will be displayed in the Administration - Server Management > Jobs view.
Using this method, the workflow will be invoked by the SADMIN user. This means that the any records modified by the workflow will show as modified/created by SADMIN.
Using this method, the workflow will be invoked on a server that has the Workflow Process Manager component enabled and online. This is a useful method in the case where the Siebel enterprise has a number of Siebel servers and a single Siebel server is dedicated to execute workflows. This may be handy if the workflow generates external files where it is important that these are always stored on the same server.
Here is an example of making a syncronous server request to call a workflow using Siebel eScript:
var svcServerRequest;
var psWorkflowChildIn;
var psWorkflowIn;
var psWorkflowOut;
try
{
svcServerRequest = TheApplication().GetService( "Synchronous Server Requests");
psWorkflowChildIn = TheApplication().NewPropertySet();
psWorkflowIn = TheApplication().NewPropertySet();
psWorkflowOut = TheApplication().NewPropertySet();
psWorkflowChildIn.SetProperty("ProcessName", "My Workflow Process");
with (psWorkflowIn) {
SetProperty("Component", "WfProcMgr");
AddChild(psWorkflowChildIn); }
svcServerRequest.InvokeMethod("SubmitRequest", psWorkflowIn, psWorkflowOut);
}catch(e){
TheApplication().RaiseErrorText(e.toString());
}finally
{ svcServerRequest = null;}


2. Call asynchronous server request
This method is the same as that for calling a synchronous server request, however after the call is made to execute the asynchronous server request, the script does not wait for the workflow to complete, it continues immediately and does not wait for the workflow.
Here is an example of making an asynchronous server request to call a workflow using Siebel eScript:
var svcServerRequest;
var psWorkflowChildIn;
var psWorkflowIn;
var psWorkflowOut;
try {
svcServerRequest = TheApplication().GetService( "Asynchronous Server Requests");
psWorkflowChildIn = TheApplication().NewPropertySet();
psWorkflowIn = TheApplication().NewPropertySet();
psWorkflowOut = TheApplication().NewPropertySet();
psWorkflowChildIn.SetProperty("ProcessName", "My Workflow Process");
with (psWorkflowIn) {
SetProperty("Component", "WfProcMgr");
AddChild(psWorkflowChildIn);
}
svcServerRequest.InvokeMethod("SubmitRequest", psWorkflowIn, psWorkflowOut);
}catch(e){
TheApplication().RaiseErrorText(e.toString());
}finally { svcServerRequest = null;}


3. Call workflow as a business service
This method executes the workflow in real time within the current application object manager instance. This method executes the workflow as though it was executing a business service.
Using this method, the workflow will always be executed syncronously. The workflow will be executed within the instance of the user session, therefore the workflow will be executed as the user logged in hence inheriting all the security settings of the user logged in.
Here is an example of calling a workflow as a business service within the application object manager instance using Siebel eScript:
var svcWorkflow;
var psWFInputs;
var psWFOutputs;
try {
svcWorkflow = TheApplication().GetService( "Workflow Process Manager");
psWFInputs = TheApplication().NewPropertySet();
psWFOutputs = TheApplication().NewPropertySet();
psWFInputs.SetProperty("ProcessName", "My Workflow Process");
svcWorkflow.InvokeMethod("RunProcess", psWFInputs, psWFOutputs);
}catch(e){
TheApplication().RaiseErrorText(e.toString());}
finally { svcWorkflow = null;}

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.

Wednesday, August 3, 2011

Runtime Events

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

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

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

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

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

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

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

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

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

EnablePersonalization = TRUE
PersonalizationLog = C:\Personal.log

EIM Performance tuning



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

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

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

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

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

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

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

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

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

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

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

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

Wednesday, July 27, 2011

Oracle AIA Process Integration Pack Overview

Oracle Application Integration Architecture (AIA) Process Integration Packs (PIPs) are prebuilt integrations across Oracle applications, like Siebel CRM, Oracle E-Business Suite, Agile PLM and Oracle Communications Billing and Revenue Management (Portal) and SAP, enabling customers to rapidly deploy fully orchestrated business processes.

AIA PIPs make it easier for customers to implement core business processes and spend less time maintaining/upgrading integrations.

Cross-Application PIPs





  • Oracle Financials Accounting Hub Integration Pack for PeopleSoft General Ledger


  • Agile PLM Integration Pack for Oracle E-Business Suite: Design to Release


  • Agile PLM Integration Pack for SAP: Design to Release


  • Process Integration Pack for Oracle Customer Hub


  • Process Integration Pack for Oracle Product Hub


  • Account Originations: Siebel CRM Integration Pack for Account Originations - Liability Products


  • Siebel CRM Integration Pack for Oracle Order Management


  • Siebel CRM Integration Pack for Trade Promotion Management


  • Lead to Order: Oracle CRM On Demand to Oracle's JD Edwards World


  • Order to Cash for SAP: Oracle Order to Cash for Siebel CRM and SAP


  • Customer Master Data Management for SAP


  • Agile Product Lifecycle Management to Oracle's JD Edwards EnterpriseOne


  • Oracle Primavera to the Oracle E-Business Suite and Oracle Primavera to JD Edwards EnterpriseOne


  • Oracle Value Chain Planning applications to JD Edwards EnterpriseOne


  • Oracle Workforce Administration Integration Pack for PeopleSoft Human Resources



Industry-Specific PIPs






  • Oracle Order Management Integration Pack for Oracle Transportation Management, Oracle E-Business Suite and Siebel CRM


  • Oracle Financial Management Integration Pack for Oracle Transportation Management and Oracle E-Business Suite


  • Oracle Driver Management Integration Pack for Oracle Transportation Management and Oracle E-Business Suite


  • Oracle Communications Billing and Revenue Management Integration Pack for Oracle E-Business Suite: Revenue Accounting


  • Oracle Retail Merchandising Integration Pack for PeopleSoft Enterprise Financials- Financial Operation Control


  • Siebel Call Center Integration Pack for Oracle Adverse Event Reporting System
    Account Originations: Siebel CRM Integration Pack for Account Originations - Liability Products


  • Siebel CRM Integration Pack for i-flex FLEXCUBE Account Originations - Liability Products


  • Siebel CRM Integration Pack for Oracle Communications Billing and Revenue Mgmt: Agent-Assisted Billing Care


  • Siebel CRM Integration Pack for Oracle Communications Billing and Revenue Management: Order to Bill


  • Oracle Remote Data Capture to Oracle's Siebel Clinical Trial Management System


  • Oracle Utilities Customer Care and Billing to Oracle Utilities Mobile Workforce Management and Oracle Utilities Work and Asset Management


  • Siebel CRM to Oracle Incentive Compensation for High Tech/Manufacturing
    Oracle Financial Operations Control Integration Pack for Oracle Retail Merchandising Suite and the Oracle E-Business Suite Financials



SAAS to On-Premises PIPs






  • Oracle CRM On Demand Integration Pack for JD Edwards EnterpriseOne: Lead to Order


  • Oracle CRM On Demand Integration to Siebel CRM


  • Siebel CRM On Demand Integration Pack for Oracle E-Business Suite

Tuesday, July 26, 2011

Using the GotoView Method

The GotoView method can be used for navigating to different views from scripts. The default behavior of the GotoView method is to place the cursor or focus on the first record in the view.

When the script is required to get a specific record in focus the method can be executed with the business object parameter. The business object is then used to get a business component, on which a query is executed putting the required record in focus.

The same technique can be used to go to different views based on the same business object or to different views when the row id and specifications are known.

GotoView() Syntax:
Application.GotoView(ViewName[, BusinessObjectName])


The list below provides the best practices related to the usage of the GotoView method:

1. The GotoView method is not supported in the following events:


  • Application_Navigate

  • Application_PreNavigate

  • Application_Start

  • Applet_Load

  • WebApplet_Load

2. The GotoView method does not work correctly when called in the following events.



  • BusComp_Query

  • BusComp_PreQuery

3. Make the call to the GotoView event the last executable statement in the script


4. Avoid usage of GotoView when using the following Siebel Object Interfaces


5. Do not write a business service which uses GotoView method when this business service is invoked in Mobile/Dedicated Web Client Automation Server


6. Ensure that when invoking a GotoView method that the destination view is accessible to all users that need to access that


7. Avoid the usage of GotoView method when you are creating a new record unless all the required fields are already filled


8. Verify if the business component and applets used in the destination view are specialized

Troubleshooting of workflows

Workflows can be debugged in one of the following manners.
1. Turn on tracing on the corresponding component, Workflow Process Manager, Workflow Process Batch Manager, Application object Manager and view the event log files. For details on how to turn on tracing please refer to Business Process Designer Administration Guide or look at How Can Tracing Be Increased for Workflow Process Manager and Workflow Process Batch Manager? (Doc ID 476283.1) on My Oracle Support Portal.


2. Turn on monitoring level to 3-Detail or 4-Debug. At this level, each execution of a process (whatever component it is run from) will record state and process properties‟ value for each step. The information is then available in the Site map > Administration - Business Process > Workflow Instance Monitor > Process Instances/ Step Instances.
Page 22 of 66
Such levels of monitoring affect performance of the workflow engine. Hence such settings should be used for troubleshooting purpose only.

3. You can run the workflow process from the business service simulator using the business service Workflow Process Manager. Here are the steps:
i. Navigate to the Site Map > Administration - Business Service > Simulator.
ii. In the top applet, create a new record and set the following fields:
Service Name: Workflow Process Manager
Method Name: RunProcess
Iterations: 1
iii. In the Input Arguments applet, create a new record, and set the "Test Case #" field to 1 and open the Property Name field (which opens up a multi-value applet).
iv. Click the New button and set the following fields and then click the Save button:
Property Name: ProcessName
Value:
v. Repeat above step for any parameter that should be passed to the process, especially "RowId" if needed.
vi. Click the OK button in the multi-value applet opened in step iii.
vii. Click the Run button in the top applet of the Simulator view.

Known Scripting Performance issues

The following are some of the scenarios where we can see the performance issues in Scripting:
1. If we write code there like WebApplet_Load, WebApplet_PreCanInvokeMethod and BusComp_PreGetFieldValue etc.
WebApplet_PreCanInvokeMethod , this is frequently fired in response to user actions.
In version 8.0 and above, instead of using PreCanInvokeMethod to enable a custom method, this can be done using “CanInvokeMethod” user on the applet user property. For example: Name: CanInvokeMethod: Test Value: Y.

PreGetFieldValue event, it is called every time the user interface is updated to repaint the fields and also be called in other internal uses.
2. If you logic is having frequent travel between Server and Browser script.
3. Memory variables are not released in finally block.
4. Frequent travel to database (Get,Set,Query) instead of storing data in buffer.
5. Script is not using proper execution identifiers like forward only, backward only.
6. Not using Switch and using if extensively.

ST Scripting Engine

Siebel eScript is a scripting or programming language that application developers use to write simple scripts to extend Siebel applications. New to Siebel Business Applications version 7.7.2.3 is the availability of a new Siebel eScript engine, called the ST eScript engine, that is compliant with ECMAScript edition 4. Improvements include true compiled code, typed and type-less variables, late and early-binding, and classes.

Siebel eScript is a true object-based scripting language. Although Siebel eScript can now use classes, types, and other advanced language features for writing robust logic, it retains its "scripting" feel, with support for type-less programming.



Enhancements included in ST Scripting Engine:





  • New Siebel eScript engine (called the ST eScript engine)


  • Script Assist


Benefits of these two features are:
ST eScript Engine
Improved performance:
Higher throughput with a lower CPU and memory footprint in cases where customers have implemented a significant amount of script. This will result in improved performance and lower garbage collection cost on heavily scripted events.
Improved scalability: Lower footprint per user for CPU and memory use
New functionality: Added support for ECMAScript Edition 4 compliant strong typing. Using strongly typed objects results in more functional scripts and faster performance.

Script Assist
Aids in the development of scripts by making introspecting object definitions and making that information available to the user.

NOTE: The new ST eScript Engine and Script Assist only apply to server-based script.

Siebel Email Marketing Server - Components

The Siebel Email Marketing Server consists of the following three components, each with its own installer and each is separate from the Siebel Marketing Server installer:


Email Sending Daemon (ESD) - which assembles each outbound email message for a campaign using the email template (HTML or text) and the recipient list, and then sends each message to your company's outbound MTAs for delivery.


Bounce Handler Daemon (BHD) -which tracks email messages that cannot be delivered, parses the returned email messages, and records the cause of the bounce.


Click-Through Daemon (CTD) -which tracks clicks made by the email recipient on any Siebel-supported hyperlinks included in the email template.


unknown@unknown Contact in eMail Response

Whenever an email is sent from an email id (customer email id) that doesn’t exists in Contact records in Siebel. eMail Response workflow starts fail and the SR or Activity records are not created.
Reason:
Siebel eMail response functionality works in such a way that takes the "from address" in email and query it in contact records. If the record is found then the wf proceeds, but if it is not found/ fails to get the contact record then it searches for an email address ‘unknown@unknown’ in the Contact records.
If a contact record exists with email id as ‘unknown@unknown’ then it moves on to create an Activity or Service request (whatever you have configured) with that contact and if it is not able to find the record, workflow fails to create an Service Request/Activity
Solution:
Create a contact record in Siebel with email id as unknown@unknown
Or
Modify the workflow to look for such unknown email address that already exists.

Siebel eMail Response - Overview

Siebel eMail Response will monitor a specified mailbox.
It allows you to send automated Acknowledgement/response emails to the messages received in that mail box.
Creates a Service Request or an Activity (what ever business wants to) based on the information received in those emails.
How eMail will Process?
The Communications Inbound Receiver monitors mail boxes (email addresses) by using communications driver profiles to check for inbound messages. When an inbound email is detected, the Communications Inbound Receiver receives the email message and then Communications Inbound Processor will process and sends it as an event message to the Workflow Process Manager for processing.
eMail Response - Setup
•Setting up Profiles:
•Navigate to Administration – Communication > Communication Drivers & Profiles
•Query for “Internet SMTP/IMAP Server” and navigate to Profiles view tab
Create a new Profile as POP3 Profile with the following profile parameters
Name Value
From Address
POP3 Account Name
POP3 Account Password


•Setting up Response Groups:
•Navigate to Administration – Communication > Response Groups
•Associate the Profiles and Input Arguments like Auto Response, Catalog, Process Name etc.

Debugging Workflows using Logs

Workflows are the most common term that we come across after Object Manager in Siebel. We can achive really complex functionality through worklfows but what it means is that debugging them is equally complex. We generally test workflows through Simulation but if we were debug workflows in real time it can be quite painful and time consuming. A simple method to debug workflow is to increase the log level for Workflow Process Manager (WPM) component. But if somebody has ever tried that he can vouch that it can be quite a headache to go through that log. And what's more is that most of the information that is contained in that log is useless and not realted to workflow functionality. So here in this article I am going to present a pretty simple technique which can help you to get just the right amount of information that you need to debug a workflow. Instead of increasing the log level of complete WPM component if you just increase the log level of just selective sub-components that should do the trick. I will list down the Sub-Components that you need to increase the log level to get just the appropirate information that you need.



  • Workflow Definition Loading

  • Workflow Engine Invoked

  • Workflow Process Execution

  • Workflow Step Execution

  • SQL Tracing

Just increase the log level of the above said components from 1 to 4 and you are done !!!!!
To get logs from dedicated client you need set the Environmental Variable on your system.

Drill Downs - Common mistakes

We use to configure a drill down and we test it. It works fine and it takes us to the destination view that we have provided. Another user logs in for him the drill down disappear. It is just plain text field.
When we click on the drill down it gives us an error“You do not have permission to view this record or this record has been deleted”
Drill down is working for some users and some users are facing error while using that drill down.


Reason:
The reason behind the problems mentioned above is Responsibilities. Yes, It is as simple as that.
We are going from one view to another view and if we don’t have that view in our responsibility we migh face one of the above mentioned errors. Some time more than one destination is provided, as is the case of the dynamic drill down and they are executed in the sequence that we provide. If views that have been mentioned in the sequence are not assigned to our responsibility then we can again face the above mentioned error.

Web Services (Siebel ASI based outbound integration)

An Application Services Interface (ASI) is a release-independent interface published by Siebel that lets you integrate Siebel applications with external applications; because ASIs provide a release-independent integration interface, the integration interface to the Siebel Application remains unchanged with each upgrade to new releases.


ASIs come pre-built using standard metadata format, which makes ASIs language-independent, so they return the same value type regardless of language setting minimizing globalization and localization costs.


These benefits mean easier integration between Siebel and external systems, and significantly reduce integration, maintenance, and upgrade costs.


NOTE: The one point of implementing Siebel ASI based integration is ability of the, being integrated, External Application to understand (receive and parse) the Siebel ASI formed SOAP request and generated (and send) the Siebel ASI formed SOAP response. This requirement is similar to the Siebel XML request/response based integration approach, known from Siebel Application version 6.


The example below illustrates how to perform the Siebel Sales Order bi-directional data exchange (imitated from Siebel Application side):
1. Tintegration can be based on the following standard (or slightly customized) business services:


1.1 'Siebel Order' - a data synchronization service, which is pre-defined to invoke the EAI Siebel Adapterto query/update the Siebel Application Database, using the 'Internal Order Interface' standard internal integration object definition (built on the 'Order Entry' standard Siebel Business Object).


1.2 'External Order' - an outbound Web Service proxy, which is pre-defined to invoke the outbound Web Service dispatcher for calling (in an external application) the 'External Order' Web Service with the predefined query/update methods, using the 'Order Interface' standard external integration object definition (built on the XML schema definition, which correspond the accordant structure of the 'Internal Order Interface' integration object);


2. On the Outbound Web Service Administration view (Siebel Client), modify the address (or other additional binding information) for the 'External Order' outbound Web Service registration to forward the SOAP exchange to accordant External Application Web Service server;

3. Design the Web Service outbound integration workflow process to perform following steps:


3.1 Call the 'Siebel Order' business service
method: 'QueryById' with:
input argument: 'Object Id' - a string value to refer particular Sales Order
record in Siebel Application Database;
output argument: 'SiebelMessage' - a hierarchical value to keep the obtained Order data in form of Siebel Integration message (know as Siebel Message);


3.2 Call the 'External Order' business service
method: 'QueryByExample' with:
input argument: 'SiebelMessage' - a hierarchical value to provide an External Application the obtained Order data in Siebel Message form;
output arguments: 'SiebelMessage' - a hierarchical value to keep the received from an External Application the Order data in Siebel Message form;


3.3 Call the 'Siebel Order' business service
method: 'Update' with:
input argument: 'SiebelMessage' - a hierarchical value to post the Order data change(s), provided from External Application response in Siebel Message form;

Invoking a Workflow in the background using DirectDB mode

Use the predefined Server Requests business service to send a generic request to the Server Request Broker. The following processing modes in which the Server Requests business service can send a request are included:


  • Asynchronous

  • Synchronous

  • Schedule

Synchronous and Asynchronous Modes
When in synchronous mode, the Server Requests business service sends a request to the Server Request Broker, then waits for a response. Otherwise, it sends the request but does not wait for a response.
It is recommended that you use the Server Requests business service in most cases, rather than the Workflow Process Manager (Server Request) business service. It is more efficient to make an asynchronous call to a workflow process. If a synchronous call is made to a workflow, then the workflow runs in the Object Manager, causing the user to wait for the process to end.


Example:
var bsWFP = TheApplication().GetService("Server Requests");
var psInputs = TheApplication().NewPropertySet();
var psCompInputs = TheApplication().NewPropertySet();
var psOutputs = TheApplication().NewPropertySet();
psInputs.SetProperty("Component", "WfProcMgr");
psInputs.SetProperty("Method", "RunProcess");
psInputs.SetProperty("Mode", "DirectDb");
psCompInputs.SetProperty("ProcessName", "");
psInputs.AddChild(psCompInputs);
bsWFP.InvokeMethod("SubmitRequest", psInputs, psOutputs);

Alternatives to read a file´s contents

EIM : you can use any tool of your choice to read the file and load the EIM tables.

XML: EAI File Transport + EAI XML Converter + EAI Siebel Adapter could be used to read the file and insert or update the database.It is easier if the XML is already generated by the external system in Siebel Message format as that is already an integration object (IO) representation and IO is what EAI Siebel Adapter will need as input anyway.If your XML is in any other format, you will need some extra effort mapping the resulting property set to IO format.

Custom business service: If you go the route of coding yourself.
You will have to pick a delimiter and an escape char and increment the logic to check for the escape chars and delimiters .The code sample simply searches for the next delimiter in the line that has been just read.

Example:
File Should be in the format (AB)

BS eScript:
var SearchStr;
var LineVal1,LineVal2;
FileName=Inputs.GetProperty("FileName");
fp=Clib.fopen(FileName,"rt");
if(fp==null)
TheApplication().RaiseErrorText("Unable to opent the file");

while(null!=(ConId=Clib.fgets(fp)))
{
SearchStr = "aaa";
LineVal1=LineVal1.replace("\n","");
LineVal1=LineVal1.replace(" ","");
LineVal1 = LineVal1.split("");
SearchStr = LineVal1[0];
LineVal2 = LineVal1[1];
if(SearchStr != "" && SearchStr != null)

//Invoke any function to do manipulations.
}

Monday, July 25, 2011

What is Siebel Workflow?

Siebel Workflow orchestrates other Siebel process automation technologies. Workflow processes graphically sequence a series of automation steps that support a process, and specify inputs and outputs for individual steps and for the process as a whole.





Technologies that enable business process computing in Siebel are:
• Assignment Manager – Expresses rules to assign records to people, enables assignment based on skills, workload, availability, etc and supports ownership transitions within a process.
• SmartScript – Guides users through data entry tasks, and is effective for call scripting and includes basic support for transaction level commits.
• Activity Template – Contains a pre-defined series of to-do steps and is effective for handling asynchronous/offline tasks.
• Workflow Policies – Generates events based on database operations and is effective for performing simple actions such as sending email, creating an activity or assignment.
• State Models – Restricts transition of record status based on current value and position of the user. Also can enforce directional progression of status, for example so Opportunities move forward but not backward through a pipeline.


The workflow process types are as follows:
• 7.0 Flow. A 7.0 workflow process provides backward compatibility for existing Siebel 7 (pre-7.7) workflows.
• Long Running Flow. A long-running workflow process is a persistent workflow that can last for hours, days, or months.
• Interactive Flow. An interactive workflow process navigates the user across Siebel views.
• Service Flow. A service workflow process executes a set of operations upon event invocation.





Commonly used Business Service in Workflow processes include:
1. FINS Data Transfer Utilities
• Description: Allows you to transfer data from source BC to a destination BC without script.
• Available Methods:
• DataTransfer
• GetActiveViewProp
• QueueMethod
• TryMockMethod.
2. FINS Validator
• Description: Validate data based on predefined rules. It is developed through Application Administration and not script. Also, supports custom messages.
• Available Methods:
• Validate

3. FINS Dynamic UI Service
• Description: Allows creating and rendering of read-only views with a single read-only applet based on user input. Administered through admin views and not script.
• Available Methods:
• AddRow
• DeleteRow
• SetViewName
4. Outbound Communications Manager
• Description: Automates sending notifications via fax and emails to contacts and employees.
• Available Methods:
• CreateRequest
• SendMessage
• SendSmtpMessage
• SubmitRequest
5. Synchronous Assignment Manager Requests
• Description: Automates assigning objects by using Assignment Manager rules.
• Available Methods:
• Assign
6. Server Requests
• Description: Allows sending of generic requests to the request broker. It can send it in three different modes: asynchronous, synchronous, or schedule mode. (Example, call a workflow but need to be asynchronous request)
• Available Methods:
• SubmitRequest
• CancelRequest
7. Report Business Service
• Description: Automates sending, scheduling, printing, saving, emailing reports. Also, automates administrative tasks such as synching new users.
• Available Methods:
• ExecuteReport
• DelOne
• DownloadReport
• GrantRoleAccess2Report
• GrantUserAccess2Report
• PrintReport
• RunAndEmailReport
• ScheduleReport
• SyncOne

Features about Siebel Adapter


The salient features are listed below. Refer to the relevant sections of this document for detailed description and usage information. For additional adapter features, refer to the TIBCO Adapter Concepts Book. • Support for Integration Object Schema Using XML Tags The adapter now supports downloading of Integration Object Schema either with XML tags or with field names for Publication and Subscription Services.• Support for Return of Status Keys for Integration Objects The adapter now supports return of Status Keys for an INSERT, UPDATE, UPSERT or DELETE operation on Integration Objects. The Status Keys need to be configured for every Integration Object in Siebel (Refer Siebel Bookshelf for more information on Status Keys). • Support for Dynamic Substitution of Parameters in HTTP Business Service The adapter now supports the dynamic substitution of EAI TIBCO HTTP Agent Business Service parameters during invocation. The parameters, which are supported for dynamic substitution, are HTTP Timeout and HTTP Agent Server. During Request-Response invocation, the HTTP Timeout parameter can be set within the request. The Business Service waits for the HTTP reply from the adapter, for a specified duration before timing out. This parameter, if specified in the request, overrides the parameter specified in the Business Service user properties. The HTTP Agent Server parameter can be set within the user properties. The Business Service invokes the adapter server using this parameter. This parameter, if specified in the request, overrides the parameter specified in the Business Service user properties. • Support for Asynchronous Workflow Invocation The adapter now supports invocation of workflow asynchronously. The adapter returns the Request Id of the asynchronous workflow request. This is applicable for Subscription and Request-Response Services.• Supports for return of Output Parameters for Workflow Invocation The adapter now returns all the parameters of the workflow output after the workflow invocation. This is applicable for Subscription and Request-Response Services.• Support for TIBCO BusinessWorks The adapter can be used in a TIBCO BusinessWorks 5.3 process.• Adapter Services The adapter provides Publication, Subscription, Request-Response and Request-Response Invocation services. Basic configuration templates are provided in TIBCO Designer, which you can use to configure adapters and services to control your enterprise’s data. The services are described in detail in the next section.• Support for Siebel Database on Microsoft Windows and UNIX As Siebel data is accessed via the Siebel Object Interface, the Siebel Business Rules are preserved regardless of the underlying database platform.• Ability to use Multiple Levels of Siebel Business Components The adapter can be configured to use multiple levels of Siebel business components from Siebel Business Objects. • Ability to Invoke Siebel Business Service The adapter can invoke Siebel Business Service. The adapter can invoke any method in a Siebel Business Service after receiving a message from the TIBCO environment.• Ability to Invoke Siebel Workflow Processes The adapter can invoke Siebel Workflow processes in real time. The adapter can invoke a process through the Siebel Workflow Process Manager after receiving a message from the TIBCO environment.• Support for Siebel Integration Objects Siebel Integration Objects are supported on both the inbound and the outbound side. You can create schema for integration objects using TIBCO Designer.• Ability to Publish using Non-Siebel Business Component Functionality You can use the Non-Siebel Business Component functionality, provided by Siebel, to send data before committing it to the Siebel Database.• Support for Universal Application Network The adapter meets Universal Application Network (UAN) standards for the following adapter services:o Subscription Serviceo Request-Response Serviceo Request-Response Invocation Service• Detection of Lost Siebel Data Connection Detection of Siebel Data Connectivity failure is provided along with the ability to re-establish the connection and prevention of message loss.• Multithreading The adapter supports a static number of threads. The number of threads is specified at the time of configuration. The number of connections to the application server equals the number of threads. With multiple threads, the adapter processes multiple messages concurrently.• Easy-to-use GUI TIBCO Designer GUI is available for configuring and maintaining the adapter.• Support for TIBCO Rendezvous and JMS (Java Message Service) Support for multiple message transports. TIBCO Rendezvous or TIBCO Enterprise Message Service can be used to transport messages to and from the adapter.

Usage of Invoking a WF/BS from a Calculated Field


Invoking a business service/workflow from a calculated field and it returns OutputProp.

Syntax:
InvokeServiceMethod ("ServiceName", "MethodName", "InputProp1=val1, InputProp2=val2, ...","OutputProp")

·
This method requires an input argument in its third field, else the calculated field does not provide a return value and a parsing error results. If the business service method does not require an input argument, then you must provide an argument as a placeholder. For example, if MyMethod takes no input argument, then make a call similar to the following:
InvokeServiceMethod("MyService","MyMethod","a=a","MyReturn")

Dynamic Read-Only Controls

One of the exciting features regarding scripting in Siebel eBusiness Applications version
7.x/8.x is the dynamic visibility and read-only status of controls. Different approaches are
required for the High Interactivity and Standard Interactivity clients.
High Interactivity
The correct method for determining if a control is read-only under High Interactivity
client is to use the Data Driven Access Control user properties: BC Read Only Field,
Field Read Only Field & Parent Read Only Field.
Standard Interactivity
The Data Driven Access Control user properties can also be used within the Standard
Interactivity client. However, as the Standard Interactivity client works on a
connectionless protocol, this method requires a round-trip from the client to the server in
order to recalculate the calculated field upon which the user properties depend. This may
provide an unacceptable response time.
In cases where a dynamic read-only control is required on the user interface, browser
script will be required to obtain a handle to the control through the Document Object
Model and change the readOnly property of the HTML tag representing the control.
By setting the HTMLAttribute property of the control to provide a unique Id value in
tools, this field can be referenced in browser script by specifying the applet name and
control Id, and its HTML Attributes can be directly manipulated at runtime through
browser script events.ex: .SetProperty('Visible','FALSE');

Siebel eScript – An Overview


Scripting is one of the most important areas in Siebel Development but irony is that it is never recommended to write script in Siebel. Siebel scripting is done in a language known as eScript. eScript shares it’s syntax with JavaScript. If you have worked in JavaScript then you would find it pretty easy to adapt to eScript.eScript can be broadly classified into two categories
Server Scripts
Browser Scripts Server Scripts: as its name suggests is executed on server side. Which means that the user request is sent to server where the scripts is then executedBrowser Script: is actually converted into JavaScript and is executed on client side.Usually scripting is written on objects in Siebel such as Applets, Business Components etc. But the main use of eScript is done to write Business Services. There are lots of things that you achieve through a business service. Detail discussion on business service is subject to different post but it is similar to somewhat workflows implementing complete business processes with the help of script.Scripting should be used as a last resort. Everything can be done through script of course but it makes the manageability and up gradation of Application difficult.