Execução de método em WebService SOAP via fórmula visual
O Totvs disponibiliza 2 atividades que permitem executar webservices SOAP dentro de uma fórmula visual: a atividade RMSSoapRequestActivity e a atividade RMSWebServiceActivity. Elas funcionam, mas possuem um problema que torna difícil dar manutenção em fórmulas visuais que as utilizam: elas utilizam propriedades dinâmicas para definir o método a ser chamado, os parâmetros a serem fornecidos para o método e também para pegar o retorno da chamada ao webservice, e tudo isso é criado com base no link para o WSDL fornecido para a atividade e o método escolhido.
O problema de utilizar propriedades dinâmicas é que elas são recriadas cada vez que o WSDL ou o método escolhido mudar. Ou seja, se o caminho do WSDL mudar (o que pode acontecer em caso de mudanças na infraestrutura do datacenter) ou o nome do método for alterado, é necessário refazer todos os vínculos que dizem de onde vêm os valores dos parâmetros. Outra questão é que, se o WSDL estiver indisponível no momento em que a fórmula visual for aberta, o editor não irá exibir os nomes dos parâmetros e de onde os valores estão sendo carregados, e não mostra nenhum erro (se a fórmula visual for salva quando isso acontece, os dados são "perdidos"). O uso de propriedades dinâmicas para o resultado também causa transtornos, visto que elas não se integram bem com expressões, condições e outros componentes de fórmula visual, sendo necessário fazer voltas grandes para poder obter o resultado da chamada e utilizá-lo em outros locais.
Assim, foi desenvolvido um conjunto de fórmulas visuais que podem ser chamadas a fim de executar uma chamada à um webservice. Essas fórmulas visuais são genéricas, podendo ser reaproveitadas em outros contextos. Como não existe um sistema próprio que permita passar parâmetros de entrada e parâmetros de saida para a fórmula visual, a passagem é feita através da tabela 0 de um dataset.
Este documento descreve como a estrutura foi implementada, servindo de base para futuras extensões.