e automatizador tudo bem bom nessa atualização aqui do módulo loop over itens eu quero de fato te mostrar como você usa de forma correta esse node para criar aí né uma estrutura de loop ou su loop nas suas automações do ntn tá E por que eu resolvi gravar essa aula aqui porque eu não sei se você se recorda né mas na aula anterior a gente fez um exemplo de su loop nesse novo node né que agora é o loop over itens né onde você tem ali né um uma saída de loop né que é onde
vai estar sendo feito a as interações né ou seja o ciclo né dependendo ali de quantos itens você tem né se você tiver cinco ele vai passar cinco vezes aqui por desse loop tá E aí depois que todos os itens são processados ele sai agora nessa saída Don né então antigamente no split Bet a gente tinha que fazer uma adaptação ali né colocando if para saber se não tem Mas nenhum item a processar para então Eh sair os itens processados que seria o nosso Don né então a saída true do IF era o nosso Don
né então hoje a gente não precisa mais de um if né Por quê Porque o próprio node já tem essa lógica né então é como dissesse o seguinte olha Enquanto Tiver itens sai aqui pelo loop e quando não tiver mais nenhum item né que seria aquela variável de contexto eh no item left né ou seja nenhum item restante foi igual igual a true sai aqui no Don tá então isso Acabou facilitando muito a questão de loop né de fazer um loop ali dentro do ntn porém acabou dificultando ainda mais a parte de su loop né
Por quê Porque mesmo você seguindo o mesmo conceito lá do splitting betat né fazendo o su loop pelo pelo split betat mesmo seguindo o mesmo conceito aqui no no loop over itens ele dava erro né Você pode até depois tentar reproduzir aí você vai ver que ele entra no loop infinito ao ponto de até crashar o seu ntn tá E aí eu não tava entendendo O porquê disso eu ficava pensando assim olha tô usando aqui o mesmo mesma lógica aqui e tá dando esse estouro né E aí eu cheguei a citar que poderia ser um
bug mesmo ali do node tá porém eu acabei conseguindo uma forma de fazer esse su loop mas não da forma que seria adequado então que que eu fiz aqui né inclusive o pessoal até assim depois deu o feedback né dizendo Poxa H beleza funcionou Mas eu achei estranha essa estrutura e eu concordo né Realmente não não faz juz né ao node né então basicamente eu tive que fazer um loop carregando já todos os itens para depois então quando terminasse né ele seguisse aqui para o su loop carregando todos os subitens de de cada item carregado
aqui então ao invés de por exemplo eu fazer assim ó peg o primeiro item daqui depois entra aqui e pega os subitens dele pegou todos os subitens dele volta aqui pega o segundo item entra aqui e pega todos os subitens desse item dois e aí sucessivamente volta aqui pega o item três pego os subitens do item três volta pega o item quatro entendeu esse seria o certo mas como eu não estava entendendo porque não estava funcionando né dessa forma eu acabei fazendo desse jeito então eu pegava todos os itens aqui por exemplo vou pegar cinco
itens né que seriam cinco leads né cinco clientes aqui depois que todos eles estivessem carregados né em memória eu já ia para cá e pegava eh todos os estados né claro os estados eles eles VM daqui né Aqui tem uma lista de estados E aí eu determinava o seguinte olha para cada Estado né que foi gerado no caso ali Acho que são são quatro Estados né aqui gera cinco leads e aqui gera quatro Estados né então eu determinar o seguinte ó para cada cliente para cada Lead associe os cinco os quatro Estados né então fazendo
uma multiplicação de 5 vezes e 4 dá 20 então eu teria que ser 20 20 possíveis combinações tá E é o que realmente acontece ó se eu executar aqui workflow ó ele gerou as 20 combinações né que seria pegar cada cliente né que são cinco né e para cada um associar um Estado então o mesmo cliente estaria associado a Quatro estados e aí fazendo a multiplicação dá 20 tá então funciona funciona mas é a forma correta de se fazer não tá E aí eu resolvi depois separar um tempinho para tentar fazer na lógica que é
adequada e entender porque não estava funcionando e aí Finalmente eu entendi o que que estava dando erro o por estava dando erro e aí eu só fui fazer essa alteração e olha funcionou perfeitamente e é o que eu vou te mostrar aqui nessa aula tá então eu vou acessar aqui a nova estrutura tá aliás um workflow aqui com insu de su loop tá já no formato correto Ok então está aqui ó o su loop nesse novo node né que é o loop over itens ele é feito aqui dessa maneira tá E e aí eu vou
te explicar o que que o que que tava de errado aqui o que que eu fiz para poder corrigir tá então primeiro vamos executar aqui ó Para comprovar que realmente tá funcionando tá ó então você vê aqui Não cachou o meu ntn tá Não cachou o meu ntn e de fato ele gerou aqui as 20 combinações tá você vê né que cada ciclo aqui né ele pegou cada cliente e associou um estado que no caso foi Rio de Janeiro depois ele foi lá ó pegou pegou cada cliente né e associou ao segundo estado que é
São Paulo entendeu E ele foi fazendo isso com todos os estados associando os cinco clientes em cada um E aí dando uma combinação aí de 20 itens tá então certinho Hugo O que que você fez para poder conseguir né fazer esse novo node aí funcionar no su Pessoal a questão foi o seguinte tá eh que que acontece aqui ele pega a lista de estados tá e se ele vamos vamos botar aí eh a lista que a gente vai usar como subitens tá E aí em seguida ele entra aqui e já pega a lista de leads
tá e vamos dizer que é a nossa lista de itens então leads são os itens e estados né são subitens tá isso vai se aplicar a qualquer automação aí sua né À vezes você deve ter ali por exemplo eh clientes e pedidos clientes e assinaturas se você sempre vai ter um conceito de itens e subitens tá na sua automação Então eu só tô usando leads e estados como exemplo aqui tá E aí o que que acontece eh depois que eu carregava né A minha lista de itens depois eu vinha aqui e carregava a minha lista
de de leads né eu fazia aqui ó o conceito de suop então é como eu determinar o seguinte olha carrega aqui os quatro Estados tá agora para cada Estado né para cada Estado pegue aqui o Lead seja pega um lead e associe esse Lead a esse estado Ok E aí eu fazia isso no subitem praticamente vezes certo porque concorda que se aqui ele retornou C ao entrar aqui nesse loop aqui ele vai rodar cinco vezes aqui ok da mesma forma esse loop aqui pega a lista de UFS né que são quatro Estados né ele tem
que rodar quatro quatro vezes tá então basicamente era isso a estrutura estava certa tá Mas tinha uma condição aqui que a princípio estava certa mas não sei por qual motivo ela parou de funcionar nesse novo node E aí eu só tive que mudar uma outra variável que é aqui ó tá nesse node aqui o que que acontece eh vou tentar explicar mais uma vez para ver se facilita aí o entendimento tá então a ideia seria o seguinte eh para cada Estado né que ele pegou aqui que seriam quatro né ou seja esse ciclo aqui todo
ó esse aqui tudo ó tem que rodar quatro vezes tá e já esse aqui tem que rodar cinco por esse aqui pertence a essa quantidade de clientes que são cinco e esse aqui todo pertence a esse aqui que são quatro Estados tá então tem que rodar quatro vezes aqui no no no loop e cinco vezes aqui eh no sub no su loop tá dando uma combinação de 20 itens 5 x 4 20 tá E aí o que acontece é o seguinte quando você se quando se trata de um node para suop Ou seja é o
node que vai fazer ali a a sub repetição tá você tem que usar otion chamado reset tá por reset porque a ideia é o seguinte por exemplo depois que ele pega aqui o primeiro estado né vamos dizer que ele pegou ali Rio de Janeiro né E aí ele foi pegou os cinco clientes né e agora nesse loop aqui ele vai associar os cinco clientes ao Rio de Janeiro Ok E aí a ideia é o seguinte depois que ele associar o Rio de Janeiro aos cinco clientes né esse node aqui tem que ser resetado para que
quando esse aqui novamente for acionado ou seja pegando o próximo estado que seria São Paulo né Eh ele possa novamente pegar os cinco clientes e dessa vez ele rodar só representando o estado de São Paulo Deu para entender porque se você não reseta ele é como ele processasse novamente os clientes para o Estado do Rio de Janeiro e depois vai processar para São Paulo ou seja ele não vai rodar apenas cinco vezes aqui na segunda tentativa desse primeiro loop aqui já vai rodar 10 vezes porque ele vai repetir novamente o ciclo do Estado do Rio
de Janeiro e mais o ciclo de São Paulo então por isso que a gente tem que usar o reset no su loop tá sempre que você for usar su loop seja no segundo nível terceiro nível quarto nível quinto nível em diante você tem que resetar esse su loop tá então eh quando a gente reseta aí foi como eu falei ele vai rodar mas somente para o o item daquela vez tá ele não vai repetir os itens anteriores então a mesma coisa ele vai pegar agora só São Paulo vai rodar cinco vezes porque são cinco clientes
e vai gerar mais cinco combinações Ok então já vai totalizar 10 combinações e aí mesma coisa ó depois ele vai voltar aqui vai pegar o terceiro estado né vamos dizer que seja Minas Gerais vai pegar novamente os cinco clientes e aí aqui vai resetar e ele vai fazer o loop só os clientes a Minas Gerais e assim fazendo por último né que pega lá o estado do Espírito Santo que é o quarto estado pega novamente os cinco leads e faz o suop apenas para o estado do Espírito Santo OK E aí gera mais cinco combinações
então totalizando Eh 20 itens ok Porque rodou quatro vezes né rodou esse ciclo aqui quatro vezes fazendo cinco combinações em cada ciclo então 4 x 5 20 tá eu tô sempre forçando para poder isso fixar na sua mente tá e da forma assim mais simples possível Ok E aí é onde entra agora aqui o pulo do gato tá Ah o que que acontece você tem que deixar esse reset aqui dinâmico tá vou tirar essa expressão aqui mas eu já vou colocar para você entender tá então por exemplo ó por padrão não vem o reset tá
então você tem que vir aqui addd apption e aí vai aparecer essa opção reset tá E aí para resetar ele tem que tá em true tá Porém você não pode simplesmente deixar assim por se você fizer assim com valor fixo ele vai resetar na primeira interação então por exemplo vamos dizer que ele pegou o primeiro o primeiro cliente aqui aliás vamos lá ele entrou aqui eh Considerando o primeiro estado Rio de Janeiro certo aí pegou os cinco clientes Quando ele chegar aqui concorda que ele vai ter que rodar cinco vezes porque são cinco clientes que
ele tem que associar o Rio de Janeiro então se você já deixa o reset ativado ali quando ele associar o Rio de Janeiro ao primeiro cliente quando ele voltar aqui para pegar o segundo ele vai resetar isso aí vai dar um problema no seu ntn tá então esse reset aqui ele tem que ser dinâmico tá em que sentido somente quando todos os clientes né que são os subitens forem processados aí sim faz o reset para que possa pegar um novo estado e novamente pegar esses cinco clientes e associar o novo estado a esses cinco clientes
Deu para entender então esse reset aqui ele tem que ser dinâmico então aqui a gente colocava uma expressão né e Para quê Para que ele apontasse tá para uma variável chamado no itens left né Ou seja é uma é uma variável de contexto né e específica aqui do loop over itens quando não tem mais nenhum itens a ser processados então por padrão ele vai vir como false depois que todos os itens são processados nesse loop ele retorna true tá então a ideia seria o seguinte a lógica Ó depois que esse eh loop over item aqui
né do subitem processar todos os cinco clientes ou seja associar todos os os cinco clientes ao primeiro estado reseta o o node tá essa é a lógica então por isso que a gente acaba usando ó vou até clicar aqui ó a gente acaba usando essa variável aqui ó chamado no itens left tá vendo que agora aqui ele retornou true o realmente não tem mais itens a a ser processados ele processou todos ali no subitem tá porém pelo incrível que pareça por mais que que era a a variável correta a ser utilizada tá não sei por
ao utilizar essa variável mesmo sendo a variável ali adequada tá dava erro simplesmente dá erro tá então eu acredito que sim é um bug do do node tá E que talvez o pessoal do NN não percebeu e não corrigiu tá porém como tem uma outra variável que você pode utilizar aqui né então acaba não sendo ali um bug crítico né não é algo que se o HN não consertar você não consegue mais fazer su loop nas automações não tá e qual variável é essa o essa daqui ó chamado don tá então o Don ele tem
o mesmo propósito aqui do itens left né da mesma forma quando não tem mais itens left e Eles saem no Don né o Don ele vai ser true quando de fato todos os itens forem processados ou seja se isso aqui for true o Don vai ser true Ok então enquanto item Left for falso for felse né o Don também vai ser felse ou seja o Don depende do item lev se o item lev está falso ele continua falso mas se ele ficar verdadeiro o Don vai ficar verdadeiro também tá então você pode também se basear
nessa variável de contexto T então foi exatamente o que eu fiz então só foi eu trocar essa variável aqui de contexto e pronto funcionou sabe eu fiquei assim surpreso eu falei caramba eraí ISS n então é basicamente isso você tem que fazer você tem que colocar aqui no reset do do teu loop tá essa variável do próprio node Ok então repare que eu usando aqui o loop over item Zoom que é exatamente o meu node de loop tá você não vai pegar o do do loop tá é o do próprio suop Ok então você vai
apontar para ele aqui tá E aí é exatamente o que vai acontecer ou seja toda vez que essa saída aqui do Don né do suop for acionada né para poder acumular a combinação né esse node aqui vai ser resetado para ele poder fazer um novo su loop do próximo item do loop Ficou claro aqui então é basicamente isso tá então ó novamente eu posso rodar aqui ó ele não vai travar o ntn ó ele vai processar Ó você tá reparando que a cada ciclo aqui ó ele Vai acumulando a combinação como eu falei ó V
dou um zoom aqui ó vou dar um um zoom bem grande aqui no suop tá limpar aqui vou rodar novamente ó então foi lá pegou ó lá colocou cinco combinações depois 10 combinações depois 15 combinações e por fim 20 combinações tá então é basicamente isso é assim que faz o su loop de forma correta usando loop over tá bom Espero que você tenha gostado dessa aula e caso ainda tenha dúvida pode deixar aí nos comentários tá bom Um abraço e valeu