Tareas¶
Como se ha cubierto hasta ahora, las tareas son instancias de una Automatización
y uno de los conceptos más importantes en la plataforma BotCity Maestro.
Aquí cubriremos cómo crear, interrumpir, finalizar y recuperar tareas.
Crear una tarea¶
Podemos crear una nueva tarea a través del SDK de BotMaestro utilizando el siguiente código:
Advertencia sobre la zona horaria
Las zonas horarias del servidor BotCity Maestro Orchestrator están en UTC.
Por lo tanto, recuerde considerar la diferencia entre zonas horarias si utiliza el parámetro min_execution_date
al crear la tarea.
Interrumpir una tarea¶
Para tareas de larga duración, como el procesamiento por lotes de elementos, puede ser prudente permitir a los usuarios solicitar su interrupción.
Aquí se muestra cómo solicitar la interrupción de una tarea específica:
Important
Ten en cuenta que no se garantiza que la tarea se interrumpa.
Es responsabilidad del desarrollador del código del bot verificar la bandera de interrupción solicitada y actuar en consecuencia para detener la tarea.
Verificar la solicitud de interrupción¶
Es responsabilidad del desarrollador del código del bot verificar la bandera de interrupción solicitada y actuar en consecuencia para detener la tarea.
Aquí te mostramos cómo hacerlo:
Finalizar una tarea reportando datos adicionales¶
Una vez que se crean las tareas, se encolan en el BotCity Maestro y se recopilan para su ejecución por el BotCity Runner.
Las tareas que se recopilan para su ejecución avanzan al estado Running
.
Es responsabilidad del desarrollador del bot informar al BotCity Maestro a través del SDK sobre el estado final adecuado de una tarea.
Esto permite un mejor control y también agregar detalles sobre la finalización de la tarea que luego pueden ser inspeccionados por los usuarios a través del portal de BotCity Maestro.
Una tarea puede finalizarse con uno de los siguientes estados:
SUCCESS
: La tarea finalizó correctamente.FAILED
: La tarea no pudo finalizar.PARTIALLY_COMPLETED
: La tarea completó parte de los pasos esperados.
Además de reportar el estado de finalización de una tarea, también podemos reportar datos adicionales sobre los elementos que se procesaron durante la ejecución.
Este recurso será muy útil en los casos en que necesitemos supervisar la cantidad de elementos procesados con éxito o falla por la tarea.
Tip
Básicamente, un elemento puede ser cualquier entidad relacionada con tu proceso de automatización.
De esta forma, puedes utilizar la lógica que sea necesaria para el proceso y definir cómo se consumirá, procesará y contabilizará cada elemento en el código.
Al final, simplemente reporta estos datos a través del método finish_task
del SDK de Maestro.
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.
Recuperar una tarea¶
Puedes obtener información sobre una tarea utilizando el ID o a través de la referencia de ejecución actual.
Usando el ID de una tarea específica¶
Obtener la referencia de ejecución actual¶
Como vimos anteriormente, el SDK de Maestro tiene un método especial para obtener la referencia de la tarea actual que se está ejecutando por el Runner.
De esta manera, podemos acceder a la información de ejecución de manera más práctica.
Info
Por defecto, el objeto BotExecution
ya está configurado en la plantilla del proyecto Java de BotCity.
Acceder a los parámetros de la tarea¶
Una de las piezas de información a las que podemos acceder desde una tarea son los parámetros de entrada que recibe.
Los parámetros de una tarea se tratan como un diccionario; para acceder a un valor, podemos pasar la etiqueta que se utilizó para crear el parámetro en BotCity Maestro como clave.
Consulta más detalles sobre cómo parametrizar la automatización en Maestro a través de la sección Automatizaciones.
Info
Por defecto, el objeto BotExecution
ya está configurado en la plantilla del proyecto Java de BotCity.
public void action(BotExecution botExecution) {
try {
// Instantiating the Maestro SDK
// The BotExecution object contains the information that is passed by the Runner
BotMaestroSDK maestro = new BotMaestroSDK();
maestro.login(botExecution);
// Getting parameter by label
Object parameter = botExecution.getParams().get("<PARAMETER_LABEL>");
...
// Getting the arguments passed by Runner
const args = process.argv.slice(2)
const [server, taskid, token] = args
// Instantiating the Maestro SDK
const maestro = new BotMaestroSdk()
maestro.login("https://developers.botcity.dev", "<LOGIN>", "<KEY>")
// Getting the details of the current task being executed
const executionTask = await maestro.getTask(taskid)
// Getting the arguments passed by Runner
const args = process.argv.slice(2)
const [server, taskid, token] = args
// Instantiating the Maestro SDK
const maestro: BotMaestroSdk = new BotMaestroSdk()
maestro.login("https://developers.botcity.dev", "<LOGIN>", "<KEY>")
// Getting the details of the current task being executed
const executionTask: Task = await maestro.getTask(taskid)