Web service e Dataset

Preciso enviar um campo a mais para ser consumido através de WS. O campo já existe, porém ele não é enviado. alguém sabe como ajudar?

O erro que dá é: "message":"Error getting Dataset DS_EntDoc_RetornoAprov: null"

Marcella, o seu web service esta preparado para receber mais um campo além daquilo que já está definido? Pode ser que a diferença nas assinaturas dos metodos que esta consultando sejam diferentes. Outra coisa que pode ajudar são testes via SOAP UI, está usando em seus testes?

Está preparado sim. Na verdade não sou eu quem testo, outra pessoa faz o teste. Quando vou enviar o pedido, ele da essa mensagem anterior no console do desenvolvedor. Até uma linha antes dessa o código da certo: dsRetornoAprov = DatasetFactory.getDataset(DATASET_RETORNO_APROV, null, constraints, null);

Você consegue simular a chamada usando o SOAP UI? É importante garantir que o WS esta funcionando com os mesmos parametros que você usaria no dataset para depois codificar.

Sim. Ele está com os mesmos parâmetros, porém o erro continua na hora de acessar o dataset. Sabe o que poderia ser? Posso mostrar os códigos.

Posta o código para dar uma olhada, se possível o wsdl do serviço também.

O código está nos arquivos. Preciso enviar o campo “obs” que está no calculaPedidos.js para o “ws.GRVSOLIC” que está no dataset.js.

Só tenho acesso a esses arquivos

O seu código parece adequado, sem ver o que o Web Service está esperando fica difícil recomendar algo. O arquivo dataset.js não deu para abrir. Coloca os dois arquivos zipados por favor.

A parte do Web Service não fica cmg, mas o campo “obs” lá está sendo solicitado. Só que não chega nem a chamar o grvSolic. Mandei zipado tbm

Agora consegui ver e novamente parece estar correto o que você fez.
No seu Studio tem uma aba chamada “Visualização de Serviços” você consegue consultar o WSDL do serviço do Protheus e fazer o teste via SOAP UI, pois o campo OBS pode estar esperando outro objeto e não uma string como você fez no código.

Mas o web service não está sendo chamado, o problema vem antes disso. Ocorre o erro ao consultar o dataset “dsRetornoAprov”. Que aí vem o erro no console “Error getting Dataset DS_EntDoc_RetornoAprov: null”

Deixei passar um detalhe no seu código… A chamada do dataset: dsRetornoAprov = DatasetFactory.getDataset(DATASET_RETORNO_APROV, null, constraints, null); esta procurando o dataset DATASET_RETORNO_APROV que não tem valor, logo ele dá erro porque não encontra a variável ou o nome do dataset esta incorreto, geralmente você chama o dataset passando o nome como string, por exemplo: dsRetornoAprov = DatasetFactory.getDataset(“meu_dataset”, null, constraints, null)

Revisa se o dataset que quer consultar existe na lista de datasets do eclipse (Visualização de Dataset).

Os datasets estão definidos em outro arquivo dessa forma: var DATASET_RETORNO_APROV = “DS_EntDoc_RetornoAprov”; Os outros funcionam, apenas esse que não funciona. Tanto é que esse código sempre funcionou, porém foi pedido para acrescentar o campo “OBS” e aí ele da erro acrescentando o “obs” ao código inteiro.

Faz um teste põe o nome diretamente na chamada: dsRetornoAprov = DatasetFactory.getDataset(“DS_EntDoc_RetornoAprov”, null, constraints, null); e confirma se ele está na lista de datasets, se estiver com outro nome o erro pode estar aí

Já foi realizado esse teste e infelizmente também não é isso. Tudo funciona bem antes do “OBS”, após o “OBS”, o dataset acusa o erro mencionado anteriormente.