Siebel Community

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

Tuesday, May 29, 2012

Sending and Receiving Messages with the EAI HTTP Transport

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

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

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

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

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

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

6. Create a new workflow process as shown below.

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

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

1. Create UCM SDH Business Component


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


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


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


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


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

How to configure EBC data source in thin client

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

1. Navigate to Administration - Server Configuration screen

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

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

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

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

Siebel Monitoring Techniques

Event Logging

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


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


E-mail Alerts

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


SARM

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


Client-side logging

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


Usage Collection

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

_stats.swe


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