Saltar a contenido

Fila de Tareas

La fila de tareas muestra las tareas en ejecución, listas para ser ejecutadas y finalizadas.

Visualización de la fila de tareas

Puedes ver la fila de tareas de dos formas:

  • En formato de tarjeta, donde cada tarjeta representa una sola tarea:

Fila de tareas en formato de tarjeta

  • En formato de lista, donde cada línea representa una sola tarea:

Fila de tareas en formato de lista

Puedes identificar el estado de cada tarea de la siguiente manera:

Línea de tarea

También es posible utilizar los filtros Estado, Automatización, Runner, ID de tarea, Fecha de inicio y Fecha de finalización para ver tareas específicas.

Filtros de tarea

Información de la tarea

Puedes seguir la información de una tarea de dos formas:

  1. Haciendo clic directamente en el nombre de la tarea dentro de la tarjeta de la tarea.
  2. Haciendo clic en el icono con tres puntos en la esquina superior de la tarjeta de la tarea y seleccionando la opción Información.

Tarjeta de información

Y a través de la lista de tareas, es posible acceder a la información detallada haciendo clic en el ID de la tarea:

Información de la lista de tareas

Serás redirigido a una página con información detallada de la tarea utilizando cualquiera de las opciones anteriores. Podrás ver:

Información general de ejecución

Información general

Donde:

  • Estado: Contiene información sobre el estado de la tarea.
  • Ciclo de vida: El ciclo de vida de la tarea, desde que entra en la fila hasta que se completa.
  • Tiempo en fila: El tiempo que permaneció en la fila de ejecución.
  • Ejecución: El tiempo de ejecución de la tarea, después de salir de la fila de ejecución.
  • Runner: El Runner responsable de ejecutar la tarea.

Mensaje de finalización de la tarea

Puedes ver el mensaje de finalización de la tarea. Si ocurre un error durante la preparación del ambiente o la ejecución del código, esta información se mostrará en el mensaje de finalización.

También puedes establecer un mensaje de finalización personalizado. Obtén más detalles sobre cómo finalizar una tarea en Maestro en los siguientes pasos.

Mensaje de finalización

Parámetros de la tarea

También puedes visualizar los parámetros utilizados en la tarea.

Parámetros

Encontrarás los parámetros de ejecución definidos por el usuario al crear una nueva tarea.

Tip

La definición de los parámetros se realiza por los desarrolladores al crear un proceso de automatización.

Obtén más información sobre cómo crear una tarea con o sin parámetros utilizando:

Información general de la fila de tareas, tarea y tiempo de ejecución

Información de la fila de tareas

Donde:

  • Control de la fila: Contiene información de control de la fila de tareas, como la prioridad de la tarea, la fecha mínima de ejecución y la información si la tarea ha sido interrumpida o terminada por la interfaz de Maestro.
  • Resumen de la tarea: Contiene información de la tarea, como el ID, la etiqueta, el usuario que inició la tarea y si es una tarea de prueba.
  • Tiempo de ejecución: Contiene información de ejecución, como el Runner que realizó la tarea y la fecha y hora en que se creó, inició y finalizó la tarea.

Acciones de la tarea

En la pantalla de información de la tarea, encontrarás el botón Acciones. Este botón permite:

  • Eliminar: Eliminar una tarea que está en la fila de ejecución.
  • Interrumpir: Solicitar la interrupción de la tarea. Obtén más información sobre esta funcionalidad aquí.
  • Terminar: Terminar la tarea forzando la finalización de la ejecución.
  • Reiniciar: Reiniciar una tarea marcada como prueba.

Note

  • Las tareas en ejecución solo tienen las acciones Interrumpir y Terminar.
  • Las tareas en la fila solo tienen las acciones Eliminar e Interrumpir.
  • Solo las tareas definidas como prueba pueden reproducir la acción Reiniciar.
  • Las tareas finalizadas no tienen ninguna acción disponible.

Cómo finalizar una tarea usando el SDK de Maestro

