nextupprevious
Next:Ferramentas e técnicas utilizadasUp:Projeto Tecnoval / ValfilmPrevious:Forma de organização da

Solução adotada

Este foi o primeiro projeto na OPUS que utilizou o modelo de três camadas, apresentação, negócio (business) e dados (arquitetura Windows DNA), e onde todas as funcionalidades são acessadas através de componentes (dlls). Outro fato interessante do projeto foi a utilização de um banco de dados que até então nenhuma outra pessoa da empresa conhecia: o Progress. Inicialmente os dados eram guardados em um banco de dados SQL. A migração dos dados e acessos para o Progress não foi fácil e tivemos que buscar informações pela internet, lista de discussões e pela empresa responsável pelo suporte.

O projeto tem quatro perfis de usuário: cliente (qualquer funcionário de uma empresa cliente da Tecnoval / Valfilm / Laminados), representante de empresas, administrador e operador. Primeiramente os funcionários de empresas clientes e representantes de clientes são guardados em um banco de dados como candidatos a usuários. Um usuário com o perfil de administrador então aprova estes candidatos para os quais serão gerados login e senha. O administrador ainda pode exercer outras funcionalidades como remover o usuário e gerar outra senha para aquele que a esqueceu (sem ter acesso a ela). Uma vez com seu login e senha, o usuário pode fazer pedidos, que serão analisados por um usuário com o perfil de operador (o operador aprova ou não os pedidos), e também acompanhar o andamentos dos mesmos (se já foram aprovados ou não). É necessário garantir que os funcionários de uma empresa cliente tenham acesso somente aos dados da mesma, assim como os representantes de empresas. Durante o desenvolvimento foi constatada a necessidade de alguns métodos auxiliares a mais daqueles que estão listados em seguida, mas não houve nenhuma alteração quanto a especificação.

