O GoConqr está de visual novo! Conte para nós o que você achou.

Mapa mental

Recuperando dados

Neimar Soares OutSystems - Web Especialist OutSystems Certifications Português

Conteúdo do mapa

Recuperando dados

  1. Use aggregates para buscar dados de entidades de banco de dados

    • São definidos visualmente, tornando a recuperação de dados mais intuitiva
    • Absorvem automaticamente as alterações no modelo de dados
    • Suportam a combinação de diversas entidades e filtragem avançada
    • Recuperam apenas os atributos usados ​​na tela
    • São executados de forma assíncrona, permitindo que os usuários interajam com o aplicativo enquanto os dados são carregados
  2. Prefira o uso de aggregates em vez de consultas SQL.

  3. Aggregates permitem que você busque dados usando uma consulta otimizada e adaptada às suas necessidades.

  4. Use data actions para buscar dados complexos ou para buscar dados externos

    • Busca de dados complexos do banco de dados, o que não é possível com um único aggregate.
    • Busca de dados de fontes externas (por exemplo, APIs REST)
  5. Evite buscar um grande número de registros

    • Exibir um grande número de registros de uma só vez é lento e desnecessário, pois o usuário pode precisar apenas de alguns registros por vez.
    • Busque dados somente sob demanda, definindo a propriedade Fetch dos seus agregados de tela como Only on Demand.
    • Se você usar o widget de lista, adote uma abordagem de carregamento lento, manipulando o evento On Scroll Ending. Essa abordagem permite que seu aplicativo carregue dados incrementalmente conforme os usuários rolam a tela.
    • Se você usar o widget de tabela, utilize o padrão de interface de paginação para carregar apenas um determinado número de registros por vez, em vez de carregar uma tabela inteira de uma só vez.
  6. Mantenha o número de registros buscados consistente com suas necessidades

    • Se você não limitar o número máximo de registros lidos do banco de dados, todos os registros que atenderem aos critérios serão recuperados desnecessariamente, aumentando a carga do banco de dados e o tempo de resposta.
    • Para aggregates, defina a propriedade Max. Records para corresponder à quantidade de dados que você deseja exibir. Se precisar da contagem total de registros, use <Aggregate>.Count, pois ela não é limitada pelo valor Max. Records.
    • Para consultas SQL, adicione uma cláusula SQL à instrução do elemento SQL para filtrar os resultados no nível do banco de dados. Por exemplo, SELECT <column_names> FROM <!--table_joins> LIMIT 10.
  7. Otimize a contagem de registros

    • Ao usar <Aggregate>.Count ou <SQL query>.Count para obter a contagem total de registros retornados por uma consulta, o OutSystems gera uma segunda consulta para realizar a contagem, ignorando o valor "Máx. Registros"
    • Para aggregates, o OutSystems gera uma consulta otimizada para contagem de registros. No entanto, isso não acontece com consultas SQL.
    • Com aggregates, use <Aggregate>.Count. A plataforma executa a mesma consulta de forma otimizada para contar os registros
    • Com consultas SQL, execute uma versão modificada da consulta original, com o único propósito de contar o número de registros
    • Não use <Aggregate>.Count ou <SQL query>.Count para verificar se o resultado da consulta está vazio ou não, pois isso executará uma consulta extra desnecessariamente
    • Você evita executar consultas complexas repetidamente
  8. Não mostre uma tela em branco enquanto os dados estão sendo obtidos

    • Planeje o que seu aplicativo exibe ao usuário enquanto os dados estão sendo buscados
    • Busque dados menores ao inicializar o aplicativo. Isso renderiza elementos essenciais enquanto dados maiores são carregados em segundo plano.
    • Informe os usuários que os dados estão sendo carregados. Por exemplo, use botões giratórios de carregamento, barras de progresso ou telas de esqueleto.
    • Você evita a percepção de um aplicativo quebrado ou sem resposta, melhorando a experiência do usuário.
  9. Otimizar a busca de dados

    • Buscar dados para exibição em uma tela usando cálculos complexos ou lógica aumenta o tempo para que os dados sejam carregados.
    • Conheça seus requisitos de dados e crie um modelo de dados que suporte o caso de uso da tela, em vez de calcular as informações ao buscar os dados ou nas expressões dos widgets de tela.
    • Execute todos os cálculos com antecedência
      • Quando os dados são gerados. Por exemplo, sempre que adicionar um período de férias, atualize imediatamente os dias disponíveis restantes nos detalhes do funcionário, em vez de calculá-los quando quiser listar os dias de férias disponíveis por funcionário.
      • Use um Timer para preparar os dados antecipadamente. Por exemplo, prepare entidades de aglomeração para suportar painéis.
    • Se precisar buscar dados complexos usando data actions, utilize junções e funções SQL adequadas para reunir todos os dados necessários em uma única consulta SQL executada fora de um loop. Certifique-se de criar índices de entidade para os atributos usados ​​nas cláusulas JOIN e WHERE.
    • Crie telas especializadas diferentes, em vez de uma tela avançada com preparação de dados ineficiente que precisa lidar com todas as situações.
    • Reduz o tempo que os usuários precisam esperar para que os dados sejam carregados, melhorando o desempenho da tela
  10. Restringir o acesso a dados confidenciais

    • Ao buscar dados confidenciais que dependem da função ou ID do usuário, não é seguro confiar em informações de controle de entradas do lado do cliente
    • Filtre seus aggregates usando a função CheckROLENAMERole() para restringir o acesso a dados sensíveis. Você também pode usar a função GetUserId() para um acesso mais restrito.
    • Restringir o acesso aos seus dados traz um nível adicional de segurança ao seu aplicativo.

Informações

Descrição
OutSystems Certifications OutSystems - Web Especialist (Melhores práticas) Mapa Mental sobre Recuperando dados, criado por Neimar Soares em 10-04-2025.
Criado por
Neimar Soares
Visualizações
0
Avaliação

Fale Conosco

Sobre o que é sua mensagem?

O que você acha do novo visual?

Você gostou?