Por defecto, al ejecutar una tarea por primera vez sin utilizar ninguna integración con Maestro, la tarea finalizará con el estado de Fallida.

Esto ocurre porque debemos definir las instrucciones para finalizar la tarea en el código y reportar el estado final deseado a Maestro.

Utilizando el SDK de Maestro en tu código de automatización, puedes finalizar fácilmente las tareas en Maestro.

Instalación

Si aún no tienes instalada la dependencia, simplemente sigue estas instrucciones:

pip install botcity-maestro-sdk

Important

Además de la instalación, recuerda incluir la dependencia en el archivo requirements.txt del bot.

<repositories>
    <repository>
        <id>nexus-botcity-public</id>
        <url>https://devtools.botcity.dev:8081/repository/botcity-public/</url>
        <releases>
            <enabled>true</enabled>
        </releases>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
    </repository>
</repositories>

<dependencies>
    <!-- Your other dependencies -->
    <dependency>
        <groupId>dev.botcity</groupId>
        <artifactId>maestro-sdk</artifactId>
        <version>2.0.3</version>
    </dependency>
</dependencies>
npm i @botcity/botcity-maestro-sdk
npm i @botcity/botcity-maestro-sdk

Importar el SDK

Después de la instalación, importa la dependencia e instancia el SDK de Maestro:

# Import for integration with BotCity Maestro SDK
from botcity.maestro import *

# Disable errors if we are not connected to Maestro
BotMaestroSDK.RAISE_NOT_CONNECTED = False

# Instantiating the Maestro SDK
maestro = BotMaestroSDK.from_sys_args()
# Fetching the details of the current task being executed
execution = maestro.get_execution()
// Import for integration with BotCity Maestro SDK
import dev.botcity.maestro_sdk.*;
...

