Saltar a contenido

Setup

En esta sección encontrarás cómo configurar el BotCity Maestro SDK y cómo establecer una conexión con la plataforma del Orquestador BotCity por código.

Instalación

BotCity Maestro SDK está disponible como un paquete Python en PyPI.

Puedes instalarlo con:

pip install botcity-maestro-sdk

BotCity Maestro SDK está disponible como una dependencia Java en el repositorio Nexus.

La dependencia se instalará automáticamente después de ser agregada a tu pom.xml:

<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>
    <!-- Sus otras dependencias -->
    <dependency>
        <groupId>dev.botcity</groupId>
        <artifactId>maestro-sdk</artifactId>
        <version>2.0.3</version>
    </dependency>
</dependencies>

BotCity Maestro SDK está disponible como paquete Javascript en NPM.

Puedes instalarlo con:

npm i @botcity/botcity-maestro-sdk

BotCity Maestro SDK está disponible como paquete Javascript en NPM.

Puedes instalarlo con:

npm i @botcity/botcity-maestro-sdk

BotCity Maestro SDK está disponible como un paquete C# en NuGet.

Puedes instalarlo con:

dotnet add package BotCity.Maestro.SDK

Importar el SDK

Puedes importar el SDK en tu código con:

# Importando el paquete
from botcity.maestro import *

Puedes importar el SDK en tu código con:

// Importando el paquete
import dev.botcity.maestro_sdk.*;

Puedes importar el SDK en tu código con:

// Importando la clase BotMaestroSdk
const maestro = require("@botcity/botcity-maestro-sdk")

Puedes importar el SDK en tu código con:

// Importando la clase BotMaestroSdk
import { BotMaestroSdk } from '@botcity/botcity-maestro-sdk'

Puedes importar el SDK en tu código con:

// Importando el paquete
using Dev.BotCity;

Crear un nuevo cliente Maestro

BotMaestroSDK es la clase principal que se utiliza al interactuar con las funcionalidades del Orquestador BotCity.

Puedes crear un nuevo cliente Maestro con:

# Instancia de un cliente del Maestro SDK
maestro = BotMaestroSDK()
// Instancia de un cliente del Maestro SDK
BotMaestroSDK maestro = new BotMaestroSDK();
// Instancia de un cliente del Maestro SDK
const maestro = new BotMaestroSdk()
// Instancia de un cliente del Maestro SDK
const maestro: BotMaestroSdk = new BotMaestroSdk()
// Instancia de un cliente del Maestro SDK
BotMaestroSDK maestro = new BotMaestroSDK();

Establecer una conexión con el Orquestador

Existen básicamente dos formas de establecer conexión con el Orquestador BotCity por código.

  • Autenticación en ejecución local
  • Autenticación a través del Runner

Ejecución local

Durante la fase de desarrollo, puedes conectarte con el Orquestador BotCity para probar los recursos.

Para realizar la autenticación en código, necesitas la información de tu workspace:

  • Server:
    • Comunidad: https://developers.botcity.dev
    • Dedicado: https://tu-empresa.botcity.dev
  • Login: Código de autenticación
  • Key: Clave de autenticación

Autenticación

Encuentra las credenciales para la autenticación directamente en tu workspace del Orquestador BotCity, en la sección de Configuración en el menú lateral.

Consulta más en:

¡Atención!

Este método debe utilizarse en contextos de prueba local. No se recomienda desplegar el código con este tipo de autenticación.

maestro.login(
    server="<SERVER>", 
    login="<LOGIN>", 
    key="<CLAVE>"
)
maestro.login("<SERVER>", "<LOGIN>", "<CLAVE>");
await maestro.login("<SERVER>", "<LOGIN>", "<CLAVE>")
await maestro.login("<SERVER>", "<LOGIN>", "<CLAVE>")
await maestro.LoginAsync("<SERVER>", "<LOGIN>", "<KEY>");

Ejecución a través del Runner

En la fase en que el robot está terminado y listo para su despliegue, la autenticación debe realizarse de forma dinámica a través de los argumentos pasados por el Runner que ejecutará las tareas.

Tutorial

Puedes utilizar las plantillas de proyecto de BotCity con fragmentos de código base ya listos para la primera ejecución.

Consulta más en:

# Obteniendo los argumentos que son pasados por el Runner
maestro = BotMaestroSDK.from_sys_args()
public void action(BotExecution botExecution) {

    try {
        // Instancia del Maestro SDK
        // El objeto BotExecution contiene la información que es pasada por el Runner
        BotMaestroSDK maestro = new BotMaestroSDK();
        maestro.login(botExecution);
    ...
// Aún no implementado
// Aún no implementado
// Obteniendo los argumentos que son pasados por el Runner
BotMaestroSDK maestro = BotMaestroSDK.FromSysArgs();

Obtener la referencia de la ejecución actual

Durante la ejecución de una tarea, puedes obtener información importante de una ejecución como el ID de la tarea o los parámetros de esa tarea en ejecución.

# Instancia del Maestro SDK
maestro = BotMaestroSDK.from_sys_args()
# Obtiene los detalles de la tarea actual en ejecución
execution = maestro.get_execution()

# Información de la tarea que está siendo ejecutada
print(f"Task ID is: {execution.task_id}")
print(f"Task Parameters are: {execution.parameters}")
public void action(BotExecution botExecution) {

    try {
        // Instancia del Maestro SDK
        // El objeto BotExecution contiene la información que es pasada por el Runner
        BotMaestroSDK maestro = new BotMaestroSDK();
        maestro.login(botExecution);

        // Información de la tarea que está siendo ejecutada
        System.out.println(botExecution.getTaskId());
    ...
// Obteniendo los parámetros pasados por el Runner
const args = process.argv.slice(2)
const [server, taskid, token] = args

// Instanciando el Maestro SDK
const maestro = new BotMaestroSdk()
maestro.login(<SERVER>, "<LOGIN>", "<CLAVE>")

// Obteniendo los detalles de la tarea actual en ejecución
const executionTask = await maestro.getTask(taskid)
// Obteniendo los parámetros pasados por el Runner
const args = process.argv.slice(2)
const [server, taskid, token] = args

// Instanciando el Maestro SDK
const maestro: BotMaestroSdk = new BotMaestroSdk()
maestro.login("<SERVER>", "<LOGIN>", "<CLAVE>")

// Obteniendo los detalles de la tarea actual en ejecución
const executionTask: Task = await maestro.getTask(taskid)
using Dev.BotCity.MaestroSdk.Model.Execution;

// Instancia del Maestro SDK
BotMaestroSDK maestro = BotMaestroSDK.FromSysArgs();
// Obtiene los detalles de la tarea actual en ejecución
Execution execution = await maestro.GetExecutionAsync(maestro.GetTaskId());

// Información de la tarea que está siendo ejecutada
Console.WriteLine("Task ID is: " + execution.TaskId);
Console.WriteLine("Task Parameters are: " + string.Join(", ", execution.Parameters));

Listo

Con la configuración lista, puedes intercambiar información de forma segura entre la ejecución a través del Runner y el Orquestador BotCity.

Toda la información generada en el proceso de ejecución de una tarea puede almacenarse en el Orquestador BotCity, pero para ello necesitas usar los métodos explícitamente en el código.

Orquestador BotCity

El Orquestador BotCity no accede ni asume ningún valor generado en la ejecución de la tarea. Solo se registran automáticamente informaciones básicas de marcador de tiempo de cola, tiempo de ejecución y nombre del Runner que ejecutó la tarea.