Geral
Sintoma
O produto Datasul 11 está apresentando uma lentidão significativa no load do menu.
Obs: entende-se por load do menu o tempo decorrido desde que é apresentado a interface do menu até a efetiva apresentação dos programas. Lembrando que para novos usuários é necessário selecionar um módulo para carregar os programas correspondentes.
Causa
A causa já identificada para esta ocorrência é a existência de muitos grupos de usuário no ambiente do cliente o que onera muito o sistema para encontrar os dados, tratá-los e trazê-los à tela.
Solução
Devido às ocorrências de lentidão no load do menu do produto Datasul 11 foi implementada uma solução utilizando-se de uma tabela (usuar_menu) com as informações consolidadas do menu e acessos a programas que os usuários possuem.
Utilização
Quem pode utilizar?
A utilização da tabela de informações consolidadas (usuar_menu) pode ser indicada somente para os clientes em que a lentidão do load do menu seja significativa principalmente devido a utilização implicar na execução do programa "Atualiza Menu Usuário" (mer010aa) para que as informações na tabela sejam atualizadas.
Como configurar?
Para habilitar a utilização da tabela de informações consolidadas do menu deve-se incluir no datasul_framework.properties a propriedade "use.menu.key=true" (sem espaços extras no final). Desta forma, ao carregar o menu a tabela de consolidação será utilizada e não as tabelas da estrutura padrão do menu.
A atualização é online?
Não, a atualização da tabela de consolidação é feita mediante a execução do programa "Atualiza Menu Usuário" (mer010aa), ou seja, se for eliminado um programa, usuário, grupo de usuário, dentre outros, as alterações só surtirão efeito na tabela de consolidação após a execução do programa de atualização. Nos programas Progress foi inclusa uma mensagem informativa que deve-se executar a consolidação do menu para que as alterações surtam efeito no menu.
Informações adicionais
Informações técnicas
Nos programas que realizam a busca das informações do menu foi inserida uma condição para que retorne as informações da tabela de consolidação ou da estrutura padrão mediante a existência da propriedade "use.menu.key=true" informada no datasul_framework.properties. Caso esta propriedade não esteja informada no arquivo de propriedades esta será considerada como se estivesse "use.menu.key=false" ou igual a qualquer outro valor que não "true".
Mídia
A propriedade não sai no datasul_framework.properties da mídia. Esta decisão foi tomada para minimizar a utilização deste parâmetro como "true" ou mesmo a alteração deste parâmetro sem a real necessidade.
Estrutura da tabela
A tabela de consolidação do menu é a nível de usuário sendo que sua chave é usuário e programa. Mas procurando diminuir a quantidade de registros na tabela, quando determinado programa encontra-se no grupo "* - Todos os usuários", o usuário inserido no banco é o "*" (asterisco) assim, quando é realizada a busca dos programas que um usuário possui acesso, são procurados os programas para o usuário "*" e para o usuário logado.
Releases impactadas
A alteração aqui descrita foi liberada sob o chamado TGHVFY para todas as releases do produto a partir do Datasul 11.5.4.