Lea y revise la documentación de Automation Anywhere

Automation 360

Cerrar contenidos

Contenidos

Abrir contenidos

Crear un activador utilizando el SDK de paquetes

  • Actualizado: 2022/05/19
    • Automation 360 v.x
    • Explorar
    • Espacio de trabajo de RPA

Crear un activador utilizando el SDK de paquetes

Si utiliza Automation 360puede crear un disparador utilizando el paquete SDK.

Utilizar un disparador

Utilice Automation 360 para crear un activador. Un disparador lanza un bot cuando se cumplen ciertas condiciones y espera hasta que las condiciones hayan cambiado o se hayan detenido. Cuando se cumplen las condiciones del disparador, se llama al método de ejecución para señalar el disparador.

Anotaciones necesarias

Para crear un disparador, se requieren las siguientes anotaciones:

Anotación Uso
BotCommand Utilice el BotCommand con la anotación disparador como commandType. Esto asegura que el objeto Java antiguo (POJO) es adecuado para crear el disparador con Automation 360.
CommandPkg Estos valores se utilizan al crear un paquete. Proporcione un nombre, una etiqueta y una descripción a la anotación.
Idx Anotar todos los parámetros y variables miembro que se requieren y ayudar a la comprobación de la validación. También pueden aparecer en la interfaz de la entrada. Proporcionar el índice (Idx) y el tipo.
Pkg Anote todos los parámetros y variables miembro que se mostrarán en la interfaz. Esta anotación será ignorada si no va acompañada de la etiqueta Idx.
StartListen Inicia la escucha del disparador.
TriggerId Un ID de activación, que es necesario para detener el activador.
TriggerRunnable Proporciona el runnable. Al llamar al runnable se envía una señal que lanza un bot asociado a un trigger.

Ejemplo de caso de uso

El siguiente caso de uso muestra cómo crear un disparador de temporizador que dispara un bot a un intervalo regular.

  1. Crear la clase POJO con la lógica de negocio:
    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());
    	}
    
    }

    Pueden existir varios disparadores del mismo tipo en un bot. Todos los activadores se identifican con un triggerId.

  2. Añadir un triggerId a la clase:
    @TriggerId
    	private String triggerUid;
    	
    	public String getTriggerUid() {
    		return triggerUid;
    	}
    
    	public void setTriggerUid(String triggerUid) {
    		this.triggerUid = triggerUid;
    	}
  3. Almacenar la TimerTask por separado para que cuando quiera detener un disparador específico, utilice el 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. Inicie un activador cuando se cumplan las condiciones. Acepta un runnable y lo llama apropiadamente.
    @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. Detener el disparador, ya sea de forma individual (utilizar un triggerId), o detener todos los disparadores al mismo tiempo (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. Añade el resto de anotaciones.
    @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
    	}
    
    }
Enviar comentarios