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

Get certified in Microsoft Fabric—for free! For a limited time, the Microsoft Fabric Community team will be offering free DP-600 exam vouchers. Prepare 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
OCT PBI Update Carousel

Power BI Monthly Update - October 2024

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

September Hackathon Carousel

Microsoft Fabric & AI Learning Hackathon

Learn from experts, get hands-on experience, and win awesome prizes.

October NL Carousel

Fabric Community Update - October 2024

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

Top Kudoed Authors