Saltar a contenido

Alertas

Cuando tenemos múltiples automatizaciones ejecutándose al mismo tiempo, es un desafío visualizar toda la operación. Las alertas se utilizan para proporcionar mensajes pequeños que pueden describir algún aspecto específico de una automatización determinada.

Hay tres tipos de alertas en Maestro:

  • 🟦 Mensajes INFO representados por el ícono azul.
  • 🟨 Mensajes ADVERTENCIA representados por el ícono amarillo.
  • 🟥 Mensajes ERROR representados por el ícono rojo.

Alertas

Tip

Explore Snippet Generator para ver ejemplos de código que facilitan la manipulación de alertas, acceder y aprender a generar alertas informativas, alertas de advertencia, alertas de error y correos electrónicos personalizados mediante código.

Los fragmentos generados están disponibles en los lenguajes Python, Java, JavaScript y TypeScript.

Cómo emitir alertas usando el SDK de Maestro

Puede enviar fácilmente alertas a la plataforma utilizando el SDK de Maestro en su código de automatización.

Instalación

Si aún no tiene instalada la dependencia, simplemente siga estas instrucciones:

pip install botcity-maestro-sdk

Important

Además de la instalación, recuerde 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>
npm i @botcity/botcity-maestro-sdk
npm i @botcity/botcity-maestro-sdk

Importar el SDK

Después de la instalación, importe la dependencia e instancie 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
import dev.botcity.maestro_sdk.*;
...

public void action(BotExecution botExecution) {

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

Emitir una nueva alerta

# Sending a new INFO alert
maestro.alert(
    task_id=execution.task_id,
    title="Info Alert",
    message="This is an info alert",
    alert_type=AlertType.INFO
)
// Enviar una nueva alerta INFO
maestro.alert(botExecution.getTaskId(), "Alerta de información", "Esta es una alerta de información", AlertType.INFO);
// Enviar una nueva alerta INFO
const alert = await maestro.alert(executionTask.id, "Alerta de información", "Esta es una alerta de información", "INFO")
// Enviar una nueva alerta INFO
const alert: Alert = await maestro.alert(executionTask.id, "Alerta de información", "Esta es una alerta de información", "INFO")

Nota

Al emitir una alerta, se puede notificar a usuarios específicos por correo electrónico. Estos usuarios se configuran en la página de Automatizaciones en el Orquestador.

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

    # Sending a new INFO alert
    maestro.alert(
        task_id=execution.task_id,
        title="Info Alert",
        message="This is an info alert",
        alert_type=AlertType.INFO
    )

    bot = DesktopBot()
    # Implement here your logic...
    ...

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

            // Sending a new INFO alert
            maestro.alert(botExecution.getTaskId(), "Info Alert", "This is an info alert", AlertType.INFO);

            // Implement here your logic...
            ...

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

    // Sending a new INFO alert
    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)

    // Sending a new INFO alert
    const alert: Alert = await maestro.alert(executionTask.id, "Info Alert", "This is an info alert", "INFO")
}

main()