UIPath Выполнить список рабочих процессов
У меня есть несколько рабочих процессов в UIPath. Я хочу сделать следующее: для данной потоковой диаграммы я хочу выполнить эти рабочие процессы в "случайном" порядке, но также не выполнять один и тот же рабочий процесс дважды.
Например, допустим, у меня есть 3 рабочих процесса. Я поместил их все в одну блок-схему.
Когда я нажимаю "Выполнить", я хочу, чтобы UIPath решал, какой из них запускать первым, но после того, как он запустится, я хочу, чтобы он выбирал между Workflow 2 и Workflow 3 - и больше не запускал Workflow 1.
Логически я не знаю, как это сделать. Я довольно новичок в UIPath, поэтому у меня нет большого опыта работы с переменными, но я думаю, что одним из подходов может быть создание логической переменной для каждого рабочего процесса, а затем после каждого запуска я переключаю переменную для этот рабочий процесс. Однако я не знаю, как это сделать...
Альтернативный подход, который я могу придумать, - это использовать Switch (или несколько Switch) и установить выражение в случайное число от 1 до 3, используя new Random().Next(1,3)
- но тогда у меня все еще есть проблема, что он может запустить Workflow 1 дважды. Есть ли способ сообщить активности Switch для выполнения всех случаев в случайном порядке?
1 ответ
Вот один из возможных подходов. Убедитесь, что каждый рабочий процесс перемещен в свой собственный файл. Создайте коллекцию со всеми именами файлов. Перемешайте список, переберите его, а затем вызовите файл рабочего процесса.
Мой пример использует Integers
, но вы можете использовать Strings
так. Обратите внимание, что я инициализировал список в Invoke Code
деятельность, но вы можете сделать это где угодно и передать список в виде In
Довод.
Вот код, используемый в действии Invoke Code, взятый отсюда:
Dim r As Random = New Random()
Dim list As New List(Of Int32)(New Int32() {1, 2, 3})
out_List = list.OrderBy(Function(a) r.Next()).ToList()
Одним из преимуществ этого подхода является то, что добавление или удаление файлов рабочих процессов просто требует изменения списка, но не вносит никаких изменений в сам основной рабочий процесс.