237
SAP PI architecture (Dual Stack) SAP PI works on 2 Engines ABAP stack ABAP stack has IE and BPE, basically this stack takes care of major tasks like pipeline processing, BPM processing etc. This is the Integration Server and supports multiple administrative tasks and act as core component. Overall flow and objects are finally saved in ABAP stack. ABAP Stack Adapters - IDOC, HTTP and PI. Java Stack Java Stack contains adapter engine which has almost all adapters Java Stack Adapters - File, JDBC, JMS, SOAP, RFC, Mail etc. It supports frontend administrative tasks, SLD, Runtime Workbench and more

PI Overview1

Embed Size (px)

DESCRIPTION

Introduction to SAP PI

Citation preview

Page 1: PI Overview1

SAP PI architecture (Dual Stack)

SAP PI works on 2 Engines

ABAP stack

ABAP stack has IE and BPE, basically this stack takes care of major tasks like pipeline processing, BPM processing etc.

This is the Integration Server and supports multiple administrative tasks and act as core component.

Overall flow and objects are finally saved in ABAP stack. ABAP Stack Adapters - IDOC, HTTP and PI.

Java Stack

Java Stack contains adapter engine which has almost all adapters Java Stack Adapters - File, JDBC, JMS, SOAP, RFC, Mail etc. It supports frontend administrative tasks, SLD, Runtime Workbench and more Graphical and Java Mapping, Client tools – ESR, ID, RWB, NWA

Page 2: PI Overview1

Understanding the Architecture

Enterprise Services Repository – Used for the design and development of Integration Scenarios.

Integration Directory – Used Configure the scenarios using the interfaces defined in Enterprise Service Repository. At design time to implement the routing logic and define the communication parameters.

Integration Engine – It is used at runtime to process the messages responsible for message queuing and delivering.

System Landscape Directory – This is used at design time to define various systems in the landscape.

Advanced Adapter Engine – This runs on the java stack and provides an environment for running different adapters.

Business Process Engine – Provides runtime environment for executing complex business processes defined in BPM (Business Process Management).

From Dual Stack to Single Stack 

The message processing capabilities of SAP PI started off with the use of dual stack functionalities of the ABAP and Java installations. An attempt towards single stack (Java only) integration was first made with the NetWeaver release of 7.1. This was in an attempt to reduce the hardware resources needed, the internal communication as well as the DB access points and increase message processing performance by by-passing the integration engine on the ABAP stack to aid local message processing on the adapter engine.

These new capabilities could only support specific scenarios that do not need any capabilities that purely reside on the ABAP stack such as certain adapters (i.e. IDoc- and HTTP-adapter) and ccBPM. This changed the name of the Adapter Engine in the earlier releases to Advanced Adapter Engine (AAE), and now to Advanced Adapter Engine Extended (AEX).

With the introduction of the AEX, almost all the capabilities that could not be supported initially when the single stack initiative began are now supported or have been enhanced. This has also paved the way towards process orchestration, in which the single stack of PI NetWeaver AEX can be co-installed with BPM/BRM. This invariably supports all the features of dual stack installation in a more flexible and agile way. Nevertheless, SAP affirmed that further releases of PI NetWeaver will continue to support the dual stack until 2020 when there will be an extended maintenance of NetWeaver 7.3.

Page 3: PI Overview1

System Landscape Directory

What is SLD? SLD is the central repository of information about the software and systems in the data

center expressed in a standard schema called the CIM (Common Information Model). CIM was developed by DMTF (Distributed Management Task Force), an industry

consortium whose aim is to enable management of IT systems in distributed environments using web standards.

SLD acts as the central information provider for NetWeaver system Landscapes. Manages platform dependencies and software components. Facilitates Installations, upgrades as well as transports. Information provider for SAP XI/PI.

Reasons /Motivation for SLD implementations Where can I get a consistent and up-to-date overview of SAP software installed in my

landscape? Where can I get technical information about SAP products –regularly updated? How can I make sure that my central administration tools use the same, up-to date

landscape information? How can I make sure that the names of Java development objects are unique internally

+ externally – although I have several development teams? Configuration of software development should be maintained centrally – including

interdependencies! Infrastructure data – like hosts and ports of back-end systems – should be stored

centrally!

Approach:Provide one central provider of landscape information:

a) Catalog of installable softwareAll components that can theoretically be installed

b) Component information repositoryList of installed software (including technical details)

c) Landscape description

Result:a) Landscape data is gathered + updated automatically

No manual gathering (from SAP Service Marketplace + every system…) Data stored centrally + consistently (not in Excel sheets, for example)

b) Stored information can act as basis for different tools and services

Page 4: PI Overview1

SLD is a component of SAP NetWeaver and completely implemented with Java technology. Based on proven industry standards of DMTF (Distributed Management Task Force):

Object-oriented Extensible Open:

– 3rd-party software as SLD data provider– 3rd-party software as SLD data consumer

SLD path: configuration of SLD and data suppliers

Access it at http://<hostname>:<HTTP port>/sld

Information Stored in Software Catalog

Provides information about all available SAP software:a) Available releasesb) Available support package levelsc) Dependenciesd) Provided by SAPe) Basis for landscape description

Information Stored in SLD: Landscape Description

Provides information about installed systems:a) Products and componentsb) Installed versions and patch levelsc) Timestamp(last update)d) Can be enriched individually(admin contact, description, …)

Page 5: PI Overview1

How Does SLD get Landscape Description: Data?

SAP systems contain data suppliers that collect and send data to SLD:

a) Must be configured once per landscape elementb) After that, they send reliable and up-to-date data automatically:

At system startup Periodically (batch job)

Information in SLD as foundation for SAP Application

The 3 dimensions of SLD

• System Landscapes have three dimensions:

• Solution Dimension – what software processes are installed

• Transport Dimension – DEV, QA, PROD

Page 6: PI Overview1

• Technical Dimension – Tells us what products are installed on which hosts on particular networks

• SLD should capture all three dimensions of the System Landscape.

Catalogs

• Two main areas of SLD are: The software catalog and the systems catalog.

• The Software Catalog describes the installed products and also their constituent components. The software catalog is delivered with content about all SAP products. Customers and Partners can extend this catalog with information about software from other vendors. It describes the component information, possible combinations and dependencies.

• The Systems Catalog describes the systems in the data center from two perspectives: a logical view (business systems) and a physical view (technical systems). It describes the concrete implementation of the customer landscape.

• Information from the software catalog is used in the ESR to organize development efforts and Information from the systems catalog is used in the ID to drive the specific configuration of Integration Scenarios.

SLD Functions

• Importing/synchronizing PPMS data as XML file into Master Component Repository at the SAP site. The Master Component Repository contains the up-to-date information about all SAP products. This will be published on the Service Market Place and Customers can update their individual component information. They can also add additional information about the 3rd party products which are in operation into their individual component information.

Page 7: PI Overview1

• The Landscape description contains information about all installed products/components at the Customer site.

• Applications and Tools can use information from the SLD as the central information provider.

Products and Software Components

• Software products and their versions, SWC and their versions are the basis for the component information.

• Software Component: A SWC is a unit of software delivery that has its own support package track. (Ex: SAP_HR, SAP_BASIS, etc.)

• Product: A software product is composed of one or more software components.

Page 8: PI Overview1

(Ex: SAP R/3)

• Product Version: Specifies a particular version of a product.

(Ex: SAP R/3 4.6c, 4.6d, 4.7)

• Software Component Version: Represents a particular version of a SWC.

• The relationship between a software product and its constituent components is described in the SLD by an association called a software feature.

• A product version consists of multiple software features. These features are implemented by various SWC or SWC versions

• The product SAP R/3 Enterprise has a product version SAP R/3 4.7

• Various software components (or versions) fill the features of this software product. These software components (or versions) are SAP Basis 6.20, SAP HR 4.70, and SAP Enterprise Retail 1.10.

• The data for SWC and software products for SAP products is provided by the internal PPMS (SAP Product and Production Management System).

• SAP provides this master data for updating the local component information. The current data can be added to the SLD using data import.

• Defining third party products and software components is easy in SLD, because there are wizards to guide you through the process.

Technical & Business Systems

Page 9: PI Overview1

• Technical Systems are defined in the Systems catalog. Technical System corresponds to the physical details of the system in which the software is installed.

• Types of Technical System

• Web AS ABAP

• Web AS Java

• Standalone Java

• Third-Party

• A Technical System may have multiple products installed on it.

• Business systems are logical senders/receivers that exchange messages by using SAP XI and these are entered in the SLD (System Landscape Directory)

• Technical Systems are the basis for defining Business systems. SLD defines the association between Technical and Business Systems.

• The association between the Technical and Business systems depends upon the type of the TS (Technical System).

• For TS of type Web AS ABAP, each client is a Business System. This is similar to depicting each client as a Logical system in ALE Configuration.

• There are wizards to guide you through the process of creating technical and business systems. You can launch these wizards from the main screen of the SLD.

SLD and ESR

Page 10: PI Overview1

• All design/development work in the ESR (Enterprise Service Repository) is organized by SWC version. This makes us understand the interfaces logically belong to a SWC and to a particular version.

• Before developments can begin, the SWCVs’ must be imported from the SLD to the Enterprise Service Repository.

• Additionally when we define integration scenarios in the ESR, the application components that we assign in the scenario editor are assigned from product versions in the SLD.

• Dependencies between SWCVs’ can be created in the SLD and these dependencies will automatically be reflected in ESR.

SLD and ID

• At configuration time a collaborative process is set up for a specific system landscape. The configuration data is organized, structured, and saved in the ID (Integration Directory) in the form of configuration objects.

• A Service is used to address a sender/receiver of messages during the configuration time.

• It is possible to address a particular Business System as a service.

• A business system (BS) is an actual application system in a system landscape.

• A business system (service) has information about the inbound/outbound interfaces and the SWC versions of the business system.

• Business system services are used when configuring internal company processes.

Business System

Receiver ServiceBusiness System

System Landscape Directory

Technical System

Integration Directory

Sender ServiceBusiness System

Routing Relations

Page 11: PI Overview1

• Routing Relations in the ID point to the BS which are maintained in the systems catalog in the SLD, and through appropriate association, to the technical systems.

• Transport dependency also can be created in the SLD for the Business Systems defined.

Cache Refresh

• The Enterprise Services Repository needs to communicate with the Integration Directory (for the cache refresh mechanism) and the System Landscape Directory (to obtain physical channel data).

• The Business Systems create in SLD can be imported to ID before configuring the scenarios. Any changes made to the Business system can leads to re-import the business systems into ID along with SLD cache refresh.

• Configuration data maintained in Integration Directory is replicated to the involved runtime engines by a cache refresh mechanism.

• SXI_CACHE transaction is used to update the runtime cache in the Integration Server.• The update of SLD cache in ESR and ID results to maintain the runtime data like Business

systems, SWCVs, etc. to improve the performance.

SAP NetWeaver Process Integration as SLD Client

Main SLD use cases for SAP NetWeaver PI:1. SLD provides business system names:

Business systems are logical systems that function as sender or receiver within PI SLD maps “business system name” to “technical system” so that PI can determine the receiver

of a message

2. SLD provides transport targets for content transports of PI: For each business system, define which business system corresponds to it in other environment

(DEV, TEST, QA, PROD) If you transport configuration objects, business systems from source environment will be

mapped to target environment during import

3. SLD provides information about software component versions.4. SLD provides data of PI topology:

Systems and adapter engines for PI end-to-end monitoring Addresses for transfer of adapter configuration data inside of PI

SAP PI Rely on SLD for following a) PI caches SLD datab) SLD access required if you develop or deploy PI transportc) SLD access required during PI startup: At startup, PI loads SLD data into caches

Page 12: PI Overview1

d) SLD access might also be required during runtime: Such as for unexpected restart of PI system

Topology of SLD

Central Organization: One single SLD for entire customer enterprise network which entails into Easy setup + low operation effort, No redundancy, consistent foundation but suffers few drawbacks like High demand on SLD regarding availability and stability, Different user groups(developers, administrators,…) are working within the production SLD, Data of all systems visible/accessible.

Distributed Organization: Several distributed SLDs which have advantages like Availability improved, Restricted views possible, Environments can be isolated but again this topology also suffers some Drawbacks Higher operation effort may be Several CIM model updates required or Possible synchronization

Enterprise Services Repository (ESR)

SAP PI is a middleware used to configure the data transmission from one system to another system. During these data transformation and transmission process a set of object are created to map source data to target data and further a set of configuration are done in order to route data from source system to target system. ESR is workplace where in all objects created for data transformation from source system to target system and ID is workplace where routing configuration of these data are done.

The Enterprise Services Repository stores the definitions and metadata of enterprise services and provides an integrated modeling environment for defining enterprise services, data types, and other design objects for SOA-based business processes in a standards-compliant manner. Using the ES Repository, you can store all the necessary information for the integration of applications, for example interfaces, data types, and mapping programs, in a central location.

Page 13: PI Overview1

Enterprise Service Builder ES Builder offers a modeling environment to create various models in the Enterprise Services Repository (ES Repository). It provides a java based user interface for designing and developing the data structures and mappings between structures

ESR Objects

• Data Type: Data Types are the field element structure of a message .The Data Type is the most basic entity to define the structure of XML elements. Data Types are based on XSD data types

• Message Type: A Message Type is identified by a name and namespace. This becomes a root element tag in the XML of the message payload.

• Service Interface: A Service Interface represents the metadata description of the messages and operations to be used at runtime. The Service Interface is the highest level representation of XML metadata.

SAP PI- Mapping

Types of Mapping:

Message Mapping

• Represents the mapping of messages

• Supported by a graphical mapping editor

• Structure and Value Mapping possible

• Extensible via Java- User defined functions

XSLT Mapping

• Interface descriptions are in XML

• Portable

• Extensible via Java enhancements

Java Mapping

• Can import java archives for complex mapping logic

• Uses JAXP for processing XML documents

• Java and XSLT mapping runs on J2EE engine of WEB AS

ABAP Mapping

Page 14: PI Overview1

• Mapping programs written in ABAP objects

• Uses IXML functions to process the XML messages

Operation Mapping

• Operation Mappings associate a Message Mapping to an outbound and inbound Service Interface. This now begins to create the association needed for the Integration Builder to ultimately route an incoming message to the correct mapping and target system.

Services Registry

Services Registry represents a registry for Web services. Located centrally within a SOA landscape, it contains information about services provided in that landscape, with references to the services’ relevant WSDL metadata and to the locations of the callable service endpoints.

• Services Registry enables to discover and retrieve services and to use them in composite applications.

• That means applications make use of data and functions provided as services by underlying applications and combine these into coherent business scenarios.

Integration Directory (ID)

In the Integration Directory -configure a business process that are modeled and specified in the ES Repository.

Page 15: PI Overview1

• This means the following: set up the business process for a specific system landscape. Here specify the components that communicate with each other (usually business systems) and other details of the communication. These other details can include,

• For example, routing rules, which determine the receiver a message in a process is to be forwarded to, or the configuration settings of the adapter used for the connection of non-SAP protocols or systems

• Business Component – Used in cross-company processes where the Party cannot be fully defined. They represent business or technical sub-units

• Integration Process – As a Business Process defined in the Repository are recipients of messages (for process step triggering) or can send them, they are considered a Service and modeled here

• Business System – Business Systems as defined in the SLD (specific application system in the system landscape) are represented here in the Directory

• Business Service - We are created in Integration Directory.

Collaboration Agreements

Collaboration Agreements define the technical details for message processing (ex. Adapter configuration) and security settings for sender / receiver partners. The primary building blocks are Sender Agreements and Receiver Agreements

• Sender Agreement: A Sender Agreement is used to transform an incoming message so it can be processed by the Integration Engine. This allows the Integration to understand the protocol of the incoming message (via the associated Channel) to processes it as needed

• Receiver Agreement: A Receiver Agreement is used to transform an outgoing message so it can be processed by the receiver. It is here the sender service is linked to a unique receiver Communication Component / inbound Service Interface via communication channel

Logical Routing

Logical Routing relates the previously defined Service Interfaces in the Repository to potential receivers and ultimately which Service Interfaces are specifically shared between partners. As seen in the Roadmap, the primary building blocks are Interface Determination and Receiver Determination

• Interface Determination: An Interface Determination allows the association of an outbound Service Interface from a sender to one or more inbound Service Interfaces of a single receiver (and the related Operation Mapping).

Page 16: PI Overview1

• Receiver Determination: Receiver Determination will link all available recipients of an outbound Service Interface from a unique sender Service, the Interface Determination focuses on a single sender / receiver pair for that same outbound Service Interface and all the related inbound

Interface Flow in SAP PI

Runtime Workbench (RWB)

• The central monitoring of SAP Exchange Infrastructure (XI) offers you the option of executing various monitoring activities. Primarily, you use the Runtime Workbench, the central tool for accessing XI monitoring.

• The Runtime Workbench gives you the option of navigating to the monitoring functions of the Integration Engine, as well as integration with the Computing Center Management System (CCMS), and the Process Monitoring Infrastructure (PMI) of SAP

Page 17: PI Overview1

Component Monitoring

In component monitoring the following engines will be displayed

• Integration Engine

• Business process engine

• Mapping Program

• Adapter Engine

Testing an interface using Runtime Workbench in PI (Integration engine)

Runtime Workbench (RWB) is used as a quick test tool for sending the payload directly to Integration Engine in SAP PI.

• Step 1. Get the payload in XML format as expected by Integration Engine. This can be the payload from SXMB_MONI for an already tested scenario.

• Step 2. Log on to PI Runtime Workbench (RWB) Click on Display button under Component Monitoring as shown below.

Page 18: PI Overview1

• Step 3. Click on Integration Engine.

• Step 4. Click on Test Message as shown below.

Page 19: PI Overview1

• Step 5. Provide Sender Service Name, Interface Name and Interface Namespace.

Select the Quality of Service (QoS) as applicable.

Paste the Payload to be sent.

Provide User Details and Click on Send.

• And you can see the status as shown below.

Page 20: PI Overview1

Communication Channel Monitoring (Adapter Engine)

• Go to Component Monitoring and click on Adapter Engine

• Now click on Communication channel monitoring as shown in below

Page 21: PI Overview1

• Now filter the existing channel s using the status of the channels by selecting the status type present the status option

• By selecting any of the option we can get the list of channels as follows

Page 22: PI Overview1

Message Monitoring

• Go to Message monitoring tab and select the engine

• i.e. Adapter engine or Integration engine

• Filter the messages according to the requirement and based on the sender / receiver components

Page 23: PI Overview1

• Filter the message based on the status

Message details in message monitoring

• To see the detailed information about the message, select the radio button for the message and choose details

• To view the individual versions of the message (as in transaction SXI_MONITOR) choose message content

Page 24: PI Overview1

PIPELINE Steps

Page 25: PI Overview1

Pipeline is the term used to refer to all steps that are performed during the processing of an XML message.A pipeline represents a fixed processing run for particular XML messages and differs from other pipelines depending on the configuration of the Integration Engine. There are pipelines for a local Integration Engine in the sender or receiver system, or for a central Integration Engine that is configured as the Integration Server, for example.The individual processing steps that an XML message must pass through when it is processed are called pipeline elements. Each pipeline element calls exactly one pipeline service.Pipeline services provide functions for processing XML messages. They read and can change inbound XML messages, for example, the mapping or routing. They can also call processing processes, for example functions to create business data in an SAP component. The service type, number, and sequence are specified for each pipeline and cannot be changed.The pipeline services are either part of the Integration Engine itself or originate from other areas of the SAP Exchange Infrastructure. A pipeline service can be used by more than one pipeline element.

The pipeline consists of 6 steps (for a asynchronous message) that are executed for each new message arriving

1. Receiver identification

2. Interface determination

(1 and 2 together means logical routing)

3. Message split, only takes place if there are more than one receiver)

4. Message mapping

5. Technical routing through the communication channel

6. Calling the appropriate adapter

Page 26: PI Overview1

Receiver Identification: Determine which systems should participate in an exchange with the incoming message.

Interface Determination: For each receiver system determine which interfaces should receive a message.

Message BranchIf multiple receivers are found, XI will instantiate a new message for each receiver.

Message MappingCall the mapping program to transform the me Message structure to the receiver format.

Technical Routing: Bind a specific destination and protocol to the message.

Call Adapter: Send the transformed message to the adapter or proxy

Page 27: PI Overview1

Mapping Messages to Each Other Using Mapping Objects 

Purpose

In the Enterprise Services Repository (ES Repository), interface descriptions of function calls (interfaces) are

saved in XML format. The parameters of these interfaces determine the contents of the messages that are

exchanged between systems (see also: Interface-Based Message Processing).

A mapping refers to the mapping of operations or messages to other operations or messages. You often need

to work with mappings if you need to call functions whose interface at the receiver cannot or must not be

changed, or if the sender and receiver expect data in different ways in their message format.

You can define one or more mappings for an interface pair at design time, and save the mappings in the ES

Repository. At configuration time, you can then select the mapping that corresponds to a given collaborative

scenario. The Integration Engine transforms the message at runtime, in accordance with the saved mapping.

Ideally, no mapping is required. In other words, the sender and receiver interface parameters are identical.

Implementation Considerations

Mappings are an essential part of A2A and B2B scenarios. At design time mappings can be saved in the ES

Repository and then selected for a business process at configuration time (see: Defining Interface

Determinations). The Integration Engine executes the mappings configured in the Integration Directory at

runtime after receiver identification has taken place. If no mapping is required for a connection then the

Integration Engine skips the mapping step.

Features

At design time, you differentiate between the following:

●      Mapping Programs: Used to implement the mapping.

●      Operation Mappings: Used to register mapping programs for an interface pair (or a pair of operations for

a service interface). You can also enter multiple mapping-programs that are executed in succession.

Mapping Programs

The Enterprise Services Builder (ES Builder) supports the following:

Page 28: PI Overview1

●      The development of message mappings using a graphical editor integrated in the ES Builder. Java

classes are generated for use at runtime from a graphical description. You also have the option of

enhancing the standard functions with user-defined functions.

●      The import of XSLT or Java mappings as an archive:

○       XSLT (eXtensible Stylesheet Language Transformations)

You use XSLT to convert an XML document to another document. This is achieved by using

XSLT commands to search for tags in the source document and replacing them with other tags

or values in the target document. You can also call a Java method in an XSLT program.

○       Java program

The message is transferred to a Java program as an inbound stream and can be imported using

any parser (for example, SAX or DOM). The modified message is then transferred to an

outbound stream.

A Java program can also be a help program that in turn is used in another Java program or in

self-defined functions of a message mapping.

If, for example, XSLT mappings already exist or are to be developed using third-party tools, you can

import the mapping programs for use in your A2A or B2B scenario.

Overview  You can define mappings for a source and target operation based on operations from service interfaces and

message types in the ES Repository:

You can also define the corresponding mappings when the source or target operation is an IDoc,

an RFC, or another interface connected by an adapter.

Page 29: PI Overview1

The figure shows that you can reference message types for three different application cases for each

operation.

●      Request (asynchronous and synchronous communication)

The request is the message that the consumer sends - using an operation in the outbound-service-

interface - to a corresponding operation in the inbound-service-interface.

●      Response (synchronous communication only)

The response is the direct response that the consumer waits for after the request message has been

sent. The message is sent from the provider (inbound-service-interface) to the consumer (outbound-

service-interface).

●      Fault (asynchronous and synchronous communication)

Message that is either sent to the consumer (synchronous) or persisted for monitoring (asynchronous) if

an error occurs at the provider.

The arrows in the figure indicate the direction of message exchange at runtime: In the context of mappings, the

operation that sends a message is also referred to as a source operation, and the operation that receives a

message as a target operation. You can define mapping programs for mapping the message type of a source

operation to the message type of a target operation (depending on the type of operation for the request,

Page 30: PI Overview1

response, and fault message). The Enterprise Services Builder supports the following mapping programs for

this purpose:

●      Message mappings that you define using a graphical editor in the ES Builder. This is used to create a

Java source code for the runtime.

●      XSLT and Java mappings that you can import into the ES Repository as an archive.

●      XSLT and ABAP mappings that customers can implement using the ABAP Workbench (see Mapping

Development with the ABAP Workbench).

Essentially it is possible to create or import multiple mapping programs in the ES Repository for the same

message type pair (or the corresponding part of an imported or external interface).

Comparing Mapping Program Types

SAP recommends that you use message mappings. However, in exceptional cases it may be advisable to use

different mapping programs, for example, because you can apply XSLT or Java mapping programs from a

previous integration project.

Note the following regarding the speed at which the mapping program types are executed:

●      Handwritten Java programs by experienced Java developers are usually quicker than generated Java

source code from message mappings.

●      Message mappings can cope with significantly larger messages than XSLT. Whether an XSLT program

or a message mapping is quicker depends on the complexity of the mapping. Tests have shown that

even message mappings for larger messages are quicker than the equivalent XSLT mapping programs.

●      Experience has also shown that Java-based mapping programs are quicker than ABAP-based mapping

programs.

Operation Mappings

When defining mapping programs for request, response, or fault messages, the definition is first separated

from the operations that reference the corresponding message types. You can use the same message type for

