You are here

Siebel EAI

SQL Server Integration Services

Microsoft SQL Server provides a completely new enterprise extraction, transformation, and loading (ETL) platform called SQL Server Integration Services (SSIS) that ships with the features, tools, and functionality to build both classic and innovative kinds of ETL-based applications. This article examines some of the exciting SSIS features that you can use to build ETL applications. Along the way, you will also learn how to build a simple package using the new Business Intelligence Development Studio, which is a key component of SSIS features and can be seen as sophisticated Visual Studio.

Previous Versions of SQL Server:

Back in the days when Microsoft SQL Server 6.5 was still a hot product, the bulk copy program (BCP command utility) was the only way to back up or export databases from SQL Server to other data sources, such as other database servers or text files. However, in subsequent SQL Server versions, Microsoft added a large number of features that were aimed at improving the productivity of SQL Server developers and administrators. One such feature is DTS (Data Transformation Services). By creating DTS packages, you can combine several tasks into one process and use any programming language that supports automation (such as Visual Basic.NET, Visual C#, or Managed C++) to execute these packages and monitor their progress for errors.

With the upcoming SQL Server 2005 release, Microsoft has raised the bar by introducing SSIS, the brand new ETL tool. Similar to DTS, it provides functions for copying data from one place to another and manipulating that data at run time. However, SSIS has been completely redesigned from scratch to be an enterprise ETL platform. SSIS provides the breadth of features—and very high-level performance—necessary to build enterprise-class ETL applications. The performance comes from the integration of SQL server into .Net CLR.

SSIS is fully programmable, embeddable, and extensible, which makes it an ideal ETL platform. It has a great development environment hosted in a Visual Studio shell with cool capabilities for building workflows and pipelines through a rich set of pre-built or custom components. SQL Server 2005 ships with the following development and management environments for designing and managing packages:

  1. The SQL Server Management Studio is an environment for managing the storage and execution of deployed packages. It has special features for doing this, including integration with the DTS Service, and the ability to enumerate packages on remote servers. But it is not a design environment.

 

  1. The Business Intelligence Design Studio is an environment for designing packages, organizing them in Solutions and Projects, debugging them, and managing source and version control for multi-user projects.

These two environments offer powerful facilities for deploying, debugging, and monitoring deployed packages. In addition, SQL Server 2005 provides rich workflow capabilities that you can use for performing sophisticated data manipulations.

SSIS Features

There are too many SSIS features to cover in a single article, so this piece highlights some of the important ones and then moves on to creating a simple package with Business Intelligence Development Studio. The following are the most notable features:

  1. You can use SSIS to transfer millions of rows of data to and from heterogeneous data sources, but SSIS functionality doesn't stop there. The tool leverages the end-to-end BI suite by offering complete data integration, movement, and shaping, which means that SSIS provides data cleansing, extensibility, and interoperability.
  2. SSIS comes with a lot of pre-built data-cleansing functionality, including completely integrated functions, such as fuzzy matching and fuzzy grouping, which use algorithms to match or group disparate data to a configurable degree of accuracy.
  3. SSIS offers broad extensibility points for third-party component vendors, meaning that if functionality is not available out of the box, SSIS lets you build your own components or add a third-party component to solve your problem.
  4. SSIS also has greatly improved performance and scalability that allow you to host complex, high-volume ETL applications on lightweight servers, enabling you to scale down.
  5. SSIS can also help reduce ETL data staging areas and help minimize performance costs associated with data staging (disk I/O and serial processing). This is made possible by the ability to perform complex data transformations, data cleansing, and high-volume lookups—all inline from source to destination.
  6. SSIS also provides a new feature, the Slowly Changing Dimension (SCD) wizard. Through the SCD interface, you can rapidly generate all the steps and required code to add unique handling of history to multiple attributes in a given dimension.
  7. The development environment for SSIS, known as Business Intelligence Development Studio, is hosted in Visual Studio, enabling scripting and other programming tasks that take advantage of that enterprise development environment.
  8. SSIS now fully supports the Microsoft .NET Framework, allowing developers to program SSIS in their choice of .NET-compliant languages, as well as native code.
  9. The Data Transformation run-time engine is exposed both as a native COM object model and as an entirely managed object model. Although the Data Transformation engine is written in native code, it is available though a signed Primary Interop Assembly (PIA) that enables full managed access to it.

Now that you have a general understanding of the SSIS features, consider an example that shows the steps involved in constructing and executing a package using the Business Intelligence Development Studio environment.

Creating a Simple Package

Consider a simple example wherein you transfer data from one table to another table by executing a stored procedure. For each row in the source table, you will invoke the stored procedure to load the data into the destination table. Before looking at the package design, create the required tables and the stored procedure. You will create these database objects in the AdventureWorks database, which is one of the sample databases that ships with SQL Server 2005.

Using the package, you will retrieve the FirstName and LastName columns from the Person.Contact table and load them into the dbo.Contact Table in other database. Using the derived column transformation given in SSIS, you will concatenate the FirstName and LastName columns and assign the concatenated value to the FullName column of the Emp table. Now that you understand the package functionality, take a look at the design of the package, as shown in the next section.

Creating a Package Using Business Intelligence Studio

Before creating the package, you first need to create a project that can host the package. Open Business Intelligence Development Studio from the Start->Programs menu. Select File->New Project from the menu and you will see the dialog box in Figure 1.

Figure 1:New Project Dialog Box

As Figure 1 shows, select Integration Services Project as the project template and specify the name of the project as PracticeSSIS. Once the project is created, you will see the package designer window of the default package Package.dtsx.

For the requirements we've outlined, the package we are going to create is very simple and straightforward. It consists of one Data Flow task with two components inside the data flow: an OLE DB Source and an OLE DB Destination. To start, bring up the toolbox by selecting View->Toolbox from the menu. You will see the dialog box in Figure 2.

Figure 2:Toolbox Dialog Box

As you can see, the toolbox offers a number of options that you can leverage to construct your packages. Drag and drop a Data Flow Task from the toolbar onto the package designer. Next, double-click on the Data Flow Task and you will see the designer window in Figure 3, which you can use to build sophisticated data flows.

Figure 3:Data Flow Task Designer Window

Now, bring up the toolbox again by selecting View->Toolbox from the menu. From the toolbox, drag and drop an OLE DB Source onto the designer and double-click on the object to bring up the window in Figure 4, 5, 6. The window allows you to specify the data source as well as the name of the source table to use for transformation.

Figure 4:Designer View of OLE DB Source

Figure 5:Specify Connection and source table.

Figure 6:Specify columns you are interested in.

Click on OK in the Figure 6 dialog box.

Now, drag and drop a Derived Column Transformation onto the designer and connect the OLE DB Source object to it as shown in Figure 6.

Figure 7:Derived column transformation.

Double-click on the Derived Column object to bring up its properties window. Select <add as new column> under the derived column. Type FullName in Derived column name and put expression as FirstName + “ “ + LastName.

Figure 7:Setting properties for Derived column transformation.

Now, drag and drop an OLE DB destination object onto the designer and connect the Derived column transformation object to the OLE DB destination object. Double-click on the OLE DB destination object to bring up its properties window. Modify the Connection Managers tab of the properties window to look like Figure 8.

Figure 8:OLEDB destination transformation.

Figure 9:Setting properties for OLEDB destination transformation.

Now start the package execution by Debug->Start Debugging or pressing F5.

Figure 10:Output of a Successful Package Execution

Background Color of object:

Green: Success, Yellow: In progress, Red: Error occurred

If the package executes successfully, you will see an output that is somewhat similar to Figure 10, which shows the objects on a green background. The above screenshot also shows the number of rows transferred between the source and destination tables.

A powerful base for Creating Packages

With the release of SQL Server Integration Services, Microsoft now has a powerful ETL tool that is not only enterprise class but can also go a long way in increasing the productivity of developers. Its feature set makes it extremely easy and seamless to build sophisticated, high-performance ETL applications. This article has only scratched the surface of what is possible with SSIS, but the simple example it gave should provide a powerful base for creating packages with SSIS.

 


 

References

 

  1. www.msdn.microsoft.com
Web Portal Integration with Siebel Applications

This article presents details on how to use the XML Web Interface to deliver content from Siebel to external portal frameworks and Web application environments. The XML interface provides industry-standard integration to third-party development environments, such as ASP and JSP, as well as providing a model consistent with emerging Web technologies. The XML interface can be used across all Siebel eBusiness Applications.

1.Business objective

By providing end users with relevant data from across multiple data sources and presenting that information in a context that is meaningful to the user, Siebel XML Web Interfaces offer the promise of:

  • Providing competitive advantage through new business processes
    • Increasing productivity by providing more information access into the hands of business users
    • Increasing effectiveness through knowledge sharing and reduced search time.

 All in an easy to use, easy to maintain way of integration.

 2.Overview of Siebel XML Web Interface – Used for delivering Content to External Web Applications

 

The XML interface provides access to Siebel through the Siebel Web Engine (SWE) installed on the Siebel web server. SWE generates the user interface using views, applets, and templates. These UI constructs provide access to and filtering for business object and business component data. They also provide access to visibility, navigation, and security. By rendering the XML based on the underlying SWE technology, the XML interface exposes business object and business component data.

The XML interface will be invoked using Inbound HTTP post of XML documents from external web portal application.

The XML interface is supplied out-of-the-box. It does not require any additional setup, configuration, maintenance or licensing fees.

 

The following diagram shows the integration between External Web Portal and Siebel Web layer. 

 

 

 

 

3.Features of Siebel XML Web Interface:

 

  • Connecting to the XML Web Interface

 

The XML Web Interface can be used against any Siebel eBusiness Application. Requests to generate XML from Siebel eBusiness Applications can be submitted through a Siebel Web Server using a query string or an XML command block.

 

Example:

Code Snippet to open HTTP connection to SWE get data from account list applet – using XML command:

 

<% @LANGUAGE="VBScript" %>

<%

'----------------------------------------------

'Open HTTP connection and send XML command req

'----------------------------------------------

strURL = "http://" & Request.form ("swe") & "/

start.swe?SWECmd=ExecuteLogin&SWEDataOnly=1&SWEUserName=sadmin&SWE

Password=sadmin&SWESetMarkup=XML

ZOSet xmlhttp = Server.CreateObject("MSXML2.ServerXMLHTTP")

xmlhttp.open "GET", strURL, False

xmlhttp.send ()

Set ologinXmlDoc = xmlhttp.responseXML

strCookie = xmlhttp.getResponseHeader ("Set-Cookie")

On Error Resume Next

If strCookie = "" Then

Response.Write ("Unable to connect to Siebel Web Server. Please

check Login Name, Password, and Siebel Web Server URL")

Response.End

End If

strSessionId =

mid(strCookie,inStr(strCookie,"!"),inStr(strCookie,";")-

inStr(strCookie,"!"))

strURL = "http://" & Request.form ("swe") & "/

start.swe?SWECmd=GotoView&SWEView=Account+List+View&SWESetMarkup=X

ML&SWEDataOnly=1" & "&_sn=" & strSessionId

Set xmlhttp = Nothing

Set xmlhttp = Server.CreateObject("MSXML2.ServerXMLHTTP")

xmlhttp.open "GET", strURL, False

xmlhttp.send ()

Set oXmlDoc = xmlhttp.responseXML

'-----------

'Session Var

'-----------

Session ("SWESessionId") = strSessionId

Session ("swe") = Request.form ("swe")

'-----------

'Prepare XSL

'-----------

sXsl = "acctresponse.xsl"

Set oXslDoc = Server.CreateObject("Msxml2.DOMDocument")

oXslDoc.async = false

oXslDoc.load(Server.MapPath(sXsl))

%>

<HTML>

<HEAD>

<TITLE>My Portal</TITLE>...

<BODY>

...

<TD colSpan=2><%Response.Write (oXmlDoc.transformNode(oXslDoc))%>

</TD>

</BODY>

</HTML>

 

 

 

Note: For any examples/code snippet/commands related to the various features listed in this document, please make use of the documents listed in the reference section.

 

  • XML Response Structure

 

When you send a command block to a Siebel eBusiness SWE -XML application, you access the Siebel eBusiness XML application screens. If the action specified in the command block is successfully executed, the data and all of the objects from the resulting screen are returned within an HTTP response. The format of the response is XML, HTML, or WML, depending on the SWESetMarkup setting that was sent in the request payload.

You must develop the mechanism by which your Web server handles XML responses. Using the information provided in this section you can develop a parser, a Web application, or another control to extract the necessary data from XML responses and display the appropriate information to users.

 

  • Common Operations

 

There are various combinations of XML commands you can use to execute an action in a Siebel eBusiness XML application. Each operation below offers one solution for executing a Siebel eBusiness Application action.

 

  1. Logging In (Using LDAP/DB authentication/SSO)
  2. Logging Off
  3. Navigating to a Screen/Within the Screen
  4. Querying Items
  5. Modifying Records
  6. Deleting Records
  7. Picking Records

 

 

  • SWE API

 

There are several SWE Commands, SWE Methods and arguments available to control the Siebel eBusiness Application actions.

 

  • Manipulating Siebel XML with XSL Style sheets and XSLT

 

SWE can perform embedded XSL transformation on outbound XML documents. This way, you can generate outbound documents in the desired markup language format directly from SWE, without requiring a middle-tier server to perform the transformation.

To do so, application developers must provide the XSL style sheets used for the transformation and specify the names of the style sheets to SWE.

Random Number Generation-Invoke a Service in DataMap

Sometimes data coming in inbound integration from external system cannot be uniquely identified.
One of the options is to use "SIS OM PC Service" business service in datamaps and the generated output row_id could be used as user key during the insertion. In the field map following expression is used:
InvokeServiceMethod("SIS OM PC Service", "Get Next RowId", "XYZ='12'", "RowId")
 
This might result in error "Access denied to invoke business service 'SIS OM PC Service' for search specification 'InvokeServiceMethod("SIS OM PC Service", "Get Next RowId", "XYZ='12'" ,"RowId")'" . This error is related to security issue. In order to use any business service with InvokeMethod we need to define that business service at following places:
 
 
1 - Mobile Web client/Dedicated client: In CFG we need to define following parameter
[Siebel]
BusinessServiceQueryAccessList = SIS OM PC Service
 
2 - Web Client: We need to define this in Parameter "Business Service Query Access" at enterprise or component level where it is being used.
Name: Business Service Query Access
Value: SIS OM PC Service

EAI Siebel Adapter – Tuning with IC User Property "SuppressQueryOnInsert"
Scenario:
While performing an Insert operation with EAI Siebel Adapter. User identified the following behavior: Siebel was doing Query operation + Insert operation. This was taking more time and the agent had to wait for a long time to view the records
 
Solution:
The IC User Property "SuppressQueryOnInsert" is used for Insert operation. When this parameter is set with value "Y", the "EAI Siebel Adapter" Business Service (BS) is able to do a 'blind' insert of the record, whenever the following conditions are met:
1. The IC has a User Key defined.
2. The input message (SiebelMessage) received in the BS includes values for fields defined in this User Key.
3. The user property has effect only for an Insert operation.
 
Note that Keys are a 'must' and have to be added to the IC. When either, the IC has no User Key defined or the input message does not include values for User Key fields, there will be an error message.
 
 
Example:
Use the ”EAI Account” IO and set the User Property for its IC: "Account". This IC also includes a first User Key defined for field "Id". Using BS Simulator start a new test with BS EAI Siebel Adapter / Insert operation and include a SiebelMessage as input argument, with a value in field "Id" for Account.
 
a) Without the User Property defined, the Insert process executes a Select statement based on the User Key for the IC (Id).
 
b) After compiling the IO including the User Property "SuppressQueryOnInsert" with value "Y" for  the "Account" IC, the 'blind' insert is executed. The Spool file for this case includes the Insert operation which runs without a Select statement for the User Key of the new record received.
 
 
NOTE: Most of Integration solutions implemented in Siebel will require a validation for the uniqueness of the new record before inserting it, so the option above has to be carefully considered
XML Tools And Utilities

 eXtensible Markup Language (XML) is a markup language used to structure data to make it easy to exchange data over the Internet. The compatibility of XML with various other languages, such as Java and C++, has given rise to various tools and utilities such as XML editors, parsers, and browsers that help structure data in an XML document. Most of these XML tools conform to the World Wide Web Consortium’s XML 1.0 standards and specifications and can be downloaded free of charge.

 The XML tools and utilities enable you to structure, validate, debug, read, and view an XML document and create XML schemas.

 This ReferencePoint describes the various XML editors, parsers, and browsers that you can use to work with XML documents. It also explains the features and interfaces of these XML tools.

 XML Editors

