Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Table of Contents
Info

Disponible desde versión 4.0.0 (Nitroball) de Onesait Platform

Introducción

En esta release se ha creado la base de un Planificador en Plataforma que permite:

  • Definir un flujo de negocio:

    • este flujo puede estar compuesto por DataFlows, Notebooks , Flowsy/o Entidades KPI

    • Indicar el orden del flujo

    • Indicar qué hacer ante error

  • Planificar la ejecución de un flujo de negocio (desde el FlowEngine)

  • Capturar el resultado de cada ejecución del flujo

  • Visualizar el estado de la ejecución del flujo en un Dashboard de Plataforma

  • Relanzar procesos en el flujo de negocio desde el punto en el que se encuentran

¿Cómo funciona?

Este activo está compuesto por un conjunto de flujos desarrollados en el módulo FlowEngine, y para su funcionamiento se necesitan varias entidades creadas en plataforma que permiten trazar el estado de la ejecución en curso, así como un log de las ejecuciones realizadas.

Estas entidades son las siguientes:

  • processes: entidad en la que se almacenan los procesos a ejecutar.

  • process_log: entidad en la que se va almacenando una traza de log de la ejecución.

  • process_status: entidad en la que se almacena el estado de la ejecución de un proceso para una fecha dada.

  • operation_status: entidad en la que se almacena el estado de la ejecución de una operación para una fecha dada.

Se define proceso como un conjunto de operaciones a ejecutar, en el que las operaciones pueden ser:

  • Flujo en dataflow

  • Notebook

  • Entidad KPI

  • Delete de una entidad

Primero, se definirá la lógica de negocio que se quiera ejecutar, y se guardarán estos datos en la ontología de procesos, teniendo en cuenta que los campos de los que dispone la entidad son:

  • process_id: id de proceso

  • operation_id: id de operación

  • operation_identification: identificador de la operación en plataforma

  • operation_type: tipo de operación (dataflow, notebook, kpi, delete)

  • process_order: orden de prioridad de ejecución del proceso

  • operation_order: orden de prioridad de ejecución de la operación

  • previous_delete: boolean que indica si se quiere realizar un borrado previo de la entidad destino

  • delete_condition: condición de borrado de la entidad destino

  • target_entity: entidad destino sobre la que se puede realizar un borrado previo

  • parameters: parámetros necesarios para la ejecución de la operación.

    • kpi o dataflow:

      Code Block
      "{\"param1\":\"value1\",\"param2\":\"value2\",..}"
    • notebook:

      Code Block
      "{\"paragraphId\":\"id_parrafo_parametros\",\"params\": {\"param1\":\"value1\",\"param2\":\"value2\",..}}"
    • delete: condición de borrado en SQL o nativo

  • error_continue: boolean que indica si se quiere continuar con la ejecución de las demás operaciones dentro de un proceso ante un fallo.

Una vez guardada la lógica de ejecución en la entidad de procesos, se podrá programar la ejecución ordenada de estos en el flujo definido en nuestro dominio de Flow Engine, en el nodo inject, o bien realizar ejecuciones puntuales de forma manual:

...

En el caso de que se produzca algún error durante la ejecución, esta se detendrá (a no ser que se haya indicado de otra forma en la entidad de procesos), y el usuario podrá revisar manualmente el error que se ha producido, corregirlo y relanzarlo manualmente desde el Flow Engine.

En este caso continuará en el primer proceso y/o operación que se encuentre en las entidades de estado (process_status y operation_status) con estado de ERROR. Si el usuario quiere dar como OK la operación que ha fallado para que la ejecución continúe en el siguiente paso, únicamente deberá actualizar el estado de esa operación en la entidad operation_status a OK, y relanzar la ejecución manualmente desde el Flow Engine.

Visualización del estado

Para realizar un seguimiento de las ejecuciones se dispone de un dashboard creado en plataforma en el que dada una fecha se podrá visualizar tanto el log como el estado de la ejecución:

...

Consideraciones

Al tratarse de un activo desarrollado sobre plataforma es fácilmente extensible, por lo que se podrían añadir por ejemplo más tipos de operaciones de manera sencilla realizando un pequeño desarrollo en el FlowEngine, o simplemente enriquecer la lógica del planificador según necesidad.

El planificador está desarrollado para ejecutar los procesos de manera secuencial siguiendo un orden que se define en la ontología de procesos, no así, las operaciones se pueden ejecutar de forma secuencial y/o en paralelo definiendo el orden en función de la casuística.