multiple operations. The definition of a mapping program therefore remains decoupled from a specific interface

pair that you use later to implement the communication between the sender and receiver. Furthermore,

depending on the type of operation, there can be multiple mapping programs that can be applied for a specific

interface pair.

The operation mapping establishes the connection between operations by means of mapping programs:

●      An operation mapping specifies the corresponding mapping programs for request, response, or fault

messages for a selected pair of operations. You register mapping programs at design time by using an

Page 31: PI Overview1

operation mapping. In this respect, an RFC or IDoc is on the same level as an operation (more

information: Interfaces, Operations, and Message Types).

●      You can also specify multiple mapping programs to be executed one after the other in the case of

requests and responses for an operation mapping.

You can also define multiple operation mappings for the same pair of operations, to provide multiple variants in

the ES Repository. At configuration time, the customer or the consultant only accesses the operation mappings

and not the individual mapping programs. This reduces the configuration effort for an interface determination

in the Integration Directory.

Structure and Value Mapping

There are two types of mappings, regardless of the mapping technology that you use:

●      Structure mappings where the structure of an XML document is mapped to the structure of another XML

document.

●      Value mappings where the values of an XML document are mapped to the values of another XML

document.

Example

In the example below, data about a flight booking is exchanged using XML documents. The XML schema of the

source document provides more hierarchy nodes than the XML schema of the target document. Furthermore,

the target document schema does not use all the information that is provided by the source document schema.

Both structures can be mapped to each other by using a structure mapping.

An example of when a value mapping is required is for the passenger class on a flight. In the source document,

this information is coded by using a string, while in the target document, a decimal value is used. Another

example of a value mapping would be the date format.

 

Using the ES Builder graphical mapping editor, you can define structure mappings easily using Drag & Drop.

You can then use a function to assign fields to each other from source and target structures that require a value

mapping.

 

 

 

 

 

Page 32: PI Overview1

General Functions in the Source and Target Structures

Filter

To increase overall clarity, you have the option of reducing the number of fields displayed in the source structure, target

structure, and test environment to a specified subset. The following table gives you an overview of the possible filter

settings.

Filter Setting Source

Structure

Target

Structure

Test

Environment

Display Fields with Mapping Only X X

Display Fields Without Mapping Only X X

Display Directly Assigned Fields Only X

Display Indirectly Assigned Fields Only X

Display Selected Fields Only X

Display Used Fields Only X

Filter for Selected Fields in Target Structure

To display any number of target fields in the target structure, in the menu bar for the target structure, choose Display

Selection Column ( ).

The mapping editor displays an additional column in which you can select the fields you require. By using the where-

used list (see below), the mapping editor can also select any fields that the where-used list contains.

Differentiating Field Names on the Same Hierarchy Level

The field names of the source and target structure must be unique. The mapping editor supports identical field names on

the same hierarchy level in the following way:

●      Fields of the source and target structure can be qualified by namespaces

●      Attributes are differentiated from elements by a proceeding at sign (@) in the mapping editor.

Access Paths for Fields

For fields in the structure overview (on both the Definition and Test tab pages) you can copy the path for a field to the

clipboard by choosing the context menu option Copy Path. This also applies to fields in the data-flow editor.

Recursive Structures

The mapping editor does not fully support the mapping of recursive structures (data types that reference themselves). In

the structure overview, elements of this type are indicated by means of an icon ( ).

Page 33: PI Overview1

Due to their recursive nature, the substructures of these elements can theoretically be infinitely long. It is possible to

map these elements in the mapping editor in a rudimentary fashion by using the context menu to expand a specific

number of subnodes and then use them in target-field mappings.

Where-Used List (Source Structure Fields and Functions)

●      You can display the fields of the source structure or functions in a where-used list:

●      Position the cursor on a field to display a quick info that contains information about the target fields this

particular field is assigned to by means of a target-field mapping.

●      To display a where-used list for a particular field or function, choose Where-Used List in the context

menu. You can navigate directly to the target fields that a particular field or function is assigned to.

If a field or function is used for multiple target fields, you can easily filter it out of the target structure:1. ...

1.        1.      In the menu bar of the target structure, choose Display Selection Column ( ).2.        2.      Call the context menu for a source field or function.3.        3.      In the menu for the where-used list, choose Select All Fields (<Number of Usages>) in

Target Structure.

Special Functions: Target Structure

Navigating to Target-Field Mappings

If a field in the target structure is green or yellow, this indicates that an incomplete target-field mapping already exists.

Double-click a field to display it in the data-flow editor.

Target-Field Mappings for Particular Positions

To define target-field mappings for different positions of a target element that occurs frequently, the context menu for

the target structure has the function Duplicate Subtree (see: Duplicating Subtrees). You have the option of deleting any

duplicates that you create.

Disabling Fields

A mapping is complete when there is a target-field mapping for all obligatory target fields. In cross-system scenarios

where the values for such fields are not entered during mapping, but at a later point in time, this specification is too

restrictive. To disable a target field and all its subnodes, choose Disable Field in the context menu in the structure

overview. The mapping editor shows disabled fields crossed out. The check and the mapping runtime ignore disabled

fields.

Page 34: PI Overview1

Displaying the Status

Icon Types

Icon Meaning

Attribute

Element

Element with maxOccurs = unbounded

Variable

More information: Variables in the Target Structure

Icon Colors

Color Meaning

White Attribute or element not assigned

red Attribute or element must be assigned to complete the mapping

yellow Attribute or element has already been assigned but the corresponding

mapping in the data-flow editor is not complete

green Mapping to target field complete

Furthermore, collapsed target field names in the mapping editor are displayed in red if target field mappings for

subnodes of the marked field name are still missing.

Runtime Procedure 

The mapping editor generates Java source code from the graphical description of the message mapping. This section

gives you an overview of how the generated Java source code processes an XML source structure at runtime.

Basics

In the mapping editor you assign the fields of two XML structures to each other. Note that at runtime no target structure

exists prior to the mapping. The target structure is only generated when the mapping is executed.

The message mapping must therefore generate the target structure at runtime. Two things determine how the target

structure looks after it has been generated:

        The number and type of tags which exist in the source structure instance

        How often the target fields are specified to occur in the target structure

Occurrence

In both cases, this in turn depends on the value for Occurrence that you specified in the type definition in the XSD editor.

The values for are mapped to the XSD attributes minOccursand maxOccurs. You can display these attributes in the

Page 35: PI Overview1

tabular tree view. minOccursspecifies the minimum number of times a tag must occur, while maxOccurs specifies

the maximum number of times a tag may occur. The root node occurrence is minOccurs=maxOccurs=1 in both the

source structure and target structure.

If the occurrence of a tag in the source or target structure is not explicitly specified, the mapping

editor makes this visible to the user. These default values correspond to the XSD specification

(minOccurs=“1“, maxOccurs=“unbounded“).

Contexts

XML structures are ordered hierarchically. Therefore, in an XML instance a field is always in a context of the higher-level

field. For example, in the following XML instance the <flat> fields are in the <street> context and the <city>

fields are in the <root> context.

<root>

<city>

<street>

<flat />

</street>

</city>

</root>

Processing Message Mappings

The message mapping processes the source structure and generates the target structure according to the target field

restrictions and according to the target field mappings linked to the target fields. The processing procedure is intuitive

for simple occurring fields. To understand the processing, you need to differentiate between two levels:

        Mapping Fields Within a Context

        Structure Mappings by Setting the Context

Page 36: PI Overview1

Mapping Fields Within a Context 

The way in which a message mapping field maps within a context depends on whether it is a structure field or a value

field. Structure fields are elements with sub-elements that cannot have their own value. Attributes and elements with a

type (“leaf nodes” in the hierarchy) are value fields.

Mapping Structure Fields

The question of whether or not to generate structure fields depends on how often they occur in the target

structure and whether a target field mapping has been defined for the structure field. The following table

provides an overview of when you have to define target field mappings for structure fields according to the

schema definition of the target structure. The mapping editor shows these fields in red.

Target Field Mappings Required for Structure Fields in the Target Structure

Occurrence Conditions for Generation

n = minOccurs = maxOccurs > 0 Message mapping generates these structure fields automatically

because they have to occur n times in the target structure

independently of the target field mapping. You can nevertheless

assign a target field mapping to such structure fields (for example, by

using the standard function createIf() to select the correct source

structure field from a selection of several).

minOccurs = 0 The structure field is optional. Whether or not it is generated depends

on whether you have assigned a target field mapping to it (for

example a structure field of the source structure). Note the following:

        If you assign a target field mapping to the structure field, you

have to do the same for obligatory sub-elements/attributes. If

you do not, the message mapping is incomplete (the mapping

editor indicates this by showing it in red).

        If you want to generate optional structure fields it is not

sufficient to generate a target field mapping for

sub-elements/attributes. The message mapping suppresses

optional structure fields (including sub-nodes) without a

target field mapping.

The number of times that optional structure fields are generated is

bounded by maxOccurs and the target field mapping. The same rules

apply here as to value fields (see below).

Page 37: PI Overview1

0 < minOccurs < maxOccurs You have to define a target field mapping for these structure fields.

The number of times that these structure fields are generated

depends on minOccurs, maxOccurs and the target field mapping.

The same rules apply here as to value fields (see below).

For information on how to transfer structures from the source structure into other structures, see Structure Mapping by

Setting the Context.

Occurrence of Value Fields and Structure Fields

Even if a source field in accordance with an XML schema definition is not limited in how often it can occur, it only actually

occurs in the XML document for which the message mapping was executed. The target field attributes minOccurs and

maxOccurs then determine how often it occurs in the target structure. For the purpose of the statements below,

sourceElem is a source structure field and targetElem is a target structure field that is assigned to this field in the

mapping editor (without using functions):

        The targetElem tag with minOccurs=“<n>“ occurs a minimum of <n> times in the target structure. If

sourceElem does not occur a sufficient number of times in the source structure, the mapping runtime

throws an exception.

        The targetElem tag with maxOccurs=“<n>“ occurs a maximum of <n> times in the target structure. If

sourceElem occurs more frequently in the source structure, values are lost. If it occurs less frequently,

then an equal number of target and source fields are generated.

The mapping runtime ignores default values that are contained in the XSD schema for fields.

Generating Functions

The standard functions of the Constants function category do not have an input value. Therefore, they generate a

value for a target field instead of taking it from a source field. In addition to these functions, all functions (regardless of

whether they are standard or user-defined functions) that do not have input values are referred to as Generating

Functions.

If generating functions are assigned to a target field, the attributes minOccurs and maxOccurs determine how

frequently a value is generated:

        If minOccurs = 0 the value of the function is generated once.

        Otherwise, the value of the function is generated as often as is specified by minOccurs.

This applies regardless of the value set in maxOccurs. Even if maxOccurs = “unbounded“, the

mapping runtime will still only generate the value as often as is specified by minOccurs.

Page 38: PI Overview1

If generating functions are assigned to a function, it is the input queue with the most values for the current context that

determines how often the generating function generates a value (see also: Processing an Input Queue).

Structure Mapping by Setting the Context 

In the default setting, each field is in the context of the higher-level field.

Fix and Foxy are in the first flat context, Jolly Jumper and Lucky Luke are in the second, and all four are in the first street

context. The first <street> field is in the first city context and so on.

Let us assume that you want to map this structure to the following list to include all those people from the first city and

the first street:

<personList minOccurs=”1” maxOccurs=”1”>

  <person minOccurs=“0” maxOccurs=”unbounded“>

Page 39: PI Overview1

The root node (in this case <personList>) always appears exactly once. This is displayed

explicitly in the target structure.

You want to list all four people from the first street context (Fix, Foxy, Lucky Luke, and Jolly Jumper). Define a target field

mapping for <person>:

\personList\person=\root\city\street\flat\person

This XML instance produces the following result:

<personList>

   <person> Fix </person>

   <person> Foxy </person>

</personList>

It only generates Fix and Foxy from the first flat context. To understand why this is the case, we can look at the

processing:2. ...

4.        1.      The root node <personList> is generated because it is obligatory.5.        2.      The message mapping checks in the <personList> context whether there is a target field

mapping for \personList\personand whether there are values for this in the XML instance. The mapped \root\city\street\flat\person field is in the first flat context.

6.        3.      The message mapping generates fields in the target structure for Fix and Foxy in the first flat context. Once the first flat context has been processed it is closed along with the <personList>context in the target structure.

The transformation is completed with the last step because all target structure fields have been processed. The example

shows the following:

        The <flat> structure node is implicitly assigned to the <personList> root node during mapping.

<personList> is generated as often as is predefined in the schema, therefore once (see also:

Mapping Fields Within a Context).

        The list only includes Fix and Foxy because they are in a different context to Jolly Jumper and Lucky

Luke.

You can set the context individually for each field in the source structure in the Data-Flow Editor context menu. If you set

the <street> context for \root\city\street\flat\person, then prior to the mapping, all <person> fields

are appended to the next highest field, which is <street>. Depending on how you set the context in the source

structure, you will get the following results:

Structure Mappings Using Different Contexts of the <Person> Source Field

Page 40: PI Overview1

Context of \root\city\street\flat\

person

Results list

flat (default setting) <personList>

   <person> Fix </person>

   <person> Foxy </person>

</personList>

street <personList>

   <person> Fix </person>

   <person> Foxy </person>

   <person> Jolly Jumper </person>

   <person> Lucky Luke </person>

</personList>

city <personList>

   <person> Fix </person>

   <person> Foxy </person>

   <person> Jolly Jumper </person>

   <person> Lucky Luke </person>

   <person> Asterix </person>

   <person> Obelix </person>

</personList>

root <personList>

   <person> Fix </person>

   <person> Foxy </person>

   <person> Jolly Jumper </person>

   <person> Lucky Luke </person>

   <person> Asterix </person>

   <person> Obelix </person>

   <person> Valerian </person>

</personList>

The removeContexts() standard function assigns the fields assigned to it to the root node. You

will get the same effect if you assign the root context to this type of field.

Page 41: PI Overview1

The higher-level context of an attribute is the element to which it is assigned. The above

statements relating to fields also apply to attributes.

Technically speaking, the XML instance is imported into the queues before the target field mappings are processed. The

contexts are separated in the queue by a context change. You can address these queues directly in advanced user-

defined functions.

Processing an Input Queue 

The message mapping runtime uses queues (see also: Advanced User-Defined Functions):

        There is a queue for each field in the source structure.

        Standard and user-defined functions process the input queues. The result of a calculation is written to a

results queue.

        The results queue for a function can in turn be an input queue for further functions.

        Finally, there is also a queue for the target field. The restrictions for the target fields determine which of

the values for the target field queue are written to the target structure.

If you have created an XML instance in the test environment editor, you can display the various queues in the data-flow

editor.

Input Queues of Varying Lengths

If the source structure contains elements with an occurrence value greater than 1, then one context in a queue may

contain multiple values. Provided that the input queues have the same number of values for each context, it is clear how

the function processes the values:

Page 42: PI Overview1

However, in the following example, the input queues for the concat function have a different number of values in the

contexts that belong together. If, as in this case, an input value is missing in a queue, the message mapping runtime

simply uses the last value that it read from the queue in question.

The same applies for generating functions (constants, for example) that only generate one value if they are connected

with a function: If another input queue has more than one value in a context, the mapping runtime simply uses the value

generated by the generating function again.

Standard Functions 

General

Values of elements or attributes of the XML message (the payload ) are technically speaking a string. Therefore, all

standard functions that operate on field values expect string arguments and return a string value. Nevertheless,

the transferred value can of course have a different semantic data type, namely, the one that you specified when you

defined the schema for the payload for the field. Standard functions exhibit the following standard behavior:

●      Depending on the standard function, data type conversions are used to ensure that the values are

transferred in a format suitable for the function (using a cast). If the value cannot be interpreted, the

mapping runtime triggers a Java exception.

●      If-clauses evaluate conditions that return Boolean values. Standard functions that return Boolean values

return the string true or false. Standard functions that expect Boolean values interpret the values “1”

and “true” (not case-sensitive) as true and all other values as false.

See also: Runtime Behavior

Page 43: PI Overview1

Overview of Functions

Data-flow objects for standard functions are structured as follows:

●      Most data-flow objects have two or three inbound channels on the left-hand side, and one outbound

channel on the right-hand side.

●      If-functions are shaped as rhombuses or triangles.

●      There are also conversion functions with one inbound and outbound channel and functions that return a

value without any input.

●      Standard functions that require additional specifications are indicated with a star ( ). To call the dialog

for Function Parameters, double-click the data-flow object.

The following figure provides an overview of all the different forms of data-flow objects:

To illustrate how the individual functions are used, the input boxes in the figure above have the variables X, Y, Z or I,

and the result variable is either R or O. All standard functions in the tables below are described using these input and

output variables. In the data-flow editor, other data-flow objects that are connected to the functions using the

connecting boxes either return the input values or receive the result of the operation. You can combine the functions in

any way you require (provided that the values transferred to a function can be interpreted).

Function Category: Arithmetic

You can only enter numerical values for this category (this includes values with digits after the decimal point). If the value

cannot be interpreted as a digit, then the system triggers a Java exception. Otherwise, all calculations are executed with

the precision of the Java data type float. The format of the result value depends on the result:

●      If the result is a value with digits after the decimal point, these remain unchanged.

●      Exception: If a zero follows the decimal point, then this is cut off. This means that the result of the

calculation 4.2 – 0.2 is 4 and not 4.0.

Page 44: PI Overview1

Also note that Java values of type float are converted to the second system before the calculation. The result is

calculated there and then this result is converted back to decimal format. The conversion may result in decimal places in

the dyadic format that are periodically repeated and then automatically cut off. In the decimal system, this can result in

inaccurate results (example: 2.11 + 22.11 = 24.220001). If the number of positions after the decimal point is to be

restricted to two, for example, in the case of values for a currency, you can format the values after the calculation by

using the standard function FormatNum.

If the particular usage case requires more detailed results, you can also select the decimal system as the

basis for the calculations. The Java class BigDecimal is used for internal purposes. For more details see

SAP Note 958486.

Function Name Function

add R = X + Y

subtract R = X - Y

equalsA R = true, if value X equals value Y, otherwise R = false. The values are interpreted

numerically, therefore the value 1.5 is the same as 1.50.

abs O = Absolute value of I

sqrt R is the square root of X

sqr R is the square of X

sign R = 1, when X is a positive number

R = 0, when X equals 0

R = 1, when X is a negative number

neg R = -X

1/x R is the reciprocal of X

power R = XY

less true, when X < Y, otherwise false

greater true, when X > Y, otherwise false

multiply R = X * Y

divide R = X / Y

max R = Maximum of values X and Y

min R = Minimum of values X and Y

Page 45: PI Overview1

