1

I am trying to receive XML IDoc data from an SAP system. It should get push to me over HTTPS but something is not working. I gave out a SSL certificate and the IP address of the server. I can see that the SAP system is trying to send me something because I am getting a call from Agent: SAP Web Application Server (1.0;701) but no data is transmitted in GET, POST or FILE.

The SAP system is controlled by someone else. They got this working with some other server so I assume it must be my fault.

Currently my script logs these values:

serialize($_GET),
serialize($_POST),
serialize($_FILES), 
$_SERVER['REMOTE_ADDR'], 
$_SERVER['HTTP_USER_AGENT'], 
serialize(apache_request_headers())

Header tells me:

content-type: text/xml
content-length: 76702

but I am not getting any content.

What I am doing wrong? How could I dig into this?

PiTheNumber
  • 22,828
  • 17
  • 107
  • 180

2 Answers2

3

Solution is to read HTTP body directly from file_get_contents("php://input"). The data has no variable so it's not getting parsed into any $_POST variable:

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

See: http://php.net/manual/en/reserved.variables.httprawpostdata.php

PiTheNumber
  • 22,828
  • 17
  • 107
  • 180
1

Thought the problem is not very clear but can you please let me know how are you connecting SAP 7.1 system with PHP.

First of all, what need to do on the SAP side to expose a Remote Function Module which can be accessed via RFC. All you need to do is to create a ‘remote-enabled’ Function Module in SAP. This can be done by ticking ‘Remote-enabled module’ under the function module’s attributes. You can write whatever program logic in ABAP in the Function Module. Pay special attention to the Importing and Exporting parameters of the Function Module as these will be what are passed to and from your PHP program.

Varun Bajaj
  • 1,033
  • 8
  • 16
  • I am not connection to SAP at all. SAP should connet to me and send data over the Web Application Server. I am not sure how this works but I believe there is no RFC used at all because we are using a [push solution](http://stackoverflow.com/a/13073818/956397) not a pull. – PiTheNumber Dec 20 '12 at 10:37
  • Using SAP as web application server return's REST/SOAP response (did you try in this way?). – Varun Bajaj Dec 20 '12 at 10:41
  • I can not change anything on the server but I found the data in the HTTP body. Thanks for you help! – PiTheNumber Dec 20 '12 at 11:22