Avalados por :

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
  • 1 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@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?