ceil O = The smallest possible integer value (up to minus 'infinite’) that is not smaller than the

argument I. Corresponds to the Java function java.lang.Math.ceil().

floor O = The largest possible integer value that is not larger than the argument I. Corresponds to

the Java function java.lang.Math.floor().

round O = Integer value that is closest to the value of argument I. Corresponds to the Java function

java.lang.Math.round().

counter O = Number of calls for this target-field mapping where you specify the initial value and the

increment of the counter in the function parameters.

FormatNum Converts I according to a pattern that you define using the function parameters. The possible

patterns are the same as in the Java class java.text.DecimalFormat.

Function Category: Boolean

All functions in this category expect Boolean input values (see above).

Function Name Function

And R is true if X and Y have the value true. Otherwise, R is false.

Or R is true if X or Y have the value true. Otherwise, R is false.

Not ●      O is false if I has the value true

●      O is true if I has the value false

Equals Compares both Boolean values X and Y and returns true if both are equal, otherwise

false. Non-Boolean values are interpreted as false (see above).

Use the functions equalsS or compare from the Text category to compare strings.

notEquals R = Not(Equals(X,Y))

if ●      If condition X is fulfilled (returns true): R = Y

●      If condition X is not fulfilled (returns false): R = Z

ifWithoutElse If condition X is satisfied (returns true): R = Y. Which Else value the function should

return depends on various different factors (see detailed documentation).

Function Category: Constants

Since these functions do not have any input values, they are generating functions.

Function Use

Constant O gets any string constant that you can enter in the dialog for the function parameters.

CopyValue For a frequently occurring element, copies the value at a defined position in the source

structure to the assigned target field.

Page 46: PI Overview1

sender O gets the name of the sender business system. Test_Sender_System is output when

you test the message mapping in the Integration Builder.

receiver O returns the name of the receiver business system. Test_Receiver_System is output

when you test the message mapping in the Integration Builder.

Function Category: Conversions

Function Use

FixValues Executes a value mapping using a fixed value table that you complete using the

function parameters. The table is saved together with the most current message

mapping and can only be used once.

Page 47: PI Overview1

Value mapping Executes a value mapping for the value I entered. In the function parameters,

assign the both input value I and source value O to a representation in the value-

mapping table. In this way, you can assign source and target structure fields to a

representation. You complete the value-mapping table on the configuration

maintenance screen in the Integration Builder. Since these entries are not available

at design time, the mapping result is just an estimate when you test the message

mapping. See also Value Mapping

The runtime interface for value mappings has changed for XI

3.0. However, XI 2.0 message mappings that call the Value

Mapping function still function using the old runtime interface.

To use the function parameters in the new runtime interface,

choose XI 3.0 Interface.

In the function properties for the standard function Value mapping, in the

fields Agency and Schema, enter the key for the source or target value. These

values can have any values. However, you can also refer to the fields SenderParty,

SenderService, ReceiverParty or ReceiverService. The mapping runtime

replaces these values at runtime with the values from the corresponding fields in

the message header of the message for which a value mapping is being executed.

In the field Agency you can also enter the name of a business

system. When transporting value mappings from one

Integration Directory to another, the Integration Builder sees if

you have entered a business system as the agency and

converts it during the transport (see also: Configuring

Groups and Transport Targets).

Function Category: Date

The following functions enable you to define the date format for the source or target format using the dialog for the

function parameters.

The format adheres to the convention as defined in the standard Java class

java.util.SimpleDateFormat. The function parameters dialog provides you with a wizard

that you can use to enter the most frequently used date formats.

Page 48: PI Overview1

Function Use

currentDate Returns the current date using O. This function is a generating function.

DateTrans Converts date format I to another date format O.

DateBefore R = true, when date X comes before date Y, otherwise false

DateAfter R = true, when date X comes after date Y, otherwise false

CompareDates R = 1, when date X is after date Y

R = 0, when date X is the same as date Y

R = -1, when date X is before date Y

Extended Settings

It is not only date formats that are country-specific; the count for weekdays and calendar weeks is also country-specific.

You can specify the relevant conventions for these in the function parameters:

●      First Weekday

Specifies which day of the week is recorded as the first weekday. In the United States, for example, the

first weekday is Sunday, while in France, it is Monday. The count begins at 1. The mapping runtime sets

this attribute using the Java method setFirstDayOfWeek(). For more information, see the Java

documentation under

http://java.sun.com/j2se/1.4.2/docs/api/java/util/Calendar.html#setFirstDayOfWeek(int).

●      Minimum Number of Days Required in First Week

Specifies how many days the first week of the year must have for it to be considered the first calendar

week. The mapping runtime sets this attribute using the Java method

setMinimalDaysInFirstWeek(). For more information, see the Java documentation under

http://java.sun.com/j2se/1.4.2/docs/api/java/util/Calendar.html#setMinimalDaysInFirstWeek(int).

Using the checkbox Calendar Is Lenient, you can control whether invalid dates trigger exceptions or not. If the

checkbox is checked, the mapping runtime permits a date such as February 942, 1996, which is then interpreted as the

941st day after February 1, 1996. An exception is not triggered. The mapping runtime sets this attribute using the Java

method setLenient(). For more information, see the Java documentation under

http://java.sun.com/j2se/1.4.2/docs/api/java/util/Calendar.html#setLenient(boolean).

Function Category: Node Functions

Function Use

Page 49: PI Overview1

createIf If there are structuring elements in your target structure that do not exist in the

source structure, insert them using this function. Using condition I you can control

whether the element is inserted or not. You connect the element in the target

structure using O.

removeContexts Removes all higher-level contexts of a source field. In this way, you can delete all

hierarchy levels and generate a list.

replaceValue Replaces the value I with a value that you can define in the dialog for the function

parameters.

exists O = true, if the source field assigned to inbound channel I exists in the XML

instance. Otherwise, false.

SplitByValue Inserts a context change for an element.

collapseContexts Deletes all values from all contexts from the inbound queue except for the first

value. Empty contexts (= ResultList.SUPPRESS) are replaced by empty strings. Only

one queue remains, which consists of contexts that contain just one value each.

Finally, all internal context changes are deleted, so that all values belong to one

and the same context.

useOneAsMany Replicates a value of a field occurring once to pair it as a record with the values of a

field occurring more than once.

sort Sorts all values of the multiply-occurring inbound field I within the existing or set

context. The sorting process is stable (the order of elements that are the same is

not switched) and it sorts the values in O(n*log(n)) steps. Using the function

parameters, you can specify whether values are to be sorted numerically or

lexicographically (case-sensitive or non case-sensitive) and in ascending or

descending order.

Page 50: PI Overview1

sortByKey Like sort, but with two inbound parameters to sort (key/value) pairs. The sort

process can be compared to that of a table with two columns.

●      Using the first parameter, you pass key values from the first column,

which are used to sort the table. If you have classified the key values

as numeric in the function parameters, they must not be equal to the

constant ResultList.SUPPRESS. See also: The ResultList Object

●      Using the second parameter, you pass the values from the second

column of the table.

If there is a discrepancy between the number of keys and values, the mapping

runtime triggers an exception. The function returns a queue with the values sorted

according to the keys.

mapWithDefault Replaces empty contexts in the inbound queue with a default value, which you

specify in the function parameters.

Example:

If “Default” is the default value and

A|B1,B2| |C| |D

is the inbound queue,

mapWithDefault returns the following outbound queue:

A | B1,B2 | Default | C | Default |D.

The function corresponds to the following combination of standard functions:

If(

  []field,

  exists([]field),

  Constant([value=default]))

formatByExample This function has two inbound queues, which must both have the same number of

values. To generate the result queue, the function takes the values from the first

queue and combines them with the context changes from the second queue.

Function Category: Statistics

The functions of this function category are designed for source fields that occur more than once in the source structure

(maxOccurs = i > 1).

Function Use

sum R = Sum of values X1 to Xi of a context.

Page 51: PI Overview1

average R = Average of values X1 to Xi of a context

count R = Number of fields in a context (i)

index R = Index i of Xi. In the function parameters, you specify the following: the

initial value of i, the increment, and whether the index value is to be

reinitialized at the beginning of every new context, or whether it is to have

the same value for the entire source structure.

Function Category: Text

In position specifications, the 0 position corresponds to the first character in the string.

Function Use

substring Returns a substring O for a string I. Use the dialog for the function properties to

specify the position of the substring. Example: substring(“Hello”, 0,1) = “H”, means

that the substring from Startindex 0 to Endindex 1 (not including position 1) is

shown.

concat R = Linking of strings X and Y (without blanks).

Example: X = „Mrs.“; Y = „Miller“; R = „Mrs.Miller“. Use the

dialog for the function properties to insert a separator in the string.

equalsS R = true, if string X equals string Y, otherwise R = false.

indexOf

(2 input parameters)

R = first position at which string Y is found in X and –1 if Y does not occur at

all.

indexOf

(3 input parameters)

R = first position from position Z at which string Y is found in X and –1 if Y

does not occur at all.

lastIndexOf

(2 input parameters)

R = last position at which string Y is found in X and –1 if Y does not occur at

all.

lastIndexOf

(3 input parameters)

R = last position from position z at which string Y is found in X and –1 if Y

does not occur at all.

Page 52: PI Overview1

compare Compares string X with string Y:

R = 0, when the strings are equal

R = positive number i, when X is lexicographically larger than Y

R = negative number i, when X is lexicographically smaller than Y

i specifies the difference between the two strings lexicographically.

The function acts in the same way as the compareTo() method of the JDK class

java.lang.String.

replaceString X: String in which something is to be replaced

Y: String to be replaced in X

Z: String to replace Y

R = String in which each occurrence of Y in X is replaced by Z.

X = "sparring with a purple porpoise"

Y = “p”

Z = “t”

R = "starring with a turtle tortoise"

length O = Length of string

endsWith R = true when Y is the last string in X; otherwise false.

startsWith

(2 input parameters)

R = true when Y is the first string in X; otherwise false.

startWith

(3 input parameters)

R = true when Y matches X from position Z; otherwise false.

toUpperCase Converts all lower case letters in I to upper case letters.

trim Removes all white space characters (spaces, tabs, returns) at the start and end of a

string. Acts the same as the trim() method of the JDK class java.lang.String.

toLowerCase Converts all upper case letters in I to lower case letters.

Page 53: PI Overview1

Repairing Target-Field Mappings After Structure Changes 

Use

For each target-field mapping, the mapping editor remembers the XPath expression that can be used to find a field in the

source or target structure. If the source or target structure changes, existing target-field mappings may become invalid

because the mapping editor can no longer find fields in target-field mappings created prior to the structure change. This

may be the case for the following reasons, for example:

●      The name of an element has changed

●      A new hierarchy level has been added to the structure of a data type

●      A message mapping for a 1:1 transformation is to be enhanced for a m:n transformation (more

information: Multi-Mappings)

A message-mapping target structure looked as follows in a previous release:

<PersonData>

   <name>

   <familyName>

   <gender>

   <street>

   <city>

   <zip>

In the current release, the elements street, city and zip are to be reassigned to a new

element address. The element name was also renamed:

<PersonData>

   <firstName>

   <familyName>

   <gender>

   <address>

      <street>

      <city>

      <zip>

Page 54: PI Overview1

The mapping editor only recognizes the old structure for the target-field mappings of street,

city, zip and name that were defined in the previous release. If you do not want to have to

define these target-field mappings again, you must replace the XPath expressions they contain.

In this case, the mapping editor displays a warning for all fields that it can no longer find. To replace the XPath

expressions in the affected target-field mappings, in the mapping editor, choose Reload with Improvements ( ).

Prerequisites

The Reload with Improvements ( ) function is only visible in the mapping editor if at least field used in a target-field

mapping could not be found when the message mapping was opened.

Procedure3. ...

7.        1.      In the ES Builder, open the message mapping that references a changed source or target message. The mapping editor displays a warning for any fields in target-field mappings that can no longer be found.

8.        2.      Choose Reload with Improvements ( ). The mapping editor opens a dialog box in which you can replace the XPath expressions in the target-field mappings.

9.        3.      The mapping editor displays two XPath expressions in the upper part of the dialog box:

○       The XPath expression for the field that could not be found

○       The XPath expression of the next higher-level field

If the new structure has an additional hierarchy level, it may be easier to reset the path of the next

higher-level field in all target-field mappings. By doing so, the path for the lower-level fields will be

automatically correct and you do not then need to replace each one individually.

The following target structure was previously used for a 1:1 transformation:

<PersonName>

   <firstName>

   <familyName>

Now it is to be used for a 1:n transformation. Consequently, you have changed the occurrence

value for the target message on the Signature tab page from 1 to 0..unbounded. The structure

of the target message now looks as follows:

<messages>

   <message1>

      <PersonName>

Page 55: PI Overview1

         <firstName>

         <familyName>

In this case, you simply need to replace the XPath expression /PersonName with

/messages/message1/PersonName in each case. These expressions are then automatically

correct for the lower-level fields firstName and familyName.

Proceed as follows:

○       If you want to replace the XPath expressions at a later date, choose Skip All.

○       If none of the XPath expressions displayed can be replaced by an XPath expression in the new

structure, choose Skip.

○       To reassign one of the XPath expressions displayed, first select it. In the structure that is

displayed, select the field that you want to belong to the XPath expression selected above and

choose Move.10.        4.      If in the last step you have replaced numerous XPath expressions that use the same prefix,

the XPath expressions that have already been replaced are displayed in the lower part of the mapping editor window.

Result

The target-field mappings for fields whose XPath expressions you successfully reassigned are available again in the

mapping editor. Check that the message mapping still functions with the new assignments.

Mapping Templates 

Use

Just like you can reuse data types in different message types, you can also save parts of message mappings as Mapping

Templates and reuse them elsewhere. Once you have saved a mapping template it serves as a copy template that you

can then load into other message mappings and modify to fit your requirements.

The same applies to the mapping templates themselves: You can save parts of mapping templates as mapping templates

and reuse them in mapping templates or message mappings. To simplify the documentation, the text below does not

mention explicitly that the statements made for message mappings are equally valid for mapping templates. However,

Page 56: PI Overview1

you can replace message mapping with mapping template anywhere in this section, and the respective statement is

still valid.

Features

You can define mapping templates for structure mappings of the following structures:

        Data Types

        Complex types in IDocs and RFCs

        Complex types in external definitions

The types that you reference from mapping templates can be located in any software component version.

Activities

Defining Mapping Templates

        You can create mapping templates again and load the structures as usual by using input help in the

mapping editor.

        You can save mapping templates in a message mapping:          ...

1.                             a.      Select a type element in the source and target structure (the element must reference a non-built-in XSD data type).

2.                             b.      Choose Save Mapping Template from either the target structure context menu or from the object toolbar.

3.                             c.      Enter a name for the new mapping template and then create it.

Just saving the sub-structures of a message mapping as a mapping template in this way is not

sufficient for the mapping editor to be able reference it (you would normally use the template in

another message mapping). After you have saved the template you then need to load it into the

message mapping (see below).

Apart from multi-mappings, you have all the functions of a normal message mapping available to you for a mapping

template.

Using Mapping Templates

You can use mapping templates in message mappings from any software component version:4. ...

11.        1.      In the mapping editor, select a type element in the source and target structure (the element must reference a non-built-in XSD data type).

12.        2.      Choose Load Mapping Template from either the target structure context menu or from the object toolbar.

Page 57: PI Overview1

13.        3.      If mapping templates are available for the types in the source and target fields, you can select them in the dialog window that is then displayed.

Displaying Mapping Templates Used

To display all the mapping templates used in a particular message mapping, choose Message Mapping Mapping

Templates Used.

User-Defined FunctionsWhat is UDF?

User Define Function is a Java source code which is generated for the message mapping as a

Java method.

When do we use UDFs

If the standard functions for a target-field mapping do not fulfill your requirements, or if the

graphical representation becomes unclear due to the complexity of the mapping, you have the

option of creating your own user-defined functions. A user-defined function is only visible in

the message mapping in which you created it. You can insert the function in the data-flow editor

by using the function category User-Defined, just like a standard function.

Prerequisites

You have created a message mapping and have loaded an XML structure for both the source

and the target structure.

Types of UDFs

Simple functions , which can process individual field input values for each function call.

Simple functions therefore expect strings as input values and return a string.

Page 58: PI Overview1

 Advanced functions , which can process several field input values for each function call.

You can import either all field values of a context or the whole queue for the field in an

array before calling the function.

Advanced User-Defined Functions 

Advanced user-defined functions can access more than just individual field values. Instead, you can import a complete context or an entire queue for a field as an array before your function is called. This enables you, for example, to perform calculations on all field values of a context as well as to divide up the contexts themselves further by inserting context changes.

IntegrationWhen the instance for a source structure is parsed, a message mapping works by using queues.

There is a queue for each hierarchy level. A queue can have the following entries:

Possible Queue Entries

Value Meaning

(empty string) This is a queue for a structure field. In the queue there is an entry with an empty string each time the field appears in the XML instance. In the example above there is such a queue for <A /> and <root />.

(string) Value of a value field

ResultList.CC Constant that shows a context change

Page 59: PI Overview1

ResultList.SUPPRESS Constant that causes a field and its sub node to be ignored during processing

You can create special structure mappings by adding or removing context changes. The standard functions SplitByValue and removeContexts() work by this principle.

See also: Structure Mappings by Setting the Context.

FeaturesAdvanced user-defined functions can import either just one context into the input arrays, or complete queues. Make your selection by selecting or deselecting the Save Entire Queue in Cache checkbox in the function editor.

Working with Contexts or Queues

Information in Cache Implications

Context Advanced functions that only import one context do not have an identifiable context change. You can of course insert a context change into the results list.

Queue Since one or more entire queues are imported in this case, this option is more memory-intensive and is not suitable for very large messages.

The input arrays do not contain the context change at the start and end of the context (or of the queue). These context changes are implicitly always available and cannot be identified or deleted from the user-defined function.

Activities

...

        1.      Create an advanced user-defined function, see User-Defined Functions.

        2.      Process the values from the input arrays in the Java source text and create a results list by using the ResultList object.

Sample Examples

UDF Execution Type - Context and Queue.

Many a time when we try to write the UDF in mapping, main question arises is, which execution type we can use? This blog will try to solve this question.  

When we create any UDF we can see, three cache execution methods,

1)      Value  2)  Context  3)  Queue.

Value is used to process individual input values of a field for each function call.

Context and Queue are used to process multiple input values of a field for each function call.

Let's see how the concept of Context and Queue is differing from each other.

Page 60: PI Overview1

Following is Source and Target structure. 

 

Fig.1

 Following data is used to test the mapping.

<?xml version="1.0" encoding="UTF-8"?>

<ns0:MT_SendData xmlns:ns0="urn:ltil:firstPI7Job">

   <Employee>

      <Data>

         <Id>10</Id>

         <Name>SAP</Name>

      </Data>

      <Data>

         <Id>20</Id>

         <Name>SAP</Name>

      </Data>

      <Data>

Page 61: PI Overview1

         <Id>30</Id>

         <Name>PI</Name>

      </Data>

      <Data>

         <Id>40</Id>

         <Name>XI</Name>

      </Data>

      <Data>

         <Id>50</Id>

         <Name>XI</Name>

      </Data>

   </Employee>                                                 // (this will lead to context change)

   <Employee>

      <Data>

         <Id>20</Id>

         <Name>SAP</Name>

      </Data>

      <Data>

         <Id>40</Id>

         <Name>PI</Name>

      </Data>

      <Data>

         <Id>50</Id>

         <Name>PI</Name>

      </Data>

   </Employee>

</ns0:MT_SendData>

Page 62: PI Overview1

Following is the UDF, which is identifying Context Change node and instead of that send "DATA" as constant value in a queue.

  Fig.2

The UDF having Execution Type Context.

  Fig.3

Page 63: PI Overview1

If we use above UDF then according to the udf logic Context Change after value '50' must be converted into value as "DATA".But as we can see in below Figure the Context Change has remained as it is. So above UDF is not worked for type =Context.

     Fig.4

As per requirement, Employee nodes should be generated equal to Id nodes in source data. Following is the output with above UDF, in which Employee nodes in target are not generated sufficiently as per our logic.

Page 64: PI Overview1

Now for same UDF we change Execution Type to Queue. 

Fig.5

If we use above UDF then according to the udf logic Context Change after value '50' must be converted into value as "DATA".And if we see in below figure it is happening.

Page 65: PI Overview1

Fig.6

All nodes of Employee could display here.

Page 66: PI Overview1

Some more examples:

1. Create a Header Node UDF

 //Advanced User defined function for setting the header segment on target side.

This functions checks for nonempty payload data to the header node on the target side.

 public void createHeaderNode(String[] Row,ResultList result, Container container)

{

       if ( Row.length > 0 ) 

       result.addValue("");

 }

 2. Create a Detail Node UDF

 //Advanced User defined function for setting the detail node on target side.

This function loops such that 1 header node and (length-1) detail nodes are created.

 public void createDetailNode(String[] Row,ResultList result,Container container)

 {

       if (Row.length > 1) 

 { 

       for (int i = 0; i < Row.length - 1; i++)

       result.addValue("");

  } 

  }

2. To Get Queue Values:

3. Advanced UDF to output the queue values. ”a” corresponds to the Data in the incoming

XML.

public void removeHeaderData(String[] a,ResultList result,Container container)

{

          for (int  i = 1; i < a.length; i++) { 

          result.addValue(a[i]);

          result.addValue(ResultList.CC);

Page 67: PI Overview1

 }

 }

Filters data using 2 values with OR Condition UDF :

UDF which would filter the string array items of ‘a’ based on a OR condition specified in the IF

statement, to populate the target field with the array items of ‘b’.

‘a’ ‘b’corresponds to IDOC Field ‘QUALF’.

‘c’,’d’ corresponds to constants

 public void filterValue2(String[] a, String[] c,String[] d,ResultList result,Container container)

{

boolean flag = false;

for ( int i =0; i<a.length;i++) 

{

            if (a[i].equals(c[0]) || a[i].equals(d[0])) 

{

                        result.addValue(b[i]);

                        flag = true;

                        break;

            }

}

if (flag == false)

            result.addValue("");

}

 Repeating Last Item UDF :

 Advanced UDF which would repeat the last item in the Queue...

 public void repeatLast(String[] a,ResultList result,Container container)

{

int i = 0;

for (; i< a.length;i++)

            {

            result.addValue(a[i]);

            }

Page 68: PI Overview1

            i = i - 1;

            result.addValue(a[i]);

}

 simple udf

UDF for Setting up the Decimal format:

Simple udf which would format the input value setting decimal point and padding zeros to the

left of the input value upto the required length.

UDF for Calculating Current Time:

Simple UDF for calculating the current time using the calendar class.

[Refer get Timestamp Function to know about calendar class].

get Time Function returns the number of milliseconds since January 1, 1970, 00:00:00 GMT represented

by the Date object..

 

UDF for Decimal Format Conversion:

 Simple UDF to format the given input explicit with 2 decimal places...

 public String decimal Format(String input,String dLength,Container container)

Example Scenario:

In the scenario employee details, are collected on the basis of department Id. The Employee Ids were generated on the basis of employee details and department Id. I have taken a simple file-to-file scenario to demonstrate this concept. A file, which consists of department Id and Employee data, is sent to PI and the combination of department Id and Employee details facilitates the generation of Employee Id.

Before configuring this scenario, I was not able to understand UDF Execution's type context. I had written a UDF for this scenario and come to know the exact use of UDF Context type. I would like to share my experience with fellow PI consultants.

Scenario: -

Page 69: PI Overview1

   The file is placed on ftp. File adapter picks it up. File contains employee data and department data. Employees are distributed in different departments. Each department has its own ID. Based on the department Id, employee Id can be generated. The Employee Id generation logic is implemented in message mapping of PI. In message mapping I have defined a UDF. It checks the department Id and generates the Id for each Employee that belongs to the department.

Below are Source and Target structures.

 

 Fig.1

Following is the sender data file, which contains,

Department: Consist of Department records.

Employee: Consist of Employees records.

 

Page 70: PI Overview1

Fig.2

 

As we can see department Id consist of value 10. Hence, we need to send all the Employees and for each Employee, we have to generate Employee Id as, 1001,1002,1003,1004 etc. depending upon Department Id.

Department Id 10 has four Employees, so the Employee Id would be generated as 1001,1002,1003 and 1004.

Department Id 20 has three Employees, so the Employee Id would be generated as 2001,2002 and 2003.

For IR part create Data type, Message Type, Service Interfaces, Operation Mapping by normal method.

Also configure ID part for file-to-file scenario.

 

Page 71: PI Overview1

When we create any UDF we can see, three cache execution methods,

1) Value.

2) Context.

3) Queue.

Value is used to process individual input values (i.e. like a single variable) of a field for each function call.

Context and Queue are used to process multiple input values (i.e. like a string array) of a field for each function call.

Let's see the concept of Context type in UDF.

UDF Logic:

Following is the UDF that contains logic to generate Employee Id.

UDF logic is mainly dependant on Context Change node. Only by Context Change we can identify how many Employees are there in each Department.

As shown in Fig.4, This UDF requires input.

1. employee: Employee records. (Context of this input is on Department Header) 2. departmentId: Department records.

Importance of Context Change node for this requirement:

There are number of Departments and each Department has number of employees. Therefore employees can be classified on the basis of their department. Context Change node distinguishes employees based on their Department.

Working of UDF in case of Context:

Context: When Execution type is Context the Context Change node is not considered as data node. But it is considered as a separation layer between two Departments. In the UDF, logic is maintained only for one group of data (e.g. Only Employees under Department Id 10). This logic automatically gets executed to other groups (e.g. for Employees under Department Id 20) also. 

Comparison between Context and Queue Type:

For Context type the function getEmployeeId (UDF name - Class) is called as many times as Context Change node occurs in the data. As shown in fig. 5, Context Change node occurs twice so the function will be call two times.

For Queue type the function getEmployeeId is called only once. Context Change is considered data node. For detail explanation refer blog no. 12232 

Page 72: PI Overview1

E.g.

As we have seen in Fig.2 and Fig.5,

Department no. 10 has four Employees.

Department no. 20 has three Employees.

For this data UDF logic works as follows.

At the beginning of code, Counter for Employee Id is initialized to Department Id.

When Department Id is 10, then 10 is assigned to counter, after applying arithmetical operation the Counter is initialized to 1000. (10 * 100) 

When Department Id is 20, then 20 is assigned to counter, after applying arithmetical operation the Counter is initialized to 2000. (20 * 100)

Here, only 1st element of Department Id is considered from each group. Groups are defined depending on separation of Context Change node. See the fig.3

In for loop, Counter is incremented and returns the same value for each Employee. This logic is executed only for 1st group of data. As soon as Context Change node is encountered, logic gets applied to next group of data from the start of UDF. 

As we have seen in Fig.2 the first Department, with Dept Id 10, consists of four employees. The UDF logic executes only for four nodes and generates Employee Id as 1001,1002,1003,1004. Once the 4th Id is generated, context change node is encountered and there is no further generation of Employee Ids for Dept Id 10.

If any data node is present after the Context Change node then the UDF logic is executed once again. In our case, data node is there for Department Id 20, so the getEmployeeId function is called again. The counter gets initialized and produces Employee Id as 2001,2002,2003 for three employees from Department Id 20.

So the output will look like the one shown in Fig.5

This is possible only if the UDF logic could detect the Context Change node. The context change node is significant only if the UDF execution type is context.

Lets see the practical example of this.

 

Page 73: PI Overview1

Fig.3

 

Execution Type: Context

Page 74: PI Overview1

Fig.4

 

As you can see the first cluster have 4 values (i.e. 1001, 1002, 1003, 1004). Then there is a context change and hence the next value is reinitialized to 2001 depending upon Employee Id. This is possible only if the UDF execution type is context.

 

Page 75: PI Overview1

Fig.5

 

Output:

 

Page 76: PI Overview1

Fig.6 

 

Conclusion:

The context type of the UDF can be used in case if you want to segregate data of one group to other group. So we can generalize that whenever the context change node has a significant impact on the UDF logic, context type of UDF can be utilized.

Page 77: PI Overview1

IDOC and RFC

1. How can you check the Idoc metadata – IDX22. Where message type exchange data is defined in ALE process : Distribution model/BD643. Without using distribution model its possible to exchange message type between one

system to another : True4. BAPI and Idoc’s both can be used in case of synchronous scenarios : False5. these are the main transactions are used in the while creating the idocs.

we30:idoc creationwe30:segment creationwe81:message typewe82:link message with idoc type.we02:to status of idocs.

6. How to reprocess Idocs , transaction codes to be used : We02, BD87We02 : to edit the errored IdocBd87 : Reprocess the edited corrected Idoc

7. Can we attach more than one messages with One IDOC?Ans :yes, we can attach more than one message types to one idoc.

For example sendor wants the records on both material andpurchase at same time then we need to add two message typesto one idoc.

8. Suppose their is one sender and we have three receivers.While generating an IDOC will it generate 3 IDOCs for three receivers? Explain in detail how the flow goes from outbound to inbound systems?Ans : in SALE we maintain the Sendor as well as three Receivers(how many receivers to send the same idoc),and assign the sendor in sendor system as well as assignreceivers in receivers system(sale-->assignment) threereceivers.

maintain the RFC destination on sendor side and allreceiver side also (sm59).

maintain the port for sendor and three receivers.

maintain the sendor and all receivers for a same messagetype in distribution model.(bd64)

maintain the partner profiles for sendor and all receiver

Page 78: PI Overview1

side also (we20).

execute the outbound program(idoc generation)like BD12 forDEBMAS message type .

check out the status using we02 or we05.

9. When to use Idoc adapter in sender agreements / when do we create sender agreement for Idoc communicationAns: Whenever there is multiple Idoc involved in message exchange between two system then the concept of sender agreement comes for Idoc scenarios .

10. Where Idoc packaging size is defined?Ans: Idoc packaging size is defined while defining partner profile

11. Transaction code to monitor Idoc in SAP PI?Ans: We05

12. How do you get output from IDOC? Data in IDOc is stored in segments; the output from Idoc is obtained by reading the data stored in its respective segments.

13. Idoc stands for : Intermediate document14. Idoc is so called because

Ans: a) Message-oriented–Data is also stored in application, only in other formats (the application documents).b) Asynchronous–Data can be stored in IDocs before an application document is created.

15. Outbound processing of IDoc includes:Ans : Posting the application documentGenerating the corresponding outbound IDocFinding the partner and portTransfer of the IDoc to the external system via the port

16. Inbound processing includes:Ans : Receiving IDoc data from an external system via an inbound portCreating the inbound IDocFind the correct processing type via the partner profiles.Creating the application document

17. IDoc record types include: Ans: Control record.Data records which store the application data in segment and describe the hierarchy of these segments.Status records which determine the defined processing steps of the IDoc. As a result, the number of status records for an IDoc increases as processing continues.

18. When Idoc can be duplicated at Outbound processes or Inbound processing? : Outbound Processing

19. When the IDocs can be deleted?

Page 79: PI Overview1

Ans: When they are achieved.20. In outbound processing, how Idoc are created?

Ans: In outbound processing, Idocs are always generated by the Idoc Interface or by the application

21. In inbound processing, how Idocs are created?Ans: Idocs are always generated by the Idoc interface.

22. What is Process code?Ans: This process code always identifies a function module for idoc processing.

23. What is partner profile?

Ans: Partner profiles specify which messages are sent to which users, using which method and how they are processed. Partner must be entered in the partner profile before Idocs can be sent successfully.

