Lea y revise la documentación de Automation Anywhere

Automation Anywhere Automation 360

Cerrar contenidos

Contenidos

Abrir contenidos

Crear un activador usando el paquete SDK

  • Actualizado: 2020/12/11
    • Automation 360 v.x
    • Explorar
    • Espacio de trabajo de RPA

Crear un activador usando el paquete SDK

Al usar Automation 360, puede crear un activador usando el paquete SDK.

Uso de un disparador

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

Anotaciones requeridas

Para crear un activador, se requieren las siguientes anotaciones:

Anotación Uso
Comando de bots Utilice la anotación BotCommand con el activador como commandType. Esto garantiza que el objeto Java antiguo simple (POJO) sea adecuado para crear el disparador con Automation 360.
Paq.Comando Estos valores se utilizan al crear un paquete. Proporcione un nombre, una etiqueta y una descripción para la anotación.
[EMPTY] Anotar todos los parámetros y variables de miembro que se requieren y ayudar con la verificación de validación. Como alternativa, pueden mostrarse en la interfaz para la entrada. Proporcione el índice (Idx) y el tipo.
Paq. Anote todos los parámetros y variables de miembro que se mostrarán en la interfaz. Esta anotación se ignorará si no está acompañada por el Idx.
Iniciarescuchar Inicia el oyente de activación.
Id. de activación Una ID de activador, que es necesaria para detener el activador.
ActivadorSe puede ejecutar Proporciona el ejecutable. Llamar al ejecutable envía una señal que inicia un bot asociado con un activador.

Ejemplo de caso de uso

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

  1. Cree la clase POJO con la lógica comercial:
    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 múltiples activadores del mismo tipo en un bot. Todos los desencadenantes se identifican con un Id. de desencadenante.

  2. Agregar un triggerId a la clase:
    @TriggerId
    	private String triggerUid;
    	
    	public String getTriggerUid() {
    		return triggerUid;
    	}
    
    	public void setTriggerUid(String triggerUid) {
    		this.triggerUid = triggerUid;
    	}
  3. Guarde el temporizadorTarea por separado para que cuando desee detener un activador específico, utilice la Id. de activador.
    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 disparador cuando se cumplan las condiciones. Aceptar un ejecutable y llamarlo adecuadamente.
    @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. Detenga el gatillo, ya sea individualmente (use un triggerId) o detenga todos los gatillos 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. Agregue las anotaciones 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
    	}
    
    }
Enviar comentarios