AfterSaveNew - form.setValue()

Boa tarde,

Estou tentando setar o valor de um campo no evento de formulário AfterSaveNew, porém não está funcionando. No log não da nenhum erro, simplesmente não atribui o valor.

Exemplo de utilização:


function afterSaveNew(form) {

form.setValue("nomeCampo", "abc");

}

Alguém consegue me ajudar, por favor?


[UPDATE]

Algumas observações que esqueci de colocar:

-> O formulário não está associado a nenhum processo;

-> Tentei criar um dataset que consome o webservice ECMCardService e atualiza o registro do formulário criado.

No AfterSaveNew, capturo o cardId gerado (8061, neste caso abaixo) e envio para o dataset, com os valores a serem atualizados. Porém, o log retorna:


ERROR [com.totvs.technology.ecm.dm.ws.CardService] (default task-19) Ficha não encontrada: 8061: java.lang.Exception: Ficha não encontrada: 8061

Renata, faça um teste simples, ao invés de colocar o numero da Ficha do formulário atual coloque manualmente no código um número de ficha que já tenha sido salva anteriormente, pois se ele encontrar uma ficha antiga então teremos de encontrar um outro evento para que você utilize.

Fico no aguardo.

Oi Carlos, bom dia! Sim, funciona normalmente! Tentei também colocar um “window.open”, e reabrir o formulário que acabei de criar, tentando atualizar os campos no display fields, mas no afterSaveNew não reconhece o window :frowning:

Então teremos que achar um outro evento para realizar essa tarefa, só por curiosidade, se o formulário não está atrelado a nenhum processo, como que está utilizando os eventos? Apenas para eu conseguir te ajudar melhor.

Carlos, a gente usa esse formulário para cadastrar alguns itens que, posteriormente serão usados em um processo (consulto o dataset desse formulário); então, o item pode ser cadastrado (no formulário) e nunca mais ser editado (por isso a necessidade de ser tudo no mesmo momento, esse registro pode nunca mais ser aberto por um usuário), ou ser editado em momento oportuno, ou cancelado, excluído, etc! Precisa estar disponível para edição a qualquer momento, mas não necessariamente será editado. Entendeu? Resumo: é um formulário de cadastro de parâmetros, pra posteriormente ser consultado.

Entendi, você já tentou utilizar o evento “afterProcessing”? esse evento é o último evento a ser disparado para o formulário. Caso ainda não, por gentileza utilize esse evento. Fico no aguardo.

Att.

Oi carlos, não havia tentado, mas fiz aqui agora e o resultado é o mesmo do afterSaveNew: java.lang.Exception: Ficha não encontrada: 8112 :frowning:

Renata poderia me adicionar no skype? Melhor para eu ir lhe passando as coisas… carlos.piva@gsinima.com.br
Assim que encontrarmos a resposta postamos aqui.

Carlos, a solução que encontrei foi criar um processo “genérico” que fica verificando se um novo registro daquele formulário foi criado, e ai executa os procedimentos necessários. Muito obrigada pela atenção e ajuda :slight_smile:

Bom dia,

Renata, creio que nesse evento você não irá conseguir alterar nenhum parâmetro de campo pois o formulário já foi salvo, assim sendo somente conseguirá consultar.

Caso queira alterar algum parâmetro antes de salvar o formulário utilize o evento "beforeTaskSave".

Espero ter ajudado, caso tenha alguma dúvida estou à disposição.

Carlos, boa tarde! Atualizei a pergunta. Este formulário não está associado a nenhum processo, logo, não consigo utilizar o beforeTaskSave.