20996 - Integração com webservice de terceiro SPC
Problema:
Solução:
Descrição do Problema:
Estamos realizando a parametrização do websevice de terceiro SPC-Serasa no ERP.
Porém dois campos(cpf e telefone) exigem que o valor do campo seja gerado na requisição conforme abaixo.
<cpf numero="11111111111"/> e <telefone numero-ddd="92" numero="30305549"/>
Qual a forma de resolver esta questão no ERP, pois o campo sempre é gerado da seguinte forma: <cpf numero>123</cpf numero> ou seja não condiz com o esperado pelo webservice de terceiro.
Abaixo XML de Exemplo utilizado no Soap Ui.
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:web="http://webservice.spc.insumo.spcjava.spcbrasil.org/">
<soapenv:Header/>
<soapenv:Body>
<web:incluirSpc>
<!--Optional:-->
<insumoSpc>
<tipo-pessoa>F</tipo-pessoa>
<!--Optional:-->
<dados-pessoa-fisica>
<cpf numero="11111111111"/>
<!--Optional:-->
<nome>GLEDE BERNACCI GOLLUSCIO</nome>
<!--Optional:-->
<numero-rg>44405717</numero-rg>
<!--Optional:-->
<sigla-estado-rg>PR</sigla-estado-rg>
<!--Optional:-->
<id-genero>Masculino</id-genero>
<!--Optional:-->
<data-nascimento>1938-01-23T00:00:00</data-nascimento>
<!--Optional:-->
<nome-pai>LUIZ CARLOS LAVALLE</nome-pai>
<!--Optional:-->
<nome-mae>AÍDA MANSANI LAVALLE</nome-mae>
<!--Optional:-->
<email>ortocentrodentistas@hotmail.com</email>
<!--Optional:-->
<telefone numero-ddd="92" numero="30305549"/>
<!--Optional:-->
<estado-civil>Casado</estado-civil>
</dados-pessoa-fisica>
<!--Optional:-->
<codigo-associado>1</codigo-associado>
<!--Optional:-->
<data-compra>2016-01-10T00:00:00</data-compra>
<!--Optional:-->
<data-vencimento>2016-02-10T00:00:00</data-vencimento>
<!--Optional:-->
<codigo-tipo-devedor>C</codigo-tipo-devedor>
<!--Optional:-->
<numero-contrato>50515253545556</numero-contrato>
<!--Optional:-->
<valor-debito>10000</valor-debito>
<!--Optional:-->
<natureza-inclusao>
<!--Optional:-->
<id>104</id>
<!--Optional:-->
<nome>ATRASO DE PAGAMENTO</nome>
</natureza-inclusao>
<!--Optional:-->
<endereco-pessoa>
<cep>04003010</cep>
<!--Optional:-->
<logradouro>Labo B</logradouro>
<!--Optional:-->
<bairro>CENTRO</bairro>
<!--Optional:-->
<numero>5</numero>
<!--Optional:-->
<complemento>AP 2</complemento>
<!--Optional:-->
<cidade nome="MANAUS">
<!--Optional:-->
<estado sigla-uf="AM"/>
</cidade>
</endereco-pessoa>
<!--Optional:-->
</insumoSpc>
</web:incluirSpc>
</soapenv:Body>
</soapenv:Envelope>
Mesmo sendo um webservice padrão Soap o mesmo não permite o cadastro conforme esperado pelo terceiro.
https://treina.spc.org.br/spc/remoting/ws/insumo/spc/spcWebService?wsdl
Rotina / Tela: Webservice
Solução:
Conforme diagnostico, o serviço "https://treina.spc.org.br:443/spc/remoting/ws/insumo/spc/spcWebService" não pode ser consumido diretamente no sistema Senior devido a algumas limitações Senior.
O sistema Senior não suporta parâmetro com espaço:
<telefone numero-ddd="92" numero="30305549"/>
O Sistema não suporta mais de um valor no mesmo parâmetro:
<telefone numero-ddd="92" numero="30305549"/>
1- telefone
2- numero-ddd
3- numero
3- Ao chamar o WSDL o serviço não é carregado sem realizar a autenticação na URL. Isso é um problema, visto que no sistema Senior somente é possível chamar um serviço apos carregar o WSDL do serviço, atualmente o sistema Senior não possui
autenticação single sign-on ou um método para autenticar a URL para poder carregar os serviços do WSDL.
Alternativas:
1- Alterar o serviço de terceiro conforme itens acima.
2- Criar um serviço ponte para integrar com o Senior e terceiro. Esse tipo de serviço é oferecido pela equipe Software Sob medida da Senior se desejar.