8 Replies Latest reply: Mar 23, 2012 11:28 AM by Edécio Santos RSS

    Dúvida recarga parcial

    Edécio Santos

      Boa tarde pessoal.

       

      Quero executar uma recarga parcial de uma tabela com concatenate, porém a recarga não é executada corretamente, ele só carrega um dos qvds.

       

      Exemplo:

       

      Arrecadação_Faturamento:

      Replace

      LOAD AutoNumberHash128(RARR_ID&ARRFATTIPO),

           RARR_AMREFERENCIA,

           //GREG_ID,

           LOCA_ID,

           CATG_ID,

           RCTP_ID,

           RCTP_DSRECEBIMENTOTIPO,

           LCTP_ID,

           LCTP_DSTIPOLANCAMENTO,

           LCIT_ID,

           LCIT_DSITEMLANCAMENTO,

           LICT_ID,

           LICT_DSITEMLANCAMENTOCONTABIL,

           RARR_NNSEQUENCIATIPOLANCAMENTO,

           RARR_NNSEQITEMTPLANC,

           //RARR_TMULTIMAALTERACAO,

           RARR_VLITEMARRECADACAO,

           //UNEG_ID

           ARRFATTIPO

      FROM

      $(v_QVDs_Dimensoes)\Arrecadacao_ordenada.qvd

      (qvd);

       

      Concatenate

       

      Replace

      LOAD AutoNumberHash128(RFAT_ID&ARRFATTIPO),

           LCTP_ID,

           LCTP_DSTIPOLANCAMENTO,

           RFAT_AMREFERENCIA,

           LCIT_ID,

           LCIT_DSITEMLANCAMENTO,

           LICT_ID,

           LICT_DSITEMLANCAMENTOCONTABIL,

           RFAT_VLITEMFATURAMENTO,

           LOCA_ID,

           CATG_ID,

           //GREG_ID,

           RFAT_NNSEQUENCIATIPOLANCAMENTO,

           RFAT_NNSEQITEMTPLANC,

           //RFAT_TMULTIMAALTERACAO

           //UNEG_ID

           ARRFATTIPO

      FROM

      $(v_QVDs_Dimensoes)\Faturamento_ordenado.qvd

      (qvd);

        • Dúvida recarga parcial
          Aderlan Rodrigues

          Olá Edecio,

           

          Tenta o código abaixo.

           

          Arrecadação_Faturamento:

          Replace

          LOAD AutoNumberHash128(RARR_ID&ARRFATTIPO) as CHAVE,

               ARRFATTIPO,

               CATG_ID,

               LCIT_DSITEMLANCAMENTO,

               LCIT_ID,

               LCTP_DSTIPOLANCAMENTO,

               LCTP_ID,

               LICT_DSITEMLANCAMENTOCONTABIL,

               LICT_ID,

               LOCA_ID,

               RARR_AMREFERENCIA,

               RARR_NNSEQITEMTPLANC,

               RARR_NNSEQUENCIATIPOLANCAMENTO,

               RARR_VLITEMARRECADACAO,

               RCTP_DSRECEBIMENTOTIPO,

               RCTP_ID,

               Null() as RFAT_AMREFERENCIA,

               Null() as RFAT_NNSEQITEMTPLANC,

               Null() as RFAT_NNSEQUENCIATIPOLANCAMENTO,

               Null() as RFAT_VLITEMFATURAMENTO

          FROM $(v_QVDs_Dimensoes)\Arrecadacao_ordenada.qvd (qvd);

           

          Replace

          LOAD AutoNumberHash128(RFAT_ID&ARRFATTIPO) as CHAVE,

               ARRFATTIPO,

               CATG_ID,

               LCIT_DSITEMLANCAMENTO,

               LCIT_ID,

               LCTP_DSTIPOLANCAMENTO,

               LCTP_ID,

               LICT_DSITEMLANCAMENTOCONTABIL,

               LICT_ID,

               LOCA_ID,

               Null() as RARR_AMREFERENCIA,

               Null() as RARR_NNSEQITEMTPLANC,

               Null() as RARR_NNSEQUENCIATIPOLANCAMENTO,

               Null() as RARR_VLITEMARRECADACAO,

               Null() as RCTP_DSRECEBIMENTOTIPO,

               Null() as RCTP_ID,

               RFAT_AMREFERENCIA,

               RFAT_NNSEQITEMTPLANC,

               RFAT_NNSEQUENCIATIPOLANCAMENTO,

               RFAT_VLITEMFATURAMENTO

          FROM $(v_QVDs_Dimensoes)\Faturamento_ordenado.qvd (qvd);

           

          O QV concatena automaticamente tadas as tabelas carregadas, que tem todos os nomes des campos iguais, então basta "criar" um campo com valor nulo nas tabelas onde o campo não existe, que o QV faz o resto.

           

          Abraço.

            • Re: Dúvida recarga parcial
              Edécio Santos

              Aderlan, muito obrigado por sua ajuda mas não funcionou da forma como você informou.

               

              Utilizando os dois replaces, ele substituí o nodo da nuvem, entretanto só traz informações do segundo load (segundo qvd). Ele não está concatenando o resultado.

               

              Se precisar de mais algum detalhe é só avisar.

               

              Att,

              Edécio.

            • Dúvida recarga parcial
              Cesar Accardi

              Olá Edécio,

               

              eu já tive esse mesmo problema que você está tendo com a recarga parcial. Normalmente eu evito o REPLACE/ADD e se possível rodo com carga limitada na opção Debug, mas se ainda sim for mais viável a recarga parcial para você tente executar com somente um comando replace no início da carga, porque o segundo substitui os dados carregados pelo primeiro

               

              Abraços,

               

              Cesar.