5 Replies Latest reply: Jul 25, 2014 12:08 PM by Pablo Labbe RSS

    Criar chave dinâmica a partir de tabelas do Protheus

    Joao Ferreira

      Bom dia Pessoal,

       

      Estou com uma dificuldade em um relacionamento entre tabelas do Protheus. Preciso a partir de uma tabela de amarração determinar qual tipo de lançamento será realizado na tabela de movimento bancário. São 3 tabelas envolvidas. Vou explicar como tudo deve funcionar:

       

      Tabelas do Protheus:

       

      CTL -> Tabela de amarração das chaves por tipo de lançamento

      CT2 -> Tabela de movimento contábil

      SE5 -> tabela de movimento bancário

       

      A situação é seguinte: Na tabela CTL eu tenho o campo CTL_KEY, este determina qual chave deve ser usada na amarração entre a CT2 e SE5 por tipo de lançamento padrão (CTL_LP).

       

      Exemplo:

      CTL_KEY -> CampoSE51+CampoSE52+CampoSE53_CampoSE54                             -> Chave 1

      CTL_KEY -> CampoSE51+CampoSE52+CampoSE53_CampoSE54+CampoSE55         -> Chave  2


      A CTL_KEY guarda os campos da chave.


      CTL_LP -> 563  = este entra na Chave 1

      CTL_LP -> 560  = este entra na Chave 2

       

      CT2_LP -> 563  = este entra na Chave 1

      CT2_LP -> 560 = este entra na Chave 2

       

      CT2_KEY - 0001RG12359ET= Chave 1

                       0001RG12359ET890= Chave 2

       

      Na tabela de CT2 eu tenho o campo CT2_KEY, este campo é o resultado da concatenação acima. Porem eu preciso gerar esta busca na tabela SE5 de acordo com a amarração dos campos pela chave CTL_KEY. 

       

      Para isso funcionar eu preciso a partir da tabela CTL identificar qual chave da CT2 está sendo usada na amarração com SE5.

      Preciso amarrar estas informações pela chave do campo CTL_KEY

       

      Alguém já passou por algo parecido no protheus. Poderiam me ajudar?

       

      Att,

            João Carlos Ferreira.

        • Re: Criar chave dinâmica a partir de tabelas do Protheus

          Olá amigo tudo bem?

           

          A empresa que eu trabalho também usa protheus eu entendo o seu problema em criar chaves eu mesmo passei por um problema parecido aqui não faz muito tempo só que com as Notas Fiscais. cara o que eu fiz foi eu mesmo montar as chaves no script de carga do Qlikview, juntei os campos que eu precisava e montei uma chave e fiz o mesmo na outra tabela e funcionou tá funcionando belezinha. vou colocar aqui um exemplo de chave que eu montei na unha.

           

          LOAD

               D2_FILIAL&D2_DOC&D2_SERIE&D2_FORMUL AS %ChaveNFS,

               D2_COD,

               D2_QUANT,

               D2_TOTAL,

               D2_DESC,

               D2_PRCVEN;

           

           

          Se você precisar de ajuda é só chamar

           

          Abraços e Boa Sorte

          • Re: Criar chave dinâmica a partir de tabelas do Protheus
            Pablo Labbe

            Olá João Carlos,

             

              Modelo de dados complicado esse em que a chave de relacionamento muda conforme o registro. Não conheço o modelo de dados do Protheus, mas vou tentar ajudar mesmo assim dando pensando num raciocínio lógico.

             

            Eu tentaria resolver este problema por blocos:

             

              No bloco 1, identifico todos os registros que possa associar com a chave de 5 campos entre se5 e ct2 e monto uma tabela temporária temp1.

             

              No bloco 2, identifico todos os registros que possa associar com a chave de 4 campos entre se5 e ct2 e monto uma tabela temporária temp2.

             

              No bloco 3 concateno temp1 e temp2 criando uma nova tabela e descarto as tabelas anteriores.

             

            Um Abraço,

             

            pablolabbe

              • Re: Criar chave dinâmica a partir de tabelas do Protheus
                Joao Ferreira

                Boa tarde Pablo,

                 

                Conseguir resolver usando uma ideia parecida como essa.

                 

                Criei as chaves em tabelas separadas na CT2 e associei as chaves com a CTL.

                Para cada tabela da CT2 eu criei uma chave na SE5, associando as tabelas. Na SE5 eu criei tabelas independentes por cada chave da CT2.

                 

                Com esta lógica, eu consegui identificar os lançamentos na CT2 e na CTL e amarrar cada lançamento por uma chave especifica. Os mesmos lançamentos são identificados na tabela de movimento bancário SE5.

                A chave entre as tabelas CT2 e SE5 ficou dinâmica e muda conforme o lançamento na CT2.

                 

                Muito obrigado a todos vocês.

                 

                Att,

                      João Carlos Ferreira.

              • Re: Criar chave dinâmica a partir de tabelas do Protheus
                Pablo Labbe

                Olá João,

                 

                  Obrigado pelo retorno e que bom a minha dica te ajudou na sua solução.

                 

                Um abraço,

                 

                Pablo