Start of Content Area

Process documentation Processing Business Data Using the Plain HTTP Adapter  Locate the document in its SAP Library structure

Purpose

The plain HTTP adapter  enables you to receive and send business data from and to external systems, using the plain HTTP inbound/outbound channels of the Integration Engine.

The standard exchange format for data in the Integration Engine is XML. However, using the plain HTTP adapter you can also send and receive data in HTML and ASCII. In this case you must use a Java mapping.

Prerequisites

The HTTP service /sap/xi/adapter_plain supplied by SAP must be assigned to the client in which you run the Integration Engine.

Process Flow

An HTTP client sends business documents to the Integration Engine using HTTP. A message is generated from the business document and transferred to the Integration Engine. If, on the other hand, the Integration Engine identifies a plain HTTP receiver, a business document is generated from the message and sent to the receiver. This communication is either synchronous (the client awaits a response to its HTTP request) or asynchronous.

Integration Engine: HTTP Inbound Channel

The Integration Engine is called by external systems using HTTP and an HTTP address. For this purpose, the HTTP inbound channel of the Integration Engine contains the HTTP service /sap/xi/adapter_plain, delivered by SAP.

The class CL_HTTP_PLAIN_INBOUND is provided as a request handler that processes an HTTP request synchronously (client awaits a response) or asynchronously.

This graphic is explained in the accompanying text

Multi-part documents and HTTP requests with an empty HTTP body are not accepted and receive a response with status code 500 or 204.

The obligatory parameters of the HTTP address are analyzed and used to construct the message.

Mandatory Parameters

Parameter

Meaning

service

Sender service for identifying the sender

Note

In XI message protocol 2.0, this parameter corresponds to the parameter bs.

namespace

Namespace of the sender interface

interface

Interface of the HTTP payload

Example

http://sap-ag.com:8088/sap/xi/adapter_plain?service=sender&namespace=urn%3Asap-ag%2Ecom&interface=%2Fsap%2Forders

This graphic is explained in the accompanying text

You must code special characters such as forward slash (/), hyphen (-), period (.), or colon (:) with escape characters (for example, %2Ffor /, %2Dfor -, %2Efor .,and %3Afor :).

The optional parameters of the HTTP address are also analyzed. They affect the runtime response of the message in the Integration Engine.

Optional Parameters

Parameter

Meaning

party

Sender party (XI 3.0 only)

agency

Issuing agency of the sender (XI 3.0 only)

scheme

Identification scheme of the sender (XI 3.0 only)

qos

Quality of service of the message:

Synchronous (BE) or asynchronous (EO, EOIO) processing; the default setting is synchronous processing.

queueid

Queue name in EOIO processing (XI 3.0 only)

msgguid

32 character message ID; uniquely identifies a message in the Integration Engine. If no message ID is specified, the system generates one internally.

Example

http://sap-ag.com:8088/sap/xi/adapter_plain?service=sender&namespace=urn%3Asap-ag%2Ecom&interface=%2Fsap%2Forders&qos=EO&msgguid=3C61F6C12F1E2DD1E10000000A1145AB

This graphic is explained in the accompanying text

You must code special characters such as forward slash (/), hyphen (-), period (.), or colon (:) with escape characters (for example, %2F for /, %2D for -, %2E for .,and %3A for :).

Optional HTTP header fields are ignored. The payload in the HTTP body is appended to the message as a binary document. The payload must be sent as an XML document with code page UTF-8, so that all services of the Exchange Infrastructure can process the document.

The instantiated message is transferred to the Integration Engine. In mode BE (synchronous processing) the system waits for the response from the Integration Engine. If processing is successful, the payload of the message is sent as an HTTP response. If not, the system returns an error.

If processing is successful, the HTTP client has the return code 200. Otherwise, it has the return code 500, or 409. If an error occurs, the error object of the message contains an error message. In the synchronous case, this is placed in the HTTP body of the HTTP response; in the asynchronous case, it is given as the error cause to the HTTP request.

HTTP Outbound Channel of the Integration Engine (Receiver HTTP Adapter)

The Integration Engine calls the plain HTTP adapter if technical routing identifies a communication channel for the logical receiver. This communication channel originates from the Integration Directory. It is analyzed and provides the technical information for the HTTP request.

The main payload of the message is sent as HTTP post to an HTTP address. The technical data for the HTTP post is determined from the communication channel parameters.

A HTTP client is instantiated for a logical destination, in which the following data are maintained:

        HTTP address

        HTTP proxy data

        Authentication settings

        Security data

If no destination is specified, the system instantiates an HTTP client using the specified HTTP address and the proxy data. A basic authentication is entered in the HTTP header fields with a user and password in BASE64 code.

The optional header fields maintained in the communication channel parameters are set in the HTTP header.

The header fields Content Type (if not already explicitly set),Content Length, and the host are set by default.

In the HTTP address, the sender party is set as the parameters party, agency, and scheme, the sender service is set as the parameter service, and the interface used is set as the parameters namespace and interface. Depending on the current quality of service (qos) of the message, the parameter qos is also added to the HTTP address. If the quality of service is EOIO, a queue name is also required in the parameter queueid.

The HTTP body comprises the prolog, message payload, and epilog. The prolog and epilog are optional and enhance the payload for particular servers (for example, CGI servers). If the payload is to be sent as an HTML form using HTTP post, it is URL-escaped beforehand.

If the specified code page for the HTTP body does not correspond to the default setting UTF 8, the system converts the HTTP body to the corresponding code page; in the XML document, the system replaces the tag encoding=UTF-8 with the corresponding code page tag.

If the quality of service is set to Best Effort, the system awaits a response from the HTTP server. The system appends this response to the message as a new main payload (with the content type, if necessary), while it deletes the old main payload.

The system logs any errors that occur in the message.

 

 

End of Content Area