Ir para o conteúdo

Arquivos de Resultado

Os Arquivos de Resultado ou Artefatos são arquivos que podem ser criados ou consumidos durante o processamento de uma tarefa.

Nessa seção você encontra como fazer manipulações desses arquivos via SDK.

Orquestrador BotCity

Você pode visualizar a funcionalidade de Arquivos de Resultado diretamente na plataforma do Orquestrador BotCity.

Veja mais em:

Enviar um artefato

Ao executar uma tarefa, arquivos de qualquer tipo podem ser produzidos como resultado do processamento.

Você pode enviar arquivos de qualquer tipo para o Orquestrador BotCity utilizando o SDK. Você precisa das seguintes informações:

  • ID da tarefa: Referência da tarefa que receberá o arquivo.
  • Nome do Artefato: Dê um nome e extensão do arquivo que ficará disponivel no Orquestrador.
  • Caminho: Defina o caminho no ambiente de execução onde o arquivo está localizado.

Tamanho do Arquivo

É recomendado que um arquivo seja menor do que 100MB para que a transferência ocorra sem problemas.

Exemplo de envio de arquivo:

maestro.post_artifact(
    task_id=<TASK_ID>,
    artifact_name="Meu artefato.txt",
    filepath="resources/artefato.txt"
)
File artefato = new File("artefato.txt");
maestro.postArtifact(<TASK_ID>, "Meu artefato", artefato);
const caminho_do_arquivo = "artefato.txt"
const artefato = await maestro.createArtifact(<TASK_ID>, "Meu artefato", caminho_do_arquivo)
const caminho_do_arquivo: string = "artefato.txt"
const artefato: Artifact = await maestro.createArtifact(<TASK_ID>, "Meu artefato", caminho_do_arquivo)
using Dev.BotCity.MaestroSdk.Model.Artifact;

await maestro.PostArtifactAsync(
    <TASK_ID>,
    "Meu artefato",
    "artefato.txt"
);

Listando todos os artefatos

Você pode listar os arquivos de resultado disponiveis no Orquestrador BotCity utilizando o SDK. Você precisa das seguintes informações:

  • Dias: Filtro de número de dias a partir da data atual.

Parâmetro padrão

Quando o número de dias não é informado, por padrão é retornado os arquivos dos últimos 7 dias.

Exemplo de como listar arquivos:

artefato = maestro.list_artifacts()
List<ArtifactVO> artifacts = maestro.listArtifact();
const artefato = await maestro.getArtifacts("10", "5")
const artefato: Artifacts = await maestro.getArtifacts("10", "5")
List<Artifact> artifacts = await maestro.listArtifactAsync();
Exemplo de retorno

A lista de artefatos é uma lista de objetos Artefato.

[
    Artifact(
        id=<ARTIFACT_ID>,, 
        type='RESULT', 
        task_id=<TASK_ID>,, 
        task_name=None, 
        name=<FILE_NAME>, 
        filename=<FILE_NAME>, 
        storage_filename=<FILE_NAME>, 
        storage_filepath=<FILE_PATH>, 
        organization=None, 
        user=None, 
        date_creation=<DATE>
        ),
]

Baixar um artefato

Você pode baixar os arquivos de resultado disponiveis no Orquestrador BotCity utilizando o SDK. Você precisa das seguintes informações:

  • ID do artefato: Número de identificação do arquivo para baixá-lo.

Retorno

O padrão de retorno é nome do arquivo e um array de bytes com o conteúdo binário do artefato que pode ser salvo localmente.

Exemplo de como baixar arquivos:

# Define artifact ID
artefato_id = "<ARTIFACT_ID>"

# Get artifact name and content
nome, conteudo = maestro.get_artifact(artifact_id=artefato_id)

# Write to disk
with open(nome, "wb") as file:
    file.write(conteudo)
File artefato = new File("<path to file>/artifact.txt");

// Define artifact ID
String artefatoId = "<ARTIFACT_ID>";

// Get artifact content
byte[] dados = maestro.getArtifactFile(artefatoId);

// Write to disk
FileUtils.writeByteArrayToFile(artefato, dados);
// Define artifact ID
const artefatoId = "<ARTIFACT_ID>"

const caminho_do_arquivo = "artifact.txt"

const dados = await maestro.downloadArtifact(artefatoId, caminho_do_arquivo)
// Define artifact ID
const artefatoId: string = "<ARTIFACT_ID>"

const caminho_do_arquivo: string = "artifact.txt"

const dados: Buffer = await maestro.downloadArtifact(artefatoId, caminho_do_arquivo)
using System;
using System.IO;

// Define artifact ID
string artifactId = "<ARTIFACT_ID>";

// Get artifact content
var (fileName, fileContent) = await maestro.GetArtifactAsync(artifactId);

string filePath = Path.Combine(Environment.CurrentDirectory, fileName);

// Write to disk
await File.WriteAllBytesAsync(filePath, fileContent);