24. What is port in Ale configurations?Ans: The port is part of the outbound partner profile. Technical communication parameters are entered in the port definition. Inbound ports do not require such parameters–their technical parameters are defined by the external sending system.

25. Where all the Idocs get stored after creation?Ans: EDIDC stores control/header record.EDIDD/EDID4 stores data records.EDIDS stores status records.

26. Where to see idoc in inbound side whether it is received in receiver system or not?Ans: BDM2: For viewing Sending system IdocNumber and Corresponding receiving System Idoc number...Status also you can get from this Tcode.

WE02: note down the Corresponding Idoc number and check

27. Why there is need of receiver Idoc adapter while sender is XI to some SAP backend?Ans: Sender Communication Channel and sender agreement not required for IDoc, HTTP adapters. These two adapters reside in ABAP Stack which means in Integration Engine. The reason is that R/3 can directly send Idocs to XI via ALE layer using RFC destination specified in SM59. This IDoc after reaching XI is converted in IDoc-XML. This is done when we specify IDoc metadata IDX2 in XI. It is then used in IR for mapping.

Now for the receiver side, when IDoc-XML is created after mapping program run is sent to R/3. Before that, it has to be converted into IDoc. This conversion is IDoc-XML to IDoc is done by IDoc Receiver adapter.

Page 80: PI Overview1

Both the sender and receiver IDoc transmission is done by the RFC communication channel.

In case of the sender IDoc, partner profile configuration in the sender system will tell for a particular IDoc type which port should be used. This port will have the details of the RFC channel to be used to deliver the IDoc.

However, in case of SAP XI/PI system we don't configure partner profile and hence we need a way to tell which port & RFC destination should be used to deliver the IDoc and hence we define a receiver agreements and adapter. This is just used as a reference at runtime and unlike the other adapter; this receiver IDoc adapter does not process any message over Adapter engine.

28. What is the name space of an IDOC? (choose the correct answer)

Ans: a) urn:sap-com:document:sap:idoc:messagesb) urn:sap-com:document:idoc:sap:messagesc) urn:sap-com:sap.document:idoc:messagesd) urn:sap-com:document:idoc:messages

29. Which transaction is used to configure a port to retrieve the Idoc Metadata?Ans: IDX1

30. What adapters don’t need Sender Agreement?

Ans: HTTP, IDOC.

31. An Idoc has been sent by a sender system to XI, but the idoc is not received at the XI system which of these could be true/false

Ans: The destination system from the sender system to XI is not configured correctly.

32. IDOC adapter supports the following QoS’s?Ans: EOIO

33. What is the name space of an RFC? (choose the correct answer)

Page 81: PI Overview1

Ans: urn:sap-com:document:sap:rfc:functions

34. Does EOIO is supported by RFC?

Ans: NO

35. R/3 systems on or below 4.6C can communicate with PI either through RFC or Idoc but not proxy.

Ans: True

36. IDOC adapter resides within the Integration Server (ABAP) Ans: True

37. PCK does not support IDOC & Plain Http adapter

Ans: True

38. RFC and IDoc meta data can be modified within XI (True/False) Ans: False

39. How can the RfcAdapter be started and stopped?Ans: The RfcAdapter is implemented as a J2EE Service and thus this service has to be started and stopped. This will affect the whole RfcAdapter and can be done from the J2EE Engines Visual Administrator. When you are connected to the J2EE Engine chooses the tab 'Cluster' and opens the appropriate server node in the tree. Then open the 'Services' node. There you can see the entry 'SAP XI Adapter: RFC'. When you open the context menu on this entry you can start and stop the service

40. Is there a special handling of the '/' character in the names of function modules?Ans: As the '/' character can cause conflicts within XML documents it is escaped with the sequence '_-'. A RFC sender channel will do the escaping of '/' to '_-' and a RFC receiver channel will do the opposite. This only will be done for the RFC-XML document.

41. Can there be multiple function module calls within one transaction for RFC sender channels?Ans: RfcAdapter will only support transactions (sometimes also called LUW) with one call. If an attempt is made to place a second call within one transaction an exception is raised. This is done because within XI there is no transactional context between messages and each RFC call is wrapped into one message.

Page 82: PI Overview1

42. Can the RFC-Metadata-Repository be different from the RFC-sender/-receiver channel in terms of Unicode?Ans: The RFC-Metadata-Repository has to match the sender/receiver channel in terms of Unicode. It is not possible to mix a Unicode sender/receiver channel with a non-Unicode metadata repository (or vice versa).

43. RFC parameters are based on data types that are defined in the Data DictionaryAns: True

44. RFC adapter provides support for sRFC, tRFC and qRFCAns: False ( it doesn’t support qRFC)

45. Following are the Limitation for the RFC Adapter – a) Call-Back, No RFC-GUI-Debugb) Digital Signatures are not supportedc) Not released for external systemsd) No qRFCe) All of the above

Ans: All of above

46. File, RFC, JMS, JDBC, MarketPlaces are Technical AdapterAns: True

47. Digital signatures are supported in RFC adapterAns: False

48. All systems that send an RFC via RFC adapter requires an RFC connection using SM59 TransactionAns: True

49. Program Id defined in RFC adapter should be same in RFC destination in transaction code SM59Ans: True

50. You can mix Srfc & Trfc at the application level without BPM in case of RFC adapterAns: True

51. Why we need to create RFC destination from PI to R/3?Ans: PI (process integration) itself acts as middleware for creating connection between A2A OR B2B scenarios. PI provides single point of integration. Actually we need some interface to send the business documents (data) from SAP to any legacy system and RFC is nothing but a Remote Function Call is a type of interface that can be called from the legacy system itself. So we use RFC in SAP system and we pass the data to RFC that would be called from the Legacy system or PI to get the same data.

Page 83: PI Overview1

PROXY

1. Message Interface is the starting point for proxy generation : True2. What is created whilst generating an ABAP proxy?

Ans: Class

1. Proxy generation uses which development approachAns: Outside in

3. What all the functionalities of a proxya) Convert ABAP/Java data structures in to XML messagesb) Convert XML messages in to ABAP/Java data structuresc) Establish Connectivity with the Integration Serverd) All the aboveAns: All of the above

4. Which proxy object is generated for outbound interfaces and what are they called asAns: Classes/Client Proxies

5. Which of the following are true about Proxies and Proxy generation?a) Proxies are created in the system from message types using the proxy generation

functions. : Falseb) Proxies are executable interfaces in the application system. : Truec) Java proxies are generated on the application server with transaction SPROXY: Falsed) ABAP proxies are generated from the web services description language description

of the interface in integration repository :Truee) Proxy generation converts non-language-specific-interface descriptions in web

services description language into executable interfaces: True6. Which adapter type stands for proxy communication using the integration engine

Ans: XI adapter7. ABAP Proxy can be created with SAP Web AS 6.20 greater than or equal to : True8. ABAP proxies are created in transaction : SPROXY9. ABAP Proxy Runtime Communicate using XI or Web Services. : True

Configuring the Sender File/FTP Adapter

Use

You need to configure the sender file/FTP adapter to be able to send the content of files to the Integration Server or the PCK. This only applies to files that are not read-only.

Integration

You configure the adapter on the Parameters tab page during the definition of a communication channel in the Integration Server or in the PCK. In addition to the adapter configuration, you can use the Module

Page 84: PI Overview1

tab page in the module processor to specify generic modules, which give the adapter additional functions.

Condition for Sender Agreement

The adapter determines the payload of the XI message according to how it is configured. However, the message header information is determined from the corresponding sender agreement for the communication channel.

The following conditions apply to the adapter for the definition of the sender agreement:

● The communication channel defined here must have exactly one sender agreement.

● At least the interface name and the sender service must be qualified in the sender agreement. All other fields are optional in accordance with the general rules for defining sender agreements.

Accessing File Names

If you are developing a module for the sender file/FTP adapter and want to access the file name in the module, see SAP Note 819761.

Prerequisites

1. You have created a new communication channel or have opened an existing one.

2. On the Parameters tab page you have selected the adapter type FILE.

3. You have selected the Sender radio button to define the adapter as a sender adapter.

Using FTPS (File Transfer Protocol using SSL/TLS)

The application of FTPS follows specification RFC 4217.

The SAP Java Cryptographic Toolkit is deployed.

The CA certificate used to sign the server certificate must be added to the TrustedCAs keystore view.

Activities

To configure the adapter, specify the following:

Transport Protocol

The file can be selected from either a file system (File System (NFS)) or from a File Transfer Protocol (FTP) server.

Message Protocol

● To send the file content to the Integration Engine or the PCK unaltered, choose File.

● If you want to send the Integration Engine or the PCK a text file with complex data structures that are to be converted into an XML document, choose File Content Conversion and make the required entries for conversion under Content Conversion Parameters (see below).

Adapter Engine

Select the Adapter Engine on the Integration Server, or select a non-centrally installed Adapter Engine. This selection is not available in the PCK.

Page 85: PI Overview1

File Access Parameters

● Source Directory

Specify the directory where the files to be processed are located.

You can either specify the entire path name or a name relative to the working directory of the Adapter Engine. In all platforms (including Windows), use a forward slash (/) to separate directory names in accordance with Java specification.

● File Name

Specify the name of the file that you want to process. The name can contain placeholders (*, ? (placeholders for exactly one character)) so that you can select a list of files for processing.

● Advanced Selection for Source File

If you want to set an exclusion mask for the File Name specified above, or if you want to specify multiple directories using a file name mask and exclusion mask, set the Advanced Selection for Source File indicator.

○ Specify an Exclusion Mask for the file name specified above.

You want to process all files that have the extension '.txt', but want to exclude all files that begin with the letter 'a'. To do this, enter *.txt for File Name, and a*for Exclusion Mask.

○ You can enter additional specifications for source directories, file names, and exclusion masks in the table. This data is processed in addition to the details specified above.

FTP Connection Parameters

Use of the file transfer protocol follows the specification RFC 959. If you have selected the transport protocol File Transfer Protocol (FTP), enter the following:

● Server

Enter the host name or IP address of the FTP server.

● Port

Specify the port number of the FTP server. The default is the standard port for the FTP server (21).

● Data Connection

○ Active

In active mode, the server establishes a data connection from its data port, port 20, to an end point chosen by the client.

○ Passive

In passive mode, the client establishes a data connection to the port required by the server.

The default setting is a passive data connection. Only change this setting if you have a specific reason.

● Timeout (secs)

Page 86: PI Overview1

If no data is transferred between the client and the FTP server in the time interval specified here, the adapter interprets this as an error and terminates the transfer.

● Connection Security

○ None

The FTP protocol is used without encryption.

○ FTPS (FTP Using SSL/TLS) for Control Connection

The FTP control connection is protected using TLS/SSL (Transport Layer Security (BC-SEC)/Secure Sockets Layer (BC-SEC)). File transfer is unencrypted.

○ FTPS (FTP Using SSL/TLS) for Control and Data Connection

All communication with the FTP server is encrypted and uses TLS/SSL.

If you selected FTPSfor Connection Security, then enter the following details:

○ Command Order

Specifies the sequence of commands used to authenticate and secure the connection.

Retain the default setting. Only adjust the sequence of commands to match those expected of the FTP server if you encounter problems with the FTP connection. For information about the correct setting, see the documentation for the FTP server.

○ Use X.509 Certificate for Client Authentication

Set this indicator if the adapter, in contrast to the FTP server, is to use X.509 certificate and public-key cryptography to authenticate itself. The corresponding key/certificate pair must previously be saved in a keystore view of the J2EE server by using the Visual Administrator.

○ Enter the Keystore and the X.509 Certificate and Private Key. To do this, you can use the input help.

● To logon with the user name anonymous and the password anonymous, set the Anonymous Login indicator. Otherwise, enter the following:

○ User Name

Enter a valid user name for the FTP server.

○ Password with confirmation

● Connect Mode

Permanently

An existing connection to the FTP server is used permanently.

The connection is reestablished automatically if it is closed by the server.

Per File Transfer

A new connection to the FTP server is established for each file transfer.

● Transfer Mode

Set the FTP connection transfer mode to Textor to Binary.

Page 87: PI Overview1

Processing Parameters

Parameter Entry

Quality of Service Specifies how the Integration Engine/PCK should process a message.

● Best Effort

(synchronous processing)

● Exactly Once

(asynchronous processing with guaranteed execution exactly once)

● Exactly Once In Order (asynchronous processing using queues, in other words guaranteed execution exactly once and maintaining the sequence of successive messages).

Specify the Queue Name.

Poll Interval (secs) Number of seconds that the adapter must wait if no files are found for processing.

Poll Interval (msecs) Additional waiting time in milliseconds.

If Poll Interval (secs) is set to null, processing times will be short and close to real time.

If Poll Interval (secs) and Poll Interval (msecs) are set to null, the adapter is only called once.

Retry Interval (secs) Specify the number of seconds that the adapter is to wait before a file processed with errors is processed again.

If the value is set to null, then the adapter is canceled if an error occurs, even if a value greater than null is specified for Poll Interval (secs).

If no value is specified, the value from Poll Interval (secs) is used.

Page 88: PI Overview1

Processing Mode Archive

Files that have been successfully processed are moved to an archive directory.

● To add a time stamp to a file name, select the Add Time Stamp indicator. The time stamp has the format yyyMMdd-hhMMss-SSS_. The time stamp ensures that the archived files are not overwritten and it enables you to sort them according to the time that they were received.

● Under Archive Directory enter the name of the archive directory.

● If you want to archive the files on the FTP server, set the Archive Files on FTP Server indicator. If you do not set the indicator, the files are archived in the Adapter Engine file system.

Delete

Successfully processed files are deleted.

Test

Files are not processed.

This mode should only be used to test the configurations of file/FTP adapters or the Integration Engine/PCK. It is not suitable for production operation.

Set to Read-Only

Successfully processed files are given this attribute. Only recordable files are processed. This selection is only available for the File System (NFS) transport protocol.

Process Read-Only Files

(Transport Protocol File System (NFS))

Set the indicator if you want to also transfer files that are locked by other applications.

Only set this indicator if you are sure that no data will be lost.

Page 89: PI Overview1

Processing Sequence

(Transport Protocol File System (NFS))

If you used placeholders when specifying the file name, define the processing sequence of the files:

● The default value is By Name. Files are processed alphabetically by file name.

● If you select By Date, files are processed according to their time stamp in the file system, starting with the oldest file.

File Type Specify the document data type.

Binary

Text

Under File Encoding, specify a code page. The default setting is to use the system code page that is specific to the configuration of the installed operating system. The file content is converted to the UTF-8 code page before it is sent.

Permitted values for the code page are the existing Charsets of the Java runtime. According to the SUN specification for the Java runtime, at least the following standard character sets must be supported:

● US-ASCII

Seven-bit ASCII, also known as ISO646-US, or Basic Latin block of the Unicode character set

● ISO-8859-1

ISO character set for Western European languages (Latin Alphabet No. 1), also known as ISO-LATIN-1

● UTF-8

8-bit Unicode character format

● UTF-16BE

16-bit Unicode character format, big-endian byte order

● UTF-16LE

16-bit Unicode character format, little-

Page 90: PI Overview1

endian byte order

● UTF-16

16-bit Unicode character format, byte order

Check which other character sets are supported in the documentation for your Java runtime implementation.

XML text documents generally contain their own code page description and should be treated as Binary data type.

Additional File(s)

(Transport Protocol File System (NFS))

Set the Additional File(s) indicator if you want to transfer additional files. For more information, see: Specifying Additional Files.

Adapter-Specific Message Attributes

To store adapter attributes in the message header of the XI message, set the Set Adapter-Specific Message Attributes indicator.

To apply the following attributes in XI message headers, set the corresponding indicators:

Name Technical Name

File Name FileName

Directory Directory

File Type FileType

File Encoding

You can only set this indicator if the File Type is text, and if the File Type indicator above is already set.

FileEncoding

Source File Size SourceFileSize

Source File Timestamp SourceFileTimeStamp

Source FTP Host

You can only set this indicator if the transport protocol is set to File Transfer Protocol (FTP).

SourceFTPHost

Page 91: PI Overview1

The attribute namespace for the adapter is http://sap.com/xi/XI/System/File.

Run Operating System Command Before/After Message Processing

● Command Line

An operating system command specified here is executed before or after the message processing of a file that was found in a run. The default value is an empty character string (no command).

When the operating system command is called, the file name currently being processed can be specified with the following placeholders:

● %f (file name)

● %F (absolute file name including path)

● Timeout (secs)

This specifies the maximum runtime of the executing program in seconds. When this time interval is exceeded, the adapter continues processing. The executing program continues to run in the background.

● Terminate Program After Timeout

Set this indicator if the adapter is to terminate the executing program when the timeout is exceeded.

The adapter writes the output (STDOUT and STDERR) for the operating system command in the system trace.

Message processing is independent of any errors that occur during the execution of a configured operating system command.

Content Conversion Parameters

If you have selected File Content Conversion as the message protocol, you can convert a text file that contains complex structures into an XML source format in this mode. The file contains various row formats in logical structures. For more information, see Converting File Content in the Sender Adapter.

Adapter Status

Set the adapter to Active to enable messages to be exchanged.

Advanced Mode

To specify additional parameters in the adapter configuration, set the Advanced Mode indicator.

Msecs to Wait Before Modification Check

Enter the number of milliseconds that the adapter must wait before it checks whether the files have been changed.

This parameter is not available if you have selected File Content Conversion as the Message Protocol and then made an entry under Recordsets per Message that splits an input file into several messages.

Page 92: PI Overview1

Table

Specify the additional parameter names and parameter values in the table.

Additional parameters are published in SAP Note 801926.

Specifying Additional Files

File List

If you have selected the transport protocol File System (NFS) and have set the Additional Files(s) indicator, you can enter the additional files that are to be included in the XI message as attachments.

Enter a name for each additional file in the File List. You can choose any name. Separate the names of the additional files with a comma (<Additional file1,additional file2, ...,additional fileN>).

The specified names are used as the names of the additional attachments in the XI message and as the keys of the parameters.

Rules for Additional Files

All additional files must be in the source directory.

The way that the files to be transported are grouped together is defined by the file names. All file names must be identical except for a defined part (such as the suffix).

Additional files can only be transported unaltered without conversion options.

Messages with additional attachments require a receiver that can process them.

Additional files are located in the message as an attachment under the name assigned in the File List.

Entries in the table fields are only submitted when you leave the field. Therefore, it is particularly important to confirm your last entry in the table by choosing Enter before you save the entries.

Parameters for Additional Files

Name Value

Page 93: PI Overview1

<Additional FileN>.namePart The name of the additional file is determined from the file name that was assigned for the XI message under File Name.

Specify which part of the original file name must be replaced to find the additional files

“.txt“=“.pdf“

If, as a result of the configuration, the file invoice.txt was found, then this specification means that the system searches for the file invoice.pdf.

<Additional FileN>.optional YES

The entry is ignored and the message is sent to the Integration Server/PCK without the system finding the additional file.

NO

If the file is not found, then processing is terminated with an error message.

<Additional FileN>.type Specifies the file type of the additional file:

BIN (Binary file)

TXT (Text file)

<Additional FileN>.encoding If the file type of the additional file is TXT (text file), you can specify the name of the codepage to be used. The same rules apply as in the File Type section in Configuring the Sender File/FTP Adapter.

Page 94: PI Overview1

Converting File Content in a Sender Adapter If you have selected File Content Conversion as the message protocol, you can convert a text file that contains complex structures into an XML source format in this mode. The file contains various row formats in logical structures.

File StructureThe system expects a file with one or more logical structures (recordsets). An unlimited number of recordsets (either one, multiple, or all recordsets in the file) can be sent to the Integration Server/PCK as separate messages.

A recordset can contain multiple types of substructures identified by logical names. There can be a fixed or variable number of substructures in a recordset. The structure of these substructures must be fixed and corresponds to the description of the row structure logic in the table below. A sub structure must always be shown in exactly one line of the text document.

The document has the following structure:

<documentName>...

<recordset>

<NameA><field-nameA1>field-value</field-nameA1><field-nameA2>field-value</field-nameA2><field-nameA3>field-value</field-nameA3>

</NameA>

<NameB><field-nameB1>column-value</field-nameB1><field-nameB2>column-value</field-nameB2><field-nameB3>column-value</field-nameB3>

</NameB>

</recordset>

Page 95: PI Overview1

...

<recordset>

...

</recordset>

</documentName>...Enter the following:

● Document Name

Specify the name of the XML document. The document name is inserted in the message

as the main XML tag. This is mandatory for the mapping.

● Document Namespace

The namespace is added to the name of the document. This is mandatory for the

mapping.

● Document Offset

Specify the number of lines that are to be ignored at the beginning of the document. This

enables you to skip comment lines or column names during processing. If you do not

make an entry, the default value is zero lines.

● Recordset Name

Specify the name of the structure: It is included in the XML schema.

● Recordset Namespace

The namespace is added to the name of the structure.

● Recordset Structure

Enter the sequence and the number of sub structures as follows:

<NameA,nA,NameB,nB,...>. Therefore, nA=1,2,3,... or * (for a variable, unlimited

number, including 0).

● Recordset Sequence

The start and end of recordsets containing a variable number and arrangement of

structures are determined as follows:

○ Ascending: The sequence of the recordset structures is assumed to be unique. A

new recordset is started as soon as an earlier structure occurs.

○ Variable: The sequence of the recordset structures is assumed not to be fixed. A

new recordset is only started when another structure occurs that is defined with a

fixed number. If all structures are defined as variable the system interprets the

entire document as a single recordset.

Page 96: PI Overview1

● Recordsets per Message

Specify the number of recordsets to be grouped together in a message. This specification

is optional. The default value is *. In the default setting, all recordsets are included in a

message.

If the number of recordsets in a document is greater than the number specified, then the

adapter creates multiple messages from a document. The last message might then

contain fewer recordsets than specified.

If you specify Exactly Once as the quality of service (see below), each of these messages (that is to say, each part of a document from which a message is created) is sent to the Integration Server/PCK exactly once. This is also true if the application is interrupted while creating the messages and restarted again later.

● Key Field Name

If you specified a variable number of substructures for Recordset Structure, in other

words, at least one substructure has the value ‘*’, then the substructures must be

identified by the parser from their content. This means that a key field must be set with

different constants for the substructures. In this case, you must specify a key field and the

field name must occur in all substructures.

● Key Field Type

Specify the key field type to be used to compare the predefined values. This entry is used

if the key field name is defined.Set the parameters for all the specified recordset structures NameA, NameB, and so on in the following table:

Parameters for Recordset Structures

Parameter Name DescriptionignoreRecordsetName A <Recordset> element is inserted in the XML

structure for each recordset structure. This level is

not always required, particularly if the recordset only

contains one structure definition.

If you set the parameter to true, the <Recordset>

element is not inserted.

Page 97: PI Overview1

NameA.fieldFixedLengths If you make a specification here, the system expects a

character string that contains the lengths of the

structure columns as arguments separated by

commas.

If you also specify a separator for the columns, you

must not add its length to the length of the columns.

This entry is mandatory if you have not made an entry for NameA.fieldSeparator.

NameA.fieldFixedLengthType Specifies the form in which the entries under

NameA.fieldFixedLengths are counted:

● char (default value)

The number of characters is counted.

● byte

The byte length of the characters is counted.NameA.fieldSeparator If you make a specification here, the system expects

that the structure contains the specified character

string (one or more characters) as a separator

between the individual columns.

If you have not made an entry for fieldFixedLengths,

this is the only specification to identify the individual

columns in a row.

If you made a specification for fieldFixedLengths, the

extra length of the separator is taken into account,

but no further consistency checks are performed.

Page 98: PI Overview1

NameA.enclosureSign Specify a string that acts as a text delimiter. Text

enclosed by such delimiters is transferred to the

target structure unmodified, although the default

setting is to remove all text delimiters. Separators

within such texts are ignored.

This parameter is optional. The default setting is an

empty value (no text delimiter).NameA.enclosureSignEnd If the text delimiters for the beginning and end of the

text are different, specify the text delimiter for the

end of the text here.

If you do not make an entry here, then the entry from

NameA.enclosureSign is used instead.NameA.enclosureSignEscape Specify a string that replaces the text delimiter if it

occurs within a text that it delimits.

When the text is transferred the string is replaced by

the value specified in NameA.enclosureSign.NameA.enclosureSignEndEscape Specify a string that replaces the text delimiter for

the end of the text if it occurs within a text that it

delimits.

When the text is transferred the string is replaced by

the value specified in NameA.enclosureSignEnd.

Page 99: PI Overview1

NameA.enclosureConversion ● Specify YES if the text delimiter is to be

removed when the files are transferred or if the

escape character is to be replaced. This is the

default value.

● Enter NO if the character is to be transferred

unaltered.

If you specify xml.enclosureSign=“ and xml.enclosureSignEsc=““, text enclosed in quotation marks is transferred unchanged and the quotation marks are removed.If the escape character for a quotation mark (““) occurs in the text itself, it is replaced by the quotation mark during the transfer.

NameA.endSeparator If you want to define an additional string as a

separator after the last column in a row, then specify

it here. The system skips this separator when it

processes the last column (otherwise the system

would treat it as part of the last column).

