Free Trial

Blog

Visiones e ideas de las mentes más brillantes en el campo del análisis.
Andreina
Alteryx Alumni (Retired)

Uno de estos días, navegando por nuestra comunidad de Alteryx encontré una analogía perfecta para definir las Batchs Macro: Imagina que tú y tu familia queréis haceros el mismo traje para tomaros la típica foto de navidad familiar.

 

https://media.giphy.com/media/U7PvXnYwDhf3rbZF0n/giphy.gifhttps://media.giphy.com/media/U7PvXnYwDhf3rbZF0n/giphy.gif

 

Para eso, dependiendo de cada miembro de la familia vas a necesitar mas o menos cantidad de tela y de hilo pero al final  vas a seguir el mismo proceso para construir el traje. Pues…. eso mismo es una batch macro o macro por lotes!!!!

 

Una macro por lotes es un proceso analítico que se repite en función a un set de datos. Por cada fila se ejecutará la macro y ésta generará una salida. Utilizando la analogía del traje: por cada combinación de medidas obtengo como salida UN traje.

 

Vamos a crear una batch macro con un ejemplo:  

 

Digamos que tenemos un dataset muy sencillo de  precios de nuestros productos en una moneda, por ejemplo Dolares, y otro dataset donde se indican las conversiones entre dolares y otras diez diferentes monedas.  Como resultado queremos generar un fichero de precios diferente para cada diferente moneda local.

 

Por tanto:

 

  • Tenemos un dataset de precios:

Andreina_0-1671799523435.png

 

 

  • Tenemos las conversiones de dólares a las distintas monedas:

Andreina_1-1671799565688.png

 

El resultado final es  generar un fichero con precios y moneda local para distribuir a cada uno de los paises.

 

Andreina_0-1671801003885.png

 

 

Para crear una batch macro deberemos seguir los siguientes pasos:

 

  • En un workflow nuevo, conecta a tus dos fuentes de datos. Este será el workflow que llamará a nuestra nuevo macro.

 

Andreina_2-1671799725998.png

 

  • Ejecutamos el workflow y  haremos una copia de un trocito del Dataset de Precios (dos-tres registros es suficiente)

 

Andreina_3-1671799780201.png

 

 

  • Crea otro nuevo workflow y pega los registros copiados en el paso anterior. Este nuevo workflow resultará siendo nuestra Batch Macro

Andreina_4-1671799824529.png

 

  • Haz clic  con el botón derecho sobre la tool de Entrada de Texto y selecciona la opción “Convertir a Entrada de Macro"

 

Andreina_5-1671799869266.png

Y así, oficialmente, estamos en el desarrollo de una MACRO!

 

Andreina_6-1671799899760.png

 

 

Incorporamos todas las transformaciones que necesitamos pensando en un caso muestra, por ejemplo “ Vamos a crear un fichero de precios Euros” , esto es:

 

Incorporar una tool Formula para :

 

  • Crear el campo “precio_Local” multiplicando el Precio por la tasa dólar-euro
  • Crear  el campo “Moneda” que será como llamaremos nuestro fichero

Andreina_7-1671799991997.png

 

  • Incorporar una tool Datos de Salida, indicando que queremos un fichero yxdb ( Base de Datos Alteryx) y que en el nombre como sufijo el concatene el nombre de la moneda

 

Andreina_8-1671800028839.png

 

Tal como lo tenemos ahora, hemos construido una Macro Estándar que toma una lista de precios en dólares y genera una lista de precios en euros.

 

Ahora vamos a transformar nuestra macro Estándar en una Macro por Lotes o Batch Macro, de modo que varíe los cálculos para los distintos tipos de moneda, es decir, que si entra Yenes,  en el campo precio_local lo multiplique por la tasa Dolar-Yenes y que en el campo Moneda indique “Japanese Yen”,  que luego  lo haga para otra moneda y así sucesivamente.  Para eso:

 

  • Incorpora una tool de tipo Parámetro de Control, ubicada en la categoría Interfaz y conecta su Ancla de Salida al Ancla de Entrada que se encuentra en la parte superior de la tool Fórmula (que tiene una Q).
  • Cambia el nombre a a la tool Parámetro de Control e indica “Conversion"
  • Incorpora otra tool de tipo Parámetro de Control, y conéctala a la fórmula de la misma manera. A esta tool le llamas “Moneda”

 

  • Andreina_9-1671800225591.pngModifica las fórmulas, indicando:

En precio_local: Deberás reemplazar “0.94” y tendrás que incorporar el campo #1 ( Parámetro de control) Conversion

Andreina_10-1671800278005.pngEn Moneda: Deberás reemplazar  la palabra “Euros” por “#2 (Parámetro de control) Moneda

Andreina_11-1671800338661.png

A continuación te presento un video donde puedes ver cómo llevar a cabo los pasos anteriores:

 

 

 

Una vez hecho esto y guardado tu macro, ya no tienes más que utilizar tu macro en el workflow original.

 

Para eso, localiza el workflow donde tienes los datasets de Precio y Moneda, haz clic con el botón derecho, selecciona la opción Insertar > Macros y busca la que recién has construido:

 

Andreina_12-1671800544148.png

Al insertarlo, verás que hay un nuevo tipo de ancla de entrada que está indicado con un signo de interrogación abierto. Este ancla indica que es ahí donde debes conectar el dataset por el que vas a ir iterando, es decir, para cada línea de este dataset se ejecutará toda la macro. Para nuestro ejemplo, serán las monedas:

 

Andreina_13-1671800585910.png

Luego, haciendo clic en la macro,  en la ventana de configuración y pestaña Preguntas deberás indicar a qué campos se corresponden los parámetros que espera la macro:

 

 

Andreina_14-1671800614467.png

 

Ahora tendrás que configurar el otro ancla,  que será el  dataset que corresponde a la Entrada de Macro. En nuestro caso ejemplo, la lista de precios.

 

A continuación en la siguiente imagen te muestro la correspondencia de las entradas entre la macro y el workflow que le llama

 

Andreina_15-1671800638101.png

 

 

Cuando hagamos clic sobre el botón RUN, la macro se ejecutará tantas veces como tipos de monedas diferentes vengan en el dataset de monedas, para aplicar la conversión a todo el dataset de precios y generar tantos ficheros como líneas de moneda tengamos:

 

Andreina_16-1671800675111.png

 

Y así ya tienes tu Macro por lotes preparada!!!!

 

Este es otro de los tipos de Macro del que os quería hablar. Si tienes un conjunto de procesos analíticos recurrentes que queráis dinamizar y ejecutar según un conjunto de parámetros, piensa en una macro por lotes y así das un paso más en la automatización de tu analítica.  

 

Este será el último tip del año 2022 por lo que no quiero despedirme sin desearos unas Felices Fiestas!!!!

 

¡¡¡¡Os deseo un magnífico 2023!!!!

 

https://media.giphy.com/media/l4JyWBdPAx9NepDUs/giphy.gifhttps://media.giphy.com/media/l4JyWBdPAx9NepDUs/giphy.gif

 

 

Hasta el próximo tip!

 

Andreina Toledo Men

Sales Engineer 

Alteryx

Comentarios
BorjaR
Alteryx
Alteryx

Qué buen ejemplo para la Macro por Lotes! Y explicado genial paso a paso, bravo @Andreina!


Etiquetas