Task Manager

PXTaskManager es un módulo para predefinido tareas a ejecutar por el sistema.

Cada tarea se puede configurar para que sea ejecutada una única vez, o periódicamente durante un tiempo estimado. Esta periodicidad se configura, bajo tres categorías: repeticiones diarias, semanales o mensuales.

Por otro lado, a cualquier task, se le puede configurar un tiempo de reintentos en caso de que se genere algún error a la hora de ejecutarse. Estas repeticiones son independientes a la periodicidad mencionada anteriormente.

En resumen cada task posee dos configuraciones independientes.

  • Definición del ciclo de ejecución (ej: Ejecutar los martes de la segunda y cuarta semana de cada mes.)

  • Definición de reintentos por Task. (Ej: En cada día de cada ciclo ejecutar cada 2 minutos durante 1 hora.)

Algunas características de este módulo:

  • Todas las tareas que se ejecutan por el TaskManager son asincrónicas.

  • Se soporta la declaración de tareas cíclicas y repetitivas (definidas a través de la interfaz gráfica partiendo del Selection del PXWorkWithTaskManager) .

  • Se soporta la ejecución de tareas a demanda invocando el procedimiento AddTaskManagerSDT. Esto genera la solicitud de ejecución de un proceso con determinados parámetros y definir los reintentos en caso de falla de la comunicación.

  • La declaración de las tareas se realiza a través del módulo DynamicCallReferences definiendo los procedimientos de la KB que cumplirán la función de tareas. Se deberá declarar un DataProvider relacionado con el módulo DynamicCallReferences que incluya todos los procedimientos (que por estándar de nomenclatura los definimos con prefijos "Tsk") que se ejecutarán a través del módulo TaskManager.

  • Al finalizar cada ejecución de la tarea es posible informar tanto por error como cuando el proceso fue satisfactorio con un mensaje que quedará documentado en la base de datos (en un histórico de ejecuciones) y el usuario puede consultarla a través del trabajar con que viene con el módulo. En caso de error se puede indicar cuantos reintentos se debe hacer y qué cantidad de veces se reintenta.

  • Soporte de declaración de tareas hijas de la tarea principal con una gestión del estado de la tarea principal en función de la correcta ejecución de la misma y de todos las sub-tareas. Esta característica principalmente es muy útil para la comunicación con Web Services (por ejemplo la facturación electrónica en los sistemas) o cualquier proceso que pueda tener fallas.

  • Hay un único procedimiento Command Line que será el que se deberá ejecutar (en el Cron de Linux o las Tareas Programadas de Windows) 1 vez por minuto para que el tasa manager tenga la unidad mínima de 1 minuto para ejecutar tareas.

  • El sistema tiene control de solapa miento de ejecuciones del proceso principal a través del módulo Process Status Monitor como control de semáforo.

Para cuando se desea ejecutar procesos batch a demanda deberá cargarse el SDTTaskManager e invocar al AddTaskManagerSDT.

Explicaremos a través de la siguiente tabla tanto estructura del SDTTaskManager como la estructura de la transacción TaskManager que son equivalentes: