UNIVERSIDADE REGIONAL DE BLUMENAU CENTRO DE CIÊNCIAS EXATAS E NATURAIS CURSO DE SISTEMAS DE INFORMAÇÃO – BACHARELADO RODRIGO JOÃO AMORIM MÓDULO INTERATIVO VISUAL DE CONFIGURAÇÃO PARA CARGA DE DADOS NO SISTEMA PROTHEUS 10 Proposta de Trabalho de Conclusão de Curso submetida à Universidade Regional de Blumenau para a obtenção dos créditos na disciplina Trabalho de Conclusão de Curso I do curso de Sistemas de Informação — Bacharelado. Prof. Dr. Oscar Dalfovo – Orientador BLUMENAU 2009 / 2 2 1 INTRODUÇÃO Totvs do latim tudo ou totalidade é o nome da maior empresa do Brasil de desenvolvimento de software de gestão empresarial (ERP). Entre vários sistemas oferecidos, destaca-se o Protheus do grego filho de Posseidon atualmente em sua versão 10 Release 1.3 (TOTVS, 2009a, p.1), Protheus um sistema Enterprise Resource Planning (ERP) com inúmeras possibilidades de customização. O sistema permite a interação com diversos tipos de arquivos, através de Advanced Protheus Lenguage (AdvPL), linguagem proprietária da Totvs, linguagem cujo o Protheus foi desenvolvido. A possibilidade de interação com diversos tipos de arquivos é muito importante para que haja interoperabilidade entre outros sistemas que existem na organização. O problema da interação com diversos arquivos no Protheus é que toda vez que há a necessidade de ler ou carregar um novo arquivo para o sistema ou o layout de um arquivo já existente foi alterado, existe a necessidade de fazer manutenção direto no código fonte, não existe no sistema uma tela de configuração genérica onde pode ser configurado o arquivo a ser carregado e para onde ele será carregado. 1.1 JUSTIFICATIVA Hoje na Selgron Industrial Ltda., indústria situada no bairro Itoupavazinha, onde está implantado o sistema Protheus 10 Release 1.3, um dos grandes problemas enfrentados é a importação de arquivos vindos de terceiros, por exemplo: bancos, contabilidade, clientes, fornecedores. Para cada arquivo a ser lido existe um arquivo de código fonte, com isto, existem vários problemas atrelados, existência de vários arquivos “.prw”, (extensão dos arquivos fonte utilizados pelo Protheus), vários arquivos para controle e manutenção. Com isto, surge então a necessidade de implementar uma funcionalidade para auxiliar este processo de carga de dados. A idéia de automatizar este processo surgiu com a necessidade de um maior controle do que é importado para o banco, com a posterior diminuição de código e de arquivos para 3 manutenção. Decidiu-se então implantar um mecanismo para a automatização e padronização dos procedimentos que envolvem o sistema, e como primeiro passo, implementar um mecanismo de carga de dados para o sistema Protheus 10. 1.2 OBJETIVOS O objetivo deste trabalho é o desenvolvimento de uma aplicação para dar carga de dados no sistema Protheus 10. Os objetivos específicos da proposta são: a) desenvolver uma aplicação desktop para execução da carga visando reduzir o tempo gasto no processo de carga de dados no sistema Protheus 10; b) automatizar a estruturação dos arquivos que serão carregados sem a necessidade de intervenção direto no código fonte; c) possibilitar a interação do usuário com o processo de carga de dados sem que haja um contato direto com o departamento de desenvolvimento. 1.3 RELEVÂNCIAS DO TRABALHO A aplicação a ser desenvolvida será incorporada ao sistema Protheus 10 e irá auxiliar no processo de configuração dos arquivos que serão utilizados na carga de dados. Esta aplicação também será responsável pela carga de dados propriamente dita. O fator de maior relevância para o desenvolvimento desta aplicação está na automatização do processo de carga de dados no sistema Protheus 10. A proposta desta aplicação consiste em agregar tanto a implementação tecnológica quanto a automatização no processo de manutenção e execução da carga de dados. Empresas que não utilizam um sistema de ERP desfrutam de vários sistemas gerenciais grátis encontrados na internet. O grande problema destes softwares é que os mesmos não contemplam toda a estrutura de um ERP e não interagem entre si, quando no máximo exportam arquivos nos formatos “.txt” ou “.csv”. 4 Quando estas empresas decidem implantar um sistema ERP robusto em sua corporação acabam tendo um tempo de translado do sistema legado para o novo muito grande devido à demora de inserção manual dos registros antigos. 5 2 FUNDAMENTAÇÃO TEÓRICA Neste capítulo apresentam-se o procedimento atual de carga de dados usado pela Selgron Industrial Ltda., a solução proposta e os trabalhos correlatos ao tema abordado. Enterprise Resource Planning (ERP), segundo Rezende e Abreu, são pacotes de gestão empresarial ou de sistemas integrados, com recursos de automação e informação, visando contribuir com o gerenciamento dos negócios empresariais. Para Buckhout, Frey e Nemec (1999), um ERP é um software de planejamento de recursos empresariais que integra as diferentes funções da empresa para criar operações mais eficientes. Integra os dados-chaves e a comunicação entre as áreas da empresa, fornecendo informações detalhadas sobre suas operações. Conforme Totvs (2009b, p.1), apresenta que o ERP gerencia e integra os processos de gestão da empresa. A solução ERP Totvs (Protheus 10) é dinâmica, racional e eficiente, e prepara a companhia para administrar processos e recursos na busca de integração de informações. A adoção da solução ERP Totvs elimina o uso de interfaces manuais e a redundância de atividades, proporcionando integração de diversos departamentos, automatização e armazenamento de todas as informações de negócios. 2.1 SISTEMA ATUAL Atualmente a Selgron industrial Ltda. possui vários arquivos de código fonte para realizar a carga de dados para o sistema Protheus 10, sendo que este trabalho acaba sempre sendo completamente semi-automático ou manual via script Structured Query Language (SQL) direto no banco de dados. As tecnologias atualmente usadas para este processo são o banco de dados SQL Server 2008, aonde os scripts escritos em SQL realizam a inserção de dados direto no banco do sistema atual, O processo atual de carga de dados acontece através da criação de vários arquivos de código fonte. Existe atualmente um arquivo de código para cada layout de arquivo a ser carregado ao sistema, gerando um enorme retrabalho na manutenção destes arquivos. 6 Os arquivos utilizados hoje para importação de dados no sistema são gerados por terceiros geralmente vindos de fornecedores, clientes, contabilidades. Estes arquivos podem sofre alteração em seu layout sem aviso prévio. 2.2 TRABALHOS CORRELATOS Dentre os vários trabalhos relacionados ao tema ERP, são apresentados o que tiveram maior relevância para este trabalho. No trabalho de conclusão de curso de Leila de Souza desenvolvido na Universidade Regional de Blumenau (FURB), a mesma apresenta o tão quanto é demorado à implantação de um sistema de ERP Microsiga 7, nome que antecede o Protheus 10, em uma organização (SOUZA, 2004). No trabalho de conclusão de curso de Andre B. do Nascimento desenvolvido no Centro Federal de Educação Tecnológica (CEFET), os mesmos demonstram um estudo de um caso real de migração de banco de dados de sistemas ERP legado para um banco de dados do novo sistema ERP (NASCIMENTO, 2001). 7 3 DESENVOLVIMENTO Neste capítulo estão descritos a particularidades técnicas do sistema proposto tais como a descrição do mesmo e a apresentação dos requisitos funcionais e não funcionais, principais diagramas de caso de uso e a sua descrição, diagramas de caso de uso, e seu detalhamento. 3.1 SISTEMA PROPOSTO A solução proposta consiste em automatizar o processo de carga de dados para o sistema Protheus 10, obedecendo os seguintes procedimentos: a) configuração do arquivo: que identificara exatamente cada trecho do arquivo a ser lido e onde o mesmo será carregado no sistema; b) validação dos dados: que resolverá questões como tipo de dados que será carregado e o tipo de dado que está sendo esperado pelo banco de dados; c) carregar os dados: é o último passo do processo da carga de dados. Nesta etapa os dados serão lidos do arquivo e inserido direto no banco de dados, Este processo poderá ser executado várias vezes, pois depois de uma vez configurado, basta apenas executar a carga de dados, e prestar manutenção na configuração quando houver alterações no layout do arquivo; A implantação desta aplicação terá impacto direto na performance e padronização do processo de carga de dados nos sistema Protheus 10 O sistema será desenvolvido sobre a linguagem Advanced Protheus Lenguage (AdvPL), usando o Integrated Development Environment (IDE) do próprio sistema Protheus 10. O acesso a banco de dados será feito através do uso da ferramenta Totvs DBAccess responsável por toda comunicação do sistema Protheus 10 com o banco de dados. A interface será desenvolvida para ambiente desktop, usando AdvPL. 8 O processo de migração se inicia na fase de configuração dos dados, ou seja, de qual fonte será extraído as informações e onde no banco de dados serão armazenadas. O foco de armazenamento de dados da aplicação será no banco de dados SQL Server 2008. A etapa inicial do processo consiste em configurar um arquivo configuração, contendo local do arquivo a ser lido e as parametrizações do arquivo, onde cada trecho será extraído e onde será copulado no banco. Criado o registro de configuração, o usuário já pode executar a carga de dados. Após o usuário ter configurado o sistema com a parametrização do arquivo que será carregado ao banco de dados o usuário terá a possibilidade de verificar se a configuração recém criada esta certa clicando no botão validar dados, onde o sistema fará leitura dos dados do arquivo em disco, ou seja, será feito uma varredura no arquivo, lendo linha a linha e verificando se o trecho do arquivo lido condiz com a espera de parâmetros do campo do banco de dados. Neste processo de validação dos dados a serem importados, o sistema utilizara um arquivo de configuração de banco de dados onde estão contidas as informações de todos os campos de todas as tabelas do banco de dados utilizado pelo Protheus 10, informações esta como, tamanho, tipo, quantidade de casas decimais, obrigatoriedade. 3.2 ESPECIFICAÇÃO O Quadro 1 apresenta os requisitos funcionais previstos para o sistema e sua rastreabilidade, ou seja, vinculação com o(s) caso(s) de uso associado(s). Requisitos Funcionais RF01: O sistema deverá possibilitar ao usuário o cadastramento de registros Caso de Uso UC01 de configuração de importação. RF02: O sistema deverá possibilitar a alteração de registros de UC02 configuração. RF03: O sistema deverá possibilitar a exclusão de registro de configuração UC03 de importação. RF04: O sistema possibilitará a execução do processo de carga de dados. UC04 9 RF05: O sistema possibilitará ao usuário a seleção da fonte de dados para a UC05 carga de dados. RF06: O sistema possibilitará ao usuário a seleção da tabela a ser copulada UC06 RF07: O sistema deverá possibilitar ao usuário a validação do arquivo antes UC07 da rotina de importação dos dados. RF08: O sistema deverá possibilitar ao usuário a visualizar o arquivo em UC08 uma tela sem a necessidade de executar a importação dos dados. Quadro 1: Requisitos funcionais O Quadro 2 lista os requisitos não funcionais previstos para o sistema. Requisitos Não Funcionais RNF01: O sistema deverá ser desenvolvido na linguagem AdvPL RNF02: O sistema deverá suportar o banco de dados SQL Server 2008 RNF03: O sistema deverá possuir interface para Desktop. RNF04: O sistema deverá interagir com o sistema Protheus 10 RNF05: O sistema deverá utilizar a nomenclatura padrão para tabelas do sistema Protheus 10 Quadro 2: Requisitos não funcionais 3.3 MODELAGEM Esta seção apresenta o(s) diagrama(s) que serão necessários para o entendimento do sistema de carga de dados no sistema Protheus 10. 3.3.1 Diagramas de caso de uso Esta seção apresenta o(s) diagrama(s) de casos de uso preliminar(es) do sistema carga de dados no sistema Protheus 10, sendo que o detalhamento dos principais casos de uso, devem ser descritos a partir do Apêndice A. 10 uc Casos de Uso Módulo de Configurações de Carga de Dados UC01 - Cadastrar arquiv o de configuração UC02 - A lterar arquiv o de configuração UC03 - Ex cluir arquiv o de configuração UC04 - Ex ecutar processo carga de dados UC05 - Selecionar Usuári o arquiv o UC06 - Selecionar tabela UC07 - V alidar dados UC08 - V isualizar importação Figura 1: Diagrama de caso de uso 3.3.2 Diagramas de entidade relacional Na Figura 2 tem-se o diagrama de entidade relacional que representam as entidades que serão do banco de dados. 11 Figura 2– Diagrama de entidades relacionais. A função de cada entidade do banco de dados está descrita a seguir após o nome da mesma: a) SZX010: entidade que irá guardar as informações genéricas para o processo de carga de dados, dados como descrição, tabela que será copulada com os registros do arquivo que será importado e local onde esta este arquivo em disco; b) SZY010: entidade do banco responsável por manter os registros de configuração dos arquivos que serão carregados, esta entidade manterá as configurações especificas de cada trecho do registro que será importado e copulado no banco de dados, conterá informações como caracter de início, caracter de término, tipo de dado que será importado, nesta entidade existira um registro para cada trecho de dado que será importado. 12 REFERÊNCIAS BIBLIOGRÁFICAS BUCKHOUT, S.; FREY, E.; NEMEC JR. Por um ERP eficaz. HSM Management. Set./Out. 1999. NASCIMENTO, A. B et al .Aplicação de Regras de Negocio em um Sistema ERP. 2001. Trabalho de Conclusão de Curso (Pós Graduação em E-bussines), Centro Federal de Educação Tecnológica, Rio de Janeiro. REZENDE, Denise Alcides; ABREU, Aline França de. Tecnologias Aplicadas a Sistemas de Informações Empresariais: Tecnologia da Informação Aplicada a Sistemas de Informação Empresariais. São Paulo: Atlas S.A., 2001. SOUZA, L. Aplicação de Regras de Negocio em um Sistema ERP. 2004. Trabalho de Conclusão de Curso (Bacharelado em Ciências da Computação) Centro de Ciências Exatas e Naturais, Universidade Regional de Blumenau, Blumenau. TOTVS. Informativo Julho de 2009. Disponível em: <http://totvs.com/web/gest/company> Acesso em: 22 jul. 2009a. ___. ERP. Disponível em: < http://www.totvs.com/software/erp> Acesso em: 19 nov. 2009b. 13 APÊNDICE A – Detalhamento dos casos de uso No Quadro 3, apresenta-se o caso de uso "Cadastrar arquivo de configuração". Nome do Caso de Uso Cadastrar arquivo de configuração Descrição Usuário acessa aplicação via desktop e informa dados para login e senha armazenados no cadastro do usuário. Usuário seleciona o módulo que deseja/tem permissão para acessar. Ator Usuário Pré-condição Sistema deve estar com os seguintes processos rodando: TotvsAppServer; TotvsDBAccess; SQL Server 2008. Usuário deve estar cadastrado no banco de dados. Fluxo principal 1. Usuário preenche seu login e sua senha; 2. Sistema valida os dados de login e senha do usuário; 3. Sistema mostra pro usuário os módulos que ele tem acesso; 4. Usuário seleciona o modulo requerido e clica em ok; 5. Sistema mostra tela com o menu com os acessos do usuário; 6. Usuário seleciona a opção configuração de carga de dados; 7. Sistema exibe browser com todos os arquivos de configuração existentes; 8. Usuário seleciona a opção incluir; 9. Usuário seleciona a tabela; 10. Usuário inclui as informações e clica em ok; 11. Sistema retorna pro browser com todos os arquivos de configuração existentes. Fluxo alternativo (a) Fluxo alternativo (b) Pós-condição nome de usuário e/ou senha inválido(s); alerta com mensagem “usuário ou senha inválida” é mostrada. usuário sem acesso a fazer inclusão de configuração; alerta com mensagem “usuário sem acesso a esta rotina” é mostrada. Usuário incluiu um arquivo de configuração no sistema. Quadro 3 – Descrição do caso de uso Cadastrar arquivo de configuração No Quadro 4 apresenta-se o caso de uso "Alterar arquivo de configuração". Nome do Caso de Uso Cadastrar arquivo de configuração Descrição Usuário acessa aplicação via desktop e informa dados para login e senha 14 armazenados no cadastro do usuário. Usuário seleciona o módulo que deseja/tem permissão para acessar. Ator Usuário Pré-condição Sistema deve estar com os seguintes processos rodando: TotvsAppServer; TotvsDBAccess; SQL Server 2008. Usuário deve estar cadastrado no banco de dados. Fluxo principal 1. Usuário preenche seu login e sua senha; 2. Sistema valida os dados de login e senha do usuário; 3. Sistema mostra pro usuário os módulos que ele tem acesso; 4. Usuário seleciona o modulo requerido e clica em ok; 5. Sistema mostra tela com o menu com os acessos do usuário; 6. Usuário seleciona a opção configuração de carga de dados; 7. Sistema exibe browser com todos os arquivos de configuração existentes; 8. Usuário seleciona a opção alterar; 9. Usuário altera as informações e clica em ok; 10. Sistema retorna pro browser com todos os arquivos de configuração existentes. Fluxo alternativo (a) Fluxo alternativo (b) Pós-condição nome de usuário e/ou senha inválido(s); alerta com mensagem “usuário ou senha inválida” é mostrada. usuário sem acesso a fazer alteração de configuração; alerta com mensagem “usuário sem acesso a esta rotina” é mostrada. Usuário alterou um arquivo de configuração no sistema. Quadro 4 – Descrição do caso de uso Alterar arquivo de configuração No Quadro 5 apresenta-se o caso de uso "Excluir arquivo de configuração". Nome do Caso de Uso Cadastrar arquivo de configuração Descrição Usuário acessa aplicação via desktop e informa dados para login e senha armazenados no cadastro do usuário. Usuário seleciona o módulo que deseja/tem permissão para acessar. Ator Usuário Pré-condição Sistema deve estar com os seguintes processos rodando: TotvsAppServer; TotvsDBAccess; SQL Server 2008. Usuário deve estar cadastrado no banco de dados. Fluxo principal 1. Usuário preenche seu login e sua senha; 15 2. Sistema valida os dados de login e senha do usuário; 3. Sistema mostra pro usuário os módulos que ele tem acesso; 4. Usuário seleciona o modulo requerido e clica em ok; 5. Sistema mostra tela com o menu com os acesso do usuário; 6. Usuário seleciona a opção configuração de carga de dados; 7. Sistema exibe browser com todos os arquivos de configuração existentes; 8. Usuário seleciona a opção excluir; 9. Usuário inclui as informações e clica em ok; 10. Sistema retorna pro browser com todos os arquivos de configuração existentes. Fluxo alternativo (a) Fluxo alternativo (b) Pós-condição nome de usuário e/ou senha inválido(s); alerta com mensagem “usuário ou senha inválida” é mostrada. usuário sem acesso a fazer exclusão de configuração; alerta com mensagem “usuário sem acesso a esta rotina” é mostrada. Usuário excluiu um registro de configuração no sistema. Quadro 5 – Descrição do caso de uso Alterar arquivo de configuração No Quadro 6 apresenta-se o caso de uso "Executar carga de dados". Nome do Caso de Uso Cadastrar arquivo de configuração Descrição Usuário acessa aplicação via desktop e informa dados para login e senha armazenados no cadastro do usuário. Usuário seleciona o módulo que deseja/tem permissão para acessar. Ator Usuário Pré-condição Sistema deve estar com os seguintes processos rodando: TotvsAppServer; TotvsDBAccess; SQL Server 2008. Usuário deve estar cadastrado no banco de dados. Fluxo principal 1. Usuário preenche seu login e sua senha; 2. Sistema valida os dados de login e senha do usuário; 3. Sistema mostra pro usuário os módulos que ele tem acesso; 4. Usuário seleciona o modulo requerido e clica em ok; 5. Sistema mostra tela com o menu com os acessos do usuário; 6. Usuário seleciona a opção configuração de carga de dados; 7. Sistema exibe browser com todos os arquivos de configuração existentes; 8. Usuário seleciona a opção executar; 9. Sistema mostra tela com o parâmetro de onde será lido o arquivo; 10. Usuário confirma a execução da carga de dados; 11. Sistema executa a carga de dados; 16 12. Sistema retorna para o browser com todos os arquivos de configuração existentes. Fluxo alternativo (a) Fluxo alternativo (b) Fluxo alternativo (c) Fluxo alternativo (c) Pós-condição nome de usuário e/ou senha inválido(s); alerta com mensagem “usuário ou senha inválida” é mostrada. usuário sem acesso a fazer execução da carga de dados; alerta com mensagem “usuário sem acesso a esta rotina” é mostrada. arquivo a ser lido não encontrado; alerta com mensagem “usuário arquivo não encontrado” é mostrada. trecho do arquivo a ser lido é divergente; alerta com mensagem “dados divergentes” é mostrada. a rotina é interrompida. Usuário executou carga de dados no sistema. Quadro 6 – Descrição do caso de uso Alterar arquivo de configuração No Quadro 7 apresenta-se o caso de uso "Selecionar tabela". Nome do Caso de Uso Cadastrar arquivo de configuração Descrição Usuário acessa aplicação via desktop e informa dados para login e senha armazenados no cadastro do usuario. Usuário seleciona o módulo que deseja/tem permissão para acessar. Ator Usuário Pré-condição Sistema deve estar com os seguintes processos rodando: TotvsAppServer TotvsDBAccess SQL Server 2008 Usuário deve estar cadastrado no banco de dados. Usuário deve ter seleciona a opção incluir Fluxo principal 1. Sistema mostra tela com todas as tabelas do banco de dados 2. Usuário seleciona tabela e clica em ok; 3. Sistema volta a tela de inclusão de registros de configuração de carda; Quadro 7 – Descrição do caso de uso Selecionar tabela No Quadro 8 apresenta-se o caso de uso "Validar dados". Nome do Caso de Uso Validar dados Descrição Usuário acessa aplicação via desktop e informa dados para login e senha armazenados no cadastro do usuário. 17 Usuário seleciona o módulo que deseja/tem permissão para acessar. Ator Usuário Pré-condição Sistema deve estar com os seguintes processos rodando: TotvsAppServer TotvsDBAccess SQL Server 2008 Usuário deve estar cadastrado no banco de dados. Usuário deve ter configurado o arquivo que deseja validar. Usuário deve ter seleciona a opção validar Fluxo principal 1. Sistema mostra tela com informação do primeiro caracter do arquivo texto onde foi encontrado algo que não era esperado. Quadro 8 – Descrição do caso de uso Selecionar tabela No Quadro 9 apresenta-se o caso de uso "Visualizar dados". Nome do Caso de Uso Visualizar dados Descrição Usuário acessa aplicação via desktop e informa dados para login e senha armazenados no cadastro do usuário. Usuário seleciona o módulo que deseja/tem permissão para acessar. Ator Usuário Pré-condição Sistema deve estar com os seguintes processos rodando: TotvsAppServer TotvsDBAccess SQL Server 2008 Usuário deve estar cadastrado no banco de dados. Usuário deve ter configurado o arquivo que deseja validar. Usuário deve ter seleciona a opção validar Fluxo principal 1. Sistema mostra tela de visualização dos dados a serem importados com base no registro de configuração. Quadro 9 – Descrição do caso de uso Selecionar tabela