Leia e revise a documentação do Automation Anywhere

Automation 360

Fechar conteúdo

Contents (Conteúdo)

Abrir conteúdo

Criar um trigger usando o SDK de pacote do

  • Atualizado: 2020/12/11
    • Automation 360 v.x
    • Explorar
    • Espaço de trabalho RPA

Criar um trigger usando o SDK de pacote do

Ao usar o Automation 360, você pode criar um trigger usando o pacote do SDK.

Usar um gatilho

Use Automation 360 para criar um trigger. Um gatilho inicia um bot quando determinadas condições são atendidas e aguarda até que as condições tenham sido alteradas ou interrompidas. Quando as condições do disparador são correspondidas, o método de execução é chamado para sinalizar o disparador.

Anotações obrigatórias

Para criar um disparador, as seguintes anotações são necessárias:

Anotação Utilização
Comando de bot Use a anotação BotCommand com o trigger como commandType. Isso garante que o objeto Java antigo simples (POJO) seja adequado para criar o trigger com o Automation 360.
Pacote de comando Esses valores são usados ao criar um pacote. Forneça um nome, rótulo e descrição para a anotação.
Identificação Anotar todos os parâmetros e variáveis de membro necessários e ajudar na verificação de validação. Como alternativa, eles podem ser exibidos na interface para a entrada. Forneça o índice (Idx) e o tipo.
Pacote Anotar todos os parâmetros e variáveis de membro que serão mostrados na interface. Esta anotação será ignorada se não for acompanhada pelo Idx.
Ouvir início Inicia o ouvinte do gatilho.
Identificação de acionador Um ID de gatilho, que é necessário para interromper o gatilho.
GatilhoExecutável Fornece o executável. Chamar o executável envia um sinal que inicia um bot associado a um trigger.

Exemplo de caso de uso

O caso de uso a seguir mostra como criar um gatilho de temporizador que aciona um bot em um intervalo regular.

  1. Criar a classe POJO com a lógica de negócios:
    public class TriggerDemo {
    	
    	private static final Timer TIMER = new Timer(true);
    	
    	public void startTrigger(Double interval) {
    		TimerTask timerTask = new TimerTask() {
    
    			@Override
    			public void run() {
    				// Do nothing
    
    			}
    		};
    
    		TIMER.schedule(timerTask, interval.longValue());
    	}
    
    }

    Podem existir vários triggers do mesmo tipo em um bot. Todos os gatilhos são identificados por um triggerId.

  2. Adicionar um triggerId à classe:
    @TriggerId
    	private String triggerUid;
    	
    	public String getTriggerUid() {
    		return triggerUid;
    	}
    
    	public void setTriggerUid(String triggerUid) {
    		this.triggerUid = triggerUid;
    	}
  3. Armazene a TimerTask separadamente para que, quando você quiser interromper um gatilho específico, use o triggerId.
    private static final Map<String, TimerTask> taskMap = new ConcurrentHashMap<>();
    	
    	public void startTrigger(Double interval) {
    		TimerTask timerTask = new TimerTask() {
    
    			@Override
    			public void run() {
    				// Do nothing
    
    			}
    		};
            taskMap.put(this.triggerUid, timerTask);
    		TIMER.schedule(timerTask, interval.longValue());
    	}
  4. Iniciar um gatilho quando as condições forem atendidas. Aceitar um runnable e chamá-lo adequadamente.
    @TriggerRunnable
    	private Runnable runnable;
    	
    	public Runnable getRunnable() {
    		return runnable;
    	}
    
    	public void setRunnable(Runnable runnable) {
    		this.runnable = runnable;
    	}
    	
    	public void startTrigger(Double interval) {
    		TimerTask timerTask = new TimerTask() {
    
    			@Override
    			public void run() {
    				runnable.run();
    
    			}
    		};
            taskMap.put(this.triggerUid, timerTask);
    		TIMER.schedule(timerTask, interval.longValue());
    	}
  5. Pare o gatilho individualmente (use um triggerId) ou pare todos os gatilhos ao mesmo tempo (StopAllTriggers).
    /*
    	 * Cancel all the task and clear the map.
    	 */
    	@StopAllTriggers
    	public void stopAllTriggers() {
    		taskMap.forEach((k, v) -> {
    			if (v.cancel()) {
    				taskMap.remove(k);
    			}
    		});
    	}
    
    	/*
    	 * Cancel the task and remove from map
    	 *
    	 * @param triggerUid
    	 */
    	@StopListen
    	public void stopListen(String triggerUid) {
    		if (taskMap.get(triggerUid).cancel()) {
    			taskMap.remove(triggerUid);
    		}
    	}
  6. Adicione as anotações restantes.
    @BotCommand(commandType = BotCommand.CommandType.Trigger)
    @CommandPkg(label = "Demo Trigger", description = "Demo Trigger", icon = "email.svg", name = "demoTrigger")
    public class TriggerDemo {
    //Other code
    
    	@StartListen
    	public void startTrigger(@Idx(index = "1", type = AttributeType.NUMBER)
    	@Pkg(label = "Please provide the interval to trigger in seconds", default_value = "120", default_value_type = DataType.NUMBER)
    	@GreaterThan("0")
    	@NumberInteger
    	@NotEmpty
    	Double interval) {
    	//Other code
    	}
    
    }
Send Feedback (Enviar Feedback)