Agregar la exportación de PowerPoint al Generador de flujos de trabajo
ElBuzón de correo de ingeniería
Episodio 8: La última milla
De vez en cuando, como ingenieros de sistemas, nos topamos con preguntas interesantes que se salen un poco del rango típico deJMPuso. Otras veces la pregunta es simplemente interesante y me da la oportunidad de explorar las razones más profundas por las que hacemos las cosas de la manera en que las hacemos en JMP.
Esta pregunta ha surgido más veces de las que puedo contar. No tengo un correo electrónico para trabajar en este caso, pero supongamos que han llegado algunas. También ha habido preguntas al respecto en elForo de la comunidad de JMP.Y no puedo dar un seminario sobre este tema sin que salga a relucir.
Basta de preámbulos. ¿Cuál es la pregunta trascendental que vamos a abordar hoy? Como indica el título, vamos a integrar la exportación de PowerPoint en Workflow Builder.
La pregunta
ParaA mí, esta pregunta suele surgir después de mostrar todas las funciones interesantes de Workflow Builder. He mostrado cómo puede capturar la ejecución de Query Builder, cómo se pueden simplificar procesos largos y tediosos de limpieza de datos con solo hacer clic en un botón, y cómo se puede generar automáticamente un informe importante para presentarlo a un responsable de la toma de decisiones. Y entonces, invariablemente, escucho: "¿Cómo puedo exportarlo a un archivo de PowerPoint?" (o algo similar).
La respuesta
APara ser sincero, nunca he estado del todo satisfecho con mi respuesta a esta pregunta. Eso fue parte de lo que motivó el pequeño obsequio que incluyo con el blog. Si usted, querido lector, no está interesado en los detalles de cómo funciona mi nueva respuesta y solo quiere ponerla en práctica, puede saltar a la sección donde le muestro cómo usar la descarga incluida con el blog.
La respuesta que di anteriormente a esta pregunta fue: "Hay un ejemplo en el índice de scripts para la función Save Presentation() que se puede agregar como un paso personalizado".

Pero esa respuesta simplemente me molestó. Les ahorraré el sermón sobre por qué, pero baste decir que no parecía muy… bueno… JMP. En fin, ¡decidí el otro día decirlo por última vez! ¡NO MÁS!
Esto fue lo que hice.
Creación de exportaciones de PowerPoint
EnJMP 18, Workflow Builder agregó soporte para sentencias if/else y mensajes, entre otras cosas. Estas dos capacidades, junto con algo de JSL poco conocido, son como pude hacer que esto funcionara. (Barra lateral: ElÍndice de scripts de JMP ¡Es vuestro amigo, amigos!
En mi mente, quería que este paso incluyera exportar un nuevo archivo de presentación o usar la opción "Agregar" de la función "Guardar presentación" para añadir una diapositiva a una presentación existente. Esto implicaba dos cosas: primero, necesitaría un cuadro de diálogo para alternar entre las dos versiones del paso "Guardar presentación" y, segundo, necesitaría una forma de cambiar entre ellas.
La lógica de cada paso es sencilla. Añada los pasos if y else desde el menú avanzado cuando haga clic en el triángulo rojo en un Generador de flujos de trabajo e introduzca mensajes en cada paso en la ranura "Al inicio" de la línea de tiempo de acciones del paso. A continuación, edite el script de condición para que coincida con las variables configuradas en los mensajes. He incluido un breve vídeo a continuación que muestra los pasos para cada uno.
Una vez configuradas las condiciones if y else, podemos volver al submenú avanzado del triángulo rojo, añadir pasos personalizados y moverlos dentro de las condiciones if y else. He cambiado el nombre en la captura de pantalla para que quede claro qué hace cada uno.

Aquí se muestran capturas de pantalla del proceso personalizado necesario en el paso de adición:

Y los pasos para una nueva presentación:


La clave para que esto funcione como solución general reside en el JSL de los pasos personalizados, concretamente en la función Current Report(). Gracias a mi formación inicial en JSL (¡un saludo a Di Michelson del equipo de formación de JMP!), sé que JMP realiza automáticamente acciones en la ventana u objeto actual a menos que indique lo contrario. También sé que el último objeto creado siempre será el actual, a menos que mi código lo modifique. Por lo tanto, si coloco el paso que estoy creando (es decir, el grupo if/else) después de crear un informe, el Current Report será el que acabo de crear. Y la función Current Report() devolverá una referencia a ese informe. Puedo pasar esa referencia a Save Presentation simplemente usando la variable que contiene la referencia al informe.
Las funciones Pick File() y Pick Directory() generan automáticamente cuadros de diálogo y devuelven las rutas. Al combinar estas dos ideas en el argumento de Save Presentation(), puedo saber en qué informe actuar según la ubicación del paso en el flujo de trabajo. También puedo preguntar al usuario qué presentación desea que actualice o dónde desea que cree una nueva.
Utilizando la exportación de PowerPoint
Para¡Bienvenidos de nuevo a quienes se saltaron la sección de programación! Veamos qué contiene el archivo zip de la sección de descargas de este artículo. Dentro encontrarán tres archivos:

El archivo PowerPointExport es un paso independiente del Generador de flujos de trabajo que puede agregar o crear un nuevo archivo de presentación. Los otros dos funcionan en conjunto y se utilizan para un caso específico que detallaré en breve. Para empezar, veamos un caso sencillo. He creado un breve video para mostrar los pasos:
Ahora, veamos los otros dos archivos. Hay casos en los que un flujo de trabajo puede generar varios informes. En lugar de tener que seguir las indicaciones en cada informe, los otros dos archivos funcionan en conjunto. El paso PowerPointCreate contiene las indicaciones para crear el archivo de presentación; además, proporciona la ubicación de ese archivo a cada instancia del paso PowerPointAppend en el mismo flujo de trabajo. Esto permite automatizar la creación de una presentación completa con muy poca intervención del usuario. Aquí hay un video tutorial sobre cómo configurar un flujo de trabajo para esta situación y cómo se ve el resultado:
Entonces¡Ahí lo tienes! Compatibilidad con PowerPoint para Workflow Builder sin necesidad de programar. Solo necesitas usar la función de apuntar y hacer clic para mantenerte concentrado en tus datos e información, ¡algo muy propio de JMP! 