24 Replies Latest reply: Mar 3, 2017 2:49 PM by Márcio Rodrigo Campestrini RSS

    Problemas com referencia circular, como resolvo?

    Kleber Gitti

      Boa tarde!

       

      Estou com o mesmo problema do Sr. Luis,  poderiam me ajudar ? rphpacheco

       

      A tabela nova está à esquerda e que quero acrescentar às antigas da direita,  já tentei fazer ALIAS com nomes de campos diferentes mas deu referencia circular,  como posso interligar a tabela nova com as antigas ?

       

      estou desesperado,  pois  estou tentando adicionar essa tabela de cursos da empresa ao fat. da empresa.

       

      Obrigado quem puder ajudar e já agradeço!

       

      tabelas-qlikview.png

       

      os campos que consegui identificar da nova pra antiga são:


      REFERENCIAS DE CAMPOS.png

        • Re: Problemas com referencia circular, como resolvo?
          Márcio Rodrigo Campestrini

          Kleber

           

          A referência circular ocorre quando o Qlikview encontra dois caminhos para chegar na mesma informação. Nesses casos, É preciso eliminar um dos caminhos para resolver.

          Para poder lhe ajudar, precisamos de um exemplo do seu aplicativo. Como obter ajuda? Leia antes de postar

            • Re: Problemas com referencia circular, como resolvo?
              Kleber Gitti

              Segue meu arquivo QVW,  reduzido ao minimo e embaralhado valores, para vc ver meu aplicativo e poder me ajudar.

               

              Obg.

               

              Segue arquivo qvw:

              http://uptobox.com/jrdpnmb9z9ol

                • Re: Problemas com referencia circular, como resolvo?
                  Márcio Rodrigo Campestrini

                  Kleber

                   

                  Não estou conseguindo fazer o download do arquivo.

                  Por gentileza anexe na própria discussão.

                      • Re: Problemas com referencia circular, como resolvo?
                        Márcio Rodrigo Campestrini

                        Kleber

                         

                        Depois de escrever o comentário clique em "Ações" (logo abaixo do comentário) e "Editar". Vai abrir uma nova página do editor completo, onde existe uma opção "Anexar" na parte inferior do quadro.

                          • Re: Problemas com referencia circular, como resolvo?
                            Kleber Gitti

                            Não tem essa opção,  só tem carregar imagem ou video.

                             

                            Abaixo não tem Anexar.  Tira um print da tela e me manda para ver onde fica.

                             

                            Obg.

                              • Re: Problemas com referencia circular, como resolvo?
                                Márcio Rodrigo Campestrini

                                Para abrir a edição avançada

                                 

                                2016-05-19 08_37_48-Problemas com referencia circular, como resolvo_ _ Qlik Community.png

                                 

                                E para anexar o aplicativo

                                Sem título.png

                                  • Re: Problemas com referencia circular, como resolvo?
                                    Luciano Vasconcelos

                                    Você tirou o código.

                                    Não ajuda nada. assim fica bem difícil ajudar.

                                    Na prática é mais ou menos isso:

                                     

                                    Você vai explitar esse select na sua modelagem atual.

                                    Ex:

                                     

                                    Concatenate(CLIENTES);

                                    LOAD

                                    A1_EST AS UF_CLIENTE,

                                    A1_MUN AS NM_CIDADE_CLIENTE,

                                    A1_NOME AS NM_CLIENTE,

                                    COD_LJ_CLIENTE AS CD_CLIENTE

                                    ;

                                     

                                    SQL SELECT *

                                    FROM CONEXAO15.dbo."DW_EXTCURSOS";

                                     

                                    Vai ter que fazer isso para cada tabela no modelo, tanto tabela fato como dimensões. Nas dimensões precisará usar Where not exists para não duplicar as linhas.

                                      • Re: Problemas com referencia circular, como resolvo?
                                        Kleber Gitti

                                        Meu script está assim (obs: acima tabela nova q quero ligar, na imagem tem as antigas à direita), acima no post tem uma tabela em excel onde identifiquei os campos iguais com nomes diferentes:

                                         

                                         

                                        OLEDB CONNECT TO [Provider=SQLOLEDB.1;Persist Security Info=True;User ID=webreports;Initial Catalog=CONEXAO15;Data Source=USA;Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Workstation ID=MAT187;Use Encryption for Data=False;Tag with column collation when possible=False] (XPassword is IAMeaRdNOLZQXQdNRZMQD);

                                         

                                         

                                        ALIAS A1_EST AS UF_CLIENTE;

                                        ALIAS A1_MUN AS NM_CIDADE_CLIENTE;

                                        ALIAS A1_NOME AS NM_CLIENTE;

                                        ALIAS A3_NOME AS NM_VENDEDOR;

                                        ALIAS ANOMES AS CD_VENDEDOR_ANO_MES;

                                        ALIAS COD_LJ_CLIENTE AS CD_CLIENTE;

                                        ALIAS D2_COD AS CD_PRODUTO;

                                        ALIAS D2_DESCON AS VL_DESCONTO_ITEM;

                                        ALIAS D2_EMISSAO AS DT_NF_SAIDA;

                                        ALIAS D2_FILIAL AS DS_FILIAL;

                                        ALIAS D2_PRCVEN AS VL_UNIT_ITEM_NF_SAIDA;

                                        ALIAS D2_PRUNIT AS VL_UNIT_ITEM_NF_SAIDA2;

                                        ALIAS D2_QUANT AS QT_ITEM_SAIDA;

                                        ALIAS D2_TES AS CD_TES;

                                        ALIAS D2_TOTAL AS VL_TOTAL_ITEM_SAIDA;

                                        ALIAS DESCR_PROD AS DS_PRODUTO;

                                        ALIAS F2_TRANSP AS CD_TRANSPORTADORA;

                                        ALIAS F2_VEND1 AS DS_CARTEIRA_CLIENTE;

                                        ALIAS FAMILIA AS DS_FAMILIA_PRODUTO;

                                        ALIAS NF_SERIE AS KEY_NF_SAIDA;

                                        ALIAS TIPO AS DS_COND_PAGTO;

                                         

                                         

                                        SQL SELECT "A1_EST", "A1_MUN", "A1_NOME", "A3_NOME", ANOMES, "C5_CURSO",

                                            "C5_OBSCRM", "C5_ORIDESC", "COD_LJ_CLIENTE", "COD_LJ_ENTIDADE",

                                            "D2_COD", "D2_DESCON", "D2_EMISSAO", "D2_FILIAL", "D2_PEDIDO",

                                            "D2_PRCVEN", "D2_PRUNIT", "D2_QUANT", "D2_TES", "D2_TOTAL",

                                            "DESCR_PROD", "ENT_EST", "ENT_MUN", "F2_COND", "F2_TRANSP",

                                            "F2_VEND1", "F4_CNDESC1", FAMILIA, "NF_SERIE", OPERACAO,

                                            "STATUS_CURSO", TIPO, "Z1_HIERAR", "Z1_TIPPES", "ZC_DESCUR",

                                            "ZC_DTFIM", "ZC_NOMENT"

                                        FROM CONEXAO15.dbo."DW_EXTCURSOS";

                                         

                                         

                                        referencia erro circular.png

                                      • Re: Problemas com referencia circular, como resolvo?
                                        Márcio Rodrigo Campestrini

                                        Kleber

                                         

                                        Faça a carga ligando a tabela nova gerando a referencia circular, e depois poste o arquivo...

                                            • Re: Problemas com referencia circular, como resolvo?
                                              Luciano Vasconcelos

                                              Precisamos do script inteiro.

                                              A parte das tabelas antigas também.

                                              Só têm a aba Leitura Final

                                                • Re: Problemas com referencia circular, como resolvo?
                                                  Kleber Gitti

                                                  bi-script externo QVD.png

                                                   

                                                   

                                                  As antigas já eram carregadas por arquivos QVD externos e não constam na tela script,  mas consegui aqui as conexões desses QVDs externos que carregam:

                                                   

                                                  [CLIENTES]:

                                                  LOAD

                                                  [CD_CLIENTE],

                                                  [NM_CLIENTE],

                                                  [NM_FANTASIA_CLIENTE],

                                                  [CD_CGC_CLIENTE],

                                                  [UF_CLIENTE],

                                                  [NM_CIDADE_CLIENTE],

                                                  [DS_CARTEIRA_CLIENTE],

                                                  [DS_CLASSIF_CLIENTE],

                                                  [DS_CURVA_CLIENTE],

                                                  [NM_REGIAO_CLIENTE]

                                                  From

                                                  [\\jamaica\rcs\QVDs\CLIENTES_CONEXAO15.qvd]

                                                  (QVD);

                                                   

                                                   

                                                  [Duplicatas a Receber]:

                                                  LOAD

                                                  [KEY_NF_SAIDA],

                                                  [NR_PARCELA_DUPL_RECEBER],

                                                  [VL_DUPL_RECEBER],

                                                  [VL_SALDO],

                                                  [DT_VENCTO_DUPL_RECEBER],

                                                  [DS_STATUS_DUPLICATA],

                                                  [QT_DUPL_RECEBER_ATRASADAS],

                                                  [QT_DIAS_ATRASO_DUPL_RECEBER]

                                                  From

                                                  [\\jamaica\rcs\QVDs\Duplicatas a Receber CONEXAO15.qvd]

                                                  (QVD);

                                                   

                                                   

                                                  [METAS]:

                                                  LOAD

                                                  [CD_VENDEDOR_ANO_MES],

                                                  [CD_VENDEDOR],

                                                  [DT_NF_SAIDA],

                                                  [VL_META_VENDEDOR]

                                                  From

                                                  [\\jamaica\rcs\QVDs\METAS.qvd]

                                                  (QVD);

                                                   

                                                   

                                                  [Notas Fiscais Devolucao Final]:

                                                  LOAD

                                                  [KEY_NF_SAIDA],

                                                  [DT_NF_SAIDA],

                                                  [CD_CLIENTE],

                                                  [DS_FILIAL],

                                                  [ST_DEVOLUCAO],

                                                  [VL_TOTAL_NF_SAIDA],

                                                  [DS_COND_PAGTO_SAIDA],

                                                  [NR_ITEM_NF_SAIDA],

                                                  [CD_PRODUTO],

                                                  [CD_TES],

                                                  [CD_VENDEDOR],

                                                  [DS_UNID_MED_SAIDA],

                                                  [QT_ITEM_SAIDA],

                                                  [VL_UNIT_ITEM_NF_SAIDA],

                                                  [VL_ICMS_ITEM_SAIDA],

                                                  [VL_TOTAL_ITEM_SAIDA],

                                                  [VL_IPI_ITEM_SAIDA],

                                                  [VL_COFINS_ITEM_SAIDA],

                                                  [VL_PIS_ITEM_SAIDA],

                                                  [VL_ICMS_ST_ITEM_SAIDA],

                                                  [VL_FRETE_ITEM_SAIDA],

                                                  [VL_CUSTO1_ITEM_NF_SAIDA],

                                                  [VL_CUSTO2_ITEM_NF_SAIDA],

                                                  [DS_TIPO_CLIENTE],

                                                  [VL_MARGEM_ITEM_SAIDA],

                                                  [CD_VENDEDOR_ANO_MES]

                                                  From

                                                  [\\jamaica\rcs\QVDs\Notas Fiscais Devolucao CONEXAO15.qvd]

                                                  (QVD);

                                                   

                                                   

                                                  [Notas Fiscais Devolucao]:

                                                  LOAD

                                                  [KEY_NF_SAIDA],

                                                  [DT_NF_SAIDA],

                                                  [CD_CLIENTE],

                                                  [DS_FILIAL],

                                                  [ST_DEVOLUCAO],

                                                  [VL_TOTAL_NF_SAIDA],

                                                  [DS_COND_PAGTO_SAIDA],

                                                  [NR_ITEM_NF_SAIDA],

                                                  [CD_PRODUTO],

                                                  [CD_TES],

                                                  [DS_UNID_MED_SAIDA],

                                                  [QT_ITEM_SAIDA],

                                                  [VL_UNIT_ITEM_NF_SAIDA],

                                                  [VL_ICMS_ITEM_SAIDA],

                                                  [VL_TOTAL_ITEM_SAIDA],

                                                  [VL_IPI_ITEM_SAIDA],

                                                  [VL_COFINS_ITEM_SAIDA],

                                                  [VL_PIS_ITEM_SAIDA],

                                                  [VL_ICMS_ST_ITEM_SAIDA],

                                                  [VL_FRETE_ITEM_SAIDA],

                                                  [VL_CUSTO1_ITEM_NF_SAIDA],

                                                  [VL_CUSTO2_ITEM_NF_SAIDA],

                                                  [DS_TIPO_CLIENTE],

                                                  [VL_MARGEM_ITEM_SAIDA]

                                                  From

                                                  [\\jamaica\rcs\QVDs\Notas Fiscais Devolucao TOTVS11.qvd]

                                                  (QVD);

                                                   

                                                   

                                                  [Notas Fiscais Saida]:

                                                  LOAD

                                                  [KEY_NF_SAIDA],

                                                  [DT_NF_SAIDA],

                                                  [CD_CLIENTE],

                                                  [CD_TRANSPORTADORA],

                                                  [VL_TOTAL_NF_SAIDA],

                                                  [CD_VENDEDOR_ANO_MES],

                                                  [CD_VENDEDOR],

                                                  [DS_COND_PAGTO],

                                                  [DS_FILIAL],

                                                  [ST_DEVOLUCAO],

                                                  [NR_ITEM_NF_SAIDA],

                                                  [CD_PRODUTO],

                                                  [CD_TES],

                                                  [DS_UNID_MED_SAIDA],

                                                  [QT_ITEM_SAIDA],

                                                  [VL_UNIT_ITEM_NF_SAIDA],

                                                  [VL_UNIT_ITEM_NF_SAIDA2],

                                                  [VL_DESCONTO_ITEM],

                                                  [TX_DESCONTO_ITEM],

                                                  [VL_FAT_BRUTO_ITEM_NF_SAIDA],

                                                  [VL_TOTAL_ITEM_SAIDA],

                                                  [VL_ICMS_ITEM_SAIDA],

                                                  [VL_IPI_ITEM_SAIDA],

                                                  [VL_COFINS_ITEM_SAIDA],

                                                  [VL_PIS_ITEM_SAIDA],

                                                  [VL_ICMS_ST_ITEM_SAIDA],

                                                  [VL_FRETE_ITEM_SAIDA],

                                                  [VL_CUSTO1_ITEM_NF_SAIDA],

                                                  [VL_CUSTO2_ITEM_NF_SAIDA],

                                                  [VL_MARGEM_ITEM_SAIDA],

                                                  [DS_TIPO_CLIENTE]

                                                  From

                                                  [\\jamaica\rcs\QVDs\Notas Fiscais Saida CONEXAO15.qvd]

                                                  (QVD);

                                                   

                                                   

                                                  [Notas Fiscais Saida]:

                                                  LOAD

                                                  [KEY_NF_SAIDA],

                                                  [DT_NF_SAIDA],

                                                  [CD_CLIENTE],

                                                  [CD_TRANSPORTADORA],

                                                  [VL_TOTAL_NF_SAIDA],

                                                  [CD_VENDEDOR_ANO_MES],

                                                  [CD_VENDEDOR],

                                                  [DS_COND_PAGTO],

                                                  [DS_FILIAL],

                                                  [ST_DEVOLUCAO],

                                                  [NR_ITEM_NF_SAIDA],

                                                  [CD_PRODUTO],

                                                  [CD_TES],

                                                  [DS_UNID_MED_SAIDA],

                                                  [QT_ITEM_SAIDA],

                                                  [VL_UNIT_ITEM_NF_SAIDA],

                                                  [VL_UNIT_ITEM_NF_SAIDA2],

                                                  [VL_DESCONTO_ITEM],

                                                  [TX_DESCONTO_ITEM],

                                                  [VL_FAT_BRUTO_ITEM_NF_SAIDA],

                                                  [VL_TOTAL_ITEM_SAIDA],

                                                  [VL_ICMS_ITEM_SAIDA],

                                                  [VL_IPI_ITEM_SAIDA],

                                                  [VL_COFINS_ITEM_SAIDA],

                                                  [VL_PIS_ITEM_SAIDA],

                                                  [VL_ICMS_ST_ITEM_SAIDA],

                                                  [VL_FRETE_ITEM_SAIDA],

                                                  [VL_CUSTO1_ITEM_NF_SAIDA],

                                                  [VL_CUSTO2_ITEM_NF_SAIDA],

                                                  [VL_MARGEM_ITEM_SAIDA],

                                                  [DS_TIPO_CLIENTE]

                                                  From

                                                  [\\jamaica\rcs\QVDs\Notas Fiscais Saida TOTVS11.qvd]

                                                  (QVD);

                                                   

                                                   

                                                  [TRANSPORTADORAS]:

                                                  LOAD

                                                  [CD_TRANSPORTADORA],

                                                  [NM_TRANSPORTADORA]

                                                  From

                                                  [\\jamaica\rcs\QVDs\TRANSPORTADORAS_CONEXAO15.qvd]

                                                  (QVD);

                                                   

                                                   

                                                  [TRANSPORTADORAS]:

                                                  LOAD

                                                  [CD_TRANSPORTADORA],

                                                  [NM_TRANSPORTADORA]

                                                  From

                                                  [\\jamaica\rcs\QVDs\TRANSPORTADORAS_TOTVS11.qvd]

                                                  (QVD);

                                                   

                                                   

                                                  [VENDEDORES]:

                                                  LOAD

                                                  [CD_VENDEDOR_ANO_MES],

                                                  [ST_VENDEDOR],

                                                  [DS_LOCAL_VENDEDOR],

                                                  [DS_TIPO_VENDEDOR],

                                                  [DS_GRUPO_VENDEDOR],

                                                  [DS_EQUIPE_VENDEDOR],

                                                  [NM_VENDEDOR],

                                                  [DS_EMAIL_VENDEDOR]

                                                  From

                                                  [\\jamaica\rcs\QVDs\VENDEDORES.qvd]

                                                  (QVD);

                                                • Re: Problemas com referencia circular, como resolvo?
                                                  Márcio Rodrigo Campestrini

                                                  Kleber

                                                   

                                                  Elimine as chaves sintéticas que existem no modelo e depois teste novamente.

                                                  Os links abaixo trazem informação para apoiar essa tarefa.

                                                   

                                                  Synthetic Keys

                                                  Avoid Synthetic Key and Loop in Data Modeling

                                                  Autonumber function

                                                    • Re: Problemas com referencia circular, como resolvo?
                                                      Kleber Gitti

                                                      Veja se acima os dados mais completos vc pode me ajudar.

                                                       

                                                      Sou leigo no assunto e precisava  ajustar isso com uma certa 'urgência', a diretoria esta me cobrando disso.

                                                       

                                                      Obrigado pela paciência!

                                                        • Re: Problemas com referencia circular, como resolvo?
                                                          Márcio Rodrigo Campestrini

                                                          Kleber

                                                           

                                                          Conforme mencionei, você precisa antes de mais nada eliminar as chaves sintéticas, o que por si só já vai facilitar a identificação do seu problema.

                                                           

                                                          Para isso, você deve concatenar os campos de ligação quando mais de um campo ligar duas tabelas. Por exemplo:

                                                           

                                                          A tabela VENDEDORES tem os campos CD_VENDEDOR_ANO_MES e NM_VENDEDOR, que também estão na tabela MASTER_CALENDAR-1. Nas duas tabelas crie um campo com o valor CD_VENDEDOR_ANO_MES & '.' & NM_VENDEDOR com o nome %chaveVendedorCalendario1 e remova os dois campos de uma das tabelas. Faça esse procedimento para cada chave sintética que existir no modelo.

                                                          Depois disso será possível identificar o problema da referencia circular.

                                                          • Re: Problemas com referencia circular, como resolvo?
                                                            Luciano Vasconcelos

                                                            Seu problema não é simples. Conheço a pressão, mas não vai ser tão simples.

                                                            Primeiro você precisa nos contar que campos juntariam com que tabelas do seu modelo. Outra coisa é que vi alguns campos Key que precisamos saber como gerar. Agora o mais importante: Como você vai carregar sem o código antigo no qvw.

                                                            Coloca o app com o código completo.

                                      • Re: Problemas com referencia circular, como resolvo?
                                        Luciano Vasconcelos

                                        Você deve concatenar as tabelas e se precisar segregar que linha vem de qual crie um campo de controle no load.

                                        • Re: Problemas com referencia circular, como resolvo?
                                          Jonas Melo

                                          Olá, Kleber Gitti.

                                           

                                          Antes de ligar o modelo de dados, eu me questionaria sobre a regra de negócio. Ex.: Qual é a ligação da tabela de curso da empresa com o seu faturamento? Mediante a resposta passaria a pensar no modelo de dados.

                                          Vamos imaginar que a resposta seria: o número do pedido, a série do pedido, o código da filial, a data do pedido e o código do produto. Bom! Com isso, criaria uma chave composta entre as tabelas para ligá-las, cuidando de cada campo para ficar no mesmo formato, a fim não haver divergências. Diante disso, assim faria a seguinte associação:

                                           

                                          Tabela_Curso:

                                          LOAD

                                          Autonumber([Numero Pedido] &'_'& [Serie Pedido] &'_'& [%Codigo Filial] &'_& [%Codigo Produto] &'_'& Date([Data Pedido]) as [%Cod Curso Faturamento],

                                          Curso,

                                          [...], //Campos pertinentes ao curso que não sejam os utilizados na chave

                                          [...] //Campos pertinentes ao curso que não sejam os utilizados na chave

                                          From

                                          [..\TabelaCurso.qvd] (qvd);

                                           

                                          Tabela_Faturamento:

                                          Autonumber([Nº NF] &'_'& [Serie NF] &'_'& [%Codigo Filial] &'_& [%Codigo Produto] &'_'& Date([Data Emissao]) as

                                          [%Cod Curso Faturamento],

                                          [Nº NF],

                                          [%Codigo Filial],

                                          [Codigo Produto],

                                          [Data Emissao],

                                          [#Valor Liquido],

                                          [#Valor Total]

                                          [...] //Outros campos pertinentes a tabela de faturamento

                                          From

                                          [..\TabelaFaturamento.qvd] (qvd);

                                           

                                          Observe que a ligação entre as tabelas é feita pelo campo [%Cod Curso Faturamento]. O que elimina a chave circular.

                                          De qualquer forma, o material em anexo, que não é de minha autoria, no Slide 23 aborda uma das possíveis solução para a referência circular.

                                           

                                          Espero ter ajudado!

                                            • Re: Problemas com referencia circular, como resolvo?
                                              Kleber Gitti

                                              Jonas,  obrigado.

                                               

                                              Deixe eu explicar sobre o que tem a ver cursos com faturamento,  é o seguinte:

                                               

                                              Nossa empresa fabrica implantes, proteses e componentes dentarios,  até ai blz,  o curso funciona assim:   nossa empresa tem parcerias com professores de universidades e alunos de odontologia, bem como parceria a entidade em si,  alem de vendermos nossos produtos para eles,  fornecemos isso em regime de consignação tambem, e o proposito então é levantar o faturamento de cada entidade com seus respectivos cursos e alunos/professores e saber como foi o faturamento do curso no periodo,  deu para entender + ou -  ??

                                               

                                              Obrigado pela paciencia!

                                            • Re: Problemas com referencia circular, como resolvo?
                                              Clever Anjos

                                              Já achou uma solução? Se sim e alguma das resposta te ajudou, marque-a como "Correta" para fechar o tópico.

                                              Como obter ajuda? Leia antes de postar

                                              • Re: Problemas com referencia circular, como resolvo?
                                                Márcio Rodrigo Campestrini

                                                Boa tarde Kleber

                                                 

                                                 

                                                Conseguiu resolver o seu problema? Se sim, por gentileza marque a resposta correta para nos ajudar a manter a comunidade organizada.

                                                • Re: Problemas com referencia circular, como resolvo?
                                                  Márcio Rodrigo Campestrini

                                                  Boa tarde

                                                   

                                                  Conseguiu resolver o seu problema? Se sim, por gentileza marque a resposta correta para nos ajudar a manter a comunidade organizada.