SAP PO Soap to Soap scenario with multiple operations (sync and async)

I don’t know but I was thinking, why in SAP make a simple web service it’s awful task?

In other technologies (Java for example) you can publish one service with multiple operations with synchronous and asynchronous communication, but do this in SAP PO it’s very tricky.

I don’t write how to develop the scenario, instead, I prefer to talk about “that dirty tricks” to achieve this.

For example, you develop a service interface with multiple operations to expose some functionality via Advanced Adapter Engine, I use soap sender adapter for the outbound system (legacy system) and soap receiver for the inbound system (SAP), I’m working on SAP PO 7.5 (in older versions too).

2018-04-05 10_21_52-Enterprise Services Builder (vhephxidci_XID_00)2018-04-05 10_22_38-Enterprise Services Builder (vhephxidci_XID_00) Seguir leyendo

Anuncios

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 get SOAP xml payload

Frecuently I need to check xml payload on SOAP service interfaces but the PO it’s configured to not persist this messages.

In old versions of PI (like 7.10) you can use the TraceHTTP parameter in  sender or receiver adapter, in the module sap.com/com.sap.aii.af.soapadapter/XISOAPAdapterBean, this paramenter write the xml payload in the message log, according to next values:

  • headers: Only HTTP headers are traced for request and response
  • plain: the whole HTTP request and response are traced (including headers and body)
  • hex: A hex dump is traced for whole HTTP request and response

Seguir leyendo

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

Ajuste del ISR

El artículo del economista “Cómo se beneficiará su bolsíllo con la actualización del ISR” en mi opinión, plantea el lado positivo sobre el ajuste en el ISR pero es más grave de lo que parece.

Es verdad, hoy pago menos impuestos gracias al ajuste pero tambíen pago por recursos y servicios más caros que hace un año (gas, electricidad, gasolina, alimentos, etc).

Me parece ridículo que digan qué con el “beneficio” ahorres o inviertas, cuando el costo de los servicios se ha incrementado.

“Lo que recomiendo hacer es que se identifique este beneficio, ver cuánto es lo que se está ahorrando por la actualización y ver cómo ahorrar o, incluso, invertirlo. Si somos conscientes de que tenemos un ingreso extra, podemos utilizarlo para algún tipo de inversión o ahorro”

No digo que sea malo el ajuste, pero pienso que solo es una forma muy injusta para equilibrar la economía.

Veámoslo así, el artículo menciona:

“en México, 47% de la población económicamente activa gana hasta dos salarios mínimos, 28% gana de dos a tres, 14% gana más de tres salarios mínimos pero menos de cinco mientras que 6% más de cinco, mientras que el restante gana suma aún más altas.”

Posteriormente desglosan a forma de ejemplo el “beneficio“:

Sueldo impuesto anterior impuesto actual
Hasta 2 Salarios
(aprox $5,300 mensuales)
$40 $36
De 2 a 3 Salarios mínimos
(aprox $8,000 /mes)
$680 $619
3 a 5 Salarios
no lo mencionan
no lo mencionan no lo mencionan
Más de 5 Salarios
(aprox $13,500 /mes)
$1,320 $1,137

¿Ven porque es tan injusto?

Analicemos el lado extremo, si ganas 2 salarios mínimos y tienes un beneficio de $4 pesos ¡al mes! dudo que una persona haga frente con ese excedente para pagar el incrmento en todos los demás servicios como el gas, la gasolina, los alimentos y la electricidad. El beneficio al año sería de $48 pesos.

Si ganas más de 5 o 10 salarios, no es tan grave ya que aunque tu beneficio es proporcional supongo que con ese beneficio de $200 o más al mes puedan utilizarlo para ahorrar o pagar sus servicios, gustos o caprichos pasajeros. Siempre y cuando se administren bien.

Aquí es donde cobra sentido, si el 40% de la población gana hasta 2 salarios esa es la proporción de personas que se verán afectadas, si sumamos los porcentajes de la población que ganan hasta 3 salarios mínimos, es decir el 75% de la población (45%+28%).

Por eso mi postura de calificarlco como ridículo y positivo. Insisto, no es malo, pero depende de la perspectiva que tomes.

Es cierto que los que menos tienen pagan menos impuestos (en nuestro ejemplo $36 pesos), en eso estoy de acuerdo y es justo que pagen menos, pero en mi opinión me parece incorrecto que el artículo se muestre de forma positiva para que puedas salir adelante con ese “excedente” y además que digan que los Mexicanos se verán beneficiados.

Pero si lo vemos del lado del gobierno, están dejando de recaudar una buena parte de impuestos… lo cuál me parece bastante extraño.

En fin, esta es mi pequeña observación.

Saludos

Sonar Scanner inspect multi module java project (Mixed eclipse with maven style) from command line

