Lire et examiner la documentation Automation Anywhere

Automation Anywhere Automation 360

Fermer les contenus

Contenus

Ouvrir les contenus

Création d’un déclencheur à l’aide du package SDK

  • Mis à jour le : 12/11/2020
    • Automation 360 v.x
    • Exploration
    • Espace de travail RPA

Création d’un déclencheur à l’aide du package SDK

Lorsque vous utilisez Automation 360, vous pouvez créer un déclencheur à l’aide du package SDK.

Utilisation d’un déclencheur

Utilisez Automation 360 pour créer un déclencheur. Un déclencheur lance un robot lorsque certaines conditions sont remplies et attend que les conditions aient changé ou soient arrêtées. Lorsque les conditions du déclencheur correspondent, la méthode d’exécution est appelée pour signaler le déclencheur.

Annotations requises

Pour créer un déclencheur, les annotations suivantes sont requises :

Annotation Utilisation
BotCommand Utilisez l’annotation BotCommand avec le déclencheur comme commandType. Cela garantit que l’ancien objet Java (POJO) est adapté à la création du déclencheur avec Automation 360.
CommandPkg Ces valeurs sont utilisées lors de la création d’un package. Fournissez un nom, une étiquette et une description à l’annotation.
Idx Annotez tous les paramètres et variables membres qui sont requis et aidez au contrôle de validation. Sinon, ils peuvent être affichés dans l’interface pour l’entrée. Fournissez l’index (Idx) et le type.
Pkg Annotez tous les paramètres et variables membres qui seront affichés dans l’interface. Cette annotation sera ignorée si elle n’est pas accompagnée de l’Idx.
StartListen Démarre l’écouteur de déclencheur.
TriggerId Un identifiant de déclencheur, qui est requis pour arrêter le déclencheur.
TriggerRunnable Fournit le fichier exécutable. L’appel du fichier exécutable envoie un signal qui lance un robot associé à un déclencheur.

Exemple de cas d’utilisation

Le cas d’utilisation suivant montre comment créer un déclencheur de minuterie qui déclenche un robot à intervalles réguliers.

  1. Créez la classe POJO avec la logique métier :
    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());
    	}
    
    }

    Plusieurs déclencheurs du même type peuvent exister dans un robot. Tous les déclencheurs sont identifiés par un triggerId.

  2. Ajouter un triggerId à la classe :
    @TriggerId
    	private String triggerUid;
    	
    	public String getTriggerUid() {
    		return triggerUid;
    	}
    
    	public void setTriggerUid(String triggerUid) {
    		this.triggerUid = triggerUid;
    	}
  3. Stockez la TimerTask séparément afin que lorsque vous souhaitez arrêter un déclencheur spécifique, utilisez le 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. Démarrez un déclencheur lorsque les conditions sont remplies. Acceptez un fichier exécutable et appelez-le de manière appropriée.
    @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. Arrêtez le déclencheur, soit individuellement (utilisez un triggerId), soit tous les déclencheurs en même temps (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. Ajoutez les annotations 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
    	}
    
    }
Envoyer le commentaire