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

Be one of the first to start using Fabric Databases. View on-demand sessions with database experts and the Microsoft product team to learn just how easy it is to get started. Watch now

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
Las Vegas 2025

Join us at the Microsoft Fabric Community Conference

March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount!

ArunFabCon

Microsoft Fabric Community Conference 2025

Arun Ulag shares exciting details about the Microsoft Fabric Conference 2025, which will be held in Las Vegas, NV.

December 2024

A Year in Review - December 2024

Find out what content was popular in the Fabric community during 2024.