Auto Salve em processo

Alguém sabe se é possível em um processo eu colocar um auto salve quando os usuário for digitando informações em campos. Nem que seja via soap. A dúvida é se eu chamar o metodo SOAP ou a função do elemento Salve no formulário se ele vai fechar a tela do usuario ou dizer que foi atualizada.

4 curtidas

Boa tarde @wasleyguittar ,

Hoje não é possível fazer isso.
Se for uma atividade nova, ele ainda não teria o número do processo, e no caso teria que chamar primeiro o StartProcess.
Se o processo já foi gerado e você chamasse a API para ir salvando conforme vai digitando, é inviável. Devido ao processamento e também que a cada salvamento ele vai gerando uma versão do formulário.

Você pode até tentar fazer algo com storage do Fluig.

https://style.fluig.com/javascript.html#storage

4 curtidas

É o que me preocupava era justamente o versionamento do formulário e a quantidade de requisições para o starProcess. Vou dar uma estudada nesse storage. Valeu!

1 curtida

Não conheço nada do tipo.

Uma solução para isso, mesmo não sendo recomendado, seria efetuar um update no banco sempre que um campo fosse digitado.
Cria um dataset que faz update. No input do html, usa um onchange e sempre que chamar sua função, você passa a o número da requisição, versão, id, nome do campo que você vai fazer update, valor e etc.

Só enfatizando que isso não é recomendado e também não sei se supriria sua necessidade, irá exigir testes,

Nesse caso para evitar várias requisiões, eu substituiria o auto-salve por uma ação manual chamando o botão salvar ou evento de troca de campo, ainda assim seria gerada uma nova versão do formulário ?

Se você chamar a API para Salvar, será gerada uma nova versão.

Acho que a solução de usar o storage é uma boa. Aí na função beforeSendValidate dá pra limpar o storage referente àquela solicitação, pra economizar memória e pra não ter perigo de recarregar dados na solicitação que já movimentou.

Dá pra salvar na storage a cada “onchange” de algum campo, por exemplo. E quando carregar a página no modo edição e tiver um registro pra solicitação corrente dá pra avisar que tem um registro em edição e perguntar se deseja carregar as informações.

Só não entendi o motivo do Fluig criar uma wrapper pra algo tão simples quanto à localStorage e sessionStorage do JS, hehehe.

2 curtidas

Wasley, não é recomendado você tentar manipular diretamente o botão salvar, pois, isso não vai funcionar no app mobile. Para ter uma solução mais cross, teria que ser via o storage mesmo como foi sugerido pelo Gabriel.
Ideal seria fazer no onchange ou outro evento adequado conforme o tipo de campo que você está trabalhando.
E como o Gaspareto trouxe, ter um momento de limpeza do storage, seja ao terminar de carregar o formulário após o display ou antes de disparar a movimentação, pra evitar de ficar algum lixo. Isso depende de como tu montou esse armazenamento, pode ser que não seja necessário.

1 curtida