public void action(BotExecution botExecution) {

    try {
        // Instantiating the Maestro SDK
        BotMaestroSDK maestro = new BotMaestroSDK();
        maestro.login(botExecution);
    ...
// Import for integration with BotCity Maestro SDK
const { BotMaestroSdk } = require('@botcity/botcity-maestro-sdk')

// Getting parameters passed by Runner
const args = process.argv.slice(2)
const [server, taskid, token] = args

// Login with information from the Dev. Environment page
const maestro = new BotMaestroSdk()
maestro.login("YOUR_SERVER_HERE", "YOUR_USER_HERE", "YOUR_KEY_HERE")

// Fetching the details of the current task being executed
const executionTask = await maestro.getTask(taskid)
// Import for integration with BotCity Maestro SDK
import { BotMaestroSdk } from '@botcity/botcity-maestro-sdk'

// Getting parameters passed by Runner
const args = process.argv.slice(2)
const [server, taskid, token] = args

// Login with information from the Dev. Environment page
const maestro: BotMaestroSdk = new BotMaestroSdk()
maestro.login("YOUR_SERVER_HERE", "YOUR_USER_HERE", "YOUR_KEY_HERE")

// Fetching the details of the current task being executed
const executionTask: Task = await maestro.getTask(taskid)

Finalizar una tarea reportando datos adicionales

Además de reportar el estado de finalización de una tarea, también podemos reportar datos adicionales relacionados con los elementos que se procesaron durante la ejecución.

maestro.finish_task(
    task_id=execution.task_id,
    status=AutomationTaskFinishStatus.SUCCESS,
    message="Task Finished with Success.",
    total_items=100, # Total number of items processed
    processed_items=90, # Number of items processed successfully
    failed_items=10 # Number of items processed with failure
)
maestro.finishTask(
    botExecution.getTaskId(),
    "Task Finished with Success.",
    FinishStatus.SUCCESS,
    100, // Total number of items processed
    90, // Number of items processed successfully
    10 // Number of items processed with failure
);
// Finishing the task successfully
await maestro.finishtTask(
    executionTask.id,
    "Task finished with Success.",
    "SUCCESS"
)
// Finishing the task successfully
await maestro.finishtTask(
    executionTask.id,
    "Task finished with Success.",
    "SUCCESS"
)

Info

Este recurso de reportar datos también hace parte de BotCity Insights, que es un módulo dedicado a reportar y mostrar datos relacionados con tu iniciativa de RPA.

La etapa de reportar datos en el código de la automatización es esencial para que se generen las informaciones de alto nivel.

Consulta más detalles sobre este módulo accediendo a la documentación de BotCity Insights.

Código completo

from botcity.core import DesktopBot
from botcity.maestro import *

# Disable errors if we are not connected to Maestro
BotMaestroSDK.RAISE_NOT_CONNECTED = False

def main():
    maestro = BotMaestroSDK.from_sys_args()
    execution = maestro.get_execution()

    bot = DesktopBot()
    # Implement here your logic...
    ...

    # Finishing the task successfully
    maestro.finish_task(
        task_id=execution.task_id,
        status=AutomationTaskFinishStatus.SUCCESS,
        message="Task Finished with Success.",
        total_items=100, # Total number of items processed
        processed_items=90, # Number of items processed successfully
        failed_items=10 # Number of items processed with failure
    )

def not_found(label):
    print(f"Element not found: {label}")

if __name__ == '__main__':
    main()
import dev.botcity.framework.bot.DesktopBot;
import dev.botcity.maestro_sdk.BotExecutor;
import dev.botcity.maestro_sdk.BotMaestroSDK;
import dev.botcity.maestro_sdk.model.AutomationTask.FinishStatus;
import dev.botcity.maestro_sdk.runner.BotExecution;
import dev.botcity.maestro_sdk.runner.RunnableAgent;

public class FirstBot extends DesktopBot implements RunnableAgent
{
    public FirstBot() {
        try {
            setResourceClassLoader(this.getClass().getClassLoader());
        } catch(Exception e) {
            e.printStackTrace();
        }
    }

    @Override
    public void action(BotExecution botExecution) {

        try {
            BotMaestroSDK maestro = new BotMaestroSDK();
            maestro.login(botExecution);

            // Implement here your logic...

            // Finishing the task successfully
            maestro.finishTask(
                botExecution.getTaskId(),
                "Task Finished with Success.",
                FinishStatus.SUCCESS,
                100, // Total number of items processed
                90, // Number of items processed successfully
                10 // Number of items processed with failure
            );

        } catch(Exception e) {
            e.printStackTrace();
        }
    }

    private void notFound(String label) {
        System.out.println("Element not found: "+label);
    }

    public static void main(String[] args) {
        BotExecutor.run(new FirstBot(), args);
    }
}
const main = async () => {
    const { BotMaestroSdk } = require('@botcity/botcity-maestro-sdk')

    const args = process.argv.slice(2)
    const [server, taskid, token] = args

    const maestro = new BotMaestroSdk()
    maestro.login("YOUR_SERVER_HERE", "YOUR_USER_HERE", "YOUR_KEY_HERE")

    const executionTask = await maestro.getTask(taskid)

    // Finishing the task successfully
    await maestro.finishtTask(
        executionTask.id,
        "Task finished with Success.",
        "SUCCESS"
    )
}

main()
const main = async () => {
    import { BotMaestroSdk } from '@botcity/botcity-maestro-sdk'

    const args = process.argv.slice(2)
    const [server, taskid, token] = args

    const maestro: BotMaestroSdk = new BotMaestroSdk()
    maestro.login("YOUR_SERVER_HERE", "YOUR_USER_HERE", "YOUR_KEY_HERE")

    const executionTask: Task = await maestro.getTask(taskid)

    // Finishing the task successfully
    await maestro.finishtTask(
        executionTask.id,
        "Task finished with Success.",
        "SUCCESS"
    )
}

main()

Tip

Observa las otras operaciones que podemos realizar con las tareas utilizando el SDK de BotCity Maestro y la API de BotCity Maestro.