SimpleCalculatedField & DatasetResponseFilter para respostas JSONResponse

0 views
Skip to first unread message

Pedro Viegas

unread,
Apr 22, 2022, 11:40:31 AMApr 22
to DIF2 Mailing list
Boa tarde,

SimpleCalculatedField
Muitos calcFields que criamos não (reutilizáveis) são códigos simples como um número - outro ou um S/N baseado numa expressão de alguns campos. Estes não tem ordenação na sua maioria dos casos. Para simplificar a sua criação criei um novo método:
response.addCalculatedFieldSimplified("selectable", (tipoProcesso) -> Boolean.toString(
DateUtils.isDateBetween(new Date(), tipoProcesso.getInicioDateInicio(),
tipoProcesso.getInicioDateFim())));
Aqui com uma implementação com Lambda vemos que podemos com uma simples linha criar o calcField que representa de a data de hoje está no intervalo definido por duas datas da tabela em questão.

Nota: Má ideia usar esta funcionalidade para copiar lógica idêntica para vários pedidos. Ai é criar um novo calcField e reutilizar a classe.

DatasetResponseFilter
Uma necessidade que por vezes temos é que um resultado IJSONResponseDataset (comboBox ou Grid) para lá dos filtros de BD baseados em dados, tenham que ser filtrados depois por critérios que só existem em Java.
Para tal somos obrigados a fazer a query, processar essa lista e alimenta-la a um JSONResponse.
A funcionalidade seguinte permite declarar um filtro de Java que será aplicado no momento de conversão da lista que veio da BD para o formato de resposta JSON. Nesse momento os registos que não respeitarem todos os filtros de java passados são excluidos.

response.addDatasetResponseFilter(
tipoProcesso -> WorkflowManager.getInstance().getWorkflow(tipoProcesso.getWorkflowUid())
.canCreateNewInstance(new WorkflowExecutionContext(HomePrivate.this.context), null));

Estas funcionalidades para já estão ainda apenas na DIF do Branch ReestruturaçãoCSS.


Com os melhores cumprimentos,



Pedro Viegas
Director Departamento de Desenvolvimento
(Development Manager)
Digitalis Informática Lda
R&D: http://development.digitalis.pt


Reply all
Reply to author
Forward
0 new messages