em 08-13-2021 09:13 AM
Imagine o cenário onde voce precisa chamar uma consulta a uma base de dados no entanto a condição da consulta pode mudar de acordo com os dados definidos pelo usuário ou pelos dados que estão passando pelo fluxo. Então, como é possível chamar uma consulta a dados dinamicamente alterando os seus parametros em tempo de execuçao do fluxo?
A resposta é: Usando a Ferramenta de Entrada Dinamica
Vamos a um caso de exemplo: Usuário necessita buscar informações de histórico de vendas das lojas. Dependendo do dado de entrada do fluxo, a escolha dessas lojas poderá mudar dinamicamente:
Passo 1: Preparar os dados que serão passados dinamicamente para a consulta
Na imagem abaixo podemos ver uma coluna chamada "StoreNumber" com os valores 107 e 105, que serão as lojas que iremos buscar na base de dados no momento de execução do fluxo:
Uma lista de dados para uma consulta SQL precisa estar entre aspas simples ( ' ' ), por isso, vamos inserir uma Ferramenta de Fórmula para fazer esse tratamento:
Com o dado já entre aspas simples, agora é necessário concatena-los para que fiquem em uma unica coluna, um do lado do outro. Para isso, vamos utilizar a Ferramenta de Sumarizar e ação de concatenar, como na imagem abaixo:
Compare o resultado antes e depois da ferramenta. Antes tinhamos uma coluna de Store Numbers com os dados um em cada linha. Depois, há um único registro ou célula contendo todas as Stores Number com aspas ao redor de cada uma.
Muito bem, agora está começando a parecer algo que pode ser inserido em uma consulta, mas ainda falta colocar essa lista dentro de paranteses. () . Portanto, uma Ferramenta de Fórmula irá resolver isso:
Passo 2: Chamar a consulta
Uma vez que a lista de dados está pronta para ser enviada dinamicamente para a consulta, vamos usar a Ferramenta de Entrada Dinamica para fazer essa chamada:
No modelo de fonte de dados de entrada:
1- definir a consulta para extrair todas as colunas que desejo da tabela e escolher uma lista de lojas inicial.
2- configurar a ferramenta para modificar a consulta SQL substituindo uma string específica. A ferramenta substituirá a lista default da consulta pela nova lista de Store Number armazenadas na coluna Concat_StoreNumbers:
Feito isso e ao executar o fluxo, a consulta nova retornará os dados desejados:
Bastante útil!
Eu particularmente gosto muito do Dynamic Input. Uma outra maneira interessante é usar o Dynamic Input In-DB, pois você consegue montar uma query em extenso pelo Alteryx e enviar ao banco. Acho ainda mais dinâmico e bem poderoso se usado corretamente!