XML editors create Document Type Definition (DTD) files for XML documents. Compared to text editors, XML editors simplify the process to create an XML document, DTD, and perform additional functions such as modify, read, and validate XML documents. These XML editors provide an integrated development environment that helps automate XML development tasks.

 Some commonly used XML editors include XMLSPY 4, Microsoft XML Notepad, and XMetaL 4.0.

 XMLSPY

XMLSPY 5 is an Integrated Development Environment (IDE) that enables you to design and create XML documents, XML schema, and XLS style sheets. It also enables you to debug Web applications using XML, XML schema, Simple Object Access Protocol (SOAP), and Web Services technologies. The user interface provided by XMLSPY 5 consists of several panes, which are shown in Figure 1-3-1:

 

 

Figure 1-3-1: XMLSPY User Interface 

You can use the features of XMLSPY to:

Edit an XML document by inserting and appending elements and attributes to it. To do this, select XML -> Insert or XML -> Append, as shown in Figure 1-3-2:

Figure 1-3-2: XML Menu on the XMLSPY Interface 

Add a child node to an element and an attribute. To do this, select XML -> Add child, as shown in Figure 1-3-2.

 

Check for the well-formedness of an XML document in accordance with the XML 1.0 specifications. To do this, select XML -> Check well-formedness, as shown in Figure 1-3-2. If the check for well-formedness succeeds, a message appears at the end of the file, as shown in Figure 1-3-3. If the check does not succeed, the error is highlighted in the XML document and an error message is displayed.

 

