SAP PI Proxy to JDBC to get millions of records

Recently I’ve had to develop a scenario  with Proxy to JDBC communication to extract a lot of records (millions of records), the strategy to achieve this is get a bunches of records in packages until transfer all records from database to SAP.

I’ve developed a Service Interface with tree operations:

  • Count: to get the number of records to extract
  • Transfer: to get records in packages
  • Delete: clear the table if the prrocess completes successfully

The execution logic is simple, first, SAP counts all record in DB to know how many of them will be extract, next an ABAP program calculate the size of packages and start to extract the records in packages, and count the transfered data per package, at last, if the transferred data is equal to initial count the source table is deleted.

The interesting point is on Message mapping, let’s review them: Seguir leyendo


SAP PI Naming Convention

When I start on PI development I feeling very confused by the naming convention of their components, a couple years ago I was thinking if it is a best naming convention but I don’t found anything about it.

Talking to other consultants of PI/PO they are agree this naming is a responsibility of the organization standards, but in some times it’s not the best.

For example, when you implement a Java proxy if you naming convention it’s not clear the java code is very awful and I don’t like that. In the organization when I work this is very common mistake, because every release of new service interface has problems with the other develoment teams to integrate your systems, only by the naming convetion is too large or dificult to read.

I’ve been developing services interfaces around of five years and recently I found (in my opinion) the best naming convention for SAP PI/PO in this website.

The document is like a cheetshet and it’s very clear to read, definitely I recommend this.

If you has problems to access I leave a copy of the document here


SAP PO mapping Sync SOAP to JDBC

Well, this time I would like to share this tip to create a service interface to retrieve data from Database with SAP PO/PI.

When you develop the message types to get SQL data you must to check the names and the structure of the Data Types, for example, this is a simple structure to do this query:


For the request sender message type you can write your own structure with any label names:

2018-03-07 11_00_30-MM_ConsultarPedidos_ECC_to_DLX_req_ Display Message Mapping Seguir leyendo

SAP PI/PO Enable Web Service Compression

Many people don’t know the web services has a feature to compress the information for request and response to exchange data between client and server.

The advantages of using this feature are that you can send high volume information in web services without reducing the performance, for example, you can send an XML payload of size 40 MB compressed in some 800 kb.

To enable this you need to add some headers in your web service consumer client. In case to PI/PO the equivalent is adding these parameters in SOAP module adapter configuration:Screenshot_20170814_174631 Like this:


But you need check which direction of the communication channel is configured, in the previous SAP PI documentation describe the configuration:

The receiver SOAP adapter uses these parameters for the request message; the sender
SOAP adapter uses these parameters for the response message.

If you’re using a Java client with axis you could enable this feature adding this lines into your Out Binding Stub class:

org.apache.axis.client.Call _call = createCall();
// other conf props...
_call.setProperty(HTTPConstants.MC_ACCEPT_GZIP, Boolean.TRUE);
_call.setProperty(HTTPConstants.MC_GZIP_REQUEST, Boolean.TRUE);

This is imperceptible for PI/PO because into the PIMON you can see the message size as normal size, you can check the web service consumer to validate if the request is compressed or not.


SAP PO 7.5 enable sync acknoledgement in async communication channel receiver

Recentrly I had been a SAP  PI 7.1 system to SAP PO 7.5 and some scnearios I had troubles with the acknowldege reponse from other SAP systems.

The problem is with a SOAP XI receiver communitation channel when the message is sended to sap system receiver, I don’t know because the receiver system send to PO a aknowledge with empty content (XML), and this raise a exception in PO.

To fix that I need to add this parameters into adapter module > Tab Module > Module Configuration

Module Key Parameter Name  Parameter   Value
soap        XMBWS.GenerateSysAck        true
soap        MBWS.NoSOAPIgnoreStatusCode true
soap        GenerateSysAck          true
soap        ignoreDuplicate         true

Maybe the parameters sounds to do other actions, but when you set the value ‘true‘the akcnowldege is ignored in PO and the process complete succesfully.



Deploy EAR in PO 7.5 via Telnet (JAVA Only)

To deploy manually ear file in your PO server you need:

  • User with privilegies with J2EE_ADMIN
  • User to  operating system (ROOT user)
  • XPI Tool inspector EAR


  1. Log in via SSH in your server
  2. Put your ear into server for example in /tmp/xpi_inspector_ear_v5_0.ear
  3. Change file privilegies: chmod 777 xpi_inspector_ear_v5_0.ear
  4. Log in with telnet command: telnet localhost 5<instance num>08
  5. Write user and pass and put the next command:

Seguir leyendo

SAP PI Change Client / Cambiar Cliente

Los desarrollos ABAP que envían información a PI mendiante un proxy utilizan la configuración del SLD, esta configuración está asociada mendiante el Technical System, el Business System y el Client.

Para cambiar de cliente tenemos que realizar los siguiente pasos, en el siguiente ejemplo voy a mostrar como modificarlo de HCM a PI:

1. Ingresas al SAP logon de HCM y ejecutas la transacción SLDCHECK. Esto va a abrir el browser con la url “http://<Servername : port>/sld“,  otra alternativa es abrir directamente el SLD en PI si conoces al que esta asociado.

2. Vas a ver la página de configuración del Bussiness System (BS), en ella tienes que seleccionar el BS y en la parte inferiror modificas el cliente al que esta asociado mediante la opción “change“:

SAP PI Business System

SAP PI Business System

Seguir leyendo