Вы находитесь на странице: 1из 12

Transport Adapter

Transports provide connectivity to virtually any communication protocol that can represent data as
text or binary messages, including MQSeries from IBM, MSMQ from Microsoft, and HTTP.

EAI HTTP Transport


has given rise to a need to automatically send Siebel data to external sites either on the Internet, or
outside the enterprise firewall to external Web sites. XML messages over HTTP to a target URL (Web
site)

Which Business service converts data from one encoding to another?

■ EAI Transport business services (MQ Series, DLL, File, HTTP, MSMQ)
■ XML Converter business services
■ Transcode Service business service

EAI XML Write to File combines the functionality of which two business services? Choose two.
1. EAI XML Converter
2. EAI File Transport

Named Subsystems

Enterprise-wide groupings of parameters that specify how the target application responds to inbound
messages.
 Stored in the Siebel Gateway Name Server.
 Use named subsystems to specify methods and parameters for EAI Transports.
 Transport business services take two subsystem names as parameters, which you define
using the Siebel Server Manager:
■ Transport Connection Subsystem (ConnectionSubsystem)
■ Transport Data Handling Subsystem (DataHandlingSubsystem)

Web Service

The Web Service Inbound Dispatcher converts the SOAP request to a property set. Depending on
the inbound Web Service configuration, the property set is passed to a business service or a
business process.

The property set gets returned from the business service or business process to the Web Service
Inbound Dispatcher.

Response is converted to a SOAP message and sent back to the calling external application.
The XML Gateway business service communicates between Siebel Business Applications and
external data sources using XML as the data format

To send or receive file attachments using MIME messages, Siebel EAI uses the MIME
Hierarchy Converter and MIME Doc Converter.

Business Services:
1. EAI Dispatch Service
The EAI Dispatch Service is a rule-based dispatching business service that invokes business
services based on the properties of its input property set. The EAI Dispatch Service can execute
transformations on an input property set before dispatching it to the target business service.
Such transformations can be useful for setting business service arguments or workflow process
properties.

2. EAI XML Converter


The EAI XML Converter uses integration object definitions to determine the XML representation
for data. It converts the data between an integration object hierarchy and an XML document.
Figure 4 shows the translation of an XML document into an integration object property set in
Siebel application and back again.

3. XML Hierarchy Converter


The XML Hierarchy Converter does not use integration object metadata, but instead relies on
simple rules for converting between an XML hierarchy and an XML document. The important
distinction between this service and the XML Converter is a Property Set of type XMLHierarchy,
which is always presented as a child of Service Method Arguments and as a parent of the XML
document root element.

4. FINS Industry XML Query Service/Execute

To retrieve specific Tag or attribute values from XML hierarchy that we have obtained.
Using Scripting, you write a custom business service to parse the XML and retrieve the values
and use them. Instaed you can used this BS to retrieve the values.

Before using this method IO was converted to XML Hierarchy using EAI Integration Object to
XML Hierarchy Converter/IntObjHierToXMLHier

5. Inbound E-mail Database Operations/FindRecord


Advantages-
1) Siebel Operations need the workflows to be BO based where as no such requirements are
there for Inbound E-mail Database Operations
2) You can query as many BC (from different BO) you want
3) The BO instance is not loaded in the memory throughout the workflow
Input Argument Type Value Property Name
BusComp Literal Service Request
BusObj Literal Service Request
Process
Integration Id Property Integration Id
QueryFields Literal Integration Id
ValueFields Literal SR Number,Created

Output Arguments

Output
Property Name Type Argument Value
Created Output Argument Created
IPHSRNumber Output Argument SR Number
SystemDate Expression TimeStamp()

6. SIA BC Utility Service

Vanilla BS that can be used at the BC level for performing querying and invoking a BC method.
Provides powerful features that can not be done through Siebel operation. One of the methods it
supports is, “BCNextRecord”.

This method is used to query the records in the BC. Unlike Siebel Operation, this method
provides the feature of searching the records sequentially in the queried records. It has the
following arguments:

I/p Arg: Business Component Name, Forward Only , Search Specification, From First :- This
argument specifies that the query needs to be run from first record in the BC.
O/p Arg: Row, Total, Total

Main disadvantage of using this BS is that if it does not find any record in the stated query, it
raises an error.

7. PRM ANI Utility Service

QueryBusComp method can be used to query from BC

8. FINS Teller UI Navigation

This is a very common requirement I have seen in almost all Siebel EAI implementations. We
have data flowing IN and OUT of the Siebel CRM system. It is updated in the Database alright,
but, how do we update the user on the UI. I am assuming a quick data interchange in Real-time
using a VBC or a Web Service or something similar. Whenever we update the Database using a
Workflow or a script here, the UI will not refresh automatically, and though the process would
end successfully (I hope it does), the user would never come to know about the successful
updation until he manually does a Query + Go on the Applet, or uses the famed Alt+Enter
Hotkey.
Above is the problem. What is the potential solution to it? A number of solutions actually. Some
of the most common solutions to this problem that I have seem so far are:
RefreshRecord()
This is a vanilla method declared at the Business Component level. You can directly use it in
script in certain events as per the requirement, in BC Server Script to achieve the desired
objective of refreshing the applet, on a specific event. Siebel says this will work on all Account
based BCs (if I recollect clearly). However, by my experience, two major issues:
Not all BCs I want to update fall in this category.
Even the BCs where I expect it to work, the approach doesn’t work.

Query and Go
Issues with this approach are: The performance is bad. It loses the context from the existing
record. The focus will be placed on the first record in a list of records.