Figure 1-3-3: Checking for Well-Formedness

 

Create, assign, and edit a DTD and XML schema by selecting the appropriate option from the DTD/Schema menu, as shown in Figure 1-3-4. In addition, you can validate your XML document against the created DTD or schema.

 

  

Figure 1-3-4: DTD/Schema Menu 

Create, edit, and debug Extensible Stylesheet Language Transformation (XSLT) style sheets. XSLT is a programming language used to transform XML documents into other formats, such as HTML pages and PDF files.

 Debug XML and XSL files with the help of the Watch window. You can view and change variables while executing an application in the Watch window.

 Convert XML documents into HTML documents through the stylesheet designer without using XSLT programming. The stylesheet designer automatically reates the XSLT style sheet.

 Create, edit, and view Web Service Description Language (WSDL) documents using the WSDL editor.

  XMetaL

SoftQuad’s XMetaL 3.0 is a customizable graphics tool used to create and edit XML documents. It provides a variety of authoring features, such as multiple document view and context-sensitive Property Inspectors. 

 The XMetaL customizable interface, shown in Figure 1-3-5, consists of various components including menus, toolbars, the main document pane, and Property Inspector:

Figure 1-3-5: XMetaL User Interface 

The XMetaL editing tool enables you to:

Open and edit an XML document and create an XML project workspace.

