Introdução:
Neste post do blog, vou explicar brevemente como podemos usar de forma eficaz o script Groovy para lidar com desenvolvimentos ágeis em seus projetos SAP CI/CPI.
O requisito que tínhamos era a necessidade de alterar o tipo básico do IDoc para a última versão utilizada no código ABAP que envia os dados para o SAP CI. Em CI/CPI, precisamos atualizar o tipo básico do IDoc para sua última versão, onde já concluímos os mapeamentos do IDoc. Levando em consideração a estimativa de esforço e a quantidade de retrabalho, lidamos com essa alteração por meio de um simples script Groovy que substituirá o tipo básico do IDoc por sua última versão em tempo de execução, em vez de substituir todo o XSD do IDoc, o que eliminaria todos os mapeamentos de mensagens e exigiria um remapeamento completo.
O cenário é um iFlow assíncrono de saída, onde a fonte é o SAP S/4 HANA e o destino é um aplicativo P2P de terceiros. Também ter conhecimento prévio da
função replaceAll
ajudará a compreender o objetivo deste post do blog.
Solução:
Abaixo está onde adicionamos o script Groovy em nosso iFlow específico para o requisito. O script pode ser adicionado logo antes do mapeamento de mensagens ou conforme necessário.
E o script Groovy é o seguinte:
import com.sap.gateway.ip.core.customdev.util.Message;
import java.util.HashMap;
def Message processData(Message message) {
def body = message.getBody(String) as String;
message.setBody(body.replaceAll("INVCON03","INVCON02"));
return message;
}
com este código, não é necessário fazer mais alterações em seu iFlow para converter o tipo básico. O código acima substituirá todas as instâncias de "INVCON02" por "INVCON03" no iFlow. Por exemplo, no XSD do IDoc, parâmetro no tipo de cabeçalho/propriedade do Modificador de conteúdo como X-Path, etc.
Conclusão:
Para concluir, você aprendeu como usar efetivamente o "replaceAll" em Groovy, o que adiciona agilidade para cumprir seus prazos (basicamente uma solicitação de alteração) sem muito esforço ou retrabalho. Também tenha em mente que definitivamente não é uma prática recomendada da SAP tê-lo em um ambiente de produção ao vivo, em vez disso, use-o quando precisar de uma solução mais rápida durante seu desenvolvimento/testes.
Boa aprendizagem!
?
Atenciosamente,
Balamurugan Jaipraakaash
Consultor de Integração.