Page 100: PI Overview1

NameA.beginSeparator If you want to define an additional character string as

a separator before the first column in a row, make a

specification here. The system skips this separator

when it processes this column (otherwise the system

would treat it as part of the first column).

● Special Characters in the String for Separators

In all strings for separators

(NameA.fieldSeparator,

NameA.beginSeparator,

NameA.endSeparator), you can specify non-

printable ASCII characters. These characters can

each be inserted individually in the string in the

form ´0xHH´ (including the quotation marks),

where HH represents the character encoded as

a hexadecimal value.

● Inserting Strings for Separators in the XML

Document:

The separators specified with

NameA.beginSeparator and

NameA.endSeparator can also be inserted as

fields in the structure of the generated XML

document. To do so, specify field names with

the following specifications:

NameA.addBeginSeparatorAsField=<fieldname>

and/or

NameA.addEndSeparatorAsField=<fieldname>

The strings, together with the specified field

name, are then inserted either at the start or

the end of the structure, as they were specified

in NameA.beginSeparator and

NameA.endSeparator. The definition of special

characters also needs to be included. Special

characters cannot be converted since

Page 101: PI Overview1

characters of this type are not permitted in XML

documents.NameA.fieldNames Specify the names of the structure columns: The

input format depends on the following:

● If you have specified a value for

NameA.fieldFixedLengths, then a string is

expected containing the names of the file

columns as arguments separated by commas.

This also applies if you have also specified a

value for NameA.columnSeparator.

● If you only specify a value for

NameA.fieldSeparator, the system expects a

string containing the names of the file columns

in the same format as the file rows. This means

that the same separator and any additional

strings you specify for NameA.endSeparator

and/or NameA.beginSeparator are expected.NameA.keyFieldValue Specify the value of the key field for the structure.

This specification is mandatory if the key field name is

set. Otherwise, the specification is ignored.NameA.fieldContentFormatting ● Specify trim to remove all the leading and

subsequent blanks for a value found. This is the

default.

● Specify nothing to ensure that the value

remains unaltered.NameA.keyFieldInStructure ● If the key field of the substructure is to be

added to the XML document, enter add. This is

the default.

● If the key field is to be ignored, enter ignore.

Page 102: PI Overview1

Configuring the Receiver File/FTP Adapter

Use

You need to configure the receiver file/FTP adapter to save XML messages from the Integration Server/PCK in files.

Integration

You configure the adapter on the Parameters tab page during the definition of a communication channel in the Integration Server or in the PCK. In addition to the adapter configuration, on the Module tab page in the module processor, you can specify generic modules, which give the adapter additional functions.

Prerequisites

1. You have created a new communication channel or have opened an existing one.

2. On the Parameters tab page you have selected the adapter type FILE.

3. You have selected the Receiver radio button to define the adapter as a receiver adapter.

Using FTPS (File Transfer Protocol using SSL/TLS)

The application of FTPS follows specification RFC 4217.

The SAP Java Cryptographic Toolkit is deployed. See also: Deploying the SAP Java Cryptographic Toolkit

The CA certificate used to sign the server certificate must be added to the TrustedCAs keystore view. See also: Key Storage Service

Activities

To configure the adapter, specify the following:

Transport Protocol

The file can either be put in a file system (File System (NFS)) or on a File Transfer Protocol (FTP) server.

Message Protocol

● File

The document sent from the Integration Server/PCK is saved directly as a file.

● If you want to convert an XML document to a text file, choose File Content Conversion and make the required entries for conversion under Content Conversion Parameters (see below).

Adapter Engine

Select the Adapter Engine on the Integration Server, or select a non-centrally installed Adapter Engine. This selection is not available in the PCK.

File Access Parameters

● Specify the Target Directory in which the documents are to be saved.

Page 103: PI Overview1

You can enter variables for the target directory. The variables must be enclosed by % characters.

/c:/temp/local/%var1%

● If the adapter is to create the target directory, if it doesn't already exist then set the indicator Create Target Directory.

If the indicator is not set and the target directory doesn't already exist the adapter returns an error.

● Specify the File Name Schemethat the system is to use to save the first incoming document.

You can enter variables for the file name scheme. The variables must be enclosed by % characters.

See also Variable Substitution below.

FTP Connection Parameters

Use of the file transfer protocol follows the specification RFC 959. If you have selected the transport protocol File Transfer Protocol (FTP), enter the following:

● Server

Enter the host name or IP address of the FTP server.

● Port

Specify the port number of the FTP server. The default is the standard port for the FTP server (21).

● Data Connection

You can choose from the following settings:

○ Active

In active mode, the server establishes a data connection from its data port, port 20, to an end point chosen by the client.

○ Passive

In passive mode, the client establishes a data connection to the port required by the server.

The default setting is a passive data connection. Only change this setting if you have a specific reason.

● Timeout (secs)

If no data is transferred between the client and the FTP server in the time interval specified here, the adapter interprets this as an error and terminates the transfer.

● Connection Security

○ None

The FTP protocol is used without encryption.

○ FTPS (FTP Using SSL/TLS) for Control Connection

Page 104: PI Overview1

After the connection is established, the FTP control connection is protected using TLS/SSL (Transport Layer Security (BC-SEC)/Secure Sockets Layer (BC-SEC)). Data is transferred unencrypted.

○ FTPS (FTP Using SSL/TLS) for Control and Data Connection

All communication with the FTP server is encrypted and uses TLS/SSL.

If you selected FTPS for Connection Security, then enter the following details:

○ Command Order

Specifies the sequence of commands used to authenticate and secure the connection.

Retain the default setting. Only adjust the sequence of commands to match those expected of the FTP server if you encounter problems with the TLS connection. For information about the correct setting, see the documentation for the FTP server.

○ Use the X.509 Certificate for Client Authentication

Set this indicator if the adapter, in contrast to the FTP server, is to use X.509 certificate and public-key encryption to authenticate itself. The corresponding key/certificate pair must previously be saved in a keystore view of the J2EE server by using the Visual Administrator.

○ Enter the Keystore and the X.509 Certificate and Private Key. To do this, you can use the input help.

● To logon with the user name anonymous and the password anonymous, set the Anonymous Login indicator. Otherwise, enter the following:

○ User Name

Enter a valid user name for the FTP server.

○ Password with confirmation

● Connect Mode

○ Permanently

An existing connection to the FTP server is used permanently.

The connection is reestablished automatically if it is lost on the server side.

○ Per File Transfer

A new connection to the FTP server is established for each file transfer.

● Transfer Mode

Set the FTP connection transfer mode to Textor to Binary.

● Put File

If the file is to be created on the server immediately, select Directly.

If the content is to be gathered in a temporary file first before the final file is put on the server, choose Use Temporary File.

Processing Parameters

● Various options exist for creating the files:

File Construction Mode

Page 105: PI Overview1

Mode Selection

Create The file is created. The document received last is saved in each case.

Set the Overwrite Existing File indicator if you want to overwrite the existing file. If you do not set the indicator, processing is stopped until the created file is processed.

You can only set the indicator if you have selected Use Temporary File under Put File.

Append The file is written when the inbound document is attached.

Add Time Stamp A new file is created for each document. Each file is extended with a time stamp with the format yyyyMMdd-HHmmss-SSS. The time stamp is added as the last part of the name before the extension.

This mode guarantees that no file is overwritten. In this way, files that originate from the same adapter configuration can be sorted.

Add Message ID A new file is created for each document. The file name is extended by the message ID generated by the Integration Server/PCK. The ID has the format: xxxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.

The message ID is added as the last part of the name before the extension. This mode guarantees that no file is overwritten.

Page 106: PI Overview1

Add Counter A new file is created for each document. The file name is extended with a counter, which is inserted before the file name extension (for example, default002.file). This selection is only available for the File System (NFS) transport protocol.

Make specifications for Counter Definition:

● Prefix

Specify one or more characters that you want to add before the counter in the file name.

● Format

Specify the first counter to be used. It must be a valid integer number. Leading zeros are permitted.

● Step

Specify the counter increment.

● Mode

Specify when the counter is to be added.

○ After First File

The counter is added when the file name is used unaltered for the first time.

○ Immediately

The counter is added with the first document.

● Under Write Mode, specify whether the target file is to be written directly in the specified directory. If an additional step is to be added using a temporary file, choose Use Temporary File.

● You can specify a naming schema for the temporary file under Temporary File Name Schema.

This schema is used to determine the prefix and extension of the temporary file; to ensure a unique file name, a time stamp is also added to the name during processing.

The schema xitemp.tmp, for example, results in the file name xitemp<timestamp>.tmp.

● Specify the document file type.

○ Binary

○ Text

Page 107: PI Overview1

Under File Encoding, specify a code page. The default setting is to use the system code page that is specific to the configuration of the installed operating system.

The content of the message is then converted to the corresponding code page before the message is saved as a file.

Permitted values for the code page are the existing Charsets of the Java runtime. According to the SUN specification for the Java runtime, at least the following standard character sets must be supported:

Java Runtime Character Sets

Character Set Description

US-ASCII Seven-bit ASCII, also known as ISO646-US, or Basic Latin block of the Unicode character set

ISO-8859-1 ISO character set for Western European languages (Latin Alphabet No. 1), also known as ISO-LATIN-1

UTF-8 8-bit Unicode character format

UTF-16BE 16-bit Unicode character format, big-endian byte order

UTF-16LE 16-bit Unicode character format, little-endian byte order

UTF-16 16-bit Unicode character format, byte order

Check which other character sets are supported in the documentation for your Java runtime implementation.

Variable Substitution (Target Directory/File Name Scheme)

If you set the Enable indicator, you can enter variables for the Target Directory and File Name Scheme. Enter the names of the variables and references in the table.

● Enter each variable that you reference in the Target Directory and File Name Scheme fields without the surrounding percentage sign under Name of Variables in the table.

The variables can refer to attributes of the message header or elements of the message payload.

○ If the variables are to refer to an attribute of the message header, add the prefix message: to the name of the variable under Reference. You can specify the following attributes of the message header:

sender_party, sender_service, receiver_party, receiver_service, interface_name, interface_namespace,

Page 108: PI Overview1

message_id (message ID with hyphens, for example 9fbe1ff1-9a0d-11d9-8665-cbf10a126331)

message_id_hex (message ID in hexadecimal format, for example 9fbe1ff19a0d11d98665cbf10a126331)

For example, if you want to specify the interface name from the message header in the target directory or in the file name scheme, enter message:interface_name as the reference.

If one of the message attributes contains characters that are not permitted in a file name, for example \, /, :, *, ?, ", <, >, |, then these characters are replaced by an underscore ("_").

○ If the variable refers to an element in XML schema, add the prefix payload: to the information under Reference. The reference then comprises a pseudo path description in the form of a comma-separated list with the schema namea,na,nameb,nb,....

namea,nameb,... corresponds to the element name and na,nb,... corresponds to the occurrence of the element name at the respective level in the document.

The description begins at the root of the document and ends at the respective element.

To reference the element that is in bold in the example, the following expression is used: payload:root,1,e1,1,e2,2

The parser searches for the first occurrence of the root element at the first level. It then searches for the first occurrence of e1 at the second level and for the second occurrence of e2 at the third level. The content of the last element (“Example Value”) is set as the value for a specified variable.

<?xml version="1.0" encoding="UTF-8" ?>

<root>

<dummy>

<e1>

<e2>Data_1</e2>

<f/>

<g attr="abc">text</g>

<e2>Data_2</e2>

</e1>

</dummy>

<e1>

<e2>illegal/value</e2>

Page 109: PI Overview1

<f/>

<g attr="abc">text</g>

<e2 attr="fghij">Example Value</e2>

</e1>

</root>

● To disable the check the adapter performs for the element data, set the Disable Security Checks indicator.

Otherwise, the adapter checks whether the element data contains characters that could lead to security risks in the file system environment. The check includes the characters “/“, “\“, and “..“.

Adapter-Specific Message Attributes

A configured variable substitution (see above) is performed after the attributes are transferred from the message header.

● To evaluate adapter attributes in the message header of the XI message, set the Use Adapter-Specific Message Attributes indicator.

● If you want missing message attributes to trigger error messages, set the Fail If Adapter-Specific Message Attributes Missing indicator. If the indicator is set and the header for adapter-specific message attributes or one of the set attributes is missing from the message, this leads, in asynchronous cases, to a delivery exception in the audit log of the message. In synchronous cases, the sender of the message is notified.

If you do not set the indicator, and message attributes are missing, the adapter accesses information from the adapter configuration.

To evaluate the following attributes in the XI message header, set the corresponding indicators:

Name Technical Name

File Name FileName

Directory Directory

File Type FileType

File Coding

You can only set this indicator if the file type is text, and if the file type indicator above is already set.

FileEncoding

Temporary Name Scheme for Target File Name

You can only set this indicator if the target file is written using a temporary file.

TargetTempFileName

The attribute namespace for the adapter is http://sap.com/xi/XI/System/File.

Page 110: PI Overview1

Run Operating System Command Before/After Message Processing

● Command Line

An operating system command specified here is executed before or after a file has been successfully processed. The default value is an empty character string (no command).

When the operating system command is called, the file name currently being processed can be specified with the following placeholders:

%f (file name)

%F (absolute file name including path)

● Timeout (secs)

This specifies the maximum runtime of the executing program in seconds. When this time interval is exceeded, the adapter continues processing. The executing program continues to run in the background.

● Terminate Program After Timeout

Set this indicator if the adapter is to terminate the executing program when the timeout is exceeded.

The adapter writes the output (STDOUT and STDERR) for the operating system command in the system trace.

Message processing is independent of any errors that occur during the execution of a configured operating system command.

Content Conversion Parameters

If you have selected File Content Conversion as the message protocol, you can create a text file from an XML document in this mode. For more information, see File Content Conversion Specifications in the Receiver Adapter.

Adapter Status

Set the adapter to Active to enable messages to be exchanged.

Advanced Mode

To specify additional parameters in the adapter configuration, set the Advanced Mode indicator.

Specify the parameter names and parameter values in the table.

Additional parameters are published in SAP Note 801926.

Page 111: PI Overview1

Converting File Content in the Receiver Adapter

If you have selected File Content Conversion under Message Protocol, you can convert a table in XML format to pure text format in this mode. The expected XML structure contains the structure as nodes filled with any number of elements without additional subnodes.

The expected document structure usually looks like this:

<root>...

<nameA>

<value1>value</value1>

<value2>value</value2>

<value3>value</value3>

</nameA>

<nameB>

<value4>value</value4>

</nameB>

...

</root>...

You can use any element names you like. There can be any number of different substructures under the root element, which can be mapped to different CSV structures.

File Structure

The specifications described below are used to construct a text file from the XML document.

Recordset Structure

Enter the substructures using the pattern NameA,NameB,....

If you want to convert all substructures using the same parameters, you only have to specify one structure. The specifications are automatically applied to all substructures.

If you specify more than one structure, the list must contain all the structures occurring in the document. The list must be complete, otherwise a processing error will be triggered at runtime.

Set the parameters for all the specified recordset structures NameA, NameB, and so on in the following table:

Parameters for the Recordset Structure

Parameter Name Meaning

Page 112: PI Overview1

NameA.addHeaderLine Specify whether the text file will have a header line with column names. The following values are permitted:

0 – No header line

1 – Header line with column names from the XML document

2 – As for 1, followed by a blank line

3 – Header line is stored as NameA.headerLine in the configuration and is applied

4 – As for 3, followed by a blank line

This specification is only permitted if exactly one structure is defined.

NameA.headerLine Specify the header line that is generated in the text file if NameA.addHeaderLine has the value 3 or 4. This specification is mandatory in this case.

NameA.fieldFixedLengths Specify a character string containing a list of fixed column widths that are separated by commas and determine the number and the length of columns generated in the text file.

If you do not make any specification for NameA.fieldSeparator, the specification NameA.fieldFixedLengths is mandatory.

NameA.fixedLengthTooShortHandling Specify how you want the system to respond when column widths in the actual document exceed those defined in NameA.fieldFixedLengths. The following values are permitted:

Error

Error means that processing of the document is terminated.

Cut

Cut means that a value is shortened to the maximum permitted length.

Ignore

Ignore means that the system applies the value completely, regardless of it being too long. Subsequent columns are moved correspondingly.

Page 113: PI Overview1

NameA.fieldSeparator If you specify a character string here, it is added as a separator to all columns except the last. You can also specify this string in addition to NameA.fieldFixedLengths.

If you made no specification for NameA.fieldFixedLengths, this is the only specification to identify the individual columns in a row.

If you made a specification for NameA.fieldFixedLengths, the length of the separator is not taken into account.

You must specify at least either NameA.fieldFixedLengths or NameA.fieldSeparator.

If you have only specified NameA.fieldSeparator, the structures of the XML document can have differing numbers of elements that are added to each other separately in the text file by the value from NameA.fieldSeparator. If you specify NameA.fieldFixedLengths this is not possible since the number of columns is defined when the column widths are given.

NameA.endSeparator If you enter a character string here, the system adds it to the last column as a closing character. You can also make this specification in addition to NameA.fieldFixedLengths. To include a line break following the closing character, you must explicitly define it by attaching ´nl´ (including the quotation marks) to the string.

The default value is a line break (no explicit separator after the last column; instead the structures are arranged line-by-line).

NameA.beginSeparator If you specify a character string here, the system places it before the first column. You can also make this specification in addition to NameA.fieldFixedLengths.

The default value is an empty character string (no separator before the first column).

Special Characters in the String for Separators:

Page 114: PI Overview1

In all strings for separators (NameA.fieldSeparator, NameA.beginSeparator, and NameA.endSeparator), you can specify non-printable ASCII characters. These characters can each be inserted individually in the strings in the form ´0xHH´ (including the quotation marks), where HH represents the character coded as a hexadecimal value. A line break can be entered using the character ´nl´ (including the quotation marks); nl stands for new line. The special character ´0´ is not a separator character.

Fixed Column Width of the Text Document:

NameA.absoluteRowWidth=<noOfColumns>

If the separators do not contain any line breaks, the text document is generated as a single line of text. To restrict the width of the text, use this parameter. <noOfColumns> represents the maximum number of columns in this case. This parameter also functions together with the specification of a line break for xml.endSeparator.

This value requires NameA.addHeaderLine=0 to be specified.

Configuring the Sender JDBC Adapter

Use

You need to configure the sender JDBC adapter to be able to send content from databases to the Integration Server or to the PCK.

Adapter Work Method

You must add an indicator that specifies the processing status of each data record in the adapter (data record processed/data record not processed) to the database table.

The UPDATE statement must alter exactly those data records that have been selected by the SELECT statement. You can ensure this is the case by using an identical WHERE clause. (See Processing Parameters, SQL Statement for Query, and SQL Statement for Update below).

Processing can only be performed correctly when the isolation level for transaction is set to repeatable_read or serializable.

Page 115: PI Overview1

SQL statement for query: SELECT * FROM table WHERE processed = 0;

SQL statement for update: UPDATE table SET processed = 1 WHERE processed = 0;

processed is the indicator in the database.

Integration

You configure the adapter on the Parameters tab page during the definition of a communication channel in the Integration Server or in the PCK. In addition to the adapter configuration, on theModule tab page in the module processor, you can specify generic modules, which give the adapter additional functions.

Condition for Sender Agreement

The adapter determines the payload of the XI message according to how it is configured. However, the message header information is determined from the corresponding sender agreement for the communication channel.

The following conditions apply to the adapter for the definition of the sender agreement:

The communication channel defined here must have exactly one sender agreement.

At least the interface name and the sender service must be qualified in the sender agreement. All other fields are optional in accordance with the general rules for defining sender agreements.

Prerequisites

1. You have created a new communication channel or have opened an existing one.

2. On the Parameterstab page you have selected the adapter type JDBC.

3. You have selected the Sender radio button to define the adapter as a sender adapter.

Activities

Transport Protocol

The transport protocol is JBDC 2.0.

Message Protocol

JDBC

Subsequent versions may permit additional values.

Adapter Engine

Select the Adapter Engine on the Integration Server, or select a non-centrally installed Adapter Engine. This selection is not available in the PCK.

Connection Tab Page

Database Connection

Specify the following to establish the database connection:

Page 116: PI Overview1

Field Entry

JDBC Driver Java class of the JDBC driver that the JDBC adapter must load to be able to access the driver.

The specification varies according to the JDBC driver; see documentation from the respective provider.

Connection Address with which you can establish a database connection using the JDBC driver.

The specification varies according to the JDBC driver; see documentation from the respective provider.

User Name User for the database to be read.

Password Password for the database to be read, including confirmation.

Processing Tab Page

Specify the following processing parameters:

Parameter Entry

Quality of Service Specifies how the Integration Server/PCK should process a message.

Best Effort

(synchronous processing)

Exactly Once

(asynchronous processing)

Exactly Once In Order

(Asynchronous processing using queues. This means execution exactly once following the sequence of successive messages)

Specify the Queue Name.

Poll Interval (secs) Number of seconds that the adapter must wait if no files are found for processing.

Page 117: PI Overview1

Poll Interval (msecs) Additional waiting time in milliseconds.

If Poll Interval (secs) is set to null, processing times will be short and close to real time.

If Poll Interval (secs) and Poll Interval (msecs) are set to null, the adapter is only called once.

Retry Interval (secs) Number of seconds that the adapter is to wait before a SQL statement processed with errors is processed again.

If no value is specified, the value fromPoll Interval (secs) is taken instead.

Query SQL Statement You have the following options:

Specify a valid SQL SELECT statement to select the data to be sent from the specified database.

Specify an SQL EXECUTE statement to execute a stored procedure, which contains exactly one SELECT statement.

The expression must correspond to the SQL variant supported by the relevant JDBC driver. It can also contain table JOINs.

Document Name The document name is inserted in the message as the main XML tag. The default value isresultset.

Document Namespace The namespace is added to the document name.

See the example below.

Page 118: PI Overview1

Update SQL Statement You have the following options:

Enter a valid SQL statement that is to be applied to the database once the data (determined from the Query SQL Statement) has been successfully sent to the Integration Server/PCK.

It must be an INSERT, UPDATE, or DELETE statement.

In place of the SQL statement, you can also enter <TEST>. Once the data determined from Query SQL Statement has been successfully sent, the data in the database remains unaltered.

This is recommended if the data has not only been read, but also changed by a stored procedure entered under Query SQL Statement.

Run Operating System Command

Command Line

Specify an operating system command that is to be executed following successful database operations.

Timeout (secs)

This specifies the maximum runtime of the executing program in seconds. When this time interval is exceeded, the adapter continues processing. The executing program continues to run in the background.

Terminate Program After Timeout

Set this indicator if the adapter is to terminate the executing program when the timeout is exceeded.

The adapter writes the output (STDOUT and STDERR) for the operating system command in the system trace.

Message processing is independent of any errors that occur during the execution of a configured operating system command.

Page 119: PI Overview1

Advanced Tab Page

Adapter Status

Set the adapter to Active to enable messages to be exchanged.

Advanced Mode

To specify additional parameters in the adapter configuration, set the Advanced Mode indicator.

Transaction Isolation Level

There are different levels of database transactions known as isolation levels. The isolation level determines how transactions running in parallel influence each other. The options correspond to the JDBC constants:

Default (default setting of the respective database)

None

read_uncommitted (weakest setting)

read_committed

repeatable_read

serializable (strongest setting)

You must only lower the isolation level where necessary and as far as necessary. To avoid data inconsistencies in the database when the isolation level is lowered, ensure that multiple database transactions cannot access the database simultaneously.

Database Auto-Commit-Enabled (No Transaction Handling)

Set the indicator if you want to deactivate the logical unit of work, which the JDBC adapter requires to guarantee that the data in the database is consistent.

This option is required for JDBC drivers that do not support transactions. To avoid data inconsistencies in the database when the isolation level is lowered, ensure that multiple database transactions cannot access the database simultaneously.

Do not set this indicator if the JDBC driver supports transactions, that is, if a corresponding error message is not displayed in normal operation.

Disconnect from Database After Processing Each Message

Set this indicator if the database connection is to be released and reestablished before every poll interval.

Remove Empty Tags

Set this indicator if you want to remove the empty tags from the resultset of the sender adapter and thereby help reduce the size of XML documents.

Page 120: PI Overview1

If this indicator is not set, the resultset looks as follows:

<resultset>

<row>

<column-name1>column-value</ column-name1>

<column-name2></column-name2>

<column-name3>column-value</ column-name3>

<column-name4></column-name4>

</row>

<row>

<column-name1>column-value</ column-name1>

<column-name2></ column-name2>

</row>

</resultset>

If this indicator is set, the resultset looks as follows:

<resultset>

<row>

<column-name1>column-value</ column-name1>

<column-name3>column-value</ column-name3>

</row>

<row>

<column-name1>column-value</ column-name1>

</row>

</resultset>

Table

Specify the parameter names and parameter values in the table.

Additional parameters are published in SAP Note 801367.

Example

The system converts the table resulting from the query SQL statement into a valid XML document and sends it to the Integration Engine. The document looks like this:

<resultset>

<row>

Page 121: PI Overview1

<column-name1>column-value</ column-name1>

