[SAP CPI] – HOW TO USE XI SENDER ADAPTER CALL ABAP PROXY TO SEND DATA OUTBOUND IN SAP CPI

Hi guys, in this article I shared step by step How to send data from backend ERP to external system by call ABAP PROXY Outbound Service Consumer.

Imagine, your business need collect all stock , create XML and send to SFTP thought CPI. In this case, We will config XI Sender adapter from CPI to receive data which send from backend by connection HTTP connection to External server. Kindly focus that this is asynchronous message. It mean no need response.

OK, let’s configure it.

Configuration at Integration Flow (SAP CPI)

For simple example, I just create simple integration just include one XI Sender Adapter and one SFTP Receiver Adapter.

Configuration for XI Sender Adapter

Configuration at SAP Backend

Create connection with TYPE G

T-Code: SM-59

  • (1) : Name of connection
  • (2) : Connection Type = G
  • (3)(4) : Target host and Path Prefix : This is information of integration flow above after deploy. Note : Host no need HTTPS
  • If your system use Firewall, You need contact with admin system to open port. And you have config :
    • Proxy Host : IP of your proxy server
    • Proxy Service : 8080
    • Proxy User : User to connect Proxy
    • Proxy Password
  • (1) : Account to connect CPI
  • (2) : Default SSL. Choose Active

Create ABAP Proxy with Type Service Consumer

T-Code: SPROXY

For example, I create one service consumer with type Service consumer and direct OUTBOUND with asynchronous messgae

Press F8 to run test this ABAP Proxy.

In this here, because proxy run with asynchronous, so It just have one tab REQUEST

Configuration Sender/Receiver ID in integration engine

T-Code : SXMB_ADM

Configure Sender/Receiver ID

  • (1) : Name of sender/receiver ID
  • (2) : Description
  • (3) : Component = *
  • (4) : Interface Name : This is service interface consumer
  • (5) : This is namespace service interface consumer

Configuration integration engine

T-Code : SXMB_ADM

Go to Integration Engine Configuration

  • (1) : You have to choose Role of Business System is : Application System

Go to configuration

Add new configure

  • Category : RUNTIME
  • Parameters : IS_URL
  • Subparameter : <Name of Sender/receiver ID>. Ex : CPI_OUT
  • Current Value : dest://<Name of RFC connect external>

Test case step by step

Because this is a asynchronous message, so after run SPROXY and COMMIT (Extras -> COMMIT Work), message will be put into queue. We can it in SXMB_MONI.

This is list issue when call proxy

Error while sending by HTTP (error code: 407 , error text: Proxy Authentication Required)

This issue come from connect SM59. Connection cannot connect to external by HTTP. In this case, check connection, firewall and port.

When go to view HTML Error we take issue clearly

HTTP Status Code 200 Received But Error During Response Parsing: No XI Response Received XML element {http://schemas.xmlsoap.org/soap/envelope/}Envelope missing in SOAP message header (SAP XI Extension)

I think this issue com from RFC connection in T-Code SM59. Further to check, I go to T-Code SM59 and take some check by change URL to another which backend can see

URL which I use for this is the same network layer with backend, save and check connection I see that it is very fast. And this time, when click response body tab we will get content the same with content when I run URL from web browser.

OK, let come back our scenario, I run URL of CPI from web browser I will get content as

In this we will get MPL with ID and get that ID search in CPI we will get message from CPI

So, we also expect in RFC Connection (SM59) We receiver the same content in response body. If not, we should be contact with BASIS team to fix this connection issue first.

How to fix this issue

Step 1

  • T-Code : SM59.
  • Check tab Technical Settings
    • (1) : Host CPI
    • (2) : Port CPI ( 443)
    • (3) : Host name / IP of proxy server (If have)
    • (4) : Proxy service : 8080
    • (5) : User/Pass connect to proxy ( If have)
  • Check tab Login & Security
    • (1) : Account access to CPI
    • (2) : Active SSL and select SSL in Cert. List (T-Code: Strust)

Step 2 : Add SSL into Backed

  • Access host of CPI to download SSL from here
  • Go to T-Code : STRUST

Choose certificate which downloaded from last step, after that add into here

Step 3 : Run Connection Test in SM59 and fix issue ICM_HTTP_SSL_CERT_MISTMATCH

  • Go to T-Code : SMICM
  • Goto -> Trace File -> Display All

With this issue, because parameter icm/HTTPS/client_sni_enabled is FALSE. So we have to go T-Code RZ11, go this parameter and enable it.

Step 4 : RUN RFC connection again

Check on CPI, we also receive message error the same MPL in backend. This is demonstrate that connection from backend to CPI is OK. Cheer !

Run Test End to End this scenario

  • Go to ABAP Proxy send data out to CPI
  • Check SXMB_MONI
  • Check Data Store on CPI. Because of this XI sender adapter, we use data store.
  • View message in data store

Summary

OK, in this article I shared step by step How to send data from SAP backend to external by ABAP PROXY through XI sender Adapter in SAP CPI. In this article, I also shared how to check RFC connection type G – HTTP Connection to External System. Thanks for your reading and any advise kindly leave your comment on below this. Thanks!

JOSEPH.

One comment

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.