Leggi e rivedi la documentazione di Automation Anywhere

Automation Anywhre Automation 360

Chiudi contenuti

Contenuti

Apri contenuti

Creazione di un trigger tramite Package SDK

  • Aggiornato: 12/11/2020
    • Automation 360 v.x
    • Esplora
    • Spazio di lavoro RPA

Creazione di un trigger tramite Package SDK

Quando utilizzi Automation 360, puoi creare un trigger utilizzando il pacchetto SDK .

Utilizzo di un trigger

Utilizzare Automation 360 per creare un trigger. Un trigger avvia una bot quando vengono soddisfatte determinate condizioni e attende che le condizioni siano cambiate o interrotte. Quando le condizioni del trigger vengono abbinate, il metodo di esecuzione viene chiamato per segnalare il trigger.

Annotazioni richieste

Per creare un trigger, sono necessarie le seguenti annotazioni:

Annotazione Utilizzo
ComandoBot Utilizza l'annotazione BotCommand con il trigger come commandType. Questo garantisce che il vecchio oggetto Java (POJO) semplice sia adatto per creare il trigger con Automation 360.
PacchettoComando Questi valori vengono utilizzati durante la creazione di un pacchetto. Fornire un nome, un'etichetta e una descrizione all'annotazione.
Codice Annotare tutti i parametri e le variabili membro necessari e aiutare con il controllo di convalida. In alternativa, potrebbero essere visualizzati nell'interfaccia per l'input. Fornire l'indice (Idx) e il tipo.
Pacchetto Annotare tutti i parametri e le variabili membro che verranno mostrati nell'interfaccia. Questa annotazione verrà ignorata se non è accompagnata dall'Idx.
AscoltaInizia Avvia il listener di trigger.
IDInnesco Un ID trigger, necessario per arrestare il trigger.
AttivabileEseguibile Fornisce la funzionalità eseguibile. La chiamata del comando eseguibile invia un segnale che avvia un bot associato a un trigger.

Esempio di caso d'uso

Il seguente caso d'uso mostra come creare un trigger timer che attiva un bot a intervalli regolari.

  1. Creare la classe POJO con la logica di business:
    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());
    	}
    
    }

    In un possono esistere più trigger dello stesso bottipo. Tutti i trigger sono identificati da un triggerId.

  2. Aggiungi un triggerId alla classe :
    @TriggerId
    	private String triggerUid;
    	
    	public String getTriggerUid() {
    		return triggerUid;
    	}
    
    	public void setTriggerUid(String triggerUid) {
    		this.triggerUid = triggerUid;
    	}
  3. Archiviare il TimerTask separatamente in modo che quando si desidera arrestare un trigger specifico, utilizzare il 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. Avviare un trigger quando vengono soddisfatte le condizioni. Accettare un runnable e chiamarlo in modo appropriato.
    @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. Arrestare il trigger, singolarmente (utilizzare un triggerId) o arrestare tutti i trigger contemporaneamente (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. Aggiungere le annotazioni rimanenti.
    @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
    	}
    
    }
Invia feedback