<column-name2>column-value</ column-name2>

<column-name3>column-value</ column-name3>

</row>

<row>

<column-name1>column-value</ column-name1>

<column-name2>column-value</ column-name2>

<column-name3>column-value</ column-name3>

</row>

</resultset>

Configuring the Receiver JDBC Adapter

Use

You need to configure the receiver JDBC adapter to convert XML messages from the Integration Server or the PCK into database table content.

Integration

You configure the adapter on the Parameters tab page during the definition of a communication channel in the Integration Server or in the PCK. In addition to the adapter configuration, on the Module tab page in the module processor, you can specify generic modules, which give the adapter additional functions.

Prerequisites

...

1. You have created a new communication channel or have opened an existing one.

2. On the Parameters tab page you have selected the adapter type JDBC.

3. You have selected the Receiver radio button to define the adapter as a receiver adapter.

Activities

To configure the adapter, specify the following:

Page 122: PI Overview1

Transport Protocol

JBDC 2.0

Message Protocol

● XML SQL format

Table values can be inserted, updated, or deleted in one or more tables. In the database, stored procedures can be called using transfer parameters. In the case of synchronous queries, results from database queries or return values of stored procedures can also be transferred.

● Native SQL String

An arbitrary SQL statement is expected as the message content. This statement is transferred unaltered to the database for processing.

Depending on the message protocol you selected, the adapter expects special XML document formats in the message from the Integration Server or the PCK. For more information about the document formats, see: Document Formats for the Receiver JDBC Adapter.

Adapter Engine

Select the Adapter Engine on the Integration Server, or select a non-centrally installed Adapter Engine. This selection is not available in the PCK.

Connection Tab Page

Database Connection

Specify the following to establish the database connection:

Field Entry

JDBC Driver Java class of the JDBC driver that the JDBC adapter must load to be able to access the driver. The specification varies according to the JDBC driver; see material from the respective provider for exact details.

Connection Address with which you can establish a database connection using the JDBC driver. The specification varies according to the JDBC driver; see material from the respective provider for exact details.

User Name User name for logging on to the database.

Password Password for logging on to the database, including confirmation.

Page 123: PI Overview1

Processing Tab Page

Maximum Concurrency

Enter the number of messages to be processed in parallel by the receiver channel. For example, if you enter the value 2, then two messages are processed in parallel. Default value is 1 and this means only one message can be processed at a time by the receiver channel.

XML Schema Interpreter

Field Entry

Key Tags Mandatory Set the indicator to specify that there must be conditions in the key tag.

Interpretation of Empty String Values Specify how empty text fields are to be handled.

● NULL value

In the case of INSERT and UPDATE statements, empty fields are handled like NULL fields (do not exist) and are not inserted in the database.

● Empty string

In the case of INSERT and UPDATE statements, empty texts are inserted in the columns.

Exactly-Once Handling

Persistence Explanation and Further Entries

Local As in the other adapters, Exactly Oncemessages are handled by default using status information in the J2EE server. All adapter error statuses and program terminations initialized externally are also handled in this mode.

However, this does not include external program terminations during a database commit. In this case, the status of message processing is unclear since it can only be changed once the database commit has been completed.

However, this kind of situation is identified when the application is started and editing of

Page 124: PI Overview1

the message terminated during processing can be controlled using Conflict Resolution.

This specification is only effective for handling errors that occur when a message is being processed for a second time after initial processing remained in the unclear status described above.

Conflict Resolution

● Error

If an error occurs when processing again, this is reported to the caller system whenError is selected.

● Redo

However, if the error occurs because the message was saved in the database when it was first processed and it is still located there, processing can be completed for the sender system using the value Repeat(note that the database interface normally triggers the error duplicate insert if at least one of the table fields was defined as a primary key). Otherwise the sender system will continue to send the message and the error will continue to occur.

Page 125: PI Overview1

Database Nevertheless, there is still a gap in exactly once processing: if there is no primary key field in the database table or if the data is already being processed by another application and it is then deleted, when the first attempt at message processing is interrupted by an irregular termination of the J2EE server immediately after the database commit, a message can be duplicated.

This problem can only be solved if message processing and status information management take place in the same database so that the processing steps have the same commit cycle.

In the database where the write-to tables are located you must create an additional table with two columns for this purpose. To define the table, specify the following:

● Database Table Name

Specify the name of the table.

● Key Column Name

Enter the key in this table column.

● Value Column Name

Enter the key value in this table column.

SQL Syntax Parameter

● Escape Symbol for Apostrophe

The apostrophe character (‘) is a reserved character in SQL syntax and is therefore replaced by an escape character if it occurs within value strings. This replacement character can be database-specific. Typical replacement characters are \’ or ’’ (default value). If a character occurs that is invalid for the database being used, the adapter triggers an error message (an SQL exception) concerning the SQL syntax that is generated by the database.

● Column Name Delimiter

Depending on the database being used, column names can be enclosed by a special delimiter character, for example, if the names can contain special characters (such as ”). This character can be specified at this point. The default setting is no delimiter character. If a character occurs that is invalid for the database being used, the adapter triggers an error message (an SQL exception) concerning the SQL syntax that is generated by the database.

Page 126: PI Overview1

Run Operating System Command

● Command Line

Specify an operating system command that is to be executed following successful database operations.

● Timeout (secs)

This specifies the maximum runtime of the executing program in seconds. When this time interval is exceeded, the adapter continues processing. The executing program continues to run in the background.

● Terminate Program After Timeout

Set this indicator if the adapter is to terminate the executing program when the timeout is exceeded.

The adapter writes the output (STDOUT and STDERR) for the operating system command in the system trace.

Message processing is independent of any errors that occur during the execution of a configured operating system command.

Configuring the Receiver IDoc Adapter

Use

You need to configure the receiver IDoc adapter to convert Integration Server contents from IDoc-XML to native IDoc format and to forward the IDocs to an SAP system or subsystem by using the standard tRFC IDoc interface. The IDoc control record is completed by the IDoc adapter.

If a sender system expects acknowledgment messages from an IDoc adapter, then you also need to define a corresponding receiver agreement and a receiver IDoc adapter for this system.

Integration

You configure the adapter on the Parameters tab page during the definition of a communication channel.

A communication channel with a receiver IDoc adapter can be created automatically for business systems that are defined in the System Landscape Directory. See also: Creating Communication Channels Automatically.

Prerequisites

1. You have created a new communication channel or have opened an existing one.

2. On the Parameters tab page you have selected the adapter type IDoc.

Activities

To configure the adapter, specify the following:

Page 127: PI Overview1

Transport Protocol

IDoc is already specified.

Message Protocol

IDoc is already specified.

Adapter Engine

The Integration Server is already specified.

RFC Destination

Enter the RFC destination of the receiver system.

Segment Version

Specify which segments of the IDoc types are to be sent to the receiver system. Enter a three-figure reference for the release. Any incorrect entries here will result in a runtime error.

If you leave this field empty, the last version will always be used.

The metadata for Release 6.40 is available. The receiver system must only contain the segments for Release 3.0A. Enter 30A.

Interface Version

Specify which function module must be called in the receiver system to transfer the data in the relevant

format. Function module calls for both interface versions are placed in the tRFC queue.

You can choose from the following versions of the technical IDoc interface:

● SAP Release 3.0/3.1

INBOUND_IDOC_PROCESS

This function module is used for IDoc types with short names (for example, eight characters).

● SAP Release 4.0 or Higher

IDOC_INBOUND_ASYNCHRONOUS

This function module is used for IDoc types with long names (for example, 30 characters).

Port

Specify the port that the IDoc adapter uses to receive the IDoc metadata. The port definition uses an RFC destination to receive the IDoc structure by RFC.

SAP Release

To convert the data from IDoc XML to IDoc format, the receiver IDoc adapter requires the IDoc metadata. If the IDoc metadata is not available, it will be loaded from the receiver system.

Specify the current release of the receiver system.

Page 128: PI Overview1

Queue Processing

If the function module IDOC_INBOUND_IN_QUEUE is to be used, set the relevant indicator. It is used for IDocs that are serialized by queues (quality of service is EOIO). This module is only available in SAP Web AS 6.40 and higher. If it is not available, the function module IDOC_INBOUND_ASYNCHRONOUS is called. The indicator only takes effect in SAP systems Releases 4.0 and higher. Calls for the queue processing

function module are placed in the qRFC queue.

Apply Control Record Values from Payload

If you set the indicator, the conversion of communication parties to the IDoc partner is only possible for systems that are not logical systems.

If you do not set the indicator, all combinations of communication parties and services are handled as services without party.

If the IDoc XML structure contains a control record during outbound processing on the Integration Server, it is rejected and created again by the IDoc adapter. If you want to include additional values in the control record, set the indicator and provide an appropriate mapping for the values. See also: Fields of the IDoc Control Record

Take Sender from Payload

If you want to take the sender of the message from the payload and not from the configuration information in the Integration Directory, set this indicator.

If you do not set the indicator, the information is taken from the configuration in the Integration Directory.

Take Receiver from Payload

If you want to take the receiver of the message from the payload and not from the configuration information in the Integration Directory, set this indicator.

If you do not set the indicator, the information is taken from the configuration in the Integration Directory.

If you set both of the above indicators, you do not require a heading mapping and do not need to set the alternative identifiers.

However, you must ensure that the SNDPRN, SNDPRT, RCVPRN, and RCVPRT fields are set in the IDoc control record.

Setting the senders and receivers of a message from the payload simplifies configuration and speeds up processing.

If the sender and receiver are not set correctly in the payload, the resulting error is only visible in the receiving system.

Page 129: PI Overview1

Restoring Original Partners for Acknowledgments

If you set the relevant indicator, the original partners from the IDoc request message are used for acknowledgments. This means you no longer have to maintain the alternative identifiers (for party conversion) in the Integration Directory.

Configuring the Sender JMS Adapter

Use

You need to configure the sender JMS adapter to send JMS messages to the Integration Engine or the PCK.

Integration

You configure the adapter on the Parameters tab page during the definition of a communication channel in the Integration Server or in the PCK. In addition to the adapter configuration, on the Module tab page in themodule processor, you can specify generic modules, which give the adapter additional functions.

Condition for Sender Agreement

The adapter determines the payload of the XI message according to how it is configured. However, the message header information is determined from the corresponding sender agreement for the communication channel.

The following conditions apply to the adapter for the definition of the sender agreement:

The communication channel defined here must have exactly one sender agreement.

At least the interface name and the sender service must be qualified in the sender agreement. All other fields are optional in accordance with the general rules for defining sender agreements.

Prerequisites

1. You have created a new communication channel or have opened an existing one.

2. On the Parameters tab page you have selected the adapter type JMS.

3. You have selected the Sender radio button to define the adapter as a sender adapter.

Activities

To configure the adapter, specify the following:

Transport Protocol

SonicMQ JMS Provider

WebSphereMQ (non-JMS)

Access JMS Provider with JNDI

(Read) JMS Provider Administered Objects from File

Access JMS Provider Generically

Message Protocol

JMS 1.x

Page 130: PI Overview1

Adapter Engine

Select the Adapter Engine on the Integration Server, or select a non-centrally installed Adapter Engine. This selection is not available in the PCK.

Source Tab Page

Depending on the transport protocol you have selected, you make specifications for the respective JMS provider. See the relevant JMS-provider documentation for details about the individual parameters. See also:JMS-Provider-Specific Settings

Processing Tab Page

JMS Settings

Parameter Entry

Transactional JMS Session

If you want to use a transactional JMS session, set the indicator. Following processing of a message, a transactional session ends either with a COMMIT, or in the case of an error, with a ROLLBACK.

JMS Queue User

User for accessing the JMS queue

JMS Queue Password

Password (with confirmation) for accessing the JMS queue

JMS Message Selector

You use the JMS message selector to specify conditions that a JMS message in the specified JMS queue must meet in order to be processed by the sender adapter.

For more information about the JMS message selector, seejava.sun.com/j2ee/sdk_1.3/techdocs/api/index.htmlunder javax.jms and Message.

Correlation Settings

Define which algorithm is to be used to create the message ID of a new XI message. The prerequisite for selecting an ID is that it is a GUID (globally unique identifier) according to ISO-11578.

If the message ID is not a GUID, message processing will fail. This can cause message duplicates if the ID is not unique. Furthermore, if the GUID does not conform to ISO-11578, this can trigger a GUIDFormatException.

Set XI Message ID (MessageID) To:

GUID (Recommended Value)

JMSMessageID (Uniqueness Is JMS-Provider-Dependent)

JMSCorrelationID (Uniqueness Is JMS-Sender-Dependent)

Page 131: PI Overview1

JMSProperty (Uniqueness Is JMS-Sender-Dependent)

Enter the JMS Property Name. This value is set for the XI message ID.

If the JMSCorrelationID or JMSProperty are not set in the JMS message, a message ID is generated automatically.

If you have selected JMSMessageID, JMSCorrelationID, or JMSProperty and entered a JMS message ID in these fields, you should see the Remove 'ID:' Marker from JMSMessageIDindicator. Set the indicator.

This is necessary because the JMS specification stipulates that each JMS message ID starts with 'ID'. However, this conflicts with ISO-11578.

Set XI Conversation ID (ConversationID) To:

No value

If you choose this setting, the XI conversation ID is not set.

JMSMessageID (Uniqueness Is JMS-Provider-Dependent)

JMSCorrelationID (Uniqueness Is JMS-Sender-Dependent)

JMSProperty (Uniqueness Is JMS-Sender-Dependent)

Enter the JMS Property Name. This value is set for the XI message ID.

Stored JMSCorrelationId of request

The saved JMSCorrelationID of the request is used.

For more information about the ConversationID, see: Parts of an XI Message, under ConversationID and RefToMessageID.

XI Settings

Parameter Entry

Mapping of Message If you want the JMS payload to contain the entire message, choose Entire Message = JMS Payload.

If you only want the JMS payload to contain the payload of the message, choose Message Payload = JMS Payload.

Page 132: PI Overview1

Quality of Service Specifies how the Integration Engine/PCK will process a message.

Exactly Once (asynchronous processing with guaranteed execution exactly once)

Exactly Once In Order (asynchronous processing using queues, in other words guaranteed execution exactly once and maintaining the sequence of successive messages).

Specify the Queue ID.

Specify the Processing J2EE Cluster Server (Cluster ID).

This specification stops queue-jumping in the JMS queue. The valid cluster ID is located on the J2EE server – Administrator underServer.

If you do not enter the cluster ID, the EOIO channel is activated automatically on a different working node. This configuration ensures node failover by the adapter in a clustered environment.

Time Period for Duplicate Check for EO(IO) (secs)

To check for duplicate messages, IDs must be saved in the database. To prevent the database from getting unnecessarily large, these IDs must be deleted after a certain amount of time.

Specify in seconds the time period after which you want IDs to be deleted (after one day, for example, if you check message monitoring daily).

Error Handling Settings

Parameter Entry

Page 133: PI Overview1

Wait Time After Message Error (msecs) Enter the number of milliseconds that the adapter must wait when a processing error occurs before further messages are processed.

In transactional processing, it can make sense to specify a certain time period, for example, because messages with errors remain in the queue following a ROLLBACK.

Wait Before Reconnect (msecs) Specify a period of time after which an attempt will be made to reestablish a connection following a connection error on the JMS side.

The time period must be specified in milliseconds. No attempt is made if the value is set to -1.

Your JMS provider must support the registration of an ExceptionListener for this.

Advanced Tab Page

Adapter-Specific Message Properties

To store adapter attributes in the message header of the XI message, select Set Adapter-Specific Message Properties.

To apply the following attributes in XI message headers, set the corresponding indicators:

Name Technical Name

JMS Message Correlation ID DCJMSCorreleationID

JMS Message Delivery Mode DCJMSDeliveryMode

JMS Message Destination DCJMSDestination

JMS Message Expiration DCJMSExpiration

JMS Message ID DCJMSMessageID

JMS Message Priority DCJMSPriority

JMS Message Redelivered Flag DCJMSRedelivered

JMS Message ReplyTo Destination DCJMSReplyTo

JMS Message Time Stamp DCJMSTimestamp

Page 134: PI Overview1

JMS Message Type DCJMSType

Used JMS Message Selector DCJMSMessageSelector

Used JMS Message Queue DCJMSMessageQueue

JMS User DCJMSUser

If you want to set additional JMS message attributes, select Specify Additional JMS Message Properties (10 Maximum).

In the table, enter the names of the JMS message properties whose values are to be included in the message header of the XI message.

The technical names of the additional attributes are DCJMSMessageProperty0, DCJMSMessageProperty1, ..., DCJMSMessageProperty9.

You can enter more than 10 properties in the table, but only the first 10 are taken into account.

The attribute namespace for the adapter is http://sap.com/xi/XI/System/JMS.

Adapter Status

Set the adapter to Active to enable messages to be exchanged.

Additional Parameters

To make additional settings or replace the default settings, enter the parameters and values in the table.

You can set the following parameters, for example:

Name Value

JMSMessageClass com.ibm.jms.JMSMessage

JMS.Message.method.setStringProperty java.lang.String XAppId, java.lang.String myapp

You can set additional JMS parameters for all JMS providers.

Configuring the Receiver JMS Adapter

Use

You need to configure the receiver JMS adapter to be able to convert XI messages from the Integration Server or the PCK into JMS messages.

Integration

You configure the adapter on the Parameters tab page during the definition of a communication channel in the Integration Server or in the PCK. In addition to the adapter configuration, you can use the Module tab page to specify generic modules in the module processor, which give the adapter additional functions.

Page 135: PI Overview1

Prerequisites

1. You have created a new communication channel or have opened an existing one.

2. On the Parameters tab page you have selected the adapter type JMS.

3. You have selected the Receiver radio button to define the adapter as a receiver adapter.

Activities

To configure the adapter, specify the following:

Transport Protocol

SonicMQ JMS Provider

WebSphereMQ (MQ Series) JMS Provider

Access JMS Provider with JNDI

(Read) JMS Provider Administered Objects from File

Access JMS Provider Generically

Message Protocol

JMS 1.x

Adapter Engine

Select the Adapter Engine on the Integration Server, or select a non-centrally installed Adapter Engine. This selection is not available in the PCK.

Target Tab Page

Depending on the transport protocol you have selected, make specifications for the respective JMS provider. See the relevant JMS-provider documentation for details about the individual parameters. See also: JMS-Provider-Specific Settings

Processing Tab Page

JMS Settings

Parameter Entry

Transactional JMS Session If you want to use a transactional JMS session, set the indicator. Following processing of a message, a transactional session ends either with a COMMIT, or in the case of an error, with a ROLLBACK.

Page 136: PI Overview1

Delivery Mode of Message Producer Specify the quality of service of the message producer. You have the following options:

Persist JMS Messages in the JMS Provider

Do Not Persist JMS Messages in the JMS Provider

JMS ReplyTo Queue Name Specify the name of the queue to which the responses are to be sent.

JMS Message Expiration Period (msecs) Specify the expiry period of the JMS message as a JMS parameter in milliseconds.

JMS Message Priority Specify the priority of the JMS message.

JMS Queue User User for accessing the JMS queue

JMS Queue Password Password (with confirmation) for accessing the JMS queue

Correlation Settings

Define the correlation settings.

Set JMSCorrelationID To:

XI Message ID (MessageID) (default value)

XI Reference ID (RefToMessageID)

XI Conversation ID (ConversationID)

No Value

Store JMSCorrelationID of Request

Set the indicator if you want to save the JMS correlation ID of the request.

Set this JMSProperty

Enter the JMS Property Name.

Specify which value the JMS property is to have:

XI Message ID (MessageID) (default value)

XI Reference ID (RefToMessageID)

XI Conversation ID (ConversationID)

No Value

XI Settings

Parameter Entry

Page 137: PI Overview1

Mapping of Message If you want the JMS payload to contain the entire message, choose Entire Message = JMS Payload.

If you only want the JMS payload to contain the payload of the message, chooseMessage Payload = JMS Payload.

Handling of Pending XI Messages The adapter is able to identify whether the connection has been terminated between the JMS commit and the commit in the database of the Adapter Framework. The adapter identifies the resulting duplicate data record.

You can choose from the following settings:

Throw Exception (Message Retry Possible Later) (Default)

Bypass Pending Warning and Send Message to JMS (Duplicates Possible)

A duplicate data record is created if the JMS commit is executed, but not the commit in the database of the Adapter Framework. If you select this option, you must make sure that this message has not yet been received in the JMS environment.

Mark Message as Delivered (Message Loss Possible)

The message is lost if the JMS commit has not yet been executed. If you select this option, you must make sure that this message has already been received in the JMS environment.

For an example of how this parameter is used, see below underExample.

Page 138: PI Overview1

Time Period for Duplicate Check for EO(IO) (secs)

To check for duplicate messages, IDs must be saved in the database. To prevent the database from getting unnecessarily large, these IDs must be deleted after a certain amount of time.

Specify in seconds the time period after which you want IDs to be deleted (after one day, for example, if you check message monitoring daily).

Send XI Delivery Acknowledgment Back (Adapter Is Endpoint)

If the JMS receiver is an application, the JMS adapter should send a delivery acknowledgment. Set the indicator.

Error Handling Settings

Parameter Entry

Wait Time After Message Error (msecs) Enter the number of milliseconds that the adapter must wait when a processing error occurs before further messages are processed.

In transactional processing, it can make sense to specify a certain time period, for example, because messages with errors remain in the queue following a ROLLBACK.

Wait Before Reconnect (msecs) Specify a period of time after which an attempt will be made to reestablish a connection following a connection error on the JMS side.

The time period must be specified in milliseconds. No attempt is made if the value is set to -1.

Your JMS provider must support the registration of an ExceptionListener for this.

Page 139: PI Overview1

Reconnection if Exception Text Starts with If the JMS provider does not call the ExceptionListener registered by the JMS adapter when a connection error occurs, you can force the connection to be reestablished by setting this parameter.

If a JMS exception is thrown when sending a message, the free text contained here is compared with the specified string and once the period of time specified in Wait Before Reconnect (ms) has passed, an attempt is made to reestablish the connection.

Only set this parameter if your JMS provider does not support the registration of an ExceptionListener.

Advanced Tab Page

Adapter-Specific Message Properties

To evaluate adapter attributes in the message header of the XI message, choose Use Adapter-Specific Message Attributes.

To evaluate the following attributes in XI message headers, set the corresponding indicators:

If you want missing message attributes to trigger error messages, choose Fail on Missing Adapter Message Properties. If the indicator is set and the header for adapter-specific message attributes or one of the set attributes is missing from the message, this leads to a delivery exception in the audit log of the message.

If you do not set the indicator, and message attributes are missing, the adapter accesses information from the adapter configuration.

Name Technical Name

JMS Message Correlation ID DCJMSCorreleationID

JMS Message Expiration DCJMSExpiration

JMS Message Priority DCJMSPriority

JMS Message ReplyTo Destination DCJMSReplyTo

JMS Message Timestamp DCJMSTimestamp

If you want to set additional JMS message attributes, select Specify Additional JMS Message Properties (10 Maximum).

Page 140: PI Overview1

In the table, enter the Name and Java Type of the JMS message properties whose values are to be included in the message header of the XI message.

Under Java Type, you define the JMS Java message type for the attribute in the created JMS message. The following are possible entries:

boolean

byte

short

int

long

float

double

String

The technical names of the additional attributes are DCJMSMessageProperty0, DCJMSMessageProperty1, ..., DCJMSMessageProperty9.

You can enter more than ten properties in the table, however, only the first ten are taken into account.

The attribute namespace for the adapter is http://sap.com/xi/XI/System/JMS.

Adapter Status

Set the adapter to Active to enable messages to be exchanged.

Additional Parameters

To make additional settings or replace the default settings, enter the parameters and values in the table.

You can set the following parameters, for example:

Name Value

JMSMessageClass com.ibm.jms.JMSMessage

JMS.Message.method.setStringProperty java.lang.String XAppId, java.lang.String myapp

You can set additional JMS parameters for all JMS providers.

Example

Below is a typical procedure for handling pending messages:

...

1. The default setting for the parameter of the receiver JMS adapter is Throw Exception.

2. You see the following exception in the message or adapter monitor:

Page 141: PI Overview1

The channel is configured to throw a recoverable, temporary error for this warning (default). Decide whether you want to bypass this message. If so, set the Pending Handling channel parameter to 'Bypass' and restart the message afterwards.

3. Make sure that no further messages are sent through this communication channel by deactivating the corresponding sender channel.

4. Check whether the message or messages have arrived in the JMS environment.

a. If the message has arrived in the JMS environment, select Mark Message as Delivered (Message Loss Possible).

b. If the message has not arrived in the JMS environment, select Bypass Pending Warning and Send Message to JMS (Duplicates Possible).

c. Choose Repeat in message monitoring.

If some messages have arrived in the JMS environment and some have not, you must perform the procedure twice and resend the respective messages in each case.

5. Reset the parameter in the communication channel to Throw Exception.

6. Activate the corresponding sender communication channel.

Configuring the Sender Mail Adapter

Use

You configure the sender mail adapter to convert e-mails to XI messages.

Integration

