Campo dataset para WS

Estou tentando passar um campo a mais que é o "COBS".


var result = ws.GRVSOLIC(EMPRESA, FILIAL, CDOC, CSERIE, CFORNEC, CLOJA, CIDFLUI, CLOGIN, arrayOfGrv, COBS);

Mas retorna esse erro: ERROR [com.datasul.technology.webdesk.dataset.CustomizedDatasetBuilder] (default task-36) sun.org.mozilla.javascript.internal.EvaluatorException:

Can't find method br.com.protheus.QGWSFLUISOAP_BindingStub.GRVSOLIC(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,br.com.protheus.GRVITEM,java.lang.String).

Alguém sabe dizer o que significa esse erro?

1 curtida

@Marcella,

Foi adicionado esse parâmetro na função do Protheus?

Caso sim, edite o serviço desse webservice no Eclipse e dê uma salvar e tente executar novamente.

:warning: Atenção: Esta publicação foi transferida automaticamente do fórum antigo, mas os anexos não foram incluídos.

Sempre que você fizer alguma alteração no seu Webservice, edite sempre o serviço dele no Eclipse e salve. Para poder atualizar as informações.

Fiz isso e erro continua o mesmo. Sabe o que mais poderia ser?

Sem esse outro parâmetro ele funcionava?

Sim, apenas quando acrescenta o campo “COBS” que ele para.

Acrescentei dois arquivos pra especificar melhor o que acontece.

Quando você clica na aba “Visualização de Serviços” → “Consulta serviço”, dai você consulta o seu serviço que tem essa função…Quantos parâmetros está trazendo nessa função no retorno dessa consulta?

Acrescentei a foto 02.png que mostra o que tem lá, passa 10 argumentos como esperado.

Faça esse teste: jogue o parâmetro de array (arrayOfGrv) por último no protheus e no Fluig, edite o serviço no Eclipse, e tente executar novamente.

Fiz e foi consumido, antes nem isso fazia. Obrigada, já é um avanço, porém o campo COBS vai como “undefined”

Tente passar esse campo assim: String(COBS) e se não der certo tente passar assim: String(COBS.trim()).

Esse campo é um campo textarea?

Vou tentar fazer isso, é um textarea sim.

Com o String(COBS) continuou undefined. Com String(COBS.trim()) retornou esse erro:
ERROR [com.datasul.technology.webdesk.dataset.CustomizedDatasetBuilder] (default task-52) sun.org.mozilla.javascript.internal.EcmaError: TypeError: Cannot call method “trim” of undefined (#182) in at line number 182: com.datasul.technology.webdesk.customization.CustomizationException: sun.org.mozilla.javascript.internal.EcmaError: TypeError: Cannot call method “trim” of undefined (#182) in at line number 182

Pra mostrar os campos no LOG você colocou o log.info logo antes da chamada do método do serviço?

Fiz assim:
log.info(“###############COBS: " + COBS);
var result = ws.GRVSOLIC(EMPRESA, FILIAL, CDOC, CSERIE, CFORNEC, CLOJA, CIDFLUI, CLOGIN, String(COBS.trim()), arrayOfGrv);
log.info(”###############COBS: " + COBS);

Adicionei mais uma foto pra mostrar o LOG (03.png)

Pode retirar o .trim(). Pegue o valor dessa variável e jogue em outro campo e passe ele como parâmetro.


var testeObs = String(COBS);
var result = ws.GRVSOLIC(EMPRESA, FILIAL, CDOC, CSERIE, CFORNEC, CLOJA, CIDFLUI, CLOGIN, testeObs, arrayOfGrv);

Tentei dessa forma e nada, continua undefined… No LOG acima da chamada funciona corretamente, mas quando faz a chamada, passa undefined. O problema poderia ser no WS?

Tente fazer assim:


var testeObs = "Apenas Teste";

log.info("##### testeObs: " + testeObs);
var result = ws.GRVSOLIC(EMPRESA, FILIAL, CDOC, CSERIE, CFORNEC, CLOJA, CIDFLUI, CLOGIN, testeObs, arrayOfGrv);
log.info("##### testeObs: " + testeObs);

Veja se acontece a mesma situação.

Aí ele grava “Apenas Teste”. Tirei print do que o log mostra (logs.png e banco.png).