Ola pessoal,

Eita semana corrida essa viu. Estou em um projeto que preciso consumir um webservice usando o SAP XI/PI.

Após efetuar todos os desenvolvimentos necessários tanto no SAP quanto no XI, ao tentar executar a interface, o sistema legado retornava a seguinte mensagem :

[ISS.0088.9166] Binder not found for soapAction = null

A primeira ideia que tivemos é que estava faltando alguma configuração no sistema externo. Após varias reuniões e tentativas aprendemos duas importantes tarefas.

1) O Log do XI não armazena a mensagem SOAP que esta sendo enviada ou recebida do sistema externo. Para conseguir ver exatamente o que o XI esta mandando, você precisa instalar uma ferramenta chamada TCPGateway. Ela simplemente funciona como uma ponte entre o XI e o sistema legado, ou seja, a mensagem passa primeiro por essa ferramenta e depois é enviada para o sistema externo.

Para saber como usar, dentro do arquivo tcpgw (vai no OSS e procure pela nota SAP 856597, que la tem o link para baixar o programa), você encontra um tutorial. Mas em resumo você só precisa apontar o SOAP receiver channer para sua maquina local e configurar a ferramenta para escutar a porta que voce configurou.

2) O SAP XI envia os envelopes SOAP com o campo header SOAPAction tudo em maiúsculo. Como o webservice Jetty é case sensitive,  não entendeu o parâmetro, retornando a mensagem do começo do post. Ainda estou vendo como resolver o problema, se resolvo por aqui no XI ou se o fornecedor do webservice deva mudar para receber tanto assim: SOAPACTION quanto assim: SOAPAction. Estou tentendo mais para a segunda hipótese.

Um grande abraço e boa semana.

[UPDATE] – O Fornecedor do Webservice alterou o header para receber no formato case-insensitive e agora esta funcionando ok.

Advertisement