You configure the adapter on the Parameters tab page during the definition of a communication channel in the Integration Server or in the PCK. In addition to the adapter configuration, you can use the Module tab page to specify generic modules in the module processor, which give the adapter additional functions.

Prerequisites

1. You have created a new communication channel or have opened an existing one.

2. On the Parameters tab page you have selected the adapter type Mail.

3. You have selected the Sender radio button to define the adapter as a sender adapter.

Activities

To configure the adapter, specify the following:

Transport Protocol

● You use IMAP4 (Internet Message Access Protocol) to retrieve e-mails from a folder of an e-mail server.

● You use POP3 (Post Office Protocol Version 3) to retrieve e-mails from an e-mail server.

Page 142: PI Overview1

Message Protocol

● XIALL

In this mode, the content of the RF C822 e-mail matches the content of the XI message. The XI message is a multipart MIME message with a SOAP envelope as its first part. See also: Messages, under XI Message Protocol.

● XIPAYLOAD

In this mode, the content of the e-mail is put in the payload of the XI message. If you do not set the Use Mail Package indicator, the information about the sender (From), receiver (To), and subject of the e-mail is lost.

Adapter Engine

Select the Adapter Engine on the Integration Server, or select a non-centrally installed Adapter Engine. This selection is not available in the PCK.

General Tab Page

Connection Parameters for Mail Server

Field Entry

URL Enter the address of the mail server, for example imap://imapserver/XIInBox.

Configure User Authentication If user authentication is required, set the indicator and specify the following:

● Simple

● CRAM-MD5

Make the following entries:

● Specify the user for accessing the server.

● Enter the Password and a confirmation.

Poll Interval (min.) Time interval after which e-mails are called on the server.

Delete Messages Once Read If you have selected IMAP4 as the transport protocol, you can specify here whether the messages are to be deleted on the e-mail server after reading.

You can then specify a Folder for Deleted Messages on the server.

Page 143: PI Overview1

Generate Fetch Report If you want to generate a report for every adapter poll procedure, set the indicator.

An XI message with the following information is generated:

● Interface namespace: http://sap.com/xi/XI/Mail/30

● Interface Name: FetchReport

Mail Attributes for Message Protocol XIPAYLOAD

If you have selected XIPAYLOAD as the message protocol, you must make the following additional specifications under Mail Attributes:

● If you want to put the entire e-mail message including the header information (From, To, Subject) in the payload, set the Use Mail Package indicator. See the example below. The header information is included in an XML mail package format.

● Specify whether you want to encode the content of the e-mail. You have the following options to do this:

○ None

○ base64

○ Quoted-Printable

● If you want to forward e-mail attachments in XI attachments, set the Keep Attachments indicator.

You use the PayloadSwapBean module to replace the application payload with one of the attachments.

Security Parameters for Message Protocol XIPAYLOAD

● If you want to decrypt and validate encrypted and digitally signed e-mails in the corresponding sender agreement in the Integration Server or in the PCK, set the S/MIME indicator. See also: Security Settings for the Sender Mail Adapter

To do this, you must have set the Keep Attachmentsindicator.

In addition, enter the following parameters and values in the table in Advanced Mode:

XI.ReceiverParty

XI.ReceiverService

The values you enter here must match the values for Receiver Party and Receiver Service in the corresponding sender agreement.

● Specify the Persist Duration. This specification is not currently used, but will be used in the future for security archiving.

Further Parameters for Message Protocol XIPAYLOAD

● XI Parameters

Page 144: PI Overview1

Specify the Interface Namespace and the Interface Name.

● Processing Parameters

Select the quality of service.

For Exactly Once In Order, enter the Queue Name.

See: Quality of Service

Advanced Tab Page

Adapter-Specific Message Attributes

To store adapter attributes in the message header of the XI message, set the Set Adapter-Specific Message Attributes indicator.

The following attributes are added to the XI message header if the sender makes them available, and if the Variable Transport Binding indicator is set.

Description Technical Name

User of mail account SUser

Mail header 'From' field SHeaderFROM

Mail header 'To' field SHeaderTO

Mail header 'Subject' field SHeaderSUBJECT

Mail header 'Cc' field SHeaderCC

Mail header field for reference to mail to which this message replies

SHeaderIN-REPLY-TO

Mail header field SHeader-REPLY-TO

Mail header field for mail client program SHeaderX-MAILER

Mail header field for delivery acknowledgement

SHeaderDISPOSITION-NOTIFICATION-TO

Mail header field for priority SHeaderPRIORITY

Mail header field for message importance SHeaderIMPORTANCE

To use further header fields, set the relevant indicator. You can then store the following attributes and their values in the XI message header:

Description Technical Name

Variable Header XHeaderName1

Variable Header XHeaderName2

Variable Header XHeaderName3

The attribute namespace for the adapter is http://sap.com/xi/XI/System/Mail.

Page 145: PI Overview1

Adapter Status

Set the adapter to Active to enable messages to be exchanged.

Advanced Mode

To specify additional parameters in the adapter configuration, set the Advanced Mode indicator.

Specify the additional parameter names and parameter values in the table:

● For the security settings, enter values for the receiver party and receiver service here.

● In the table, set the parameter IMail.AssumeXMLContent = true. The text of the message is then interpreted as XML and is copied unchanged to the mail package. If this parameter is not set, the information is copied from the content type of the MIME header. If the type specified there is application/xml or text/xml, the text of the message is copied as XML; otherwise it is copied as text.

Example

XI payload with mail package:

<?xml version="1.0" encoding="UTF-8"?>

<ns:Mail xmlns:ns="http://sap.com/xi/XI/Mail/30">

<Subject>Subject</Subject>

<From>[email protected]</From>

<To>[email protected]</To>

<Reply_To />

<Content_Type>text/plain</Content_Type>

<Content>

This is the content.

</Content>

</ns:Mail>

Configuring the Receiver Mail Adapter

Use

You configure the receiver mail adapter to convert XI messages to e-mails.

Page 146: PI Overview1

Integration

You configure the adapter on the Parameters tab page during the definition of a communication channel in the Integration Server or in the PCK. In addition to the adapter configuration, you can use the Module tab page in the module processor to specify generic modules, which give the adapter additional functions.

Prerequisites

1. You have created a new communication channel or have opened an existing one.

2. On the Parameters tab page you have selected the adapter type Mail.

3. You have selected the Receiver radio button to define the adapter as a receiver adapter.

Activities

To configure the adapter, specify the following:

Transport Protocol

● SMTP

You use SMTP (Simple Mail Transfer Protocol) to transfer e-mails to an e-mail server.

● IMAP4

You use IMAP4 (Internet Message Access Protocol) to put e-mails in a folder of an e-mail server.

Message Protocol

● XIALL

All information of the XI message is put in the message text of the e-mail. The content of the XI message is the same as the content of the RFC822 mail message.

● XIPAYLOAD

The payload of the XI message is used to create the mail message.

If the payload is in mail package format, the header information is also used for the e-mail.

If mail package format is not used, the header information is obtained from the adapter configuration described below.

Adapter Engine

Select the Adapter Engine on the Integration Server, or select a non-centrally installed Adapter Engine. This selection is not available in the PCK.

General Tab Page

Connection Parameters for Mail Server

Field Entry

Page 147: PI Overview1

URL Enter the address of the e-mail server:

● For SMTP: smtp://mailserver, for example

● For imap: //imapserver/XIOutBox, for example

Configure User Authentication Choose the Authentication Method.

● Plain

● CRAM-MD5

If the server expects a logon, set the indicator.

● Enter the User for logging on to the server.

● Enter the Password and confirm.

Send Delivery Status Notification For transport protocol SMTP you can select Send Delivery Status Notification.

Under To, enter the e-mail address of the recipient of the delivery status notification.

Mail Attributes for Message Protocol XIPAYLOAD

● If you have selected XIPAYLOAD as the message protocol and have a mail package document as the XI payload, select Use Mail Package.

If the XI payload is not available as a mail package document, make the entries for mail attributes (From, To, Subject).

For the format, see Example below.

● Specifications for mail attributes:

○ Under From, specify the e-mail address from which the message is sent.

○ Under To, specify the e-mail address that will receive the message. If you enter more than one address, you must separate them with a semicolon.

If you have specified an IMAP server under URL, the message is saved in the specified folder but is not sent to the receiver specified under To.

○ Under Cc, specify the other e-mail addresses to which the e-mail is to be sent.

These addresses are visible to the receiver.

○ Under Bcc, specify the other e-mail addresses to which the e-mail is to be sent.

These addresses are not visible to the receiver.

○ Enter the Subject of the e-mail message.

Page 148: PI Overview1

○ Specify whether you want to encode the content of the e-mail message. You have the following options:

■ None

■ Base64 (default value)

■ quoted-printable

○ If you have selected XIPAYLOAD as the message protocol and you want to forward XI attachments in the e-mail attachments, select Keep Attachments.

You use the PayloadSwapBean module to swap the application payload with one of the attachments.

See: PayloadSwapBean

Security Parameters for Message Protocol XIPAYLOAD

● To encrypt e-mails and give them a digital signature in the corresponding receiver agreement in the Integration Server or in the PCK, set the S/MIME indicator.

More information: Security Settings for Receiver Mail Adapter

To do this, you must have set the Keep Attachmentsindicator.

● Specify the Persist Duration. This specification is not currently used, but will be used in the future for security archiving.

Advanced Tab Page

Adapter-Specific Message Attributes

To process adapter attributes in the message header of the XI message, select Use Adapter-Specific Message Attributes and Variable Transport Binding. The following attributes in the message header are available for processing:

Meaning Technical Name

User TServerLocation

Authentication Keys TAuthKey

Mail header 'from' field THeaderFROM

Mail header 'to' field THeaderTO

Mail header 'Cc' field THeaderCC

Mail header 'Bcc' field THeaderBCC

Mail header 'subject' field THeaderSUBJECT

Mail header field for reference to mail which is being replied to

THeaderIN-REPLY-TO

Page 149: PI Overview1

Mail header 'reply to' field THeaderREPLY-TO

Mail header field for mail client program THeaderX-MAILER

Mail header field for delivery acknowledgement

THeaderDISPOSITION-NOTIFICATION-TO

Mail header field for priority THeaderPRIORITY

Mail header field for message importance THeaderIMPORTANCE

To set fields that are not in the table, select Variable Header. You use these fields to forward additional header information.

The technical names for the fields are XHeaderName1, XHeaderName2, XHeaderName3. The parameters are embedded in the mail header under the names you enter here.

The attribute namespace for the adapter is http://sap.com/xi/XI/System/Mail.

Authentication Keys

If authentication is required for the receiver system, you can enter a password with confirmation for each key value. This means that you do not need to write passwords in the enhanced message header.

To enter or display the respective authentication key, select View Authorization Keys. You can enter and confirm passwords for each authentication key value (TAuthKey).

Adapter Status

Set the adapter to Active to enable messages to be exchanged.

Advanced Mode

To specify additional parameters for the adapter configuration, select Advanced Mode.

● Specify the additional parameter names and parameter values in the table.

To prevent the content disposition header being generated automatically, enter the parameter name OMail.AddContentDisposition with value false.

If the content disposition header was generated in a module, for example, this parameter has no effect.

If you do not set the parameter, the header is generated by the adapter.

Example

XI payload with mail package:

<?xml version="1.0" encoding="UTF-8"?>

<ns:Mail xmlns:ns="http://sap.com/xi/XI/Mail/30">

<Subject>Subject</Subject>

<From>[email protected]</From>

Page 150: PI Overview1

<To>[email protected]</To>

<Reply_To />

<Content_Type>text/plain</Content_Type>

<Content>

This is the content.

</Content>

</ns:Mail>

Configuring the Sender RFC Adapter

Use

You configure the sender RFC adapter so that you can use it to convert RFC calls from a sender to XML messages and send these messages to the Integration Server or the PCK.

Integration

You configure the adapter on the Parameters tab page during the definition of a communication channel in the Integration Server or in the PCK. In addition to the adapter configuration, you can use the Module tab page to specify generic modules in the module processor, which give the adapter additional functions.

Prerequisites

...

1. You have created a new communication channel or have opened an existing one.

2. On the Parameters tab page, you have selected the adapter type RFC.

3. You have selected the Sender radio button to define the adapter as a sender adapter.

4. The communication channel in which the RFC adapter is defined must be defined for a service of type Business System in the area Service Without Party. In the PCK, you must create an empty party record.

5. The entries made in the communication channel must be identical to those for the adapter-specific identifiers for the business system. For more information about adapter-specific identifiers, see Service in the Integration Server or Service in the PCK.

Page 151: PI Overview1

Activities

Transport Protocol

The transport protocol is RFC.

Message Protocol

The message protocol is RFC (RFC XML).

Adapter Engine

Select the Adapter Engine on the Integration Server, or select a non-centrally installed Adapter Engine. This selection is not available in the PCK.

Source Tab Page

RFC Server Parameter

The RFC server parameters identify the sender system.

Specify the following parameters:

Parameter Entry

Application Server (Gateway) Gateway host name of the sender system.

Application Server Service (Gateway) Gateway service of the sender system. This can be the numeric description of the service port in the sender system or the alphanumeric equivalent (for example, sapgwXX, where XX is the system number of the sender system).

Program ID Program ID of the registered server program. The selected program ID must uniquely describe the RFC sender channel in the configured gateway (Application Server (Gateway) and Application Server Service (Gateway) parameters).

Page 152: PI Overview1

SNC If you want to use Secure Network Connection, set the SNC indicator.

● Specify the SNC Name.

● Select the Quality of Protection.

Set the indicator for SNC Advanced Modeand enter the permitted SNC names (ACL)in the table.

You can also enter a value for Path to SNC Library. If you do not enter any details here, the setting is applied to the whole RFC adapter.

Unicode Select this checkbox if the sender system is a Unicode system.

Initial Connections Number of initial connections required between sender system and adapter.

Maximum Connections Maximum possible number of initial connections required between sender system and adapter. This value is limited internally to a maximum of 50.

Page 153: PI Overview1

Advanced Mode To specify additional parameters in the adapter configuration, set the Advanced Mode indicator.

● If the channel cannot reach the specifiedSAP gateway to register itself, it retries automatically. The time interval between registration attempts is increased exponentially from one second to an internal maximum value (3600 seconds).

Enter the maximum wait time in seconds between two registration attempts by using the Maximum Reconnect Delay parameter.

● If the connected sender system is a non-SAP system, you can deselect theVerify Sender System checkbox. The sender system is then not checked using the system ID and the client.

● Enter additional parameters and their values in the table.

You can configure the non-SAP RFC client to connect to the sender communication channel in the following ways:

■ By defining the parameters PROGID, gateway-host, and gateway-service within the saprfc.ini-file using RFC-SDK.

■ By using appropriate parameters in the function RfcOpenEx.

If you use the saprfc.ini-file, the respective RFC destination has to be of type R.

All the parameter values used within the saprfc.ini-file or with the function RfcOpenEx should match the entries maintained within the corresponding sender communication channel.

Example for the saprfc.ini-file is as follows:

DEST=RFCCLIENTEXT

TYPE=R

PROGID=P106646.HKExternalClient

GWHOST=pwdf2153

Page 154: PI Overview1

GWSERV=sapgw40

RFC Metadata Repository Parameter

The RFC metadata repository parameters identify the SAP system containing the repository for the RFC metadata. This does not necessarily have to be the sender system.

Load Balancing

If your SAP system works with load balancing, select the checkbox and specify the following:

System with Load Balancing

Parameter Entry

Message Server Host name of the SAP system (message server)

Message Server Service Service of the SAP system (message server). This can be the numeric description of the service port of the message server or the alphanumeric equivalent (for example, sapmsXXX, where XXX is the system ID of the SAP system).

System ID System ID of the SAP system

Logon Group Specify the logon group of the message server. Note that the entries are case-sensitive.

Advanced Mode Select this checkbox if you want to specify additional parameters of the class JCO.Client for the adapter configuration.

Enter the name and values of the parameters in the table displayed.

System Without Load Balancing

Parameter Entry

Application Server Host name of the SAP system (application server)

System Number System number of the SAP system. This is a two-digit numeric value.

Advanced Mode If you want to specify additional parameters of the class JCO.Client for the adapter configuration, select this checkbox.

Enter the name and values of the parameters in the table displayed.

Page 155: PI Overview1

Authentication Mode

Use Logon Data for the SAP System Secure Network Connection for RFC

Specify the Logon User for logging on to the SAP system.

Select the required level of security under Quality of Protection.

Specify the Logon Password for logging on to the SAP system.

Enter the SNC Partner Name.

Set the indicator for SNC Advanced Mode.

● Specify the SNC Name.

● Enter the SNC library and its path.

If you do not enter any details here, the setting is applied to the whole RFC adapter.

Enter the Logon Language and the Logon Client.

Enter the Logon Language and the Logon Client.

Authorizations to Read Metadata

Depending on the SAP system version, the following authorizations are required to read the metadata (authorization object: S_RFC, ACTVT: 16, FUGR):

Function Groups by Release

Release Function Groups (FUGRs)

As of 3.1H RFC1, SG00, SRFC, SUNI, SYST

As of 4.0A RFC1, SDIF, SG00, SRFC, SYST, SYSU, SUNI

As of 4.6A RFC1, SDIF, SG00, SRFC, SYST, SYSU

As of 4.6D RFC1, SDIFRUNTIME, SG00, SRFC, SYST, SYSU

The role SAP_BC_JSF_COMMUNICATION_RO is available to SAPJSF users and contains all the required authorizations.

Advanced Tab Page

Adapter Status

Set the adapter to Active to enable messages to be exchanged.

Adapter-Specific Message Attributes

The attribute namespace for the adapter is http://sap.com/xi/XI/System/RFC.

Parameter Entry

Page 156: PI Overview1

Set Adapter-Specific Message Attributes If you want to create adapter-specific message attributes, set this indicator.

RFC Destination

Technical name:

RfcDestination

If the indicator is set, the RFC destination that is used in the SAP sender system is transferred as a message attribute in the message header.

Configuring the Receiver RFC Adapter

Use

You configure the receiver RFC adapter so that you can use it to convert XML messages from the Integration Server or the PCK to RFC calls and send these calls to the corresponding receivers.

Integration

You configure the adapter on the Parameters tab page during the definition of a communication channel in the Integration Server or in the PCK. In addition to the adapter configuration, on the Module tab page in themodule processor, you can specify generic modules, which give the adapter additional functions.

Prerequisites

...

1. You have created a new communication channel or have opened an existing one.

2. On the Parameters tab page you have selected the adapter type RFC.

3. You have selected the Receiver radio button to define the adapter as a receiver adapter.

4. The communication channel in which the RFC adapter is defined must be defined for a service of type Business System in the area Service Without Party. In the PCK you must create an empty party record.

The entries made in the communication channel must be identical to those for the adapter-specific identifiers for the business system. For more information about adapter-specific identifiers, see: Service in the Integration Server or Service in the PCK.

Activities

Transport Protocol

The transport protocol is RFC.

Message Protocol

The message protocol is RFC (RFC XML).

Adapter Engine

Select the Adapter Engine on the Integration Server, or select a non-centrally installed Adapter Engine. This selection is not available in the PCK.

Page 157: PI Overview1

Target Tab Page

RFC Client Parameters

The RFC client parameters identify the receiver system.

Specify the type of the RFC server.

● It can be an SAP System.

● It can be an External RFC Server.

The external RFC server is a server programmed with RFC-SDK that has registered itself with an SAP Gateway.

If your SAP system works with load balancing, select Load Balancing.

SAP System with Load Balancing

Parameter Entry

Message Server Host name of the SAP system (message server).

Message Server Service Service of the SAP system (message server). This can be the numeric description of the service port of the message server or its alphanumeric equivalent (for example, sapmsXXX, where XXX is the system ID of the SAP system).

System ID System ID of the SAP system.

Logon Group Specify the logon group of the message server. Note that the entries are case-sensitive.

SAP System Without Load Balancing

Parameter Entry

Application Server Host name of the SAP system (application server)

System Number System number of the SAP system (two-digit numeric value)

Authentication Mode

Logon Data for the SAP System Secure Network Connection for RFC

Specify the logon name for logging on to the SAP system.

Select the required level of security under Quality of Protection.

Page 158: PI Overview1

Specify the logon password for logging on to the SAP system.

Enter the SNC Partner Name.

Set the indicator for SNC Advanced Mode.

Specify the SNC Name.

Enter the SNC library and the relevant path underPath to SNC Library.

If you do not enter any details here, the setting is applied to the whole RFC adapter.

Enter the Logon Language and the Logon Client.

Enter the Logon Language and the Logon Client.

Additional Parameters

Parameter Entry

Maximum Connections Maximum possible number of initial connections required between adapter and sender system. This value is limited internally to a maximum of 50.

Specify the following parameters for the external RFC server:

Parameter Entry

Application Server (Gateway) Gateway host name of the receiver system

Application Server Service (Gateway) Gateway service of the receiver system. This can be the numeric description of the service port in the receiver system or its alphanumeric equivalent.

Program ID Program ID of the registered server program

Maximum Connections Maximum possible number of connections required between receiver system and adapter. This value is limited internally to a maximum of 50.

You can configure the non-SAP RFC server to connect to the receiver communication channel in the following ways:

■ By defining the parameters PROGID, gateway-host, and gateway-service within the saprfc.ini-file using RFC-SDK.

■ By using the appropriate parameters in the function RfcAccept.

Page 159: PI Overview1

If you use the saprfc.ini-file, respective destination should be of type R.

All the parameter values used within the saprfc.ini-file or with the function RfcAccept should match with the corresponding entries in the receiver communication channel.

Example for the saprfc.ini-file is as follows:

DEST=RFCSERVEREXT

TYPE=R

PROGID=P106646.HKExternalServer

GWHOST=pwdf2153.wdf.sap.corp

GWSERV=sapgw40

Advanced Mode

For SAP systems (with and without load balancing) and also for external RFC servers, set the Advanced Mode indicator to show additional configuration options.

Parameter Entry

Send 'Confirm Transaction' Only deactivate the indicator if you do not want the transaction confirmation signal (Confirm TID) to be sent after a transactional RFC call.

Commit Control for Single BAPI Calls If you want to use this communication channel to call BAPIs as remote-enabled function modules that change data in the database, set the indicator.

If executed successfully, the transaction is written to the database by calling the function module BAPI_TRANSACTION_COMMIT explicitly. If an error occurs, the transaction is rolled back by BAPI_TRANSACTION_ROLLBACK.

The result is determined by the value of the field TYPE in parameter RETURN. If successful, the tables are empty and the values “”, “S”, “I”, and “W” are displayed. All other values are regarded as errors.

To change this setting, set the indicator BAPI Advanced Mode.

In the Successful RETURN-TYPE Values table, enter the values that should lead to a successful execution.

Page 160: PI Overview1

Table You can also specify additional parameters of the class JCO.Client for the adapter configuration.

Enter the name and values of the parameters in the table displayed

RFC Metadata Repository Parameter

If an external RFC server is selected as the receiver, then an SAP system must also always be available to provide the RFC adapter with the metadata of the external RFC server. If an SAP system is selected as the receiver, you can also use this to provide metadata to the RFC adapter.

Select the Use Alternative RFC Metadata Repository checkbox if you want to use a different metadata repository to that of the receiver system.

If you select this checkbox or choose the external RFC server type, the system displays the RFC client parameters and you can enter values for the SAP system.

Depending on the SAP system version, the following authorizations are required to read the metadata (authorization object: S_RFC, ACTVT: 16, FUGR):

Function Groups by Release

Release Function Groups (FUGRs)

As of 3.1H RFC1, SG00, SRFC, SUNI, SYST

As of 4.0A RFC1, SDIF, SG00, SRFC, SYST, SYSU, SUNI

As of 4.6A RFC1, SDIF, SG00, SRFC, SYST, SYSU

As of 4.6D RFC1, SDIFRUNTIME, SG00, SRFC, SYST, SYSU

The role SAP_BC_JSF_COMMUNICATION_RO is available to SAPJSF users and contains all the required authorizations.

If your SAP system works with load balancing, select the checkbox.

SAP System with Load Balancing:

Parameter Entry

Message Server Host name of the SAP system (message server).

Message Server Service Service of the SAP system (message server). This can be the numeric description of the service port of the message server or its alphanumeric equivalent (for example, sapmsXXX, where XXX is the system ID of the SAP system).

Page 161: PI Overview1

System ID System ID of the SAP system.

Logon Group Specify the logon group of the message server. Note that the entries are case-sensitive.

SAP System Without Load Balancing:

Parameter Entry

Application Server Host name of the SAP system (application server)

System Number System number of the SAP system (two-digit numeric value)

Authentication Mode

Logon Data for the SAP System Secure Network Connection for RFC

Specify the logon name for logging on to the SAP system.

Select the required level of security under Quality of Protection.

Specify the logon password for logging on to the SAP system.

Enter the SNC Partner Name.

Set the indicator for SNC Advanced Mode.

Specify the SNC Name.

Enter the SNC library and the relevant path underPath to SNC Library.

If you do not enter any details here, the setting is applied to the whole RFC adapter.

Enter the Logon Language and the Logon Client.