SIS OM PMT Service - Disadvantage is Performance is still a pain! Solution: Use Performance BCs
in Siebel. It retains the context of the current view, but, loses the context of the record.

FINS Teller UI Navigation - The method, “RefreshCurrentApplet” refreshes the Applet, and not
the Business Component context unlike SIS OM PMT Service. It could possibly retain the context
of the current record.

XSL
Concurrent messages come
Performance of IO
Source of a query

10. Incase where Integration component field values differ between source and target
application, you would use ________________________
EAI value maps
EAI Value Maps correlate Siebel data values with external data values.

Mandatory to mention URL in Inbound webservice ?

we generate Empty Input Request Message based on a Integration Object?

EAI Queue:
The EAI Queue provides temporary storage for data in transit between Siebel Business
applications and external applications and a means by which to monitor the data exchange.

The EAI XML Queuing Service business service can be used to access the EAI Queue.

Email Response:
Siebel Email Response and Siebel Communications Server are installed with the
Siebel Server and work together to receive email and send responses

Communications Inbound Receiver (CIR). CIR pulls email from the email server, converts
the email into event data, and creates an SRM request for the Communications Inbound
Processor.

■ Communications Inbound Processor (CIP). CIP receives the events from the CIR and processes
them using workflows.

■ Communications Outbound Manager (COM). Manages outbound communications with


customers. Siebel Email Response uses the COM server component to send responses.

Siebel Email Response uses the eMail Response - Process Service Request workflow to
process structured (keyword-based or Web-form) messages. You can use keywords (such as
Help, Query,Status, Submit, and Update) when processing and creating service requests for
keyword-based email.

Unstructured email messages are processed using the eMail Response - Process Message
workflow process. This workflow process creates activity records that you can view on the
Communications screen.

Inbound Email Manager - Parse method

JMS Configuration:

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

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.

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”).

JMS defines two messaging models:


 point-to-point (by way of JMS queues)
The traditional message model, where a message is sent to a queue and later removed
by a single receiver

 publish-and-subscribe (by way of JMS topics).

Messages are published to topics, rather than sent to queues.


Interested receivers subscribe to individual topics and receive a copy of each message
published to the topic.
In order to subscribe, a subscriber registers with the topic, providing a unique identifier.

About Sending and Receiving XML


Messages whose content is XML are generally best treated as binary data and sent as
BytesMessages.

For example, the output of the EAI XML Converter is binary; therefore, if this is passed as the
input to Send, then a BytesMessage will be sent.

If XML is sent as a TextMessage, the characters will be encoded as UTF-16. Therefore, the XML
document should declare its encoding to be UTF-16.

Typically, when a message containing an XML document is received by the Siebel application, it is
desirable to convert the document to a property set representation before processing it. This is
accomplished automatically during the Dispatch step by specifying the ConverterService
argument to be either XML Converter or EAI XML Converter.

How to invoke a Workflow Process?

 Runtime Events

 Scripting

 User Property

 Workflow Policy

>> Runtime Events

We can specify runtime event at

Workflow Process: To define a runtime event in the workflow process, follow the

steps given below


Select the connecter after the start step as shown below

In the Workflow Step Branch: window below provide the details at which you

want to this workflow to execute. For example If I want my workflow to be invoked

at write record of Action buscomp then I will enter the following detail

Event Object Type: BusComp

Event Object: Action

Event: Write Record

>> Administration Runtime

Runtime Events are available in Administration – Runtime Event Screen.

We have all the corresponding events which we find in BusComp, Applet and

Application such as WriteRecord, PreWriteRecord, ChangeRecord, and PreQuery etc.

We need to remember one thing here is that Runtime events fire before the

corresponding object event.

For example
WriteRecord runtime event for object type BusComp will fire before BusComp

WriteRecord event

To call a workflow from Administration Runtime event define a Action Set

and Enter the information as shown below

Business Service: Workflow Process Manager

Business Service Method: RunProcess

Business Service Context: “ProcessName”, “Name of workflow”

Even Spaces matter in Business Service Context value after there is a space after

comma and then workflow name. Now you can define the event according to your

requirement which will call this Action Set

>> Scripting.

To call a workflow process from scripting you can use the code given below

var svc = TheApplication().GetService(“Workflow Process Manager”);

var Input = TheApplication().NewPropertySet();

var Output = TheApplication().NewPropertySet();

var rowId = this.GetFieldValue(“Id”);

Input.SetProperty(“ProcessName”, “GEAE Activity Approved by SSD

Notification”);

Input.SetProperty(“Object Id”, rowId);

Input.SetProperty(“Opportunity Id”, vOppId);

Input.SetProperty(“OwnerEmailAddress”,v_OwnerEmail);

svc.InvokeMethod(“RunProcess”, Input, Output);


Here any property that you set in input property set will be assigned to

corresponding process property in the Workflow Process (WFP) as in the above

example

Input.SetProperty(“Opportunity Id”, vOppId);

above line of code will result in process property called “Opportunity Id” in WFP to

assigned the value of variable vOppId.

>>User Property:

You can use Named Method property on BC to invoke a workflow. Example

Name: Named Method 1

Value: “New Record”, “INVOKESVC”, “Example”, “Workflow Process Manager”,

“RunProcess”, “‘ProcessName’”, “Example Wrokflow”, “‘RowId’”, “[Id]”

>>Workflow Policy:

Workflow Process can also be called from workflow policy. We can Define a workflow

policy (WFP) in Administration – Business Process >> Policy.

Steps to create Workflow Policy are not in the scope of this post. We assume here

that you have created a workflow policy record and specified appropriate conditions.

In the argument section choose

Argument: Process Name

Value: Workflow Process Name

As shown below

Вам также может понравиться