Community Spring Cleaning week is here! Join your fellow Maveryx in digging through your old posts and marking comments on them as solved. Learn more here!
Free Trial

Blog

Visiones e ideas de las mentes más brillantes en el campo del análisis.
alberto_herni
Cometa

¿Te gustan las macros de Alteryx? A mí también. Considero que las macros de Alteryx son una excelente opción para mejorar la paleta de herramientas predeterminada de Alteryx al agregar componentes personalizados y reutilizables a tus workflows y también compartirlos con sus equipos.

 

¿Te gustan las macros de Alteryx hechas con Python? A mí también. Siento que integrar las múltiples librerías de Python en macros realmente abre un inmenso mundo de oportunidades en Alteryx. Hay muchas librerías versátiles de Python que puedes usar para construir alrededor una potente macro de Alteryx.

 

Entonces, ¿de qué trata esta publicación? Crear macros de Python en Alteryx sin usar el SDK de Python y sin recibir el molesto mensaje "Run the workflow to generate valid metadata".

 

Honestamente, es un poco frustrante cuando creas una buena macro de Alteryx que contiene la herramienta Python, la arrastras al lienzo y obtienes el error de metadatos. Es cierto que el Alteryx Python SDK es una excelente opción para crear herramientas, pero para ser honesto, encontré más complejo crear una nueva herramienta a través del SDK que usar directamente la herramienta de Python. Además basándome en mi experiencia, administrar un gran volumen de macros .yxi en organizaciones grandes puede volverse complicado... Por ejemplo, distribuir una nueva versión de la herramienta después de corregir un error, requiere informar a todos que hay una nueva versión, tendrán que descargarla e instalarla... a veces es difícil asegurarse de que todos tienen todas las macros instaladas y actualizadas a la versión más reciente. Por lo tanto, prefiero mucho más compartir las macros de Alteryx usando una ubicación compartida.

 

*En caso de que estés interesado, escribí un blog con la configuración que implementamos para nuestro repositorio de macros compartidas de Alteryx. Utilizamos una combinación de carpetas en la nube para nuestros desarrolladores (los sincronizan con sus ordenadores para garantizar un mejor rendimiento) y carpetas de unidades locales con segregación de entornos para nuestros servidores Alteryx. Consulta la solución propuesta en este post.

 

Volvamos al tema del artículo. Di con este truco de Alteryx hace unas semanas y desde entonces he reconstruido algunas de mis viejas macros de Python para deshacerme de este mensaje de error de metadatos. ¡Funcionan perfectamente y el error ha desaparecido! Echemos un vistazo en detalle al truco.

 

Voy a suponer que tiene una macro de Alteryx con (al menos) los siguientes componentes: una entrada de macro, la herramienta Python con su código y una salida de macro para pasar los datos a Alteryx y continuar con su flujo de datos. Esto lo pondrá en la situación de recibir el mensaje de error mencionado cada vez que arrastre la herramienta al lienzo de Designer.

 

alberto_hernie_0-1659442177345.png

Ejemplo de macro original que devuelve el error de metadatos

 

Pasos para eliminar el mensaje de error de metadatos

 

  1. Copie la herramienta Python en un nuevo flujo de trabajo.
  2. Agregue una entrada de macro y conéctela a la herramienta Python.
  3. Agregue una herramienta Select en el ancla de la herramienta de Python que devuelve los datos a Alteryx.
  4. Coloque la herramienta Select en un contenedor.
  5. Inserte una herramienta de entrada de texto en el lienzo, agregue los nombres de las columnas que deberían salir de la herramienta Python, pero no agregue ninguna fila de datos, esto actuará solo como marcador de posición.
  6. Arrastre una herramienta Unión al lienzo, primero conéctela con la herramienta Entrada de texto, luego conecte la herramienta Select.
  7. Agregue su salida macro justo después de la herramienta Unión.
  8. Arrastre una herramienta de parámetro de control al lienzo, conéctela al contenedor.
  9. En la herramienta Acción, seleccione la opción 'Actualizar valor con fórmula', seleccione el valor Deshabilitado.
  10. En la barra de fórmulas, inserte esta fórmula: IF [#1] THEN 'False' ELSE 'False' ENDIF
  11. Deshabilite el contenedor
  12. ¡Truco hecho!
 
Dos cosas sucedieron han sucedido aquí para deshacernos del error de metadatos
  • El contenedor deshabilitado: como notará una vez que el contenedor está deshabilitado, el mensaje de error proveniente de la herramienta Python desaparece. Usamos el parámetro de control y la fórmula para garantizar que el contenedor siempre se abra y los datos fluyan durante la ejecución.
  • Marcadores de posición + Herramienta de unión: agregamos este paso porque nuestro contenedor está cerrado, por lo tanto, si se conecta directamente a la salida de la macro, obtendrá otro error en la macro que indica que la salida no es válida, ya que no hay metadatos que fluyan hacia ella. Los marcadores de posición garantizarán que los metadatos lleguen a la salida y evitarán que obtengamos este error.

 

alberto_hernie_1-1659442371463.png

Todos los pasos se completaron, el contenedor está abierto y el error sigue ahí

 

alberto_hernie_2-1659442424923.png

Todos los pasos se completaron, el contenedor está cerrado y el error desaparece

 

 

 

OK. Terminemos el trabajo. Simplemente vaya a su macro original y complete los siguientes pasos
  1. Elimine la antigua herramienta Python (ahora está dentro de la nueva batch macro que hemos creado)
  2. Inserte la nueva batch macro y conecte su flujo de datos principal a ella.
  3. Inserte una nueva herramienta de entrada de texto, cree un campo con una fila.
  4. Conecte la herramienta de entrada de texto al ancla macro 'i'.
  5. ¡Trabajo hecho! su macro Alteryx ya no devolverá el error de metadatos.

 

alberto_hernie_6-1659442603385.png

Iniciador para batch macro

 

 

alberto_hernie_10-1659442808258.png

Configuración iniciador en batch macro

 

 

Pensamientos finales

Probablemente podría argumentar que no es una solución muy elegante y tendría que estar de acuerdo con eso, pero si no quiere complicarse la vida con el Python SDK, esta me parece una solución muy válida para optimizar y aprovechar el poder de sus scripts de Python en las macros de Alteryx. Por favor, hágame saber sus pensamientos en los comentarios del artículo.

 

CONSEJO EXTRA: si planea compartir la macro con otros miembros del equipo a través de un repositorio compartido, le recomiendo que "oculte" la batch macro agregando la palabra "batch" en la extensión de la macro, por ejemplo: mymacro.yxmc a mimacro.yxmcbatch. De esta forma, los usuarios solo verán en sus paletas de herramientas la macro principal y la batch permanecerá oculta, aunque se encuentre en la misma carpeta.

 

* Este articulo fue originalmente publicado por el autor en ingles, puede consultarlo aquí.

Comentarios
Etiquetas