Show TOC

Interface ObjectsLocate this document in the navigation structure

Use

Interface objects provide all details on how one process component exchanges data with another, for example, the mode of communication and the data structures.

The following table summarizes the interface object types:

Object Type

Description

Service interface

Defines a set of functions that is either provided by an application or used by an application; contains one or multiple operations. Each operation refers to one or more message types.

Message type

Defines the root element of a message and refers to a data type.

Data type

Defines a data structure.

External definition

Externally-defined data structure that is imported into the ES Repository.

Imported object

RFC or IDoc interface that is imported into the ES Repository.

Context object

Design object that can be used as an abbreviated expression for an XPath expression to address a specific payload element. Context objects are used in routing conditions.

Interface objects can reference each other in a specific way. The possible object references are shown in the following figure.

Figure 1: Object References Between Interface Objects

More information: Interface Objects in the ES Repository

Service Interfaces, Operations and Message Types

As interface objects also encapsulate each other (as illustrated in the figure above), a top-down design approach is also feasible, starting with the definition of a service interface.

A service interface represents a set of functions that is either provided by an application (inbound service interface) or used by an application (outbound service interface). You can consider the set of functions a service interface represents as a subset of the functions implemented by a process component. However, a service interface in the ES Repository contains merely the metadata of a service, abstracted from any implementation details.

Service interfaces are based on Web Services Description Language (WSDL), an XML-based language for describing Web services and how to access them. However, when you create interface objects in the ES Repository, you do not need to be familiar with the syntax of WSDL because you can use the relevant editor to specify the interface attributes.

The Category service interface attribute determines whether the service interface is an outbound or an inbound service interface.

Note

The Abstract category is only intended for communication with an integration process (cross-component BPM).

A service interface groups one or multiple operations. An operation represents the smallest, separately-callable function, described by a set of data types used as input or output. You can specify the Communication Mode for each operation. This attribute determines if the communication defined by the operation is synchronous or asynchronous. In a synchronous communication step, a response is expected for each call or request message that is sent out. In an asynchronous communication step, a request message is sent out but no response is expected.

You assign one or multiple message types for each operation - depending on the communication mode.

A message type defines the root element of a message. You use a message to exchange data between systems. A message type refers to exactly one data type that defines the structure of this data.

For a synchronous operation, you assign three message types: A request, a response, and a fault message type. A fault message type represents the message that is expected in case an error occurs. For an asynchronous operation, you only assign one request message type. The following figure shows the role the different interface objects play for the message exchange as designed based on the process model (shown above). The example shows an asynchronous message exchange where a request message is sent from the service consumer to the service provider.

Figure 2: Asynchronous Message Exchange Between a Service Consumer and a Service Provider

The following figure shows a synchronous message exchange including a request and a response message being defined for the service interface operation:

Figure 3: Synchronous Message Exchange Between a Service Consumer and a Service Provider

In a lot of scenarios, the application forces that a specific communication sequence and transactional behavior is maintained during message exchange. With the attribute Interface Pattern you can design this behavior in the ES Repository. An interface pattern describes the type of communication that is to be executed on the message when the interface is used. It determines what kind of operations can be defined for a service interface. The interface pattern that you select has an impact on the activities related to the programming of the business logic in the related back-end system (task of application developer).

Note

For mediated communication using an integration broker, the interface patterns that fit most use cases are Stateless or Stateless (XI 3.0-compatible).

The interface pattern Stateless (XI 3.0-compatible) is used by default for all interfaces migrated from earlier releases of SAP NetWeaver PI (namely, SAP NetWeaver PI 7.0 and SAP NetWeaver XI 3.0) to SAP NetWeaver PI 7.1 (called message interfaces in earlier releases). Additionally, this interface pattern is recommended for scenarios that use the common "technical adapters" such as the File/FTP, JDBC, JMS adapter. However, using this pattern limits the service interface to use only one operation.

The default pattern for developing new service interfaces is Stateless.

The interface pattern Tentative Update & Confirm/Compensate (TU &C/C) has been developed to improve the transactional behavior when using synchronous messages. The TU &C/C pattern ensures that - in cases of system or communication failure - one of more synchronous update calls in one transactional context are executed and ensure a consistent dataset on both sides of the communication.

More information: Service Interface

Data Types

A data type determines the data structure for a specific business entity, for example, an address. Data types are referenced by message types and therefore define the structure of a message.

As defined in the ES Repository, data types are based on XML Schema (also referred to as XSD ). Data types can reference other data types which enables you to build up complex data types out of simpler ones. The basis for all data types are XSD types contained in XML schema and approved by W3C, (for example, xsd:string, xsd:decimal, xsd:integer). These data types define the properties of an element at a technical level.

More information: Data Types in the Enterprise Services Repository

External Definitions

If you would like to reuse existing XML definitions as message definitions described in either WSDL or XSD, you can import these XML definitions into the ES Repository, rather than re-enter them manually using the data type editor. You then encapsulate the imported definition in the form of an external definition.

Context Objects

With a context objects, you can specify an XPATH expression that can be used to access a field in an XML message.

These expressions can then be used at configuration time to configure content-based routing and in integration processes (ccBPM)

More information:

Imported Objects

If you would like to reuse XML definitions of existing functions - RFCs or IDocs - so that you can call these functions using the Integration Server, you can import IDocs and RFCs into the ES Repository and make the interface signature known there.