Well, recently I was need to review legacy project to do meassuring the code quality java.

There are a project with multi module structure based on old eclipse syle mixed with maven structure, I have 3 modules (2 in eclipse and 1 in maven) all of them are used to build the final artifact and I needed to do code inspection with sonarqube.

For example:

\tmp\root
├───module1
├───module2
├───mvnmodule
    └───src

Fortunly sonar can manage this, let’s gets started.

Requirements

  • A sonarqube instance (version 6.6)
  • Sonar scanner tool (version 3.0.3)
  • Compiled classes for projects to analize

Steps

  1. Login into sonar instance and select your profile (at the top rigth corner) then click on My profile
  2. Create a new token on tab Security, write a name for the token and click on Generate and copy the token string, becareful but you won’t be able to see this string again.
  3. Conigure your sonar scanner, open the instalation folder (where you uncompress it) and edit the file conf/sonar-scanner.properties, add the host and login token string:
    #Configure here general information about the environment, such as SonarQube DB details for example
    #No information about specific project should appear here
    
    #----- Default SonarQube server
    sonar.host.url=http://localhost:9000
    
    #----- Default source code encoding
    sonar.sourceEncoding=UTF-8
    
    #----- Security (when 'sonar.forceAuthentication' is set to 'true')
    sonar.login=57e0bf00a0af633f5c0534fc72535c16f2f0fc3b
    
    
  4. Create a project configuration file into your source code folder, go to project folder and create a file named sonar-project.properties, set the properties to binaries (compiled classes) and the source code per module, previously you need it compile the project with their modules. I use eclipse to build each of them. The content of file is something like these:
    #Required project data fron sonar
    sonar.projectKey=com.abc:my-project
    sonar.projectName=abc-my-project
    sonar.projectVersion=1.0
    sonar.sourceEncoding=UTF-8
    
    #sonar.modules=PalacioHierro
    sonar.modules=module1,module2,mvnmodule
    
    sonar.java.source=1.7
    
    #Lib Dir (Opcional) ej: path/library.jar,path/to/classes/dir
    sonar.libraries=module2/lib
    
    # Project Language ( by default is Java)
    sonar.language=java
    
    # Properties can obviously be overriden for
    # each module - just prefix them with the module ID
    module1.sonar.projectName=my-project-m1
    module1.sonar.java.source=1.7
    module1.sonar.sources=src,WebContent
    module1.sonar.java.binaries=build/classes
    
    module2.sonar.projectName=my-projct-m2
    module2.sonar.java.source=1.7
    module2.sonar.sources=src
    module2.sonar.java.binaries=build/classes
    
    mvnmodule.sonar.projectName=mvn-webapp
    mvnmodule.sonar.java.source=1.7
    mvnmodule.sonar.sources=src/main/java,src/main/resources,src/main/webapp
    mvnmodule.sonar.java.binaries=target/classes
    
    sonar.skipDesign=true
    sonar.skipPackageDesign=true
    sonar.profile=my-profile
    
  5. Start the inspection, open an terminal and go to your root project folder and execute sonnar-scanner, this will start the code inspection (maybe take a long time, depend of  size of their projects) at the end you must see in the log something like this “ANALYSIS SUCCESSFUL, you can browse http://loaclhost:9000/dashboard/index/com.abc
  6. In the dashboard, on the code cactegory, you can see the result for the three modules.
    2018-01-25 19_06_14-Code - eph-tarjeta-palacio

That’s it.

Cheers!

MGS – Recuerdos, Meiling – Snake

Por eso me encantan estos juegos 🙂

Mei: No olvides guardar tus recuerdos sobre mi

Snake: No se pueden guardar recuerdos ni siguiera en tu sistema. Los recuerdos son cosas frágiles.

Cuando los reduces a combinaciones binarias y los envìas por cable, dejan de ser recuerdos.

Mei: No estarìa tan segura de eso. No hay nada que la tecnología no pueda hacer.

Snake: Los recuerdos no son imágebes ni sonido. Existen en alguna parte entre los sonidos, entre las imágenes.

Mei: No lo entiendo todo se puede digitalizar.

Snake: Si eso es cierto, por què no intentas guardar lo que yo estoy pensando ahora mismo.

Mei: No se puede guardar eso, almenos tienes que ponerlo en palabras.

Snake: Exactamente. Y por eso los recuerdos son … mudos.

Mei: Eso es algo que no sabía.

Snake: Al margen de lo que avance la tecnología de datos, nunca se podrá penetrar en el corazón humano.

Mei: Te equivocas, es olo cuestion de tiempo.

Snake: Pero antes debes entender las emociones humanas, Mei Ling

Mei: ¿Y cómo puedo hacerlo?

Snake: Tienes que llegar enamorarte de alguién para eso.

From Metal Gear Solid (PSX)