Create, insert, split, join, and remove elements and their attributes.

Customize the elements in an XML document graphically. To do this, select Tools -> Customization to open the Customizations dialog box, shown in Figure 1-3-6:

 

  

Figure 1-3-6: Customizations for GuestBook.rlx Dialog Box 

Create a DTD and schema to validate XML documents.

Use the external identifier provided in a DOCTYPE or an external entity declaration to identify the name and location of a DTD or rules file.

List of all the elements in your XML document using the Element List window. Select View -> Element List to view the Element List window shown in Figure 1-3-7:

  

Figure 1-3-7: Element List Window 

Use three different modes to view and edit XML documents in the interface:

Normal: Shows the XML document as it will appear in a word processor or a Web browser.

Tags On: Shows the start and end tags for the elements in the XML document.

Plain text: Provides the actual XML markup in a color-coded format with indented blocks of elements.

Use Attribute Inspector to edit the attributes of an element. Attribute Inspector depicts the attributes of the current selected element. To view the attributes of an element in Attribute Inspector, click the element in the XML document and select View -> Attribute Inspector.

Keep a track of errors with the validation log, which maintains a record of the errors that have occurred in an XML document.

Note  You can download an evaluation copy of the XMetaL 3.0 XML editing tool from http://www.corel.com/support/ftpsite/pub/softquad/xmetal.htm.

XMLEditPro 1.2

XMLEditPro 1.2 is a simple XML editor that enables you to create and edit an XML document. Figure 1-3-8 shows the XMLEditPro user interface:

 

 

Figure 1-3-8: XMLEditPro User Interface 

You can use the features of XMLEditPro to:

 

Create and edit XML documents with three different views:

 

 

 

Node: Shows the tree structure of an XML document. Each element in the XML document represents a node in the tree structure.

 

Browser: Shows how the XML document will appear in a Web browser.

 

Source: Shows the code of the XML document.

 

 

 

 

Create and edit a node in the tree structure of an XML document. To do this, use the Edit Node dialog box that appears when you double-click a node in the tree structure. Figure 1-3-9 shows the Edit Node dialog box:

 

  

Figure 1-3-9: Edit Node Dialog Box 

 

 Note  You can download XMLEditPro free of charge from http://www.daveswebsite.com.

 

 

 Microsoft XML Notepad

Microsoft XML Notepad enables you to build XML applications. It provides a graphical interface that shows the XML document in a tree structure. This enables you to create reproducible data structures.

 

To use XML Notepad, you need to have Internet Explorer 4.0 SP1 or a later version installed because Internet Explorer includes the Microsoft XML parser that XML Notepad uses to parse XML documents.

 

 Figure 1-3-10 shows the XML Notepad user interface with the elements of an XML document in a tree structure:

 

 

Figure 1-3-10: XML Notepad Interface 

The features of XML Notepad enables you to:

 

Create, edit, and convert the elements in an XML document and view them as nodes in a tree structure.

 

Create multiple copies of either an element or the complete tree structure of an XML document using the Replicate feature. To replicate an element, select Tools -> Replicate. This opens the Replicate dialog box, shown in Figure 1-3-11. The dialog box prompts you to specify the number of copies to replicate.

 

  

Figure 1-3-11: Replicate Dialog Box 

 

Reposition the nodes or elements in the tree structure with the Drag and Drop feature.

 

Convert one node type into another in a tree structure. For example, you can convert a child element into an attribute or a parent element and vice-versa.

 

 Note  You can download XML Notepad free of charge from http://www.microsoft.com/download.

 

 

 XMLwriter 2.0

XMLwriter 2.0 is an Integrated Development Environment (IDE) used to create, edit, and debug an XML document. Figure 1-3-12 shows the XMLwriter user interface with the XML document workspace:

 

 

Figure 1-3-12: XMLwriter User Interface 

XMLwriter enables you to:

 

Validate and format XML documents with a DTD and schema. To use this feature, select XML from the menu bar, as shown in Figure 1-3-13:

 

  

Figure 1-3-13: XML Menu Options 

 

Generate and edit a DTD and schema. To use this feature, select DTD/Schema from the menu bar, as shown in Figure 1-3-14:

 

  

Figure 1-3-14: DTD/Schema Menu 

 

Create and edit the XSLT document. To use these features, select Style from the menu bar, as shown in Figure 1-3-15:

 

  

Figure 1-3-15: Style Menu 

 

 Note  You can download the XMLwriter 2.0 software from http://www.xmlwriter.net.

 

Cooktop 2.5

Cooktop 2.5 is an environment used to develop XML and XSL documents. Figure 1-3-16 shows how the Cooktop user interface can be used to create and edit XML and XSL documents: 

This interface contains five tabs:

source (xml): Shows an XML document.

xpath console: Enables you to write xpath expressions that correspond to the open XML document.

stylesheet (xsl): Helps create a style sheet for the XML document.

result: Shows the result of the XML document.

