Tarefas
Ir para TarefasA fila de tarefas mostra tarefas em execução, prontas para serem executadas e finalizadas.
Visualização da fila de tarefas¶
Você pode visualizar a fila de tarefas de duas formas:
- Em formato de cartões, onde cada cartão representa uma única tarefa:
- Em formato de lista, onde cada linha representa uma única tarefa:
Tambem é possivel utilizar os filtros de State, Repositório, Automação, Runner, ID da Tarefa, Data de início e Data de término para visualizar tarefas específicas.
A fila de tarefas também possui a coluna Última Atualização
, onde você pode ver há quanto tempo uma tarefa está na fila, sendo processada ou concluída. Essa funcionalidade proporciona uma visão mais clara do tempo gasto em cada etapa.
Aviso sobre Runners offline
Se houverem tarefas na fila associadas a Runners que estão offline, um aviso será exibido para você revisar seus Runners alocados.
Este alerta inclui um link direto para a aba Runners
da plataforma, onde você poderá gerenciar os Runners do seu workspace.
Customizando a visualização das tarefas¶
Você também pode customizar a tabela de visualização das tarefas de acordo com as suas preferências.
Quando você seleciona um tipo de filtro ou classificação de coluna, essa configuração será salva como padrão. Através do botão Personalize a visualização da lista de tarefas
você consegue encontrar mais detalhes.
Informações da tarefa¶
Status¶
Ao criar uma nova tarefa, ela inicialmente ficará com o status de Aguardando
, ou seja, ela irá aguardar até que um Runner esteja disponível para executá-la.
Podemos entender melhor os status que uma tarefa pode assumir durante o seu ciclo de vida da seguinte maneira:
Aguardando: A tarefa está aguardando o processamento, nesse ponto ela estará disponível para ser executada pelo Runner que foi vinculado ao processo de automação.
Executando: A tarefa foi puxada para execução pelo Runner e está na fase de processamento.
Finalizado: O processamento da tarefa foi finalizado com sucesso.
Falhou: O processamento da tarefa foi finalizado com falha.
Parcialmente finalizado: O processamento da tarefa foi finalizado de forma parcial. Por exemplo, pense em um processo onde alguns itens foram processados com sucesso e outros não foram processados corretamente.
Cancelado: A execução da tarefa foi cancelada antes que ela fosse puxada para execução.
Dica
Os status de finalização das tarefas podem ser reportados diretamente através do código da automação, baseado nas regras de negócio do seu processo.
Informações gerais da execução¶
Você consegue acessar informações específicas de uma tarefa clicando diretamente no nome da automação, dentro do cartão da tarefa.
Pela visualização no formato de lista, é possivel acessar as informações detalhadas clicando no ID da tarefa:
Ao utilizar qualquer uma das opções acima, você será redirecionado para uma página com informações detalhadas da tarefa.
Onde:
- State: Carrega a informação do estado da tarefa.
- Itens processados: Quantidade de itens processados com sucesso pela tarefa.
- Itens com falha: Quantidade de itens processados com falha pela tarefa.
- Execução: O tempo gasto na execução da tarefa, após sair da fila de execução.
- Runner: O Runner responsável pela execução da tarefa.
Mensagem de finalização da tarefa¶
Você pode visualizar a mensagem de finalização da tarefa. Caso ocorra algum erro durante a preparação do ambiente ou na execução do código, essa informação será exibida na mensagem de finalização.
Você também pode personalizar e definir uma mensagem de finalização customizada. Veja mais detalhes sobre como finalizar uma tarefa no Maestro nos próximos passos.
Parâmetros da tarefa¶
Você também consegue visualizar os parâmetros de entrada utlizados na tarefa.
Você encontrará os parâmetros de execução definidos pelo usuário ao criar uma nova tarefa.
Dica
A definição do conjunto de parâmetros é feita pelos desenvolvedores ao criar um processo de automação.
Saiba mais sobre como criar uma tarefa com ou sem parâmetros usando:
- Novo recurso de tarefas do BotCity Maestro através da interface do orquestrador.
- Comando para criar tarefas do BotCity CLI via linha de comando.
- BotCity Maestro SDK via código.
- BotCity Maestro API através da API.
Informações gerais da fila de tarefas e runtime¶
Onde:
-
Fila de controle: Possui informaçãoes de controle da fila de tarefas como prioridade da tarefa, data mínima de execução e informações se a tarefa foi interrompida ou terminada pela UI do Maestro.
-
Sumário da tarefa: Possui informações da tarefa, como ID, label, usuário que inicou a tarefa e se é uma tarefa de teste ou não.
-
Runtime: Possui informação da execução, como o Runner que executou a tarefa, e data e hora que a tarefa foi criada, iniciada e finalizada.
Ações da tarefa¶
Na tela de informações da tarefa, voce vai encontar o botão , esse botão permite:
- Excluir: Exclui uma tarefa que está na fila de execução.
- Solicitar parada: Solicita a interrupção de uma tarefa em execução. Saiba mais sobre essa funcionalidade aqui.
- Forçar a parada: Finaliza a tarefa forçando o término da execução.
- Reiniciar: Reinicia uma tarefa.
- Cancelar: Cancela a execução de uma tarefa criada anteriormente na fila.
- Duplicar: Enfileira novamente com as mesmas atribuições uma tarefa cancelada ou que já foi executada anteriormente.
Atenção
- Tarefas em execução só possuem acões de
Solicitar parada
eForçar a parada
. - Tarefas na fila só possuem ações de
Excluir
eCancelar
. - Apenas tarefas definidas como teste podem reproduzir a ação
Reiniciar
. - Tarefas finalizadas ou canceladas possuem somente a ação de
Duplicar
.
Como finalizar uma tarefa usando o Maestro SDK¶
Por padrão, ao rodar uma tarefa pela primeira vez sem utilizar nenhum tipo de integração com o Maestro, a tarefa será finalizada com o status de Falha.
Isso ocorre pois devemos definir no código as instruções para finalizar a tarefa e reportar o status de finalização desejado para o Maestro.
Você pode facilmente finalizar tarefas no Maestro usando o Maestro SDK no código da sua automação.
Instalação do SDK¶
Caso você ainda não tenha a dependência instalada, basta seguir essas instruções:
Importante
Além de instalar, lembre-se de incluir a dependência no arquivo requirements.txt
do 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>
Importando o SDK¶
Após a instalação, basta importar a dependência e instanciar o Maestro SDK:
# Importando a dependência do Maestro SDK
from botcity.maestro import *
# Desabilitando erros caso não exista conexão com o Maestro
BotMaestroSDK.RAISE_NOT_CONNECTED = False
# Instanciando o Maestro SDK
maestro = BotMaestroSDK.from_sys_args()
# Buscando os detalhes da tarefa atual sendo executada
execution = maestro.get_execution()
// Importando a dependência do Maestro SDK
const { BotMaestroSdk } = require('@botcity/botcity-maestro-sdk')
// Obtendo parâmetros passados pelo Runner
const args = process.argv.slice(2)
const [server, taskid, token] = args
// Login com as informações da página Amb. Desenvolvedor
const maestro = new BotMaestroSdk()
maestro.login("YOUR_SERVER_HERE", "YOUR_USER_HERE", "YOUR_KEY_HERE")
// Buscando os detalhes da tarefa atual sendo executada
const executionTask = await maestro.getTask(taskid)
// Importando a dependência do Maestro SDK
import { BotMaestroSdk } from '@botcity/botcity-maestro-sdk'
// Obtendo parâmetros passados pelo Runner
const args = process.argv.slice(2)
const [server, taskid, token] = args
// Login com as informações da página Amb. Desenvolvedor
const maestro: BotMaestroSdk = new BotMaestroSdk()
maestro.login("YOUR_SERVER_HERE", "YOUR_USER_HERE", "YOUR_KEY_HERE")
// Buscando os detalhes da tarefa atual sendo executada
const executionTask: Task = await maestro.getTask(taskid)
Finalizando uma tarefa e reportando dados¶
Além de reportar o status de finalização de uma tarefa, também podemos reportar dados adicionais referentes aos itens que foram processados durante a execução.
maestro.finish_task(
task_id=execution.task_id,
status=AutomationTaskFinishStatus.SUCCESS,
message="Task Finished with Success.",
total_items=100, # Número total de itens processados
processed_items=90, # Número de itens processados com sucesso
failed_items=10 # Número de itens processados com falha
)
Info
Esse recurso de reportar dados também faz parte do BotCity Insights, que é um módulo dedicado a parte de reportar e exibir dados referentes à sua iniciativa de RPA.
A etapa de reportar os dados no código da automação é essencial para que as informações de alto nível sejam geradas.
Veja mais detalhes sobre esse módulo acessando a documentação do BotCity Insights.
Código completo¶
from botcity.core import DesktopBot
from botcity.maestro import *
# Desabilitando erros caso não exista conexão com o Maestro
BotMaestroSDK.RAISE_NOT_CONNECTED = False
def main():
maestro = BotMaestroSDK.from_sys_args()
execution = maestro.get_execution()
bot = DesktopBot()
# Implemente aqui a sua lógica...
...
# Finalizando tarefa com sucesso
maestro.finish_task(
task_id=execution.task_id,
status=AutomationTaskFinishStatus.SUCCESS,
message="Task Finished with Success.",
total_items=100, # Número total de itens processados
processed_items=90, # Número de itens processados com sucesso
failed_items=10 # Número de itens processados com falha
)
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);
// Implemente aqui a sua lógica...
// Finalizando tarefa com sucesso
maestro.finishTask(
botExecution.getTaskId(),
"Task Finished with Success.",
FinishStatus.SUCCESS,
100, // Número total de itens processados
90, // Número de itens processados com sucesso
10 // Número de itens processados com falha
);
} 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)
// Finalizando tarefa com sucesso
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)
// Finalizando tarefa com sucesso
await maestro.finishtTask(
executionTask.id,
"Task finished with Success.",
"SUCCESS"
)
}
main()
Dica
Consulte as outras operações que podemos fazer com tarefas utilizando o BotCity Maestro SDK e BotCity Maestro API.