Repeater (Repetidor)
"Repetidor" é usado nos casos em que você deseja repetir uma tarefa, por um determinado número de vezes. Vamos supor que você gostaria de enviar cinco e-mails com os assuntos "Olá 1", "Olá 2", ... "Olá 5". Isso pode ser feito conectando o módulo Email > "Send me an email" após o módulo "Repetidor":
Com os módulos configurados da seguinte forma:
Você pode imaginar o módulo "Repetidor" como um gerador de pacotes produzindo um pacote após o outro. Cada pacote contém um item chamado "i" do tipo Número. O valor inicial do item "i" é especificado no campo "Initial value".
O número de repetições (= número de feixes produzidos) é especificado no campo "Repeats". O valor do item "i" é aumentado em cada repetição pelo valor especificado no campo "Step", que é 1 por padrão (marque a caixa de seleção "Show advanced settings" para revelá-lo).
Iterator (Iterador)
"Iterador" é um tipo especial de módulo que converte uma matriz (array) em uma série de pacotes (bundles). Cada item da matriz será gerado como um pacote separado.
Configurando um iterador
A configuração de um iterador é feita da mesma forma que a configuração de qualquer outro módulo. O campo "Array" contém a matriz a ser convertida/dividida em pacotes separados.
Exemplos:
SALVAR ANEXOS DE E-MAIL NO GOOGLE DRIVE
O cenário abaixo mostra como recuperar e-mails com anexos e salvar os anexos como arquivos únicos em uma pasta selecionada do Google Drive.
Os e-mails podem conter uma variedade de anexos. O módulo "Iterador" inserido após o primeiro módulo permite manipular cada anexo separadamente. O "Iterador" divide a matriz de anexos em pacotes únicos, cada pacote com um anexo salvará um de cada vez em uma pasta selecionada do Google Drive.
A configuração do módulo Iterator "Attachments[ ]" é mostrada acima - o campo Array deve conter o array.
ITERADORES ESPECIALIZADOS
Para sua conveniência, muitos aplicativos do Toolzz Connect oferecem módulos iteradores especializados com uma configuração simplificada. Por exemplo, o aplicativo Email contém o iterador especial Email > "Iterate attachments" que produzirá os mesmos resultados que o "Iterador" geral sem precisar especificar a matriz, apenas o módulo de origem.
Solução de problemas: o painel Mapeamento não exibe itens mapeáveis no módulo Iterator
Quando um "Iterator" não possui informações sobre a estrutura dos itens do array (matriz), o painel de mapeamento nos módulos que seguem o Iterator exibirá apenas dois itens:
"Total number of bundlese" e "Bundle order position".
A razão para isso é que na plataforma, cada módulo é responsável por fornecer informações sobre os itens que ele gera, para que esses itens possam ser exibidos corretamente no painel de mapeamento nos módulos seguintes. No entanto, existem vários módulos que podem não fornecer essas informações em alguns casos, por exemplo, JSON > "Parse JSON" ou Webhooks > "Custom Webhook" personalizados com estrutura de dados ausente.
A solução é executar manualmente o cenário para fazer o módulo aprender sobre os itens que ele gera para poder fornecer as informações aos módulos seguintes.
Por exemplo, se você tiver um módulo JSON > "Parse JSON" sem uma estrutura de dados e então, você conectar um módulo "Iterator" a ele, não poderá mapear a saída do módulo para o campo "Array" no painel de configuração.
Para resolver isso, basta iniciar manualmente o cenário no editor. Você pode desvincular os módulos após o módulo JSON > "Parse JSON" para impedir que o fluxo prossiga ou clicar com o botão direito do mouse no módulo JSON > "Parse JSON" e escolher "Run this module only" no menu de contexto para executar apenas esse módulo.
Uma vez executado, ele aprende sobre os itens que gera e fornece essas informações para todos os módulos a seguir, incluindo o Iterator. O painel de mapeamento na configuração do Iterator exibirá os itens.
Além disso, o painel de mapeamento nos módulos conectados após o Iterator exibirá os itens contidos nos itens do "array".
Resumindo: se você não conseguir ver alguns itens no painel de mapeamento de um módulo, basta executar o cenário uma vez para que todos os módulos possam aprender sobre os itens que eles produzem e fornecer essas informações aos módulos seguintes.
Array aggregator (agregador de matriz)
O "agregador de matriz" é um módulo agregador, que permite mesclar vários pacotes em um único pacote. A imagem a seguir mostra uma configuração típica do módulo "agregador Array".
Source Module | O módulo a partir do qual a agregação do pacote será iniciada. O módulo de origem geralmente é um "iterador" ou um "search module" (módulo de pesquisa) que gera uma série de pacotes configuráveis.
Depois de configurar o "Source Module" (módulo de origem) do agregador e fechar a configuração do agregador, a rota entre o módulo de origem e o agregador será envolvida em uma área cinza para visualizar o início e o fim da agregação. |
Target structure type | A estrutura de destino na qual os dados devem ser agregados. A opção padrão é "Custom", que permite escolher itens que devem ser agregados ao item "Array" do pacote de saída do agregador Array.
Depois de conectar mais módulos após o módulo "agregador Array" e voltar para a configuração do módulo, o menu suspenso "Target structure type" conterá todos os módulos a seguir e seus campos que são do tipo "Array of Collections", como, por exemplo, o campo "Attachments do Slack" > módulo "Create a Módulo".
|
Group by | A saída do agregador pode ser dividida em vários grupos com a ajuda do "Group by field". Ele pode conter uma fórmula, que é avaliada para o pacote de entrada de cada agregador. O agregador então gera um pacote por cada valor de fórmula distinto. Cada pacote contém dois itens:
|
Stop processing after an empty aggregation | Por padrão, o agregador gera o resultado mesmo no caso de nenhum pacote chegar ao agregador (por exemplo, porque todos foram filtrados no caminho).
Se a opção "Stop processing after an empty aggregation" estiver habilitada, o agregador não produzirá nenhum pacote de saída neste caso e o fluxo será interrompido. |
🚨 Atenção!
Os pacotes configuráveis gerados pelo módulo de origem e quaisquer outros, entre o módulo de origem e o módulo agregador, não são gerados pelo agregador, portanto, os itens nesses pacotes configuráveis não são acessíveis pelos módulos no fluxo após o agregador.
Se você precisar acessar itens de pacotes gerados pelo módulo de origem e quaisquer outros, entre o módulo de origem e o módulo agregador, certifique-se de incluí-los no campo "Aggregated fields" na configuração do módulo "Array aggregator".
Se os itens estiverem hospedados (ou seja, contidos em um item de coleção), eles não podem ser facilmente selecionados no campo Campos agregados do "Array aggregator". Por exemplo, se os pacotes contiverem um coleção de item "user" com dois itens "name" e "email". Então, apenas o item "user" pode ser selecionado.
Então, apenas o item de coleção do usuário pode ser selecionado:
Essa configuração produzirá a seguinte saída:
Personalizando a saída
Se você deseja personalizar totalmente a estrutura de saída do "Array aggregator".
Passo a passo:
1º passo: o módulo JSON > "Create JSON" após o módulo "Array aggregator"
2º passo: abra a configuração do módulo JSON > "Create JSON".
3º passo: configure uma estrutura de dados para os itens que você deseja que sejam gerados no "Array aggregator". A estrutura de dados deve ser uma matriz de coleções e as coleções devem conter os itens que você deseja incluir na saída. Aqui está um exemplo de estrutura de dados com dois itens de texto "Name" e "Email":
4º passo: abra a configuração do módulo "Array aggregator".
5º passo: no campo "Target structure type", escolha o campo "Users".
6º passo: os campos correspondentes à Estrutura de dados criada no passo 3 aparecerão na configuração do módulo "Array aggregator". Mapeie todos os itens nos campos como achar melhor. Agora você pode mapear facilmente itens hospedados usando o painel de mapeamento e até mesmo usar fórmulas.
7º passo: a saída do módulo "Array aggregator" ficará assim:
Se você deseja salvar a operação realizada pelo JSON > módulo "Create JSON", basta colocá-lo em uma rota desativada após um roteador.
Se você deseja omitir condicionalmente um item da saída do módulo, use uma fórmula que avalie a palavra-chave "ignore".
Se "4. User: Email" estiver vazio, o item "Email" será completamente omitido da saída.
Pronto! Agora você já sabe tudo sobre a ferramenta "Controle de fluxo" do Toolzz Connect.