result (html): Shows the XML document as it will appear in a Web browser.

Cooktop enables you to: Create DTD and XML schema to validate XML documents with the DTD editor provided.Use formatting, encoding of the character set, and named pair tags for the current XML document. To use these features, select the XML option on the menu bar , Retrieve XML documents using the HTTP GET protocol. Add code bits, which are reusable chunks of code, to an XML document. You can create your own templates or use the existing templates to add code bits. To do this, select Code Bits -> Add Code Bit to open the Add Template dialog box. Use multiple XSLT processors, such as MSXML, XT (Java), and Oracle, supported by Cooktop. These processors can be used for XML transformations. To access multiple XSLT processors, select Options -> XSLT Engine, as shown in Figure 1-3-19:

Troubleshoot performance in Siebel EAI

The following steps can be used to debug and increase EAI Siebel Adapter performance related issues:

1. To improve the performance of integration objects:

  • Select only the desired Business Components to create Integration Object, as it will help to reduce the amount of work done by the EAI Siebel Adapter for each operation.
  • Inactivate all unnecessary fields and components in integration objects.
  • Re-examine any fields in the underlying business component that are
    force-active. Such fields are processed during integration even if they are not
    included in the integration component. Please consider removing the
    force-active specification from such fields, unless absolutely needed.


2. QueryPage is another performance feature.

The QueryPage method returns a subset of records for a query request, as specified by the PageSize and the StartRowNum method arguments. Use additional parameters such as SearchSpec, SortSpec, and ViewMode respectively to modify the SearchSpecification, SortSpecification and visibility mode used by the method.

Use the QueryPage method to limit the number of the records returned by the query to improve performance. Even though the QueryPage returns a limited number of records, it keeps all the data in the cache, which can then be retrieved by calling the EAI Siebel Adapter with the same PageSize, SearchSpecification, and SortSpecification and Visibility mode.

3. If this behavior can be reproduced, users can also enable EAI Siebel Adapter performance component events to determine which specific operations are slow.

To set tracing on the dedicated Client: -

a. Set the SIEBEL_LOG_EVENTS environment variable:
set SIEBEL_LOG_EVENTS=detail

OR only related events to Siebel Adapter can be set as follows: -

set SIEBEL_LOG_EVENTS=EAISiebelWizard=5,EAISiebAdptSvcArgTrc=5,EAISiebAdpt=2,
GenericLog=5,EAISiebAdptPerf=3,SqlParseandExecute=3

Set SIEBEL_LOG_DIR=d:\sea80\client\log (or any directory of your choice)

b. Run the application from command prompt:
c:\sea\bin\siebel.exe /c siebel.cfg /d server /u sadmin /p sadmin /s sql.out

4. If the zero-foot print client or thin client is used, enable component event tracing on the object manager being used. For example, if testing using the Call Center Object Manager, enable tracing for the Call Center Object manager (SCCObjMgr_enu). If testing with HTTP inbound request, enable tracing for the EAI Object Manager:

a. Navigate to Site Administration > Administration - Server Configuration > Servers
b. In the "Components" applet, select the relevant server component.
c. In the lower applet, select "Events" and set the following component events to 4:

  • EAI Siebel Adapter
  • EAI Siebel Adapter Performance
  • EAI Transport Performance
  • General Event
  • Performance Event
  • SQL Parse and Execute
  • Workflow Performance

OR Set the component events tracing in Command line (srvrmgr).
For each one of these events, run the following command and specify the event:

Change evtloglvl <event>=4 for comp <eaiobjmgr_enu>

Example: - Change evtloglvl EAISiebAdpt = 4 for comp sccobjmgr_enu

Here are the events' aliases:

  • EAISiebAdpt
  • EAISiebAdptPerf
  • EAITransportPerf
  • GenericLog
  • Performance
  • SQLParseAndExecute
  • WfPerf

Note: the events to be trace will be different depending upon which step needs to be traced.

Also note that setting the logging at level 4 or 5 can have significant performance overhead itself. So, it should be used only after a performance problem has been identified, and the minimum amount necessary to reproduce the problem. For example, if tracking a performance problem, skip the other events (such as Workflow Step). To get the SQL, avoid using both SQLParseAndExecute and ObjMgrSQLLog as that duplicates the amount of SQL being logged.

Other performance events that may be helpful depending on the EAI implementation:

  • EAIOrclRcvr - EAI Oracle Receiver Performance Event
  • EAISAPIdocAdpt - EAI SAP IDOC Adapter Performance Events
  • EAISqlAdpt - Performance Statistics Event Types for the SQL Adapter
  • WebSvcPerf - Web Service Performance Event Type

5. Interpreting the data with performance events.

The EAISiebAdptPerf and EAITransportPerf can provide more information for about the transport performance.

Below is example that demonstrates how to interpret the results.5. All times are in milliseconds,

Example 1:

EAISiebAdptPerf     EAISiebAdptPerfStat     3     2002-10-11 15:41:31     Perf Account|UpdateRecord|1|1

The way to read this output is: Business Component| Operation| number of record processed during this Siebel Adapter invocation| number of milliseconds this Siebel Adapter invocation processing took (gross number, including any waiting time).

So for above example Account Business Component is been updated and it took 1 millisecond to process 1 records.

Example 2:

EAISiebAdptPerf     EAISiebAdptPerfStat     3     2002-10-11 15:41:31     Perf Account|Execute|1|17
In the above example, executing a query on Account Business Component and it took 17ms to retrieve 1 record.

Example 3:

EAISiebAdptPerf     EAISiebAdptPerfStat     3     2002-10-11 15:41:31     Perf Action|NewRecord|1|75

In this example, it took 75 milliseconds to create one new record for Perf Action.

Example 4:

WfPerf     Proc     4     2002-10-11 15:41:31     ProcessName|NumProcessed|TotalTimeForProcess
WfPerf     Proc     4     2002-10-11 15:41:31     Perf EAI MQReceive Process|1|189

These two lines together indicate the amount of time it took to run a workflow process. The workflow process name is "Perf EAI MQReceive Process" and it took it 189 seconds to run the entire process.

Example 5:

