¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Reutilización de mapeos Java de PI en CPI utilizando Groovy: Solución al error de firma de método

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 17 Vistas
0
Cargando...

Hola Expertos,

¿Es posible reutilizar mapeos antiguos de Java de PI en CPI llamándolos en groovy?

Quiero reutilizar mis antiguos mapeos de Java desde PI/PO en CPI.

He importado los archivos jar en CPI y estoy tratando de llamar a la clase de mapeo desde groovy.

Aquí está mi código groovy;

import com.sap.gateway.ip.core.customdev.util.Message;

import java.util.HashMap;

import Tester.TestBO; // importando la clase Java desde el jar

def Message processData(Message message)

{

//Cuerpo como string def body = message.getBody(java.lang.String) as String;

def javaMapping = new TestBO(); // clase de referencia del jar

def result = javaMapping.transform(body); // llamando al método de transformación

message.setBody(result); // estableciendo el cuerpo

return message; // devolviendo el mensaje que debe ser mapeado

}

Con esto estoy obteniendo el siguiente error;

"No se aplica ninguna firma de método: Tester.TestBO.transform() para tipos de argumento: (java.lang.String) valores; (mi estructura XML que quiero mapear) "

Cualquier ayuda sería apreciada

Gracias

Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

3 Respuestas

0
Cargando...

Hola Dale,

def result = javaMapping.transform(body); // llamando al método transform

"body" es una variable de tipo String mientras que la firma del método transform tiene un argumento de tipo TransformationInput y otro de tipo TransformationOutput .

Normalmente tomo el código del método transform (en algunos casos también en el método execute) que generalmente es llamado por el método transform) y lo adapto de la siguiente manera en el script groovy:

  1. convertir "body" en una variable de tipo InputStream
  2. ajustar el código JM de acuerdo con la sintaxis groovy
  3. convertir el resultado del JM (generalmente un objeto OutputStream ) nuevamente a String para establecer el nuevo cuerpo

Terminas desarrollando una secuencia de código como esta:

String->InputStream->Document->[procesamiento/codificación]->Document->OutputStream->String

Saludos.

JT

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Hola Dale,

¿Has encontrado una solución para esto? Porque yo también estoy buscando lo mismo.

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?