SAP PI Encrypt Soap request with private certificate

I’ve been working to secure the information with a SOAP web service with SAP PO and It’s an expensive and frustraiting task for me because I don’t have enough knowldege about TLS protocol and certificates.

In this entry I want to share my experience to do it.

Overview

  1. Create a keypair certificates in Keystore (Private key and public certificate) and export them
  2. Configure the SOAP sender communication Channel
  3. Configure the Integrated Configuration Scenario (ICO)
  4. Configure web service client (SOAP-UI)

1.Create a keypair certificates in Keystore (Private key and public certificate) and export them

Go to NWA> Configuration > Security > Certificates and keys, then on Key storage tab Add View, give it a name for key storage (it’s selected by default). Now on View Entries tab select create and set a name for your key pair, leave the options by default  and check Store Certificate optionand click next. Fill out the data for your certificate, something like this:

Seguir leyendo

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

Development, Impact & you

2018-06-13 18_42_55-Development Impact and You

Navegando me encontré con este excelente material con la recopilación de herramientas para las personas que se dedican a las actividades de innovación y el desarrollo.

Esta recopilación cuenta con una guía rápida de implementación de herramientas probadas a nivel mundial que te permiten obtener resultados.

EL material se divide en 4 categorías, donde cada uno muestra en una guía rápida lo que tienes que saber sobre la herramienta para utilizarla:

  • Explorar
  • Desarrollar un plan claro
  • Aclarar prioridades
  • Recolectar apreciaciones de otros
  • Conocer a mis colaboradores
  • Generar nuevas ideas
  • Probar y Mejorar
  • Sostener e implementar

Me parece que es un gran trabajo y es auto descriptivo, aquí una muestra.

2018-06-13 18_44_27-DIY-Toolkit-Full-Download-A4-Size.pdf

Todo el material es gratuito pero si gustas apoyar puedes comprar la versión impresa, qué considero es un excelente trabajo.

http://diytoolkit.org/tools/

Saludos

Source Tree resolve conflicts with an external tool

2018-05-21 12_55_29-Sourcetree-blue - Internet Explorer

Source Tree supports multiple external tools to compare differences and resolve conflicts between files. By default you can choose any of this:

Source tree tools

But In this entry I’m going to show how to use it with Meld. 

Meld is a visual diff and merge tool targeted at developers. Meld helps you compare files, directories, and version controlled projects.

In linux systems it’s very useful and it’s my preffered tool (only when I can’t use diff and merge tools from my IDE).

How to configure

For Windows

Go to main menu and select Tools > Options > Diff tab, into selection option External Diff  pick Custom and into field Diff Command set the path to your meld binary (on windows is Meld.exe),  into field Arguments set this:

\"$LOCAL\" \"$REMOTE\"

Now for Merge Tool, select the same binary (Meld.exe) and set this into filed Arguments:

--auto-merge \"$LOCAL\" \"$BASE\" \"$REMOTE\" --output=\"$MERGED\"

Now, if you choose any file in your project you can check the diff selecting External Diff or with shorcut CTRL+D over your file, and meld it’s executed:

extdifmeld

And it’s the same for files in conflict, select your file with the context menu Resolve conflicts > Launch External Merge Tool, now you can view side to side the differences between versions.

extmergemeld

For Mac OSX

Meld is available for OSX here, download and install it.

Select Sourcetree menu > Preferences > Diff tab, on Diff command and Merge command set this value:

open -W -a Meld

For Diff command set  this args:

 --args  $LOCAL $REMOTE

For  Merge command set  this:

--args --auto-merge $LOCAL $BASE $REMOTE --output=$MERGED

Note:If you want to disable auto backup files (with .orig extension) from git execute this command:

 git config --global mergetool.keepBackup false

And thats all, cheers

References

 

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

Cheers

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:

SELECT VC_PEDIMENTO, INVNUM, VC_PRC_FILE_FLG
FROM MYTABLE WHERE (INVNUM='4900005421')

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