EAITransportPerf     EAITransportPerf     5     2002-10-11 15:41:31     Dispatched Request successfully|191

EAITransportPerf     EAITransportPerf     5     2002-10-11 15:41:31     Committed Siebel Transaction|0

EAITransportPerf     EAITransportPerf     5     2002-10-11 15:41:31     Sent Response|38

These three lines above record the amount of time the transport layer (MQSeries Transport in this example) took to dispatch the workflow process, commit the transaction and send the response to another queue.

Siebel Real Time Process

The objective of this document is to describe the functioning of real time process. In the real time process the record from the external system is directly entered into UCM SDH (Source Data History) tables. The record is read from XML file and passed to the UCM source table and forwarded to the Siebel base table directly depending upon the survivorship rules. An output file which is a XML file is created for further reference.
 
 
Functional Description:
“UCM Server Party Package Workflow (File Transport) “is used in a real time process. This workflow receives the records from the external system in the form of a XML file. It also receives the operation name from this XML file. It can perform Insert, Update, Upsert, Delete and Query Operation. If the operation specified is “Insert” then it reads all the records from XML file and inserts the records one by one into UCM SDH table and then into the corresponding Siebel base table depending upon the survivorship rules. The workflow reads the XML file, executes the required action and sends back the response of the operation in the output file in the form of a XML again. This XML file also sends an error response to the external system incase of any errors encountered.
 
 
Technical Description:
 
UCM Server Party Package Workflow (File Transport)
 
This section describes the stepwise operation of the “UCM Server Party Package Workflow (File Transport)” workflow.
 
In real time scenario, “UCM Server Party Package Workflow (File Transport)” is used to execute the Insert, Update, Upsert, Delete and Query operation. The workflow reads the XML file which is nothing but the record detail sent by the external system and converts it into XML hierarchy, and converts that XML hierarchy into Property set. After that it executes the Operation specified in XML file. It can perform Insert, Update, Upsert, Delete and Query Operation. For Insert operation it inserts the record in corresponding UCM table and also in Siebel base table. It’s the inbound process and for outbound process it converts the output into property set, property set is converted into XML hierarchy. The output file is the XML file which is send back as a response of operation performed. This file can be sent back to the external system or can be stored at the specified location. The steps of the workflow are described in shot.
 
 
 
1. Start
 
2. Read from File:               
                        Business service name: EAI HTTP Transport
                        Method name: Receive
                        Input Arguments:
                                    FileName:
                                    IsReceivingTextData:
                        Output Arguments:
                                    Xml:
 
                        This step of workflow reads the XML file.
 
3. Convert to XML hierarchy:
                        Business service name: XML Hierarchy Converter
                        Method name: XMLDocToXMLHier
                        Input Arguments:
                                    <Value>:
                                    EscapeNames:
Output Arguments:
            Core Req Prop:
This step converts the XMl file into Xml hierarchy.
 
                              4. Dispatch Message:
                        Business service name: UCM Dispatcher
                        Method name: DispatchMessage                    .
                        Input Arguments:
                                    DispatcherMapName:
            XMLEnvIntObjectName:
            XMLHierarchy:
Output Arguments:
            Disp Req Prop:
This step validates the incoming XML hierarchy. According to dispatching                       rules, it checks the integration object names. This also checks for the envelope, header, and fault sections of the message and identifies them.
 
                              4. Convert Request In:
                        Business service name: UCM Converter
                        Method name: XMLPropSetToPropSet                     .
                        Input Arguments:
                                    XMLHierarchy           
Output Arguments:
                                                                  CIF System Prop
                                                                  Tran Req Prop
                                                      This step converts the Xml hierarchy into Property set.
                             
                              5. Transaction Manager:
                        Business service name: UCM Transaction Manager
                        Method name: Execute                       .
                        Input Arguments:
                                    EnableRealtimeInsert
                                    OnlyIOI
                                    StatusObject
                                    TurnOnCDMMatch
                                    TurnOnDM
                                    TurnOnSE
                                    XMLHierarchy           
Output Arguments:
                                                                  Trans Resp Prop
                                                                  Notification Req Prop
This step does tansaction in UCM table. This converter uses the hierarchy represented in the CIF integration object to perform the operation specified in XML file. The transaction manager translates XML command elements into Siebel eAI Adapter actions. If Input argument EnableRealtimeInsert is true then it performs the Operation in real time and inserts the record in corresponding UCM table after matching the records present in Siebel base table, and if it is false then it calls the UCM Contact Batch Data Management Workflow to execute the operation. We can also give the value “true” to TurnOnCDMMatch parameter for turning on the matching and “false” for turning off.
 
                              6. Convert Request Out:
                        Business service name: UCM Converter
                        Method name: PropSetToXMLPropSet                     .
                        Input Arguments:
                                    CIFSystemContainer
                                    FailSecurityHierarchy
                                    NotificationHierarchy
                                    XMLHierarchy                                  
Output Arguments:
                                                                  Conv Resp Prop
                                                      It converts the output into property set.
                                                                 
                              7. Decision point:
                                          7.1. Yes:
                                                      Convert request out:
                                    Business service name: UCM Publish/Subscribe Service
                                    Method name: PublishMethod                       .
                                    Input Arguments:                               
                                                XMLHierarchy                                  
Output Arguments:
 
                                          7.2. No:
                                                      Convert to hierarchy:
                                    Business service name: XML Hierarchy Converter
                                    Method name: XMLHierToXMLDoc                        .
                                    Input Arguments:
                                                EscapeNames
                                                XMLHierarchy                                                                      
Output Arguments:
                                                                              XMLHierarchy
 
                                          It converts the property set into XML hierarchy.
     
                              8. Write to file:
                        Business service name: EAI File Transport
                        Method name Send     .
                        Input Arguments:
                                    <Value>
                                    FileName                                                                    
Output Arguments:
It creates an output file and keeps it at specified location.
                              9. End
                             
 
 
Process Properties:
 
Following are the Process Properties that need to be defined for the workflow:
 
                     Name                                                            Value

  1. Enable Realtime Insert.                                                          False.
  2. Input File Name.                                 This will contains the XML file Location.
  3. Realtime Pub Sub.                                                                  True
  4. TurnOnCDMMatch.                                                               True
  5. Turn On Survivorship.                                                            True
  6. Turn On Data Management.                                                   True
  7. Output File Name                           This will contains the Location for the O/P file.
