| Objetivo | Permitir a verificação se o usuário pertence a algum perfil do programa para posterior aplicação da otimização efetuada. |
| Visão Geral | Ao utilizar um Usuário Administrador, é possível habilitar e desabilitar o otimizador de telas da sessão do usuário corrente, a partir disso são realizadas, também, várias verificações para que seja possível aplicar as otimizações geradas. |
Por intermédio da permissão do Usuário Administrador, é possível habilitar e desabilitar o otimizador de telas da sessão do usuário corrente, utilizando-se da tecla F12. Ao acionar F12, é solicitada a confirmação para habilitar/desabilitar a sessão. Após a confirmação, é solicitada a senha do usuário administrador. Com esse processo, não é efetuada nenhuma otimização para a sessão corrente, podendo ser reativada a qualquer momento.
Na aplicação de Otimizações, inicialmente é verificado se a sessão do usuário está habilitada. Em caso negativo, nenhuma aplicação de perfil é efetuada para a sessão corrente.
Quando o produto estiver desabilitado nos Parâmetros Gerais do Produto, nenhuma otimização é aplicada em todas as sessões do Datasul-EMS.
Quanto ao usuário, é verificado se o mesmo é o usuário administrador (por intermédio dos Parâmetros Gerais do Otimizador de Telas). Caso seja o usuário administrador do produto, são desconsiderados os perfis aplicados para grupos e é aplicado o perfil padrão do programa (definido por intermédio da Função Gerenciador de Perfis (SO0705). Quando um programa não possuir um perfil padrão, ele é executado em seu estado original.
Quando o usuário corrente não for o usuário administrador do produto, é verificado a que grupos o usuário pertence. Para cada um dos grupos é verificado para o produto/programa o primeiro perfil (ordem alfabética) existente para o grupo, até encontrar um perfil válido para o grupo. Caso não seja encontrado, o programa é executado em seu estado original. Existem ainda alguns casos peculiares, que ficam sob a responsabilidade do Administrador do Produto:
O Screen Optimizer possui regras internas para definição do perfil a ser utilizado, conforme descrito a seguir: O Screen Optimizer faz uma busca por grupos em ordem alfabética e em seguida por perfis do Grupo também em ordem alfabética. O perfil padrão não influencia nesta escolha, pois só serve como referência para determinar qual perfil será utilizado quando o usuário administrador do SOP acessar o programa. Exemplo: Perfil A(PA) -> Grupos GA Perfil B(PB) -> * (Todos os Grupos) Perfil C(PC) -> Grupos GA e GB O usuário A (UA) está no grupo GA e GB. O usuário B (UB) está no grupo GB. O usuário C (UC) está no grupo GC. Nesse caso acima, teremos as seguintes aplicações: Usuário A (UA) -> Perfil A (PA) Usuário B (UB) -> Perfil C (PC) Usuário C (UC) -> Perfil B (PB) Para o usuário C (UC), como nenhum dos grupos ao qual pertence está relacionado com perfis, é adotado o perfil que tiver todos os grupos (*). Caso não haja nenhum perfil com todos os grupos marcados, então o usuário não estará fazendo uso de nenhum perfil. |
Para saber se um perfil foi aplicado em ambiente de aplicação, é possível verificar pelo título da tela. Quando um perfil é aplicado, o título é modificado da seguinte forma: SOP - <código do perfil> - <título original>.
Na inicialização do programa, depois de definido o perfil, são aplicadas as propriedades de tela (cores, posicionamento, redimensionamento), ocorre o acerto da tabulação dos objetos, o reposicionamento das colunas do browse e os atributos são escondidos, quando uma dessas ações for necessária.
Quando o programa otimizado permitir a adição de registros, na ocorrência desse evento as propriedades de inicialização de valores e de desabilitar objetos são aplicadas.
A APPC fica responsável por fazer o sincronismo entre a tabela de extensão, do banco repositório ou de uma Ligação, com as tabelas do Datasul-EMS. O sincronismo corresponde à criação de registros (quando for criado um registro no Datasul-EMS, é criado um registro na tabela de extensão do banco repositório ou especifico, permitindo a ligação entre as informações), modificação do registro (quando for modificado um registro e não houver um correspondente na tabela de extensão, o mesmo é criado automaticamente, quando necessário) e eliminação de registros.
Além disso, nos eventos de visualização, os atributos dinâmicos são atualizados para consulta conforme relacionamento da ligação ou do atributo SOR.
A lista de valores possíveis de um objeto é executada nas seguintes condições:
Eventos de eliminação: são os eventos disparados na confirmação da eliminação de um registro. Nesse caso, a lista de valores é executada após a verificação normal do programa.
Devido à estrutura interna, a lista de valores não é executada nos eventos de eliminação para EMS5. |
A propriedade condição para um botão é executada quando a propriedade desabilitado ou escondido possui o valor condição. Dessa forma, em eventos pré-determinados, é efetuada a verificação conforme as regras informada pelo usuário se o botão deve ficar desabilitado/escondido. Essa verificação é efetuada nos seguintes eventos:
Algumas limitações no ambiente de aplicação: Lógica de Negócio pode interferir no Ambiente de Aplicação Em alguns casos, existem lógicas de negócio que podem interferir indiretamente na aplicação da otimização. Nesses casos, não é possível a utilização de todos os recursos do Screen Optimizer. Propriedades “Horizontal” e “Botão Flat” não funcionam para o Datasul-EMS 5: As propriedades citadas acima não funcionam para programas do Datasul-EMS 5. Ambos devem ser efetuados em um evento anterior à inicialização do programa e os programas do Datasul-EMS 5 não possuem tal evento. Versão de Programas do Datasul-EMS: Não existe nenhum controle da parte do Otimizador de Telas referente à atualização de pacotes de novas versões de programas que foram otimizados, necessitando verificar os perfis dos mesmos. Help de campo do Datasul-EMS 5 fica desabilitado Após a otimização de telas do Datasul-EMS 5, alguns objetos podem perder a referência ao help de campo, utilizado no Datasul-EMS 5. Eliminação de registros na tabela de extensão O sincronismo da eliminação de registros na tabela de extensão não é garantido totalmente pelo ambiente de aplicação. Existem vários fatores que podem não acarretar a eliminação do registro. Entre eles, por exemplo, o fato de um usuário utilizar um perfil com objetos dinâmicos relacionados a atributos de extensão e outro usuário utilizar o programa original. Quando o usuário elimina um registro utilizando o programa original (sem otimizações), o mesmo não executará a APPC para efetuar essa eliminação. Para isso, existe a possibilidade de eliminar essas inconsistências, por intermédio da Função Sincronizador do Banco Repositório (SO0707). Testes de Otimização É extremamente importante que o usuário administrador teste cada perfil novo criado ou alterado antes de liberá-lo para uso corporativo. Dessa forma, existe a garantia de que as funcionalidades implementadas no perfil estejam corretas conforme necessidade implementada do usuário administrador. Para testar um perfil corretamente em ambiente de otimização, é necessário executar o programa obrigatoriamente com um usuário diferente do Usuário Administrador e que possua acesso ao novo perfil criado. Quando o usuário administrador executa os programas, não são aplicados os seguintes conjuntos de propriedades:
Sincronia de objetos dinâmicos Quando se cria um objeto dinâmico com atributo de extensão para caixas de seleção, rádios, e caixas de checagem, é importante que se observe, que, quando não houver um registro relacionado no banco repositório ou na ligação, o valor do objeto fica exatamente igual (os dados não são atualizados, e ficam iguais ao do último registro exibido). Isso acontece porque, diferente de campos e editores, estes campos não podem assumir o valor “?” (indefinido), portanto, eles acabam dessincronizados. Para evitar este tipo de problema, deve se utilizar sempre a propriedade valor inicial para estes objetos, e em todos os lugares que os mesmos são utilizados. Se não houver um registro relacionado, o valor inicial do objeto é assumido, evitando assim que o objeto fique com o mesmo valor do registro anterior. Cuidados em relação à propriedade Ordem Tab Quando for utilizada essa propriedade, deve-se levar em consideração os seguintes fatores para o melhor funcionamento da mesma:
|