robot
2022.10
false
- Notas de Versão
- Introdução
- UiPath Assistant
- Instalação e atualização
- Tipos de Robô
- Componentes do Robô
- Licenciamento
- Conectar Robôs ao Orchestrator
- Processos e Atividades
- Geração de logs
- Robot JavaScript SDK
- Cenários Específicos
- Reinicialização de componentes dos Robots
- Sessões do Windows
- Login usando o Sistema de Credenciais Thales Luna
- Login usando o Provedor de Armazenamento de Chaves nShield
- Redirecionando Robôs por meio de um Servidor de Proxy
- Executando tarefas em uma Janela RDP Minimizada
- Usando Unidades de Rede Mapeadas
- Interrompendo um Processo
- Desabilitar o Botão Parar
- Pastas de Pacote Personalizados e Caminhos de Rede
- Integração do CrowdStrike
- Virtualização de aplicativos Robot Citrix
- Solução de problemas
- Robô sem resposta sobre RDP
- Logs de Execução Duplicados
- Erros de Robô Frequentemente Encontrados
- Aumento da Duração da Execução do Processo
- Verificação Forçada de Assinatura do Pacote
- Mensagem muito grande para processar
- Erros ao Executar como Administrador
- Pacotes do NuGet não acessíveis após a migração
- Prompt de Controle de Acesso do Usuário e de Automação de Atividades da Interface Gráfica
- .NET necessário durante a instalação
- Montagem não pode ser carregada da rede ou do Azure File Share
- As atividades não podem encontrar o .NET Runtime
Especificações do SDK
Guia do usuário do robô
Última atualização 18 de dez de 2024
Especificações do SDK
Você pode incluir os seguintes métodos e propriedades em seu aplicativo personalizado ou página da web.
O método
init
é opcional. Ele retorna a Instância IRobotSDK, que habilita você a armazená-la como uma variável para uso posterior.
const robot = UiPathRobot.init();
const robot = UiPathRobot.init();
A propriedade
settings
do tipo Configurações permite que você altere o número da porta padrão, o período do intervalo de pesquisa em milissegundos ou desabilite o envio de dados de telemetria.
const robot = UiPathRobot.init();
robot.settings.portNumber = 1234;
robot.settings.pollTimeInterval = 1000;
robot.settings.disableTelemetry = true;
const robot = UiPathRobot.init();
robot.settings.portNumber = 1234;
robot.settings.pollTimeInterval = 1000;
robot.settings.disableTelemetry = true;
O método
on
é usado para anexar os gerenciadores de eventos ao SDK.
Os eventos de SDK disponíveis são
consent-prompt
e missing-components
.
O SDK de JavaScript da UiPath vem com uma sobreposição de consentimento integrada, sempre que seu aplicativo personalizado ou página da web precisar se conectar ao Robô.
Essa sobreposição de consentimento pode ser substituída por um gerenciador personalizado.
const robot = UiPathRobot.init();
robot.on('consent-prompt', consentCode => console.log(consentCode));
const robot = UiPathRobot.init();
robot.on('consent-prompt', consentCode => console.log(consentCode));
O evento
missing-components
é gerado quando o Serviço Robot JS não está em execução. Nesse caso o SDK exibe um erro, que pode ser substituído por um gerenciador personalizado.
const robot = UiPathRobot.init();
robot.on('missing-components', () => console.log('Missing Components'));
const robot = UiPathRobot.init();
robot.on('missing-components', () => console.log('Missing Components'));
O método
getProcesses
recupera a lista de processos disponíveis. Retorna uma Promise para um Array de objetos RobotProcess. Se o Robô estiver conectado ao Orchestrator, ele irá recuperar os processos do ambiente e da pasta a qual o Robô faz parte. Caso contrário, os processos locais são recuperados.
const robot = UiPathRobot.init();
const processes = await robot.getProcesses();
for(let i=0; i<processes.length; i++){
console.log(processes[i].name + " (" + processes[i].description + ") - Id=" + processes[i].id);
}
const robot = UiPathRobot.init();
const processes = await robot.getProcesses();
for(let i=0; i<processes.length; i++){
console.log(processes[i].name + " (" + processes[i].description + ") - Id=" + processes[i].id);
}
Usando a propriedade
inputArgumentsSchema
de um processo instalado, você pode recuperar os argumentos de entrada de um processo. Antes de usar a propriedade inputArgumentsSchema
, primeiro você precisa instalar o processo.
O método
installProcess
instala um processo e retorna uma Promise para um objeto do tipo InstallProcessResult, que contém um array de objetos InputArgumentSchema.
const robot = UiPathRobot.init();
const processes = await robot.getProcesses();
const installedProcess = await robot.installProcess(processes[0].id);
for(let i=0; i<installedProcess.inputArgumentsSchema.length; i++){
console.log("Argument " + i + ":");
console.log(" name: " + installedProcess.inputArgumentsSchema[i].name)
console.log(" type: " + installedProcess.inputArgumentsSchema[i].type)
console.log(" isRequired: " + installedProcess.inputArgumentsSchema[i].isRequired)
console.log(" hasDefault: " + installedProcess.inputArgumentsSchema[i].hasDefault)
}
const robot = UiPathRobot.init();
const processes = await robot.getProcesses();
const installedProcess = await robot.installProcess(processes[0].id);
for(let i=0; i<installedProcess.inputArgumentsSchema.length; i++){
console.log("Argument " + i + ":");
console.log(" name: " + installedProcess.inputArgumentsSchema[i].name)
console.log(" type: " + installedProcess.inputArgumentsSchema[i].type)
console.log(" isRequired: " + installedProcess.inputArgumentsSchema[i].isRequired)
console.log(" hasDefault: " + installedProcess.inputArgumentsSchema[i].hasDefault)
}
Observação: no TypeScript, o método
install
de um objeto RobotProcess pode ser usado para instalar um processo.
const robot = UiPathRobot.init();
const processes = await robot.getProcesses();
const myProcess = processes.find(p => p.name === "MyProcess");
const installedProcess = await myProcess.install();
const robot = UiPathRobot.init();
const processes = await robot.getProcesses();
const myProcess = processes.find(p => p.name === "MyProcess");
const installedProcess = await myProcess.install();
O método
startJob
recebe um Job
já criado e o inicia. Ele retorna uma Promise para um objeto do tipo JobResult, que contém os argumentos de saída.
O método
createJob
cria um trabalho de Robot usando o ID do processo. Opcionalmente, ele pode receber os argumentos de entrada do trabalho. Ele retorna um objeto do trabalho.
Observação: a partir da v2022.10, a lista de processos é atualizada em paralelo com a execução do processo, antes disso, a lista de processos era atualizada antes do início do processo.Isso significa que, ao executar um processo para o qual há uma atualização disponível, o trabalho pode ser executado com a versão mais antiga do processo.
robot = UiPathRobot.init();
processes = await robot.getProcesses();
const calculatorProcess = processes.find(p => p.name.includes('Calculator'));
const arguments = {
"input1" : 23,
"input2" : 42,
"operation" : "add"
};
const job = robot.createJob(calculatorProcess.id, arguments);
const result = await robot.startJob(job);
console.log(result.Sum);
robot = UiPathRobot.init();
processes = await robot.getProcesses();
const calculatorProcess = processes.find(p => p.name.includes('Calculator'));
const arguments = {
"input1" : 23,
"input2" : 42,
"operation" : "add"
};
const job = robot.createJob(calculatorProcess.id, arguments);
const result = await robot.startJob(job);
console.log(result.Sum);
Observação: no TypeScript, um trabalho pode ser criado usando o construtor de classe Trabalho.
robot = UiPathRobot.init();
processes = await robot.getProcesses();
const calculatorProcess = processes.find(p => p.name.includes('Calculator'));
const arguments = {
"input1" : 23,
"input2" : 42,
"operation" : "add"
};
const job = new Job(calculatorProcess.id, arguments);
const result = await robot.startJob(job);
console.log(result.Sum);
robot = UiPathRobot.init();
processes = await robot.getProcesses();
const calculatorProcess = processes.find(p => p.name.includes('Calculator'));
const arguments = {
"input1" : 23,
"input2" : 42,
"operation" : "add"
};
const job = new Job(calculatorProcess.id, arguments);
const result = await robot.startJob(job);
console.log(result.Sum);
O método
on
do objeto Job
é usado para anexar gerenciadores de eventos ao trabalho. Os eventos disponíveis são status
e workflow-event
.
O evento
status
é gerado durante a execução do trabalho cada vez que o status do trabalho tiver mudado.
O evento também é gerado cada vez que a atividade ReportStatus for executada.
const robot = UiPathRobot.init();
const job = robot.createJob('processId');
job.on('status', robotStatus => console.log(robotStatus));
await robot.startJob(job);
const robot = UiPathRobot.init();
const job = robot.createJob('processId');
job.on('status', robotStatus => console.log(robotStatus));
await robot.startJob(job);
O evento
workflow-event
é gerado durante a execução do trabalho cada vez que uma atividade que envia um evento de fluxo de trabalho é executada. É o suporte para implementar resultados parciais com a ajuda da atividade send interim results. O gerenciador de eventos tem um argumento do tipo WorkflowEventData.
const robot = UiPathRobot.init();
const job = robot.createJob('processId');
job.on('workflow-event', e => console.log(e.name));
await robot.startJob(job);
const robot = UiPathRobot.init();
const job = robot.createJob('processId');
job.on('workflow-event', e => console.log(e.name));
await robot.startJob(job);
O método
start
do objeto RobotProcess é usado para iniciar um processo passando seus argumentos de entrada, se estiverem disponíveis.
Ele retorna um objeto do tipo JobPromise.
const robot = UiPathRobot.init();
const processes = await robot.getProcesses();
const myProcess = processes.find(p => p.name === "MyProcess");
const arguments = {
"a" : 41,
"b" " 27
};
const result = await myProcess.start(arguments);
const robot = UiPathRobot.init();
const processes = await robot.getProcesses();
const myProcess = processes.find(p => p.name === "MyProcess");
const arguments = {
"a" : 41,
"b" " 27
};
const result = await myProcess.start(arguments);
O método
onStatus
é usado para anexar um gerenciador de eventos ao evento "status" do trabalho.
const robot = UiPathRobot.init();
const processes = await robot.getProcesses();
const myProcess = processes.find(p => p.name === "MyProcess");
const result = await myProcess.start().onStatus(status => console.log(status));
const robot = UiPathRobot.init();
const processes = await robot.getProcesses();
const myProcess = processes.find(p => p.name === "MyProcess");
const result = await myProcess.start().onStatus(status => console.log(status));
O método
onWorkflowEvent
é usado para anexar um gerenciador de eventos ao evento "workflow-event" do trabalho.
const robot = UiPathRobot.init();
const processes = await robot.getProcesses();
const myProcess = processes.find(p => p.name === "MyProcess");
const result = await myProcess.start().onWorkflowEvent(e => console.log(e.name));
const robot = UiPathRobot.init();
const processes = await robot.getProcesses();
const myProcess = processes.find(p => p.name === "MyProcess");
const result = await myProcess.start().onWorkflowEvent(e => console.log(e.name));
O método
stopProcess
é usado para interromper um processo do Robot em execução.
Retorna uma Promise, que é resolvida com o cancelamento bem-sucedido do processo do Robot em execução.
const robot = UiPathRobot.init();
const processes = await robot.getProcesses();
const myProcess = processes.find(p => p.name === "MyProcess");
const result = await myProcess.start();
await robot.stopProcess(myProcess);
const robot = UiPathRobot.init();
const processes = await robot.getProcesses();
const myProcess = processes.find(p => p.name === "MyProcess");
const result = await myProcess.start();
await robot.stopProcess(myProcess);
interface IRobotSDK {
settings: Settings;
getProcesses(): Promise<Array<RobotProcess>>;
init(): IRobotSDK;
on(eventName: string, callback: (argument?: any) => void): void;
startJob(job: Job): Promise<JobResult>;
stopProcess(process: RobotProcess): Promise<void>;
installProcess(processId: string): Promise<InstallProcessResult>;
}
interface IRobotSDK {
settings: Settings;
getProcesses(): Promise<Array<RobotProcess>>;
init(): IRobotSDK;
on(eventName: string, callback: (argument?: any) => void): void;
startJob(job: Job): Promise<JobResult>;
stopProcess(process: RobotProcess): Promise<void>;
installProcess(processId: string): Promise<InstallProcessResult>;
}
class Settings {
portNumber: number;
pollTimeInterval: number;
disableTelemetry: boolean;
}
class Settings {
portNumber: number;
pollTimeInterval: number;
disableTelemetry: boolean;
}
class RobotProcess {
id: string;
name: string;
description?: string;
start: (inArguments?: any) => JobPromise;
install: () => Promise<InstallProcessResult>;
}
class RobotProcess {
id: string;
name: string;
description?: string;
start: (inArguments?: any) => JobPromise;
install: () => Promise<InstallProcessResult>;
}
class InstallProcessResult {
inputArgumentsSchema: InputArgumentSchema[]
}
class InstallProcessResult {
inputArgumentsSchema: InputArgumentSchema[]
}
class InputArgumentSchema {
name: string;
type: string;
isRequired: boolean;
hasDefault: boolean;
}
class InputArgumentSchema {
name: string;
type: string;
isRequired: boolean;
hasDefault: boolean;
}
class JobPromise {
onStatus(eventHanlder: (argument?: any) => void): JobPromise;
onWorkflowEvent(eventHanlder: (argument?: any) => void): JobPromise;
}
class JobPromise {
onStatus(eventHanlder: (argument?: any) => void): JobPromise;
onWorkflowEvent(eventHanlder: (argument?: any) => void): JobPromise;
}
class Job {
processId: string;
argument?: any;
jobId: string;
on(eventName: string, eventHanlder: (argument?: any) => void): void;
}
class Job {
processId: string;
argument?: any;
jobId: string;
on(eventName: string, eventHanlder: (argument?: any) => void): void;
}
- Métodos e propriedades
- Init
- Configurações
- Ligado
- consent-prompt
- missing-components
- Get Processes
- Obter esquema de argumentos de entrada
- Iniciar Trabalho
- Trabalho em Andamento
- status
- workflow-event
- Iniciar Processo
- Processar com status
- Processar com evento de fluxo de trabalho
- Parar Processo
- Definições de Modelo
- IRobotSDK
- Configurações
- RobotProcess
- InstallProcessResult
- InputArgumentSchema
- JobPromise
- Tarefa
- JobResult
- WorkflowEventData