JMS Configurations

1.0 Introduction
2.0 Prerequisites
3.0 Configuring the JMS Transport
4.0 Setting up the JMS Receiver
Creating JMS Subsystems:
1. Receiver Connection Subsystem:
2. Data Handling Subsystem:
3. Activating the JMS Receiver
 
1.0  Introduction
This document lists the detailed information and steps to be carried out the configuration of Java Message Service in Siebel. It includes the prerequisites for the JMS set-up and its implementation in Siebel.
 
2.0 Prerequisites
In order to implement a Java business service, the following software must be installed and properly configured on each Siebel Server:
 
■ A Java Runtime Environment.
■ All necessary Java code.
■ A configured named subsystem of type JVMSubSys.
 
The named subsystem supplies the parameters to the JBS. There are three parameters:
 
■ DLL. The complete path of the Java Runtime Environment library. On Windows, it is jvm.dll; onAIX, libjvm.a; on HP-UX, libjvm.sl; and on Solaris, libjvm.so.
■ CLASSPATH. The classpath used by the Java virtual machine.The classpath must include the following Siebel JAR files as well as all Java code implementing the desired business service.
 
The required Siebel JAR files are:
■ Siebel.jar
■ SiebelJI_lang.jar (lang corresponds to the default language e.g: SiebelJI_enu.jar).
 
■ VMOPTIONS “-Xusealtsigs”
 
NOTE: The option -Xusealtsigs is mandatory for use on the Sun Solaris platform. The JVM options will not load successfully into the object manager without the use of this option.
 
To create a Java subsystem:
 
1 Start the Siebel Business Application and navigate to Site Map > Administration – Server Configuration > Enterprises.
2 In the top list applet, select the Enterprise Server that you want to configure.
3 In the middle applet, click the Profile Configuration tab.
4 Click new to create a new component profile and set the following parameters:
            a Profile = JAVA
            b Alias = JAVA
            c Subsystem Type = JVMSubsys (Name = “JVM Configuration Subsystem”)
5 In the Profile Parameters list applet (the bottom applet), set the following values:
           
            a Set the Value of the JVM Classpath parameter to the location of the necessary .jar files and the JNDI.properties file. For example:
            c:\bea\weblogic.jar;c:\siebel\jndi;c:\siebel\siebsrvr\CLASSES\Siebel.jar;c:\siebel\s            iebsrvr\classes\SiebelJI_enu.jar
 
            b Set the Value of the JVM DLL Name parameter to the path where you have the
            jvm.dll file installed. For example, DLL= D:\j2sdk1.4.2\jre\bin\server\jvm.dll (on         Solaris, libjvm.so)
            c Set the Value of the JVM Options record to “-Xusealtsigs”.
 
 
3.0  Configuring the JMS Transport
The JMS Transport is built using the Java Business Service and therefore inherits all the requirements of that business service. This includes the independent installation of a Java virtual machine (JVM) and the configuration of the Siebel application to identify and create the VM. Configuration of the Siebel application requires creating a named subsystem of type JVMSubSys with the necessary properties.
 
JMS Transport requires the CLASSPATH property of the JVM subsystem must include the following packages or classes:
■ Siebel.jar.
■ SiebelJI_lang.jar (where lang corresponds to the default language for your installation).
■ A directory containing the location of the jndi.properties file.
The jndi.properties file contains the necessary name value pairs required to perform a JNDI lookup and bind to the remote queue.
 
4.0  Setting up the JMS Receiver
The JMS Receiver is a Siebel Server component that makes it possible for the JMS Transport to be invoked asynchronously. The JMS Receiver listens for messages arriving on a JMS Queue or Topic and takes action whenever a message arrives.
 
Creating JMS Subsystems:
 
The following two subsystems have to be created for the JMS Receiver set-up:
 
1. Receiver Connection Subsystem:
 
