Tareas
Ir a TareasLa 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:
- En formato de lista, donde cada línea representa una sola tarea:
También es posible utilizar los filtros Estado, Repositorio, Automatización, Runner, ID de tarea, Fecha de inicio y Fecha de finalización para ver tareas específicas.
La fila de tareas también tiene una columna "Última actualización" donde puede ver cuánto tiempo ha estado una tarea en la fila, procesándose o finalizándose. Esta funcionalidad proporciona una visión más clara del tiempo dedicado a cada paso.
Advertencia sobre Runners sin conexión
Si hay tareas en fila asociadas con Runners que están fuera de línea, se mostrará una advertencia para que pueda revisar sus Runners asignados.
Esta alerta incluye un enlace directo a la pestaña Runners
de la plataforma, donde puedes gestionar los Runners de tu espacio de trabajo.
Personalizando la vista de tareas¶
También puede personalizar la tabla de vista de tareas según sus preferencias.
Cuando selecciona un tipo de filtro u ordenación de columnas, esta configuración se guardará como predeterminada. Usando el botón Personalizar vista de lista de tareas
puede encontrar más detalles.
Información de la tarea¶
Status¶
Al crear una nueva tarea, inicialmente tendrá el estado de En espera
, es decir, esperará hasta que haya un Runner disponible para ejecutarla.
Podemos comprender mejor los estados que puede asumir una tarea durante su ciclo de vida de la siguiente manera:
En espera: La tarea está esperando ser procesada, momento en el cual estará disponible para ser ejecutada por el Runner que ha sido vinculado al proceso de automatización.
En ejecución: Runner sacó la tarea para su ejecución y se encuentra en la fase de procesamiento.
Finalizada: El procesamiento de la tarea se completó con éxito.
Fallida: El procesamiento del tarea finalizó con error.
Parcialmente completada: El procesamiento de la tarea se ha completado parcialmente. Por ejemplo, piense en un proceso en el que algunos elementos se procesaron correctamente y otros no.
Cancelada: La ejecución de la tarea se canceló antes de que se retirara para su ejecución.
Tip
Los estados de finalización de las tareas se pueden informar directamente a través del código de automatización, según las reglas comerciales de su proceso.
Información general de ejecución¶
Puede acceder a información específica sobre una tarea haciendo clic directamente en el nombre de la automatización, dentro de la tarjeta de tarea.
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:
Serás redirigido a una página con información detallada de la tarea utilizando cualquiera de las opciones anteriores.
Donde:
- Estado: Contiene información sobre el estado de la tarea.
- Ítems procesados: Número de elementos procesados correctamente por la tarea.
- Ítems fallidos: Número de elementos fallidos procesados por la tarea.
- 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.
Parámetros de la tarea¶
También puedes visualizar los parámetros utilizados en la tarea.
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:
- La función Nueva tarea de BotCity Maestro a través de la interfaz del orquestador.
- El comando task create de BotCity CLI a través de la línea de comandos.
- El SDK de BotCity Maestro a través de código.
- La API de BotCity Maestro a través de la API.
Información general de la fila de tareas, tarea y tiempo de ejecución¶
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 . Este botón permite:
- Eliminar: Eliminar una tarea que está en la fila de ejecución.
- Solicitar detener tarea: Solicitar la interrupción de la tarea. Obtén más información sobre esta funcionalidad aquí.
- Forzar detener tarea: Terminar la tarea forzando la finalización de la ejecución.
- Reiniciar: Reiniciar una tarea marcada como prueba.
- Cancelar: Cancela la ejecución de una tarea creada previamente en la cola.
- Duplicar: Pone en cola una tarea cancelada o ejecutada previamente con las mismas asignaciones.
Atención
- Las tareas en ejecución solo tienen las acciones
Solicitar detener tarea
yForzar detener tarea
. - Las tareas en la fila solo tienen las acciones
Eliminar
eCancelar
. - Solo las tareas definidas como prueba pueden reproducir la acción
Reiniciar
. - Las tareas finalizadas o canceladas solo tienen la acción
Duplicar
.
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:
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>
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
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
)
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.