Versão atual:

Usando classe tXMLManager para leitura de XML WS

Estou migrando os meus processos de comunicação de WS do modelo antigo onde o compilador e appserver geravam diretamente o cliente em ADVPL para as novas classes tXMLManager (https://tdn.totvs.com/display/tec/Classe+TxmlManager) e tWsdlManager (https://tdn.totvs.com/display/tec/Classe+TWsdlManager) que são recomendadas para essa finalidade. Porém me deparei com uma situação onde o cliente antigo trava e não estou conseguindo fazer o mesmo com as novas classes. A situação é que esse plugin antigo fazia a leitura do arquivo WSDL gerando um código que já fazia as conversões de dados necessárias a partir do XML (ex.: se o tipo fosse numérico, o retorno já vinha nesse formato), e usando a classe tXMLManager para fazer a leitura todos os dados vem como string independente do padrão adotado no WSDL. Observei que a classa possui um método ParseSchema que serviria para isso, porém os WS não disponibilizam esse schema diretamente, apenas embarcado no próprio WSDL (tanto que a quando o plugin converte ele sabe os tipos e faz os ajustes necessários para os tipos de dados). Como eu poderia tratar essa situação de forma transparente ? Sem precisar ficar convertendo os dados manualmente no código? Fiz uma tentativa passando o próprio WSDL como schema mas o método retornou dizendo que não é um schema válido. Pergunto isso porque esta está sendo uma das dificuldades, visto que antes isso era completamente transparente para a programação, e agora tenho que ficar fazendo as conversões diretamente no fonte.

Versões (2):

Ver a versão formatada

Usando classe tXMLManager para leitra de XML WS

Comentário

new question