Ознакомиться с документацией Automation Anywhere

Automation Anywhere Automation 360

Закрыть содержимое

Содержимое

Открыть содержимое

Создайте триггер с помощью пакета SDK

  • Обновлено: 12/11/2020
    • Automation 360 v.x
    • Изучение
    • Рабочая область RPA

Создайте триггер с помощью пакета SDK

При использовании Automation 360можно создать триггер с помощью пакета SDK.

С помощью триггера

Используется Automation 360 для создания триггера. Триггер запускает при bot соблюдении определенных условий и ожидает изменения или остановки условий. Когда условия триггера совпадают, метод запуска вызывается для подачи сигнала на триггер.

Необходимые аннотации

Для создания триггера требуются следующие аннотации:

Аннотация Использование
Команда BotCommand Используйте аннотацию BotCommand с триггер в качестве командного типа. Это гарантирует, что обычный старый объект Java (POJO) подходит для создания триггера с Automation 360помощью .
CommandPkg Эти значения используются при создании пакета. Укажите имя, метку и описание аннотации.
Idx Аннотируйте все необходимые параметры и переменные элемента и помогите в проверке. Кроме того, они могут отображаться в интерфейсе входа. Укажите индекс (idx) и тип.
Пакет Аннотируйте все параметры и переменные элемента, которые будут отображаться в интерфейсе. Эта аннотация будет проигнорирована, если она не сопровождается idx.
StartListen Запускает прослушиватель триггера.
TriggerId Идентификатор триггера, необходимый для остановки триггера.
Запуск с помощью пусковой кнопки Обеспечивает возможность запуска. Вызов запускаемого сигнала отправляет сигнал, который запускает связанный bot с триггер.

Пример использования

В следующем примере использования показано, как создать триггер таймера, который запускает A bot через регулярные интервалы.

  1. Создайте класс POJO с бизнес-логикой:
    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());
    	}
    
    }

    Несколько в системе botмогут существовать триггерами одного типа. Все пусковые механизмы Идентифицируются по triggerId.

  2. Добавьте triggerId в класс:
    @TriggerId
    	private String triggerUid;
    	
    	public String getTriggerUid() {
    		return triggerUid;
    	}
    
    	public void setTriggerUid(String triggerUid) {
    		this.triggerUid = triggerUid;
    	}
  3. Сохраните задачу TimerTask отдельно, чтобы при необходимости остановить определенный триггер, используйте 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. Запустите триггер при соблюдении условий. Примите условия запуска и позвоните по телефону.
    @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. Остановите триггер по отдельности (используйте triggerId) или одновременно остановите все триггер (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. Добавьте остальные аннотации.
    @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
    	}
    
    }
Отправить отзыв