es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Utilizando un script de Python para ejecutar un flujo de trabajo de Alteryx a través del Programador de tareas de Microsoft en Escritorio Remoto.

Mi script de Python funciona perfectamente siempre y cuando esté conectado al escritorio remoto mientras el programador de tareas lo inicia. Sin embargo, si ya no estoy conectado al escritorio remoto, se termina porque pyautogui tiene un modo de seguridad activado. Cuando desactivo el modo de seguridad, el flujo de trabajo completo simplemente no se ejecuta en absoluto (no importa dónde lo coloque en el flujo de trabajo).

Mi objetivo es que esto se ejecute en el escritorio remoto sin necesidad de estar conectado a él.

Ruta actual:

  1. Programador de tareas de Windows.
  2. Ejecuta RunAlteryxWorkflow.bat.
  3. Ejecuta RunAlteryxWorkflow.py.
  4. Ejecuta Alteryx_Workflow.yxmd.

Código para RunAlteryxWorkflow.py:

import pyautogui as pg
import os
import time

# pg.moveTo(800, 800, 1.5)
# pg.FAILSAFE = False

time.sleep(10)

# ABRIR ALTERYX

os.startfile(r'C:\Users\eXXXXXX\Desktop\Alteryx_Workflow.yxmd')
time.sleep(30) # Dar tiempo suficiente para que Alteryx abra el flujo de trabajo

# EJECUTAR FLUJO DE TRABAJO DE ALTERYX

pg.hotkey('ctrl', 'r')
# time.sleep(300)
time.sleep(100)

# CERRAR ALTERYX

pg.hotkey('alt', 'F4')

Código para el archivo por lotes (RunAlteryxWorkflow.bat):

C:\Users\eXXXXXX\Desktop>"python" "C:\Users\eXXXXXX\Desktop\Run_Alteryx_Workflow.py"

¡Gracias por tu ayuda! Esta es mi primera publicación en StackOverflow.
Gran parte de mi código está comentado ya que he estado probando cosas.
¡Mi mayor problema es ejecutarlo cuando no estoy conectado a mi escritorio remoto!

Tags:  , ,

Answer

  1. Avatar for davy.ai

    El script de Python termina cuando se ejecuta a través del Planificador de tareas de Windows sin acceso al escritorio remoto

    Como experto en TI especializado en Python, el Planificador de tareas de Windows y Alteryx, el problema al que te enfrentas es que tu script de Python se ejecuta perfectamente siempre y cuando estés conectado al escritorio remoto mientras el programa del planificador de tareas lo inicia. Sin embargo, si ya no estás conectado al escritorio remoto, se termina debido a que PyAutoGUI tiene una función de seguridad. Cuando desactivas esta función de seguridad, el flujo completo simplemente no se ejecuta en absoluto (independientemente de dónde la coloques en el flujo). Tu objetivo es que esto se ejecute en el escritorio remoto sin necesidad de que estés conectado a él.

    La ruta actual que estás siguiendo es el Planificador de tareas de Windows, que ejecuta un flujo de trabajo de Alteryx a través de un archivo por lotes que llama a un script de Python. El script de Python abre el flujo de trabajo de Alteryx y lo ejecuta, luego cierra Alteryx. El problema es que cuando se ejecuta el script a través del Planificador de tareas de Windows sin acceso al escritorio remoto, la función de seguridad de PyAutoGUI hace que se termine.

    Para resolver este problema, podrías intentar las siguientes opciones:

    1. Utiliza el Planificador de tareas de Windows para ejecutar el script durante un momento en el que estés conectado y marca la opción “Ejecutar incluso si el usuario no ha iniciado sesión”. Esto garantizará que el script se ejecute incluso si no has iniciado sesión. También podrías añadir una pausa en el script para dar tiempo a que desconectes la sesión del escritorio remoto antes de que se ejecute.
    2. Modifica tu script de Python para utilizar un paquete diferente que no tenga una función de seguridad, como keyboard o pynput. Esto permitirá que el script siga ejecutándose incluso si no has iniciado sesión.

    3. Modifica tu flujo de trabajo de Alteryx para ejecutarlo a través de la línea de comandos en lugar de utilizar la interfaz gráfica de Alteryx. Esto te permitirá ejecutar el flujo de trabajo en segundo plano sin necesidad de abrir Alteryx en absoluto.

    En general, parece que tu problema se debe principalmente a la función de seguridad de PyAutoGUI, por lo que probar un paquete diferente o modificar el flujo de trabajo para evitar el uso de PyAutoGUI en su totalidad puede ser la solución más efectiva.

Comments are closed.