Ir para o conteúdo

Setup

Nesta seção você encontra como fazer a configuração do BotCity Maestro SDK e como estabelecer uma conexão com a plataforma Orquestrador BotCity via código.

Instalação

BotCity Maestro SDK está disponível como um pacote Python no PyPI.

Você pode instalá-lo com:

pip install botcity-maestro-sdk

BotCity Maestro SDK está disponível como uma dependência Java no repositório Nexus.

A dependência será instalada automaticamente após ser adicionada ao seu 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>
    <!-- Your other dependencies -->
    <dependency>
        <groupId>dev.botcity</groupId>
        <artifactId>maestro-sdk</artifactId>
        <version>2.0.3</version>
    </dependency>
</dependencies>

BotCity Maestro SDK está disponível como pacote Javascript no NPM.

Você pode instalá-lo com:

npm i @botcity/botcity-maestro-sdk

BotCity Maestro SDK está disponível como pacote Javascript no NPM.

Você pode instalá-lo com:

npm i @botcity/botcity-maestro-sdk

BotCity Maestro SDK está disponível como um pacote C# no NuGet.

Você pode instalá-lo com:

dotnet add package BotCity.Maestro.SDK

Importar o SDK

Você pode importar o SDK para o seu código com:

# Importando o pacote
from botcity.maestro import *

Você pode importar o SDK para o seu código com:

// Importando o pacote
import dev.botcity.maestro_sdk.*;

Você pode importar o SDK para o seu código com:

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

Você pode importar o SDK para o seu código com:

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

Você pode importar o SDK para o seu código com:

// Importando o pacote
using Dev.BotCity;

Criar um novo cliente Maestro

O BotMaestroSDK é a classe principal a ser usada ao interagir com as funcionalidades do Orquestrador BotCity.

Você pode criar um novo cliente Maestro com:

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

Estabelecer uma conexão com o Orquestrador

Existem basicamente duas formas de estabelecermos conexão com o Orquestrador BotCity via código.

  • Autenticação em execução local
  • Autenticação via Runner

Execução local

Durante a fase de desenvolvimento, você pode fazer conexão com o Orquestrador BotCity para testar os recursos.

Para fazer a autenticação em código, você precisa das informações do seu workspace:

  • Server:
    • Comunidade: https://developers.botcity.dev
    • Dedicado: https://sua-empresa.botcity.dev
  • Login: Código de autenticação
  • Key: Chave de autenticação

Autenticação

Encontre as credenciais para autenticação diretamente no seu workspace do Orquestrador BotCity, na seção de Configuração no menu lateral.

Veja mais em:

Atenção!

Esse método deve ser utilizado em contextos de teste local, não é recomendado que o código seja implantado com esse tipo de autenticação.

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

Execução via Runner

Na fase de robô concluido e pronto para implantação, a autenticação deve ser feita dinamicamente via argumentos passados pelo Runner que executará as tarefas.

Tutorial

Você pode utilizar os templates de projeto da BotCity com trechos de código base já prontos para a primeira execução.

Veja mais em:

# Obtendo os argumentos que são passados pelo Runner
maestro = BotMaestroSDK.from_sys_args()
public void action(BotExecution botExecution) {

    try {
        // Instancia do Maestro SDK
        // O objeto BotExecution contém as informações que são passadas pelo Runner
        BotMaestroSDK maestro = new BotMaestroSDK();
        maestro.login(botExecution);
    ...
// Ainda não implementado
// Ainda não implementado
// Obtendo os argumentos que são passados pelo Runner
BotMaestroSDK maestro = BotMaestroSDK.FromSysArgs();

Obter a referência da execução atual

Durante o momento de execução de uma tarefa, você pode retornar informações importantes de uma execução como ID da tarefa ou parâmetros dessa tarefa em execução.

# Instancia do Maestro SDK
maestro = BotMaestroSDK.from_sys_args()
# Busca os detalhes da tarefa atual sendo executada
execution = maestro.get_execution()

# Informações da tarefa que está sendo executada
print(f"Task ID is: {execution.task_id}")
print(f"Task Parameters are: {execution.parameters}")
public void action(BotExecution botExecution) {

    try {
        // Instancia do Maestro SDK
        // O objeto BotExecution contém as informações que são passadas pelo Runner
        BotMaestroSDK maestro = new BotMaestroSDK();
        maestro.login(botExecution);

        // Informações da tarefa que está sendo executada
        System.out.println(botExecution.getTaskId());
    ...
// Obtendo parâmetros passados pelo Runner
const args = process.argv.slice(2)
const [server, taskid, token] = args

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

// Buscando os detalhes da tarefa atual sendo executada
const executionTask = await maestro.getTask(taskid)
// Obtendo parâmetros passados pelo Runner
const args = process.argv.slice(2)
const [server, taskid, token] = args

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

// Buscando os detalhes da tarefa atual sendo executada
const executionTask: Task = await maestro.getTask(taskid)
using Dev.BotCity.MaestroSdk.Model.Execution;

// Instância do Maestro SDK
BotMaestroSDK maestro = BotMaestroSDK.FromSysArgs();
// Busca os detalhes da tarefa atual sendo executada
Execution execution = await maestro.GetExecutionAsync(maestro.GetTaskId());

// Informações da tarefa que está sendo executada
Console.WriteLine("Task ID is: " + execution.TaskId);
Console.WriteLine("Task Parameters are: " + string.Join(", ", execution.Parameters));

Pronto

Com o setup pronto, você pode fazer a troca de informações de maneira segura entre a execução pelo Runner e o Orquestrador BotCity.

Todas informações geradas no processo de execução de uma tarefa podem ser armazenadas no Orquestrador BotCity, mas para isso você precisa usar os métodos explicitamente em código.

Orquestrador BotCity

O Orquestrador BotCity não acessa nem assume qualquer valor gerado na execução da tarefa. São registrados automaticamente apenas informações básicas de marcador de tempo de fila, tempo de execução e nome de Runner que executou a tarefa.