Enter the Logon Language and the Logon Client.

Additional Parameters

Parameter Entry

Advanced Mode Select this checkbox if you want to specify additional parameters of the class JCO.Client for the adapter configuration.

Enter the name and values of the parameters in the table displayed.

Page 162: PI Overview1

Advanced Tab Page

Adapter Status

Set the adapter to Active to enable messages to be exchanged.

Configuring the Sender SOAP Adapter

Use

You need to configure the sender SOAP adapter to send content from remote clients or Web service servers to the Integration Server/PCK.

Integration

● You configure the adapter on the Parameters tab page during the definition of a communication channel in the Integration Server or in the PCK. You cannot enhance this adapter with your own modules on theModule tab page in the module processor.

● The inbound address for SOAP messages is: http://host:port/XISOAPAdapter/MessageServlet?channel=party:service:channel

Under party:service:channelenter the party name, the service name, and the name of the communication channel. If no party has been created, enter the following: channel=:service:channel

Prerequisites

...

1. You have created a new communication channel or have opened an existing one.

2. On the Parameters tab page you have selected the adapter type SOAP.

3. You have selected the Sender radio button to define the adapter as a sender adapter.

Activities

To configure the adapter, specify the following:

Transport Protocol

HTTP

Message Protocol

SOAP 1.1

Adapter Engine

Select the Adapter Engine on the Integration Server, or select a non-centrally installed Adapter Engine. This selection is not available in the PCK.

General Tab Page

Inbound Security Checks

Select the HTTP security level for inbound messages:

Page 163: PI Overview1

● HTTP

● HTTPS without client authentication

● HTTPS with client authentication

See also: SAP Security Guide XI, HTTP and SSL, under Enforcing HTTP Security for Incoming Messages

Security Parameters

● If you want to make additional settings for security in the relevant sender agreement on the Integration Server or in the PCK, set the Select Security Profile indicator. See also: Security Settings for the Sender SOAP Adapter.

If you set the indicator, there must be exactly one sender agreement for the defined communication channel.

● Under Security Profile, select whether you want to use Web Services Security or S/MIME.

● Also specify the Persist Duration for the messages.

Conversion Parameters

Parameter Details

Do Not Use SOAP Envelope If the indicator is set, the adapter expects a message without a SOAP envelope.

If you have set the indicator, you must also enternosoap=true in the URL.

The adapter then puts the whole message in the XI payload.

Keep Headers If the header of the Web service message is to be included in the XI message, set the indicator.

Keep Attachments If attachments of the Web service message are to be included in the XI message, set the indicator.

Use Encoded Headers If the XI header information is to be included in the encoded string, set the indicator.

Use Query String If the XI header information is to be included in aquery string, set the indicator.

Default XI Parameters

Set the default values for the following parameters:

● Interface Namespace

● Interface Name

Page 164: PI Overview1

Processing Parameters

Under Quality of Service, specify how the message is to be processed by the Integration Engine/PCK.

● Best Effort (synchronous processing)

● Exactly Once (asynchronous processing)

If the client sends a GUID, execution is guaranteed exactly once. See also: Ensuring Exactly Once Processing

● Exactly Once In Order (asynchronous processing using queues)

If the client sends a GUID, execution is guaranteed exactly once maintaining the sequence of successive messages.

Specify the Queue Name.

Advanced Tab Page

Adapter-Specific Message Attributes

To store adapter attributes in the message header of the XI message, set the Set Adapter-Specific Message Attributes indicator.

The following attributes are added to the XI message header if the sender makes them available, and if the Variable Transport Binding indicator is set.

Name Technical Name

Remote User SRemoteUser

Remote Host SRemoteHost

To transfer further header fields, set the relevant indicator. You can then store the following attributes and their values in the XI message header:

Name Technical Name

Variable Header XHeaderName1

Variable Header XHeaderName2

Variable Header XHeaderName3

The names of the fields and parameters must correspond to the names of the fields and parameters that also go through the HTTP request.

The attribute namespace for the adapter is http://sap.com/xi/XI/System/SOAP.

Adapter Status

Set the adapter to Active to enable messages to be exchanged.

Page 165: PI Overview1

Configuring the Receiver SOAP Adapter

Use

You configure the receiver SOAP adapter to send information from the Integration Server/PCK to remote clients or Web service servers.

Integration

You configure the adapter on the Parameters tab page during the definition of a communication channel in the Integration Server or in the PCK. In addition to the adapter configuration, you can use the Module tab page to specify generic modules in the module processor, which give the adapter additional functions.

Prerequisites

...

1. You have created a new communication channel or have opened an existing one.

2. On the Parameters tab page you have selected the adapter type SOAP.

3. You have selected the Receiver radio button to define the adapter as a receiver adapter.

Activities

To configure the adapter, specify the following:

Transport Protocol

● HTTP (including HTTPS)

● SMTP (including SMTPS)

The adapter uses this transport protocol to send SOAP messages as e-mails.

Message Protocol

SOAP 1.1

Adapter Engine

Select the Adapter Engine on the Integration Server, or select a non-centrally installed Adapter Engine. This selection is not available in the PCK.

General Tab Page

Connection Parameters

You define the connection parameters depending on the transport protocol:

HTTP/HTTPS SMTP/SMTPS

Page 166: PI Overview1

● Under Target URL, enter the complete address (URL) of the Web service provider that you want to send the message to.

● If the server requires a user authentication, set the Configure User Authenticationindicator and specify the following:

○ Specify the User.

○ Enter the Password and confirm.

● If the server requests a certificate from the client, set the Configure Certificate Authentication indicator.

○ Specify the Keystore Entry.

○ Specify the Keystore View.

● Under Target URL, enter the complete address (URL) of the Web service provider that you want to send the message to.

● If the server requires a user authentication, set the Configure User Authenticationindicator and specify the following:

○ Select the PLAIN or CRAM-MD5 authentication method.

○ Specify the User.

○ Enter the Password and confirm.

● If the server requests a certificate from the client, set the Configure Certificate Authentication indicator.

○ Specify the Keystore Entry.

○ Specify the Keystore View.

● If the Web service provider can only be reached by using an HTTP proxy server and not directly, set the Configure Proxyindicator and enter the following:

○ Host

○ Port (used for receiving proxy HTTP requests)

○ If the proxy requires a user authentication, set the Configure Proxy User Authentication indicator and enter the User and Password, and confirm.

Mail Attributes for Transport Protocol SMTP/S

If you have selected SMTP/S as the transport protocol, you can specify mail attributes:

● Under From, specify the e-mail address from which the message is sent.

● Under To, specify the e-mail address that will receive the message.

If you enter more than one address, you must separate them with a semicolon.

Page 167: PI Overview1

● Under Cc, specify the other addresses to which the e-mail is to be sent. The addresses you specify here are visible to the receiver.

● Under Bcc, specify the other addresses to which the e-mail is to be sent. The addresses you specify here are not visible to the receiver.

● Enter the Subject of the e-mail message.

Security Parameters

● If you want to make additional settings for security in the relevant receiver agreement on the Integration Server or in the PCK, set the Select Security Profile indicator.

See: Security Settings for the Receiver SOAP Adapter

● Select the security profile Web Services Security or S/MIME.

● Specify the Persist Duration for messages in days, hours, minutes, and seconds.

Conversion Parameters

Parameter Details

Do Not Use SOAP Envelope If the payload of the message is to be sent without a SOAP envelope, set the indicator.

Keep Headers If the header of the XI message is to be included in the Web service message, set the indicator.

Keep Attachments If attachments of the XI message are to be included in the Web service message, set the indicator.

Use Encoded Headers If the headers of the XI message are to be encoded, set the indicator.

Use Query String If a query string is to be specified, set the indicator.

SOAP Action Specify the SOAP action. The action species the value for the SOAPAction in Web service messages.

Advanced Tab Page

Adapter-Specific Message Attributes

To process adapter attributes in the message header of the XI message, select Use Adapter-Specific Message Attributes and Variable Transport Binding.

You can evaluate the following attributes in the message header:

Description Technical Name

Page 168: PI Overview1

Server URL (you can set the complete URL here)

TServerLocation

Authentication Key TAuthKey

Proxy URL TProxyLocation

Proxy Authentication Key TProxyAuthKey

SOAP Action THeaderSOAPACTION

If you want to transfer header fields, set the relevant indicator for Variable Header. The technical names for the fields are XHeaderName1, XHeaderName2, XHeaderName3. The parameters are embedded in the HTTP request under the names you enter here.

The attribute namespace for the adapter is http://sap.com/xi/XI/System/SOAP.

Authentication Keys

If authentication is required for the receiver system, you can enter a password and a confirmation for each key value. This means that you do not need to write passwords in the enhanced message header.

If you want to specify or display authentication keys, select View Authorization Keys.

You can enter and confirm passwords for each authentication key value (TAuthKey or TproyxAuthKey).

Adapter Status

Set the adapter to Active to enable messages to be exchanged.

HTTP

HTTP adapter connect non-SAP systems to the Integration Engine using the native HTTP interface (HTTP payload without SOAP envelope). This uses the Internet Communication Framework of the AS ABAP. The standard exchange format for data in the Integration Engine is XML

The plain HTTP adapter is part of the Integration Engine. It comprises two parts, namely an adapter at the Integration Engine inbound channel and an adapter at the Integration Engine outbound channel.

The adapter at the inbound channel is located before the Integration Engine pipeline and calls this pipeline. The adapter at the outbound channel is called by the pipeline, and can therefore be regarded as part of the pipeline. It requires a corresponding communication channel from the technical routing for each logical receiver.

Transport Protocol: HTTP(S) 1.0

Message Protocol: XI payload in HTTP body

Page 169: PI Overview1

You communicate with the plain HTTP inbound channel of the Integration Engine using an HTTP address. You encode the control data in the HTTP address as parameters, to enable a message to be created. These parameters are mandatory.

The HTTP body is used as the payload for the message. The payload does not contain an envelope with control data for the message you want to create.

Quality of Service: BE, EO, EOIO

HTTP Security Level: HTTP, HTTP without client authentication, HTTP with client authentication.

ABAP Proxies:

When Web services are built from platform-independent objects in the Enterprise Services Repository (ES Repository), the ES Repository objects are mapped to platform-specific proxy objects.

Objects are modeled and stored in the ES Repository, which is the central repository and modeling environment for Web service objects, process and service definitions.

The ES Repository stores data that is relevant for configuration, installation, and deployment, but the ES Repository does not provide runtime or platform-specific data.

ABAP Proxy Generation - General Procedure

This section outlines the general procedure for generating, regenerating, and deleting ABAP proxies. Additional information for generating specific proxy types is provided in separate sections.

The procedure to generate ABAP proxies is essentially the same for each different type of proxy. There are two main steps:

Page 170: PI Overview1

Select the objects to be called or implemented.

Generate and activate the proxies.

Prerequisites

To work with ABAP proxies, you need the SAP_XI_DEVELOPER_ABAP role, which is included in the composite role SAP_XI_DEVELOPER. Use the profile generator (transaction PFCG) to assign roles.

Depending on the proxy type, the following tasks must be done before you generate a proxy:

All objects must be modeled in the ES Repository — or be made available as external WSDL descriptions.

When a proxy that is modeled in the ES Repository is generated for an object that references another object in the same namespace, the proxy for the referenced object will be generated automatically. For example, a proxy could be generated for a service interface that references a specific data type.

If a referenced object is in a different namespace, you need to generate the proxy for the referenced object separately.

The package structure in the ABAP back-end system must be defined.

The package structure defines where the proxies will be created, where the service provider will be, and how the packages will fit into the overall application structure.

Prefixes for the ABAP objects can be defined.

It is recommended that you define prefixes as they allow you to ensure that ABAP objects in the back-end system are assigned unique and consistent names.

Procedure

Generating a Proxy

You need to be working in the system in which you want to generate the proxy. Proxies are generated in the ABAP back-end system, in which the object will subsequently be provided.

1. Start the Enterprise Services Repository Browser.

Use transaction code SPROXY.

The software component versions are displayed.

2. Expand the nodes of the software component version and the namespace in which you want to generate a proxy.

3. Select an object.

4. To generate the proxy, open the context menu and choose Create proxy.

5. Specify a package and a prefix, and choose Enter.

Based on the prefix that you specify, valid ABAP names are proposed. You can change the proposed names as required.

When the proxy is generated, all the underlying objects will also be generated.

Page 171: PI Overview1

Information about the generated proxy interface, such as the implementing proxy class, and the generated service definition is displayed in the Properties tab.

The prefix you specified is displayed as part of the ABAP name in the Properties tab and also in the Structure tab.

The External view and Internal view tabs respectively show the operations and methods, and the corresponding ABAP message types and data types.

6. Activate the proxy.

When the proxy is activated, all the underlying objects are automatically activated as well.

Note

The ABAP objects, such as the class, interface, DDIC type, are not created in the system until you activate the proxy.

End of the note.

7. Release the transport request.

Use transaction SE09 to do this.

8. Create a runtime configuration for the proxy.

Note

A runtime configuration is only needed for service interfaces.

End of the note.

1. Start the SAP NetWeaver Administrator.

Use transaction code SOAMANAGER, choose Central Web Service Administration, and log on.

2. Select WS Configuration.

3. Select the service definition that was automatically created during proxy generation.

4. Choose Create Endpoint.

An endpoint contains a single runtime configuration. You can create different endpoints to define different runtime behaviors for the same service definition.

5. Specify a name for the endpoint.

An endpoint must have a unique name within the Web service entity.

6. Check that the security profile meets your requirements.

To make changes, choose Edit.

7. Save.

The runtime configuration with a port type is now available on the back-end system, and can be integrated into an application.

Page 172: PI Overview1

Generating Proxies with Industry-Specific Enhancements

To activate industry classifications, you need to select an industry when you generate proxies for Web services delivered with an Enhancement Package. Perform the following steps:

1. Log on to the back-end system in English.

2. Start transaction SM30.

3. Choose the SVW_INDUSTRY view.

4. Select your industries.

Regenerating a Proxy

If an object is changed in the Enterprise Services Repository (ES Repository) after it has been generated, the changes will not automatically be reflected in the proxy in the ABAP back-end system. If an object in the ES Repository is changed, you will need to regenerate the corresponding proxy manually.

Note

In the ES Repository Browser, an icon with a red triangle indicates a version of an ES Repository entity that is different from its proxy version in the ABAP back-end system.

End of the note.

1. In the Enterprise Services Repository Browser, locate the object whose proxy you want to regenerate.

2. Open the context menu and choose Regenerate proxy

This function will only be available if a proxy has already been generated.

Only the proxy interfaces and classes will be overwritten. The implementing class will remain intact, meaning that the implementation will not be lost.

3. Reactivate the proxy.

From the context menu, choose Activate Proxy.

When the proxy is activated, all the underlying objects will be automatically activated as well.

Deleting a Proxy

1. In the ES Repository Browser, select an object.

2. From the menu, choose Proxy Delete .

Note

By default, the implementing class will not be deleted. Only the generated data will be deleted. To delete the provider class, you must choose to do so explicitly when the system prompts you.

End of the note.

Result

When proxy objects are activated, one or more of the following ABAP objects are created:

ABAP Dictionary types

Page 173: PI Overview1

ABAP Dictionary types represent the global data types in the ES Repository. The system also generates the data types that will be used as method parameters.

ABAP interface

An ABAP interface comprises interface types and constants.

ABAP class (proxy class or implementing class) for provider or consumer proxies

The ABAP class of a service provider contains the implementation of the service provider methods, and uses an ABAP interface. A service provider class has one method for each operation modeled in the ES Repository. For a proxy to be used by an application, the methods will need to be filled with application coding

--------------------------------

Have you got the error message "Unable to connect to the Integration Builder, when you are trying to create a ABAP PROXY from a R/3 system?

This blog enumerates the process of Configuration required for ABAP proxy. All the configurations are available in the SAP XI configuration guide and Installation guides. This is an attempt to bring the entire configuration together.

Consider the following system landscape for configuration of the ABAP Proxy:

Two systems exist in the landscape:

System X : SAP XI 3.0 system and

System Y : SAP R/3 on WAS 620

Page 174: PI Overview1

The prerequisites to configuration for ABAP Proxy include: (landscape dependent)

1. The business systems should be based on SAP Web AS 6.20 and SAP Web AS 6.20 kernel patch level above 1253

2. You have installed the XI Add-On in each of these business systems as described in the Installation Guide SAP Exchange Infrastructure 3.0

3. The business systems and your central Integration Server are maintained in the System Landscape Directory (SLD).

Configuration required on the Business System:

1. Create HTTP connection in the business system.

Configuration Details:

Technical Setting:

1. Following Inputs are required for technical setting

Page 175: PI Overview1

1 Connection Type: H

2 Target Host: System name

3 Service Number: HTTP Port name

4 Path Prefix: /sap/XI/engine/?type=entry

Logon Security

On the Logon/Security tab page, enter the following logon data:

1 User: XIAPPLUSER (for example); this user should represent the sending business system (see also the SAP XI Security Guide under Service Users for Message Exchange).

2 Password: the password you have specified for this user

3 Client: SAP XI Integration server

4 Language: Language required

SAPISU_XID created in step 1. Dest://SAPISU_XID.

Page 176: PI Overview1

5. Under Specific Configuration Data you can specify additional configuration data

1.Select the relevant category under Specific Configuration Data.

2.Choose Change Specific Configuration Data.

For ABAP Proxies, Add the following configuration:

1.Category RUNTIME

2.Parameters: IS_URL

3.Current Value: dest://SAPISU_XID

4.Choose ENTER.

5.Choose the Technical settings tab page and do the following:

6.In the Program ID field under Registered Server Program, enter LCRSAPRFC

Page 177: PI Overview1

7.This program ID must correspond to a program ID specified in the RFC engine settings of the SAP J2EE Engine on the Integration Server host.

1. You can reuse this program ID for all Business systems

2. If there is HTTP error during connection, first run transaction SLDCHECK in the Business system. Also check that HTTP connection is working fine.

3. In XI Adapter use HTTP connection rather than giving R/3 input details as this is easier to transport and maintenance

4. One receiver adapter can be used for all Interfaces connecting to a Business system.

New Features of SAP PI 7.1

Content

Overview Enterprise Service Repository Integration Engine/Directory Advanced Adapter Engine

Overview

This document describes all new features, enhancements and changes for Process Integration. For each change made, we specify the release and the SAP NetWeaver PI components for which it was implemented.

Enterprise Services Repository

This section describes all new features, enhancements, and changes for Enterprise Services Repository.

Interface Objects

Page 178: PI Overview1

ES Repository Tools

Interface Objects -Changes to Service InterfaceFeature DescriptionAutomatic Migration of Message Interfaces Until SAP NetWeaver 2004s there were message

interfaces in the Integration Repository. Each message interface consists implicitly of an operation, which is not named in the message interface editor.As of this release, you can no longer create message interfaces. You can only create service interfaces, which allow the definition of multiple operations.

Interface Pattern Depending on the use of a service interface, there can be different types of operations for the respective use. To enable the selection of possible operations to be restricted at design time, each service interface has an interface pattern, which you use to decide implicitly on a communication and thus programming model.

dempotency In the service interface, for inbound category with mode as synchronous and any interface pattern except TU&C/C, a new option called Idempotent is available.

Security Profile

Assigning Service Interfaces

You can assign security levels to the service interfaces in the ES Repository.To simplify the configuration of point-to-point connections, you can assign related service interfaces to one another in the Enterprise Services Repository (outbound service interface and inbound service interface).For a given inbound service interface, a wizard automatically creates an outbound service interface and assigns a link to match the two interfaces. This is applicable only for point-to point communication.

Classifying service interfaces in the ES Repository

You can assign classifications to service interfaces in the ES Repository.

Publishing service interfaces You can configure the ES Builder to automatically publish service interfaces to the Services Registry after activation.

Creating service interfaces from WSDL files A wizard enables you to import WSDL files into the ES Repository and create service interface objects

Page 179: PI Overview1

Changes to External DefinitionsMass import of external definitions Until now, you could only upload individual files to

the Integration Repository one after the other. As of the new release, you can upload multiple files to the Enterprise Services Re pository at once and create an external definition for each file.

Automatic Migration of Imported RFCs and IDocs

The internal data storage format for imported RFCs and IDocs has changed. The new data format is simpler and less performance-intensive. All RFCs and IDocs are automatically put in the new data storage format when you upgrade to the new release or transport RFCs or IDocs to the Enterprise Services Repository. There are no other effects.

Changes to Mapping ObjectsGeneral

Parameterized Mapping Programs

You can now work with parameters - whose values are not defined until configuration time - in message mappings, Java mapping programs, and XSLT mapping programs. In mapping lookups, to define the communication channel to be used in the Integration Directory, you can now use the new parameter type Channel. For more information.

Message MappingsFunction Libraries

In lower releases, you were able to save and manage user-defined functions as part of one message mapping. You can now create function libraries independently of specific message mappings, and can use the functions you define in them in multiple message mappings.

Standard Functions for Mapping Lookups

In lower releases, you could only use mapping lookups in message mappings if you used the mapping-lookup-API in Java within a user-defined function. The mapping editor now has the standard functions JDBC Lookup and RFC Lookup for lookups involving the JDBC or RFC adapter.

Page 180: PI Overview1

Variables

In the target structure in the mapping editor, you can now define a graphical variable that you assign a value to at runtime by using a normal target-field mapping. You can then use this value in the scope of the variable when you apply the variable in other target-field mappings;

XSLT Mappings SAP supports the SAP XML Toolkit for SAP NetWeaver Process Integration 7.1 and the next release of SAP NetWeaver.

Java Mappings A new API is available for Java mappings. The previous mapping API still exists but no further development will take place (parameterized Java mapping programs are only possible with the new mapping API, for example).

ES Repository Tools

Usage Profile The usage profile is a filter that defines the number of ES Repository objects that you can access. It enables you to view and work with only a set of object types, software component versions, and modeling filters required to achieve your goals

Translating language-dependent You can now translate language-dependent texts in a separate editor.

Integration Engine/DirectoryIDoc Sender Adapter Available in Integration Directory

You can now configure an IDoc sender adapter in the Integration Directory for processing IDoc packages that reach the inbound channel of the Integration Server and to enter the segment release so that the IDocs are forwarded correctly.

Comparing Metadata for the IDoc Adapter You have the option of comparing metadata that has been loaded to the Integration Server with the current metadata from the SAP reference system that the metadata comes from.

Page 181: PI Overview1

Message Packaging You can now improve the performance of message processing in SAP NetWeaver Process Integration by grouping together asynchronous messages in packages and then processing each message package.

Configuration of Principal Propagation You can configure principal propagation based on Security Assertion Markup Language (SAML 1.1).

Configuration of communication channels with adapter type WS

For configuring scenarios using Web service consumer and web service provider, you can now use a new version of the adapter type WS.

Creating folders You can create a folder to structure Integration Directory content more clearly. Folders can be shown or hidden in the navigation area of the Integration Builder.

Enabling Async/Sync and Sync/Async Communication With JMS Adapter

Modules are provided for the JMS adapter that enable async/sync and sync/async communication. You add the modules to the JMS adapter modules in the module processor

XML to Text Conversion Module You use this module to convert an XML document contained in the mail payload of the XI message to simple text format.You can convert data records either to text with a fixed column width or a separate list. You can define the separator. During conversion, the structure of the XML document is checked using your specifications.

Advanced Adapter EngineLocal Message Processing on the Advanced Adapter Engine

Using Integrated Configuration you can define a local Message Processing on the AdvancedAdapter Engine. The Advanced Adapter Engine provides mapping and routing for this locally. Message Processing is only executed on the Advanced Adapter Engine from one adapter to

Page 182: PI Overview1

another without the involvement of the Integration Engine. You can gain a great improvement in performance.You can implement all adapters on the Adapter Engine for a local Message Processing on the Advanced Adapter Engine, apart from the RNIF adapters and the CIDX adapters.If you do not use the integrated configuration, message processing will continue to be performed using the Integration Engine. .

Page 183: PI Overview1

List of Features: Service Interface generation for WSDL import into the Enterprise Services Repository Classification support in the Enterprise Services Repository Security profile settings for Service Interfaces Where–used list in Services Registry Add Information to Services Published in Services Registry Generation of outbound interfaces based on inbound interfaces User defined usage profiles in Enterprise Services Repository User defined usage profiles in Services Registry Cleanup of Services Registry Content-based routing and receiver split in AAE Operation-dependent receiver determination Directory API supports new objects types Enhanced search for communication channels Scenario view in Integration Directory Enhancements of Adapter Engine SE: Remote configuration Empty file handling Overwriting of inbound files Configuration based on Process Component Interaction Models ABAP and Java proxies supported in the Advanced Adapter Engine End to end IDoc packaging IDoc Conversion Adapter Module User defined message search Cross domain message status overview Process Integration monitoring and configuration capabilities available through SAP Solution

Manager Management of heterogeneous, multi-platform SOA landscapes (integration with AmberPoint) SOA configuration for connectivity of Web services and consumers based on SOA Manager Enhancement in migration controller for smooth upgrades of Java proxies to SAP NW PI 7.1