1 Start the Siebel Business Application and navigate to Site Map > Administration - ServerConfiguration > Enterprises.
2 In the top list applet, select the desired Enterprise Server that you want to configure.
3 In the middle applet, click the Profile Configuration tab.
4 Click New to create a new component profile and set the following parameters:
            a Profile = JMSConnSubsys
            b Alias = JMSConnSubsys
            c Subsystem Type = JVMSubsys (Name = “JMS Named Subsystem”)
            5 In the Profile Parameters list applet (the bottom applet), specify the parameters             required for the type of operations the subsystem will need to support (for     example, Receive or ReceiveDispatchSend).
           
            ConnectionFactory name = JNDI name for (Queue or Topic) connection factory
            “examples.jms.QueueConnectionFactory”
            (e.g ‘ADSK.DEVHCL.Siebel.AutomatedFulfillment.ADSKOrderRequest’
            ConnectionPassword = Password authentication to access JMS transport         resources.
            ConnectionUsername = User authenticated to access JMS transport resources
            JVM Subsystem name = Name of the instance of the JVM named subsystem to            use. (JAVA)
            ReceiveQueue name = JNDI name for queue to receive from
            SendQueue name = JNDI name for queue to send to
            Receive timeout = Amount of time in milliseconds before concluding no message        is available for receipt (3000).
 
2. Data Handling Subsystem:
 
     
1 Start the Siebel Business Application and navigate to Site Map >             Administration - ServerConfiguration > Enterprises.
2 In the top list applet, select the desired Enterprise Server that you want to
configure.
3 In the middle applet, click the Profile Configuration tab.
4 Click New to create a new component profile and set the following parameters:
            a Profile = JMSDataHandlingSubsys
            b Alias = JMSDataHandlingSubsys
            c Subsystem Type = EAITransportDataHandlingSubsys
5 In the Profile Parameters list applet (the bottom applet), specify the parameters required:
            Workflow Process to Execute = Name of workflow process to dispatch received            message to.
            Allow Anonymous = False
            Impersonate = False
 
 
3. Activating the JMS Receiver
 
1 Start the Siebel Business Application and navigate to Site Map > Administration - ServerConfiguration > Enterprises.
2 In the top list applet, select the desired Enterprise Server that you want to
configure.
3 In the middle applet, click the Component Definitions tab.
4 Query for “JMS Receiver”
5 In the Component Parameters applet query for “Receiver Connection Subsystem” and specify the name of the Connection Subsystem configured above (“JMSConnSubsys”)
6 Again query for “Receiver Data Handling Subsyst” and specify the name of the above Data Handling Subsystem (“JMSDataHandlingSubsys”).
 

Siebel XML Web Interface

The XML Web Interface can be used against any Siebel eBusiness Application. Requests to generate XML from Siebel eBusiness Applications can be submitted through a Siebel Web Server using a query string or an XML command block.
Example:
Code Snippet to open HTTP connection to SWE get data from account list applet – using XML command:
###################################################################
<% @LANGUAGE="VBScript" %>
<%
'----------------------------------------------
'Open HTTP connection and send XML command req
'----------------------------------------------
strURL = "http://" & Request.form ("swe") & "/
start.swe?SWECmd=ExecuteLogin&SWEDataOnly=1&SWEUserName=sadmin&SWE
Password=sadmin&SWESetMarkup=XML
ZOSet xmlhttp = Server.CreateObject("MSXML2.ServerXMLHTTP")
xmlhttp.open "GET", strURL, False
xmlhttp.send ()
Set ologinXmlDoc = xmlhttp.responseXML
strCookie = xmlhttp.getResponseHeader ("Set-Cookie")
On Error Resume Next
If strCookie = "" Then
Response.Write ("Unable to connect to Siebel Web Server. Please
check Login Name, Password, and Siebel Web Server URL")
Response.End
End If
strSessionId =
mid(strCookie,inStr(strCookie,"!"),inStr(strCookie,";")-
inStr(strCookie,"!"))
strURL = "http://" & Request.form ("swe") & "/
start.swe?SWECmd=GotoView&SWEView=Account+List+View&SWESetMarkup=X
ML&SWEDataOnly=1" & "&_sn=" & strSessionId
Set xmlhttp = Nothing
Set xmlhttp = Server.CreateObject("MSXML2.ServerXMLHTTP")
xmlhttp.open "GET", strURL, False
xmlhttp.send ()
Set oXmlDoc = xmlhttp.responseXML
'-----------
'Session Var
'-----------
Session ("SWESessionId") = strSessionId
Session ("swe") = Request.form ("swe")
'-----------
'Prepare XSL
'-----------
sXsl = "acctresponse.xsl"
Set oXslDoc = Server.CreateObject("Msxml2.DOMDocument")
oXslDoc.async = false
oXslDoc.load(Server.MapPath(sXsl))
%>
<HTML>
<HEAD>
<TITLE>My Portal</TITLE>...
<BODY>
...
<TD colSpan=2><%Response.Write (oXmlDoc.transformNode(oXslDoc))%>
</TD>
</BODY>
</HTML>
###################################################################
 
 
Note: For any examples/code snippet/commands related to the various features listed in this document, please make use of the documents listed in the reference section.
 
·      XML Response Structure
 
When you send a command block to a Siebel eBusiness SWE -XML application, you access the Siebel eBusiness XML application screens. If the action specified in the command block is successfully executed, the data and all of the objects from the resulting screen are returned within an HTTP response. The format of the response is XML, HTML, or WML, depending on the SWESetMarkup setting that was sent in the request payload.
You must develop the mechanism by which your Web server handles XML responses. Using the information provided in this section you can develop a parser, a Web application, or another control to extract the necessary data from XML responses and display the appropriate information to users.
 
·      Common Operations
 
There are various combinations of XML commands you can use to execute an action in a Siebel eBusiness XML application. Each operation below offers one solution for executing a Siebel eBusiness Application action.
 
                      i.        Logging In (Using LDAP/DB authentication/SSO)
                     ii.        Logging Off
                    iii.        Navigating to a Screen/Within the Screen
                    iv.        Querying Items
                     v.        Modifying Records
                    vi.        Deleting Records
                   vii.        Picking Records
 
 
·      SWE API
 
There are several SWE Coomands, SWE Methods and arguments available to control the Siebel eBusiness Application actions.
 
·      Manipulating Siebel XML with XSL Stylesheets and XSLT
 
SWE can perform embedded XSL transformation on outbound XML documents. This way, you can generate outbound documents in the desired markup language format directly from SWE, without requiring a middle-tier server to perform the transformation.
To do so, application developers must provide the XSL stylesheets used for the transformation and specify the names of the stylesheets to SWE.

Trouble shooting NEON Siebel Adaptor

Q1. MW has pushed a message but it is not showing up on the Siebel UI or in the database. What should I do?
You can check for any one of the below or all of the below
a. Check if the Adapters are up and running.
b. Check if the Adapters are using the right srf
c. Look for the errors generated in the folder \Sybase39\Siebel-3_9\bin. The log file names are usually
similar to the Adapter dat file names

Q2. How do I bounce the Adapters?
a. If the adapters are up, you will see an instance of ADPWatch.exe running on your desktop. Close this exe
first and then start closing all the Adapter screens. This should close all the running instances of the
Adapter
b. Double-click the ADPWatch.exe available on the desktop and click Look Now button. This will start all
the adapters.
c. Alternately you can also start the adapters by clicking on the ADPWatch.exe available in folder
\Sybase39\Siebel-3_9\bin
 
Q3. MW has pushed a message but my adapter is crashing. What should I do?
This means that there is corrupt message lying in the MW queue due to which your adapter is crashing. The only solution to this problem is to ask the Middle Ware team to clear the queue and push the message once again.
 
Q4. When do I need to extract new formats (ncm and MW formats)?
· If you have created a new IO which will be using NEON adapter to talk to Siebel Objects..
· If you have modified an existing IO which will use NEON adapter to talk to Siebel Objects
 
Q5. When does error “Port xxx busy” comes after the adaptors are restarted?
Whenever adaptors are restarted, sometime the earlier instance doesn’t release the port, hence the new adaptor instance is not able to acquire the port as per setting in .dat file. To remove this error, restart the adaptors again and if the error is still persistent then machine restart is required.

Pages

Subscribe to Siebel EAI