Versão atual:

Formulário com campos preenchidos em seus eventos não funciona quando é iniciado como SubProcesso

Olá,

Eu tenho um processo chamado Pauta de Reunião da Diretoria, que é literalmente uma pauta da reunião e que ao término da reunião esse processo é finalizado.

Quando inicio o processo eu preencho automaticamente alguns campos dele no evento de formulário displayFields. Esses campos são obrigatórios (gerente e unidade).

campos.jpg

Agora estou criando o processo Contratações e em determinado momento essa contratação deve virar uma pauta de reunião, então criei uma atividade subprocesso que inicia o processo Pauta de Reunião da Diretoria.

O problema ocorre quando inicio o subprocesso, pois os eventos de formulário displayFields e enableFields não são disparados, assim os campos não são preenchidos.

Fazendo muitos testes descobri que o evento de formulário inputFields é disparado e nele eu posso fazer o preenchimento dos campos, porém eu só consigo alterar o valor dos campos que foram configurados em "Campos" da Atividade SubProcesso.

campos_subprocesso.jpg

Como os campos gerente_id e unidade não foram configurados, pois não precisam existir nesse Processo Pai, eu não consigo alterar os valores com o form.setValue no evento enableFields.

Tentei fazer as alterações no formulário com eventos de processos, mas todos os eventos de processo ocorrem após o evento de formulário validateForm (e que dispara o erro por não ter os campos preenchidos).

Eu imaginei duas opções pra resolver isso:

  1. Criar campos em branco no processo pai só pra configurar na atividade subprocesso e assim poder alterar seus valores no evento inputFields;
  2. Descartar o evento validateForm, fazendo as validações no JS no próprio HTML do formulário, e assim usar algum evento de processo para alterar os campos do subprocesso.

Mas ainda assim eu fiquei muito confuso com esse funcionamento, pois é contra intuitivo que não possamos alterar qualquer campo no evento do formulário só porque ele veio como um subprocesso.

Ps: analisando melhor a situação eu imagino a variável form, que é entregue no evento inputFields, é um objeto "request" que só possui os campos enviados via HTTP e por isso não dá pra adicionar um campo que não veio na requisição, somente editar o que foi enviado.

Como vocês trabalham em casos assim de preencher automaticamente alguns campos em formulários de subprocessos?

Versões (4):

Ver a versão formatada

Formulário com campos preenchidos em seus eventos não funciona quando é iniciado como SubProcesso

Comentário

new question