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.