Apresentação detalhada da solução tecnológica adotada inicialmente, obedecendo a arquitetura Windows DNA com modelo de três camadas:

    1. Camada de apresentação, constituída por páginas ASP/HTML, que são armazenadas e executadas em um equipamento com Windows NT Server e Internet Information Server (IIS). Contém o seguinte componente:

        a. Componente de Apresentação para Validação de Campos, que implementa as seguintes funcionalidades:

            i. CGC: conferência dos dígitos de controle;

            ii. CPF: conferência dos dígitos de controle;

    2. Camada de negócio, que contém dois componentes, a saber:

        a. Componente de Negócio para Segurança, que implementa as funcionalidades:

            i. TemplateCandidato: obtém a estrutura de um candidato, que será preenchida pelo usuário;

            ii. InsereCandidato: efetua o cadastramento de proposta de novo candidato;

            iii. ListaCandidatos: obtém os candidatos a serem avaliados;

            iv. AprovaCandidato: efetua o cadastramento de novo usuário. A geração de usuário seguirá as seguintes regras:

                1. Primeiro nome + inicial do sobrenome (Ex: alexandren);

                2. Inicial do primeiro nome + sobrenome (Ex: anardi);

                3. Igual ao item 1 + contador, a partir de 1 (Ex: alexandren3).

            v. Login: autentica um usuário do sistema;

            vi. AlteraSenha: permite a troca de senha do usuário do sistema;

            vii. RemoveUsuário: elimina o acesso de um usuário ao sistema, removendo seu login e senha. Para que possa ser realizada auditoria, NÃO é removido o registro inteiro.

        b. Componente de Negócio para Informações, que implementa as funcionalidades:

            i. ConsultaCadastro: pesquisa de dados cadastrais;

            ii. ConsultaTitulos: pesquisa de títulos a pagar;

            iii. ConsultaPedidos: pesquisa de informações sobre pedidos em aberto;

            iv. InserePedido: inserção de novo pedido;

            v. TemplatePedido: obtém a estrutura de um pedido, que será preenchida pelo usuário;

            vi. ListaPedidos: obtém os pedidos a serem analisados;

            vii. AprovaPedido: efetua a inserção de novo pedido no "Magnus";

    3. Camada de dados, formada por:

        a. Banco de Dados Access, para armazenamento de informações de segurança e de pedidos em aberto;

        b. Banco de Dados Progress Principal, que é utilizado pelo Magnus, e onde os componentes de dados (definidos a seguir) buscam a maior parte das informações necessárias;

        c. Banco de Dados Progress Auxiliar, que contém uma tabela para inserção de pedidos com um gatilho para inclusão no Magnus;

        d. Componente de Dados para Segurança, utilizado pelo componente de negócio para segurança, para interação com o banco de dados access. Implementa as seguintes funcionalidades:

            i. AlteraSenha: permite que o usuário modifique sua senha;

            ii. TemplateUsuario: obtém a estrutura de um candidato, que será preenchida pelo usuário;

            iii. AlteraUsuario: permite modificações nos dados cadastrais de um candidato;

            iv. ListaUsuarios: obtém relação de usuários de acordo com determinado filtro;

            v. InsereUsuario: efetua o cadastramento de novo usuário;

            vi. Login: autentica um usuário do sistema;

            vii. VerificaLogin: pesquisa a existência de um login passado como parâmetro; Quando o usuário deixar de existir, o método AlteraUsuario deve ser invocado com login e senha nulos. O registro não é removido por completo para permitir a manutenção de histórico para auditoria.

        e. Componente de Dados para Informações, utilizado pelo componente de negócio para informações, para interação com o banco de dados acima. Implementa as seguintes funcionalidades:

            i. ConsultaCadastro: pesquisa de dados cadastrais a partir do Progress principal;

            ii. ConsultaTitulos: pesquisa de títulos a pagar a partir do Progress principal;

            iii. ConsultaPedidos: pesquisa de informações sobre pedidos em aberto a partir do Progress principal e do banco de dados Access;

            iv. InserePedido: inserção de novo pedido no banco de dados Access;

            v. TemplatePedido: obtém a estrutura de um pedido, que será preenchida pelo usuário;

            vi. ListaPedidos: obtém os pedidos a serem analisados, a partir do banco Access;

            vii. AprovaPedido: efetua a inserção de novo pedido no banco Progress Auxiliar, para inserção no Magnus, e remove o registro do banco Access;
 

Cenários de Utilização

    1. Usuário se autentica na tela de Login, e recebe seu perfil, que inclui permissões de acesso e lista de empresas que pode representar (uma no caso de cliente e mais de uma para representante);

    2. Para clientes:

        a. Tela padrão é a de cadastro;

        b. As demais telas de consultas apenas apresentam as informações ao usuário;

    3. Para representantes:

        a. Tela padrão é a de cadastro, que apresenta dados da primeira empresa da lista;

        b. As demais telas de consultas apenas apresentam as informações ao usuário;

        c. Na tela de inserção de pedidos, está sendo verificada a necessidade do uso de look-ups;

    4. Para administradores de usuários:

        a. Tela padrão apresenta os candidatos a usuários, com dois radio buttons (Aprovado e Reprovado). Os candidatos reprovados devem ser contatados pelo pessoal da Tecnoval. Para os aprovados, será gerado senha (aleatória) e usuário, de acordo com as regras:

            i. Primeiro nome + inicial do sobrenome (Ex: alexandren);

            ii. Inicial do primeiro nome + sobrenome (Ex: anardi);

            iii. Igual ao item i + contador, a partir de 1 (Ex: alexandren3).

        b. Tela que apresenta os usuários existentes, com um checkbox ao lado de cada um. O usuário então pode selecionar um ou mais e deletá-los;

    5. Para o operador (analisa os pedidos novos):

        a. Tela padrão com os pedidos novos em ordem cronológica, e botões de próximo, anterior, primeiro, último e opção de busca pelo número do pedido. Além disso, botões de Aprovado e Reprovado.
 
 


nextupprevious
Next:Ferramentas e técnicas utilizadasUp:Projeto Tecnoval / ValfilmPrevious:Forma de organização da
Elidia Yumi Kawahara Itikawa 2000-12-20