ABAP Blog Posts
cancel
Showing results for 
Search instead for 
Did you mean: 

Introduction:-

In SAP ABAP, inbound delivery and outbound delivery proxies refer to the asynchronous communication interfaces used to exchange delivery data between SAP and external systems (like warehouses, logistics providers, or other SAP systems) using proxies (usually created from Enterprise Services or via SOA tools like SPROXY). Here's the breakdown: 

What is a Proxy in SAP ABAP:-

A proxy is an ABAP object generated from an Enterprise Service Definition (WSDL/XML schema). It allows the SAP system to send or receive messages in XML format, typically used in SAP PI/PO, SAP Cloud Integration, or other middleware scenarios. 

Outbound Delivery Proxy:-

Meaning:-

An outbound delivery proxy sends delivery data from SAP to an external system. 

Use Case:-

  • Notify a warehouse system about deliveries. 
  • Send outbound delivery details (items, quantities, shipping info).

Flow:-

  • Delivery is created or changed (e.g., in VL01N, VL02N). 
  • ABAP program or output type triggers the proxy class. 

The proxy sends XML data to the middleware or external system.

Inbound Delivery Proxy Meaning:-

Meaning:-

An inbound delivery proxy is used when SAP receives delivery data from an external system.

Use Case: -

  • A 3PL (third-party logistics) system sends inbound delivery confirmation. 
  • ASN (Advanced Shipping Notification) integration.

Flow:-

  • External system sends delivery data (in XML). 
  • Middleware routes it to SAP. 
  • SAP uses the inbound proxy class to receive and process the data (e.g., create/update delivery document in SAP). 

Technical Tools Involved:-

  • SPROXY: To view or generate proxy classes.  
  • SOAMANAGER: To configure endpoints (for web services).  
  • PI/PO / SAP Cloud Integration: Middleware for routing messages. 

Summary:-

Bikash_R_0-1762321692990.png

Difference Between Inbound and Outbound Delivery Proxy:-

Bikash_R_1-1762321836197.png

Bikash_R_2-1762321849675.png

In SAP ABAP, SPROXY is a transaction code used to manage and generate ABAP proxies, which are used for communication with other systems, particularly via SAP Process Integration (PI) or SAP Process Orchestration (PO). These proxies act as interfaces, enabling data exchange between SAP systems and external systems using standard protocols like SOAP and HTTP.

Debug and Test Inbound ABAP Proxy:-

There are two methods to debug ABAP inbound proxies in SAP:-

  • Debugging using SPROXY test feature 
  • External Debugging 

Each method has it’s own advantages, disadvantages, limitations and use cases. But, using these two methods you can fully debug and test an inbound ABAP proxy.

Use Cases – Troubleshoot using SPROXY:-

The internal SPROXY debugging method is useful if you need to debug variations of the same XML input message. This is a great way to test and debug SAP application processing without having to connect with the external system or PI/PO. Moreover, using this method ABAP developers can work independently to complete Developer Unit Testing (DUT) scenarios without integrating the interface end-to-end. 

Use Cases – Troubleshoot using External Debugging:- 

We can use the external debugging method if you need to debug the proxy logic when messages are triggered by the external system or PI/PO. This will allow us to troubleshoot connectivity related issues, issues due to proxy version inconsistencies, character set issues, etc. Or if proxy messages are sent with attachments, you can use external debugging methods to identify attachment related issues. 

To use either method, you first need to identify the ABAP implementing proxy class. Additionally, you need proper authorization, proxy connectivity between ECC and SAP PI/PO completed, and proxy class generated/activated. 

How to Find the ABAP Proxy Implementing Class:- 

Before you can debug the ABAP inbound proxy, first you must find the ABAP proxy class. Then, you need to set a break-point in the appropriate method or ABAP code line in the ABAP implementing class. Break-point could be either a session break-point or an external break-point depending on the debugging method you choose. 

You can find the ABAP Proxy class in two easy steps:-

  • Step 1 – Find the Inbound Service Interface and Namespace 
  • Step 2 – Determine the ABAP Proxy class using SPROXY transaction 

Determine the ABAP Proxy Class Using SPROXY Transaction:-

Now that you have identified the Inbound Service Interface details such as name, SWCV, and Namespace, go to transaction SPROXY in SAP back-end system and navigate to the interface using the navigation tree. 

In the navigation tree select of SPROXY, select Source > ESR > SWCVs > SWCV > Namespaces > Namespace > Object Types > Service Providers > Service Interface Name. 

Bikash_R_3-1762322197296.png

Bikash_R_4-1762322203306.png

Navigation menu of SPROXY in SAP back-end system.

Double click of the Service Interface Name under the Service Provider view, to find the SAP ABAP OO Implementing class of the interface in “Implementing Class” field.

Bikash_R_5-1762322261669.png

Another approach --> click on OpenObject ->provide the proxy's name and click ok.

Bikash_R_6-1762322292905.png

Bikash_R_7-1762322299669.png

Bikash_R_8-1762322338930.png

Set a Session Debugging Break-Point in the ABAP Proxy Method.

Bikash_R_9-1762322353762.png

Session break-point assigned in ABAP code.

Select “Test Service Provider.

Go back to the main screen of the SPROXY transaction after setting the break-point. 

To simulate the inbound proxy click on the “Execute” button on the main menu. This will trigger the “Test Service Provider” function of SPROXY.

Bikash_R_10-1762322447190.png

Bikash_R_11-1762322453432.png

Now we can see the display request in XML format. 

Bikash_R_12-1762322493558.png

 

Define and Edit Input XML message:-

In the next screen, you can define the input XML message you would like to simulate. If you selected the option “Generate Request Template” in the previous step, you can simply change the values of the XML nodes as required. 

To change the XML message generated by the system, click on “XML Editor” option in the header menu.

Bikash_R_13-1762322525016.png

Bikash_R_14-1762322530956.png

Give the appropriate field name and execute, we can see this in debug screen:-

Bikash_R_15-1762322546855.png

External Debugging Steps:-

Most of the steps to debug inbound proxies using external debugging method are the same as debugging using SPROXY. For example, finding the service interface, proxy class are the same for external debugging as SPROXY debugging. But, there are two very important distinctions between the two different methods. 

To set up external debugging, additionally, you need to, 

  • Find HTTP system user.
  • Configure User-Specific Debugging Setting in SAP Back-end.
  • Set an external debugging break-point instead of a session breakpoint.

Step 1 – Find HTTP System Username:- 

The first step is to find the HTTP system user used to connect the SAP system with SAP PI/PO. When the external system or PI/PO sends inbound Proxy messages to SAP, this user will authenticate the exchange of messages. We need this username to set the external debugging break-point in the next step.

Step 2 – Configure User-Specific Debugging Setting in SAP Back-end:-

To configure the user-specific debugging settings open any ABAP editor and go to Utilities > Setting > ABAP Editor > Debugging.

Bikash_R_16-1762322708312.png

Then set the user of Debug External Requests (RFC, HTTP) with the HTTP user we determined from the HTTP destination in PI/PO. 

Bikash_R_17-1762322730707.png

Step 3 – Set External Debugging Point:-

Instead of a session debugging point, set an External Break-point in the Proxy ABAP code. 

Bikash_R_18-1762322782215.png

Bikash_R_19-1762322788940.png

Conclusion:-

SAP proxies simplify integration by bridging SAP and external systems without handling low-level protocols. With a solid grasp of inbound/outbound proxies and the ability to debug using both session and external debugging, developers can design stable interfaces and resolve issues efficiently. This combination ensures smoother communication, faster troubleshooting, and more reliable end-to-end processes. 

Thank You__

Labels in this area