el 08-13-2021 09:22 AM
Imagine el escenario en el que necesita llamar a una consulta a una base de datos, sin embargo, la condición de la consulta puede cambiar según los datos definidos por el usuario o los datos que fluyen durante la ejecucíon de su flujo de trabajo. Entonces, ¿cómo es posible llamar a una consulta de datos cambiando dinámicamente sus parámetros cuando se ejecuta el flujo?
La respuesta es: Herramienta de Entrada Dinámica
Veamos un ejemplo de caso: El usuario necesita buscar datos de historial de ventas por tienda. Sin embargo, la elección de las tiendas puede cambiar dinámicamente
Paso 1: preparar los datos que pasarán dinámicamente a la consulta
En la imagen de abajo podemos ver una columna llamada "StoreNumber" con valores 107 y 105, que serán las tiendas que buscaremos en la base de datos cuando se ejecute el flujo:
Una lista de datos para una consulta SQL debe incluirse entre comillas simples ('), así que insertamos una herramienta de fórmula para hacer este tratamiento:
Con los datos ya encerrados entre comillas simples, ahora es necesario concatenarlos para que estén en una sola columna, una al lado de la otra. Para esto, usaremos la herramienta de Resumir con la acción concatenar, como en la imagen a continuación:
Compare el resultado antes y después de la herramienta. Antes teníamos una columna Store Numbers con un dato en cada fila. Así quedará un solo registro o celda con todos los números de tienda entre comillas.
Bien, ahora está empezando a verse como algo que se puede insertar en una consulta, pero esa lista aún debe estar entre parentesis. (). Entonces, una herramienta de fórmula resolverá esto:
Paso 2: llamar a la consulta
Una vez que la lista de datos esté lista para enviarse dinámicamente a la consulta, usemos la Herramienta de entrada dinámica para realizarla:
En el modelo de fuente de datos de entrada:
1- define la consulta para extraer todas las columnas que quieras de la tabla y elige una lista de tiendas inicial.
2- configurar la herramienta para modificar la consulta SQL reemplazando una cadena específica. La herramienta reemplazará la lista predeterminada de la consulta con la nueva lista de Números de tienda almacenada en la columna Concat_StoreNumbers:
Una vez hecho esto y al ejecutar el flujo, la nueva consulta devolverá los datos deseados: