Paginação de Datasets - WCM - Fluiggers - A maior comunidade Fluig do Brasil
Paginação de Datasets
vinny.silveira Junho 24, 2021, 11:03am #1
Queria saber se existe algo pronto no Fluig mesmo que faça a paginação dos registros de um dataset, assim como fazemos em querys SQL triviais com LIMIT e OFFSET.
Bruno_Gasparetto Junho 24, 2021, 12:20pm #2
Sei que pela DatasetFactory.getDataset é possível enviar a constraint sqlLimit (documentação)
Pela API REST /ecm/dataset/search também é possível passar o limite de resultados.
Porém em nenhum deles vi a opção (ao menos não achei na documentação) dizendo que é possível passar o offset. Então teria que ordenar pelo ID, por exemplo, e na próxima chamada solicitar somente os resultados com o ID maior do que o último recebido.
vinny.silveira Junho 24, 2021, 12:55pm #3
Bom dia @Bruno_Gasparetto !! Valeu pelo retorno, esse lance de ordenar pelo ID e fazer um where não é tão performático quanto o offset, que vai direto na fatia correta de dados, mas a ideia é muito boa mesmo.
Bruno_Gasparetto Junho 24, 2021, 6:23pm #4
Pode ser que tenha um jeito de mandar o offset. Já percebi que o o Fluig tem muita documentação oculta.
Mas a questão da performance do where é meio relativo. Teria que estudar bem isso. Em teoria a pesquisa pelo ID ocorreria em uma chave primária, então seriam menos resultados encontrados e o banco só limitaria em X a quantidade de registros retornados. Já com offset o banco encontra sempre todos os resultados e então precisa correr até o registro Y e retornar X resultados.
Pode ser que o Fluig não tenha implementado isso porque o SQL Server e Oracle não davam suporte, mas agora que ambos possuem LIMIT e OFFSET seria uma ótima a TOTVS acrescentar essa opção aos Datasets.
vinny.silveira Junho 25, 2021, 7:33pm #5
Valeu a dica @Bruno_Gasparetto !! Como estou construindo querys complexas, acabei optando por enviar o LIMIT e OFFSET pelas constraints quando consulta o dataset via REST, e faço a paginação no front com o Datatables.