Notes On EAI
Notes On EAI
Integration Objects
The EAI Siebel Adapter accepts only the integration object of Siebel Business
Object type.
The Siebel integration object provides a hierarchical structure that represents a complex
data type.
Siebel business objects are made up of business components that are connected by a link.
An association is a business component that represents the intersection table that contains
these links.
The integration component definition of associations is similar to that of multi-value
groups (MVGs).
User properties Association and MVGAssociation on the integration component denote
that the
1
corresponding business component is an associated business component or an associated
MVG, respectively. For fields that are defined on MVG associations, External Name
denotes the name of the business component field as it appears on the parent business
component, and the user property AssocFieldName denotes the name of the business
component field as it appears on the MVG business component.
The first integration component represents the parent business component. In the
example, this is the Account business component. This integration component contains
only the fields that are defined in the parent business component, but which are not based
on MVGs. The Multivalue Link property and the Multivalue property are empty for these
fields.
The second integration component represents the MVG business component. In the
example, this is the Business Address business component. The second integration
component has one integration field for each field based on the given MVG in the parent
business component. An integration component user property will be set on this
integration component to tell the EAI Siebel Adapter that it is based on an MVG business
component. If the MVG is a regular MVG, the user property is named MVG. If the MVG
is an Association MVG, then the user property is named MVGAssociation. In both cases,
the value of the user property is Y.
To represent both names, each field is assigned an integration component field user
property that contains the entry MVGFieldName or AssocFieldName if the user property
is MVGAssoc.
If an integration component field is created for a Siebel business component field, and the
business component field is based on a picklist, the EAI Siebel Adapter or the Object
Manager validates the field. To have the validation done using the EAI Siebel Adapter,
the integration component field has a user property with the name PICKLIST and a value
of Y; otherwise, validation is done by the Object Manager.
Calculated fields are inactive in the integration object when they are created. If your
business needs require it, activate the calculated fields in the integration object.
2
NOTE: Calculated fields are those integration component fields that have the Calculated
flag checked on the corresponding business component field.
When inner joins are used, records for which the inner joined field is not set are not
returned in any query. By default the wizard inactivates such fields. If your business
needs require these fields, activate them.
NOTE: If the inner join has a join specification that is based on a required field, then the
wizard does not inactivate the fields that are using that particular join.
User Key.
Status Key.
Hierarchy Parent Key.
Hierarchy Root Key.
Modification Key.
Foreign Key.
Target Key.
NOTE: There should be just one integration component key for every type of key except
the user key. For example, if there are two Hierarchy Parent Keys defined for an
integration component, the EAI Siebel Adapter picks the first one and ignores the second
one.
NOTE: The EAI Siebel Adapter uses user keys to match integration component instances
with business component records. Because the match is case sensitive there is a chance
that records are not matched if the case of the user key fields do not match. To avoid this,
use the Force Case property on the business component field to make sure that user key
fields are always stored in one case.
For many integrations, you want to know the status. For example, if you are sending an
order request you want to know the ID of the Order created so that you can query on the
order in the future. You can set the Status Object of the EAI Siebel Adapter to True to
return an integration object instance as a status object.
The status returned is defined in the Integration Component using Status Keys. A Status
Key is an Integration Component key of the type Status Key. Fields defined as part of the
Status Key are included in the returned Status Object.
3
child quote item, the EAI Siebel Adapter checks the keys to figure out which fields are to
be set. If the Hierarchy Parent Key is not defined, then the child quote item is inserted as
a new quote item without a link to its parent (denormalized).
The EAI Siebel Wizard also returns a list of the available components contained within
the object you have chosen. When you select certain components in the wizard, you are
activating those components in your integration object. Your integration object contains
the entire structural definition of the business object you selected in the first wizard
dialog box. Only the components you checked, or left selected, are active within your
integration object. That means any instances you retrieve of that integration object
contains only data represented by the selected components.
NOTE: Always inactivate the fields rather than delete them, even though the net effect
will be the same. When you execute the synchronization task, using the Siebel EAI sync
utility in Siebel Tools, inactivated fields remain inactive, while the deleted fields are
created as active fields in the integration object.
Picklist Validation
Siebel applications have two classes of picklistsstatic picklists based on lists of values
and dynamic picklists based on joins.
Setting the property PICKLIST to Y in the integration object field directs the EAI Siebel
Adapter to validate that all operations conform to the picklist specified in the field. For
dynamic picklists, this setting is essential to make sure the joins are resolved properly.
However, for unbounded static picklists, this validation may be unnecessary and can be
4
turned off by setting the PICKLIST property to N. Even for bounded static picklists, you
can turn off validation in the adapter, because the Object Manager can perform the
validation. Turning off the validation at the EAI Siebel Adapter level means that picklist-
related warnings and debugging messages do not show up along with other EAI Siebel
Adapter messages. This also means that bounded picklist errors will not be ignored, even
if Ignore Bounded Picklist is set to Y.
NOTE: Performing the validation of a bounded picklist in the EAI Siebel Adapter is
about ten per cent faster than performing the validation in the Object Manager.
Integration object fields marked as System are not exported during a query operation.
Business Services
A business service is an object that encapsulates and simplifies the use of some set of
functionality. Business components and business objects are objects that are typically tied
to specific data and tables in the Siebel data model. Business services, on the other hand,
are not tied to specific objects, but rather operate or act upon objects to achieve a
particular goal.
A Siebel application provides a number of prebuilt business services to assist you with
your
integration tasks. These services are based on specialized classes and are called
Specialized Business Services. Many of these are used internally to manage a variety of
tasks.
CAUTION: As with other specialized code such as Business Components, use only the
specialized services that are documented in Siebel documentation. The use of
undocumented services is not supported and can lead to undesired and unpredictable
results.
In addition to the prebuilt business services, you can build your own business service and
its functionality in two different ways to suit your business requirements:
In Siebel Tools. Created at design time in Siebel Tools using Siebel VB or Siebel
eScript. Designtime business services are stored in the Siebel repository (.SRF), so you
have to compile the repository before testing them. When your test is completed, compile
and disseminate the SRF to your clients. The business services stored in the repository
5
automatically come over to the new repository during the upgrade process. General
business services are based on the class CSSService. However, for the purposes of Siebel
EAI, you base your data transformation business services on the
CSSEAIDTEScriptService class.
In Siebel Client. Created at run time in the Siebel Client using the Business Service
Administration screens. Run-time business services are stored in the Siebel Database, so
they can be tested right away. The run-time business services have to be manually moved
over after an upgrade process.
Property sets are used internally to represent Siebel EAI data. A property set is a logical
memory structure that is used to pass the data between business services.
6
The property set consists of four parts:
NOTE: In Siebel Tools, a Value argument to a method is shown with the name of
<Value>,
including the angle brackets. You can also define a Display Name for the Value argument
in Siebel Tools. This Display Name appears in the Siebel Business Process Designer
when you are building integration workflows. In this guide, the Display Name Message
Text is shown when referring to the Value argument, and the Name <Value> is shown
when referring to the Value of the value argument.
Properties. A table containing name-value pairs. You can use the properties to
represent column names and data, field names and data, or other types of name-value
pairs.
Children. An array of child-level property sets. You can use the array to represent
instances of integration objects. For example, a result set may contain an Account with
some set of contact records from the database. Each contact record is represented as a
child property set.
NOTE: Business services you create in Siebel Tools must be compiled into the Siebel .srf
file. If you intend to run the business services on your Siebel Server, then copy the
compiled .srf file to your SIEBSRVR_ROOT\Object\ lang directory.
User properties, also known as User Props, are optional variables that you can use to
define default values for your business services. When a script or control invokes your
business service, one of the first tasks the service performs is to check the user properties
to gather any default values that will become input arguments to the services methods.
7
NOTE: You cannot pass a business object as an argument to a business service method.
The EAI Siebel Adapter is a preconfigured business service that is used with any
integration process that runs through the Siebel business object layer. Integration objects
are used to update data in business objects and are used when retrieving data from
business objects. These integration objects are configurable and can be used during an
integration process (for example, entering and retrieving data from the Siebel Business
Application).
The following information is true for the examples used for the EAI Siebel Adapter
methods:
The business object data is represented as integration object data in an XML format.
The XML document or integration object instance may also be referred to as a Siebel
Message.
Fields that contain null values are not included in the XML examples.
However, these fields may be revealed when you use EAI XML Write to
File.WriteEAIMsg( ) to print out the XML.
Synchronize Method
You can use the Synchronize method to make the values in a business object instance
match those of an integration object instance. This operation can result in updates,
insertions, or deletions in the business components. The following rules apply to the
results of this method:
If a child component is not present in the integration object instance, the corresponding
child business component rows are left untouched.
If the integration object instances child component has an empty container, then all
child records in the corresponding business component are deleted.
For a particular child component, records that exist in both the integration object
instance and business component are updated. Records that exist in the integration object
hierarchy and not in the business component are inserted. Records in the business
component and not in the integration object instance are deleted.
NOTE: The Synchronize method updates only the fields specified in the integration
component instance.
8
Upsert Method
The Upsert method is similar to the Synchronize method with one exception; the Upsert
method does not delete any records. The Upsert method will result in insert or update
operations. If the record exists, it will be updated. If the record does not exist, it will be
inserted. Unlike the Synchronize method, upsert will not delete any children.
To determine if an update or insert is performed, the EAI Siebel Adapter runs a query
using user keys fields or the search specifications to determine if the parent or primary
record already exists. If the parent record exists, it will be updated. If no matching parent
record is found, the new record will be inserted.
A VBC provides a way to access data that resides in an external data source using a
Siebel business component. The VBC does not map to an underlying table in the Siebel
Database. You create a new VBC in Siebel Tools and compile it into the siebel.srf file.
The VBC calls a Siebel business service to provide a transport mechanism.
9
Use the XML Gateway business service to pass data between the VBC and one of the
Siebel
transports, such as the EAI HTTP Transport or the EAI MSMQ Transport.
Write your own business service in Siebel eScript or in Siebel VB to implement the
methods described in this chapter.
10
You can have picklists based on VBC, and use the picklist properties such as No Insert,
No Delete, No Update, No Merge, Search Specification, and Sort Specification.
You can use the Cascade Delete, Search Spec, Sort Spec, No Insert, No Update, and No
Delete link properties when a VBC is the child business component on the link.
You can use No Insert, No Update, No Delete, Search Spec, Sort Spec, and Maximum
Cursor Size business component properties.
NOTE: Custom business services can be based only on the CSSService class, as
specified in Siebel Tools.
The external business component (EBC) feature provides a way to access data that
resides in a non-Siebeltable or view, using a Siebel business component.
Many EAI business services operate on integration object instances. Because business
services take property sets as inputs and outputs, it is necessary to represent integration
objects as property sets. The mapping of integration objects, components, and fields to
property sets is known as the Integration Object Hierarchy.
Using this representation, you can pass a set of integration object instances of a specified
type to an EAI business service. You pass the integration object instances as a child
property set of the business service method arguments. This property set always has a
type of SiebelMessage. You can pass the SiebelMessage property set from one business
service to another in a workflow without knowing the internal representation of the
integration objects.
11