9 Replies Latest reply: Mar 24, 2015 9:13 AM by LUCIANA SILVEIRA RSS

    Estrutura para carga de dados

    Hamilton Junior

      Bom dia, estou desenvolvendo um projeto do qual comecei a seguir uma lógica de carga que achei interessante porém posso me complicar no futuro.

       

      Para carregar tabela de vendas por exemplo, eu gero um QVD de vendas do mes, exemplo "Vendas_01.QVD, Vendas_02.QVD". Estes arquivos estão organizados por ano, então na pasta C:\projetos\&$(vAno)\ (onde &$(vAno) é o ano atual, ou seja, 2014) eu tenho todos os arquivos necessários, então eu vou dando um Concatenate mes a mes. A ideia é que ao mudar de ano, para 2015, o sistema ja comece a criar e pegar os arquivos da pasta 2015. Porém eu pergunto, Ano que vem, ao dar essa carga o sistema vai perder os dados de 2014 correto? Como driblar isto sem ter que todo ano ficar aumentando os codigos do projeto?

        • Re: Estrutura para carga de dados
          Egnaldo de Sousa

          vc pode rodar um for para verificar as pastas existentes, depois faz a leitura de todas as pastas, segue um exemplo:

           

          FOR Each Pasta in DirList('C:\*')

           

          TRACE ------------------------------------------------------------------;

          TRACE ------------------------------------------------------------------;

          TRACE '$(Pasta)' ;

          TRACE ------------------------------------------------------------------;

          TRACE ------------------------------------------------------------------;


          NEXT Pasta

            • Re: Estrutura para carga de dados
              Hamilton Junior

              Isso antes de cada Concatenate? ai eu colocaria manualmente o nome das pastas? 2014, 2015, 2016?

                • Re: Estrutura para carga de dados
                  Egnaldo de Sousa

                  Se as tabelas tiverem a mesma estrutura vc nem precisa utilizar o concatenate.

                   

                       FOR Each vAno in DirList('C:\projetos\*')

                             Load

                            *

                            From C:\projetos\&$(vAno)\


                       NEXT vAno


                  Caso não tenha vc pode fazer o seguinte

                   

                       FOR Each vAno in DirList('C:\projetos\*')

                            $(vConcatenate)

                             Load

                                 *

                            From C:\projetos\&$(vAno)\

                      

                       set vConcatenate = concatenate;    

                       NEXT vAno

              • Re: Estrutura para carga de dados
                Nilo Barreto Pontes

                Fala Hamilton,

                 

                Cara, se você pretende manter todos os dados carregados, eu manteria tudo na mesma pasta e mudaria o padrão da nomenclatura do QVD ex: VENDAS_ & $(vANO) & $(vMes), e dessa forma importava todos arquivos da pasta.

                 

                Mas caso você necessite criar nessa estrutura, você terá que criar no load uma estrutura em loop pra primeiro verificar se a pasta $(vAno) existe e, se positivo, importar todos arquivos, criando uma lógica pra variar $(vAno).

                 

                Abraços,

                 

                Nilo

                • Re: Estrutura para carga de dados
                  Joao Ferreira

                  Hamilton bom dia,

                   

                  Acho que a melhor solução para isso é criar um diretório padrão para gravar todos os qvds de 2014 e 2015 por exemplo, e gravar os QVDS por mês e ano. Por exemplo: Vendas_02_2014, Vendas_02_2015. diretório para ler todos A leitura ficaria assim: C:projetos\QVDS\Vendas_*. O asterisco representa ler todos os qvds dos anos 2014 e 2015. Assim você não precisa mudar seu código, porque ele vai ler todos os qvds do diretório independente do ano.

                   

                  Att,

                       João Carlos Ferreira.

                  • Re: Estrutura para carga de dados
                    Hamilton Junior

                    Legal, da para fazer assim mesmo. Questão de organização o que vocês me dizem, dessa forma não ficaria muito "empilhado"? Tudo bem que é uma pasta que não teria pq abri-la mas as vezes seria bom ter mais organizado, ou é cosia da minha cabeça?

                    • Re: Estrutura para carga de dados
                      Hamilton Junior

                      Boa, valeu pelas dicas pessoal, testei aqui e ficou bem fácil. Vou mudar minha nomenclatura. Abraços.

                        • Re: Estrutura para carga de dados
                          LUCIANA SILVEIRA

                          Amigos

                           

                          Aproveitando, tenho um arquivo em formato TXT, nele consta dados desde por exemplo 2012, mencurando todos os pagamentos seja enviado , estornados e pagos, o arquivo e enorme, poderiam me orientar como criar uma estrutura de carga de dados, para que possa alocar este arquivo em formato txt, e claro que tenho ciencia que necessitarei tratar as colunas em primeiro lugar, porém tenho a dificuldade nos comandos do script para leitura desse arquivo, os dados serão alocados mensalmente ou seja preciso fazer a carga mais não exluir nenhum dados.

                           

                          Poderiam me auxiliar neste caso

                           

                          Muito obrigada amigos