Ir para o conteúdo

Alertas

Ir para alertas

Quando 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.

Alertas

Dica

Explore o Gerador de Snippet 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:

pip install botcity-maestro-sdk

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>
npm i @botcity/botcity-maestro-sdk
npm i @botcity/botcity-maestro-sdk

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
import dev.botcity.maestro_sdk.*;
...

public void action(BotExecution botExecution) {

    try {
        // Instanciando o Maestro SDK
        BotMaestroSDK maestro = new BotMaestroSDK();
        maestro.login(botExecution);
    ...
// 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

# 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
)
// Enviando um novo alerta de INFO
maestro.alert(botExecution.getTaskId(), "Info Alert", "This is an info alert", AlertType.INFO);
// Enviando um novo alerta de INFO
const alert = await maestro.alert(executionTask.id, "Info Alert", "This is an info alert", "INFO")
// Enviando um novo alerta de INFO
const alert: Alert = await maestro.alert(executionTask.id, "Info Alert", "This is an info alert", "INFO")

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()