Alertas
Ir para alertasQuando temos várias automações em execução ao mesmo tempo, é um desafio visualizar toda a operação. Os alertas são usados para fornecer pequenas mensagens que podem descrever algum aspecto específico de uma determinada automação.
Existem três tipos de alertas no Maestro:
- Mensagens de Informação representadas pelo ícone em azul.
- Mensagens de Aviso representadas pelo ícone em amarelo.
- Mensagens de Erro representadas pelo ícone em vermelho.
Dica
Explore o para obter exemplos de código que facilitam as manipulações de alertas, acesse e aprenda como gerar alertas informativos, alertas de warning, alertas de erro e e-mails customizados via código.
Os snippets gerados estão disponíveis nas linguagens Python, Java, JavaScript e TypeScript.
Como emitir alertas usando o Maestro SDK¶
Você pode facilmente enviar alertas para a plataforma 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)
Emitindo um novo alerta¶
Nota
Ao emitir um alerta, usuários específicos podem ser notificados por e-mail. Esses usuários são configurados na página de Automações no Orquestrador.
Aviso
Os usuários que podem receber os alertas por email são todos os que possuem acesso ao Workspace no qual foi implantado a automação.
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()
# Enviando um novo alerta de INFO
maestro.alert(
task_id=execution.task_id,
title="Info Alert",
message="This is an info alert",
alert_type=AlertType.INFO
)
bot = DesktopBot()
# Implemente aqui a sua lógica...
...
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.AlertType;
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);
// Enviando um novo alerta de INFO
maestro.alert(botExecution.getTaskId(), "Info Alert", "This is an info alert", AlertType.INFO);
// Implemente aqui a sua lógica...
...
} 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)
// Enviando um novo alerta de INFO
const alert = await maestro.alert(executionTask.id, "Info Alert", "This is an info alert", "INFO")
}
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)
// Enviando um novo alerta de INFO
const alert: Alert = await maestro.alert(executionTask.id, "Info Alert", "This is an info alert", "INFO")
}
main()