Valor de vampo setado no beforeSendValidade vazio na próxima etapa

Boa tarde!

Estou tentando usar o momento de execução do beforeSendValidade para realizar um tratamento em 2 campos do meu formulário.

Tenho um campo observacoes e um campo historico_observacoes, esse segundo é readonly.

Minha intenção é pegar o value do campo observacoes e adicionar no início do campo historico_observacoes

Daí passo esse novo valor para o historico_observacoes e passo uma string vazia para o observacoes.

Em testes eu estava mantendo o retorno como falso e estava funcionando certinho, quando finalizei, troquei o retorno pra true.
Acontece que na próxima etapa, os dois campos chegam vazios.

function beforeSendValidate(numState, nextState){
  const historicoObservacoes = valorDe('historico_observacoes');
  const observacoes = valorDe('observacoes');
  if(observacoes.length >= 2){
    const nome = getNome();
    const data = new Date();
    const dia = data.toLocaleDateString('pt-BR');
    const hora = data.toLocaleTimeString('pt-BR', { hour: '2-digit', minute: '2-digit' });
    const info = dia + ' ' + hora + ' - ' + nome + ': ';
  
    let novoRegistro = ''
    if(historicoObservacoes.length >= 2){
      novoRegistro = info + observacoes + '\n' + historicoObservacoes;
    } else {
      novoRegistro = info + observacoes;
    }
    alterarValor('historico_observacoes', novoRegistro);
    alterarValor('observacoes', '');
  }

  return true;
}

exemplos de como estava funcionando em testes:
image


image

Nunca tentei alterar campos no beforeSendValidate, então não sei se quando executa o evento o Fluig já está com os campos “em memória” e aceita a alteração no POST.

Você pode tentar usar o evento inputFields, ele serve justamente pra dar uma ajustada nos campos após a validação (recomendado pra normalizar formato de datas, por exemplo).

Esse inputFields é um evento de formulário padrão né? Usando aquela sintaxe JS/Java do Fluig.

Sim, é de back.

Eu tenho alguns processos que utilizo o beforeStateEntry pra salvar o histórico no próprio formulário (faço quando entro na atividade que precisa de uma justificativa e valido que já tem algo escrito).

Também já usei tanto o beforeStateEntry quanto afterStateEntry pra salvar como comentário no histórico ao invés de salvar no próprio formulário.

Exemplo do meu caso no beforeStateEntry. Nesta situação toda vez que entra na etapa que precisa aprovar/reprovar a o item o sistema valida se existe uma observação/justificativa preenchida e então a adiciona no histórico e limpa o campo para uma nova observação/justificativa.

Esse código é dentro do inputFields no caso? Vou fazer um teste com ele, parece ser exatamente o que preciso.

Neste caso fiz no beforeStateEntry