Avalados por :

Como verificar se um arquivo XML está vazio antes de enviá-lo com o adaptador HTTPS

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

Estou usando o adaptador Https para enviar o arquivo xml. No meu cenário, preciso verificar se o arquivo está vazio ou não; se estiver vazio, devo encerrar, se contiver dados xml, devo continuar. Alguém pode me sugerir como fazer isso, por favor?

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

4 Respuestas

0
Cargando...

Olá vikranthrokz0074_2 ,

Você poderia usar a etapa [Router] e manter uma condição para verificar se a contagem do nó é maior que 0.

/root/count(ChileElementName)>0

Espero que isso te ajude!

Obrigado e cumprimentos,

Praveen T

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

Olá vikranthrokz0074_2

Não, isso não funcionará. Mas sugiro que experimente as sugestões em seu sistema real. Quanto à expressão não XML: mencione que as condições de XPath (= XML) não funcionarão se a carga útil estiver vazia. Falhará em tempo de execução.

Saudações,

Morten

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

Olá Morten,

Posso usar ${in.body.length}="0" para o meu cenário? É preferível? No exemplo anterior, você forneceu uma expressão não XML, mas no meu caso, o arquivo de entrada é XML, funcionará para ele?

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

Olá Vikranth

O passo do Roteador é o caminho a seguir, conforme Sriprasad e Praveen apontam. No entanto, a condição de roteamento não é direta. Usar uma condição XPath falhará se não houver carga útil alguma. E quanto à alternativa (uma expressão de linguagem simples), não sei se é viável.

O que funcionará, no entanto, é testar uma carga útil vazia em um script Groovy antes do Roteador, armazenar o resultado em uma propriedade e então ramificar com base nessa propriedade. Aqui está o script:

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

def Message processData(Message message) {
    def body = message.getBody(String)
    message.setProperty('EmptyPayload', body == null || body.isEmpty())
    return message
}

Isso armazena verdadeiro ou falso na propriedade chamada EmptyPayload.

Em seguida, crie um Roteador onde a rota padrão é o caso não vazio (ou seja, onde você deseja fazer algum trabalho). A outra rota possui a seguinte condição de roteamento não XML:

${property.EmptyPayload} = 'true'

Esta ramificação pode ser encerrada com um evento de Mensagem Final.

Portanto, sua configuração seria algo assim:

Saudações,

Morten

config.png
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?