Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Earn a 50% discount on the DP-600 certification exam by completing the Fabric 30 Days to Learn It challenge.

Reply
theusorla
Frequent Visitor

Dependency cycle was detected

Estou tentando salvar meu fuxo de dados porem apresenta esse erro:

 

theusorla_0-1633436669021.png

 

theusorla_1-1633436786861.png

 

 

tenhos as seguintes funções:

fn_loopChamados

 

let
  Fonte = (
     
    optional MaxPag as number,
    optional LoopsRealizados as number,
    optional TabelaAnterior as table
) =>
let
    //Cada vez que o algoritimo passar por aqui, ele incrementa +1
    Loop = 
        if LoopsRealizados = null
        then 1
        else LoopsRealizados +1,

    //tentamos buscar os dados da págia, e se der erro, carrega a varável com null
    TabelaAtual =
        try fn_ConsultaChamado(Loop) //1
        otherwise null,

    // Essa tabela será carregada a cada passagem que o Algorítimo fizer por ela
    TabelaAnterior =
        if TabelaAnterior = null //será null apenas na primeria passagem
        then Table.FromRecords({[]})
        else TabelaAnterior,

    // Aqui vamos colar cada tabela encontrada, abaixo da outra
    TabelaFim =
        if
                TabelaAtual = null
            or  Table.RowCount(TabelaAtual) = 0
        then TabelaAnterior
        else if Loop = 1
        then TabelaAtual 
        else Table.Buffer(  Table.Combine({TabelaAnterior,  TabelaAtual})),

    // Condição para voltar ao início (tipo jogo da vida) ou sair do Loop), finalizand-o
    out =
        if
                TabelaAtual = null  
            or  Table.RowCount(TabelaAtual) = 0
            or  Loop = MaxPag
        then TabelaFim
        else @FN_loopChamados(MaxPag, Loop, TabelaFim)
in
    out
in
  Fonte

 

fn_ConsultaChamado

 

let
  Fonte = (pagina as number) =>

let
  Origem = Json.Document(Web.Contents(api_TT_url_chamados & api_TT_token & "/", [RelativePath= Text.From(pagina)&"/"])),
  #"Convertido em tabela" = Table.FromRecords({Origem}),
  #"Expandido data" = Table.ExpandListColumn(#"Convertido em tabela", "data"),
  #"Expandido data1" = Table.ExpandRecordColumn(#"Expandido data", "data", {"idchamado""protocolo""titulo""mensagem""mimetype""email_cliente""prioridade""tempotrabalho""tempoabertura""data_criacao""deadline""valoritemhora""valoritemhoraextra""valorfinal""valorfinalextra""valorfinalbruto""nomecliente""tipochamado""avaliadoproblemaresolvido""avaliadoatendimento""avaliacaocomentario""dataprimeiraresposta""dataencerramento""ultimasituacao""dataultimasituacao""sla_inicio""sla_deadline""sla_inicializacao_cumprido""sla_deadline_cumprido""descsituacao""categoria""departamento""atendente""id_cliente""status""dataultimostatus""nomeorganizacao""campospersonalizados""campospersonalizados_finalizados"}, {"data.idchamado""data.protocolo""data.titulo""data.mensagem""data.mimetype""data.email_cliente""data.prioridade""data.tempotrabalho""data.tempoabertura""data.data_criacao""data.deadline""data.valoritemhora""data.valoritemhoraextra""data.valorfinal""data.valorfinalextra""data.valorfinalbruto""data.nomecliente""data.tipochamado""data.avaliadoproblemaresolvido""data.avaliadoatendimento""data.avaliacaocomentario""data.dataprimeiraresposta""data.dataencerramento""data.ultimasituacao""data.dataultimasituacao""data.sla_inicio""data.sla_deadline""data.sla_inicializacao_cumprido""data.sla_deadline_cumprido""data.descsituacao""data.categoria""data.departamento""data.atendente""data.id_cliente""data.status""data.dataultimostatus""data.nomeorganizacao""data.campospersonalizados""data.campospersonalizados_finalizados"}),
  #"Tipo de coluna alterado" = Table.TransformColumnTypes(#"Expandido data1", {{"erro"type logical}, {"data.idchamado"type text}, {"data.protocolo", Int64.Type}, {"data.titulo"type text}, {"data.mensagem"type text}, {"data.mimetype"type text}, {"data.email_cliente"type text}, {"data.prioridade", Int64.Type}, {"data.tempotrabalho", Int64.Type}, {"data.tempoabertura", Int64.Type}, {"data.data_criacao"type datetime}, {"data.deadline"type datetime}, {"data.valoritemhora", Int64.Type}, {"data.valoritemhoraextra", Int64.Type}, {"data.valorfinal", Int64.Type}, {"data.valorfinalextra", Int64.Type}, {"data.valorfinalbruto", Int64.Type}, {"data.nomecliente"type text}, {"data.tipochamado"type text}, {"data.avaliadoproblemaresolvido"type text}, {"data.avaliadoatendimento"type text}, {"data.avaliacaocomentario"type text}, {"data.dataprimeiraresposta"type datetime}, {"data.dataencerramento"type datetime}, {"data.ultimasituacao", Int64.Type}, {"data.dataultimasituacao"type datetime}, {"data.sla_inicio"type datetime}, {"data.sla_deadline"type datetime}, {"data.sla_inicializacao_cumprido"type logical}, {"data.sla_deadline_cumprido"type logical}, {"data.descsituacao"type text}, {"data.categoria"type text}, {"data.departamento"type text}, {"data.atendente"type text}, {"data.id_cliente"type any}, {"data.status"type text}, {"data.dataultimostatus"type datetime}, {"data.nomeorganizacao"type text}, {"data.campospersonalizados"type any}, {"data.campospersonalizados_finalizados"type any}, {"total_itens", Int64.Type}}),
  #"Transformar colunas" = Table.TransformColumnTypes(#"Tipo de coluna alterado", {{"data.id_cliente"type text}, {"data.campospersonalizados"type text}, {"data.campospersonalizados_finalizados"type text}}),
  #"Substituir erros" = Table.ReplaceErrorValues(#"Transformar colunas", {{"data.id_cliente"null}, {"data.campospersonalizados"null}, {"data.campospersonalizados_finalizados"null}})
in
  #"Substituir erros"
in
  Fonte
 
 
 
 
E a tabela fazendo a chamada da função:
 
Função invocada
 
let
  Origem = fn_loopChamados(2nullnull)
in
  Origem
 
 

 

 

1 REPLY 1
lbendlin
Super User
Super User

Your two functions call each other.

 

...
    TabelaAtual =
        try fn_ConsultaChamado(Loop) //1
        otherwise null,
...

Alsio note that Power Query uses List.Generate or recursive function calls to do "looping".  You can refactor your query accordingly to avoid the circular dependency.

Helpful resources

Announcements
LearnSurvey

Fabric certifications survey

Certification feedback opportunity for the community.

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.

Top Solution Authors