¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

¡Acceso SAP S/4HANA desde $100!

Acceso a SAP

Reutilização de mapeamentos Java do PI no CPI usando Groovy: Solução para o erro de assinatura de método

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

Olá Especialistas,

É possível reutilizar mapeamentos antigos de Java do PI no CPI chamando-os em groovy?

Quero reutilizar meus antigos mapeamentos de Java do PI/PO no CPI.

Importei os arquivos jar no CPI e estou tentando chamar a classe de mapeamento do groovy.

Aqui está meu código groovy:

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

import java.util.HashMap;

import Tester.TestBO; // importando a classe Java do jar

def Message processData(Message message)

{

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

def javaMapping = new TestBO(); // classe de referência do jar

def result = javaMapping.transform(body); // chamando o método de transformação

message.setBody(result); // definindo o corpo

return message; // retornando a mensagem a ser mapeada

}

Com isso, estou recebendo o seguinte erro:

"Nenhuma assinatura de método aplicável: Tester.TestBO.transform() para tipos de argumento: (java.lang.String) valores; (minha estrutura XML que desejo mapear)"

Qualquer ajuda seria apreciada.

Obrigado

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

3 Respuestas

0
Cargando...

Olá Dale,

def result = javaMapping.transform(body); // chamando o método transform

"body" é uma variável do tipo String enquanto a assinatura do método transform possui um argumento do tipo TransformationInput e outro do tipo TransformationOutput .

Normalmente, eu pego o código do método transform (em alguns casos também no método execute) que geralmente é chamado pelo método transform) e o adapto da seguinte maneira no script groovy:

  1. converter "body" em uma variável do tipo InputStream
  2. ajustar o código JM de acordo com a sintaxe groovy
  3. converter o resultado do JM (geralmente um objeto OutputStream ) novamente para String para estabelecer o novo corpo

Você acaba desenvolvendo uma sequência de código como esta:

String->InputStream->Document->[processamento/codificação]->Document->OutputStream->String

Saudações.

JT

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

Olá Dale,

Você encontrou uma solução para isso? Porque eu também estou procurando o mesmo.

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

contacto@primeconsultor.com

+1 (305) 285-8622

© 2025 Todos los derechos reservados.

Desarrollado por Prime Consultor

¡Hola! Soy Diana, asesora académica de Prime Consultor, indícame en que Academia SAP estás interesado, saludos!
Hola ¿Buscas Academias SAP?