我在UIPath中有几个工作流程。我想要做的是:对于给定的流程图,我想以“随机”顺序执行这些工作流-但也不要两次执行相同的工作流。
例如,假设我有3个工作流程。我将它们全部放在同一流程图中。
当我单击“运行”时,我希望UIPath决定首先运行哪个,但在运行后,我希望它决定工作流2和工作流3之间的关系-而不是再次运行工作流1。
从逻辑上讲,我不知道该怎么做。我是UIPath的新手,所以我对变量没有太多的经验,但是我认为一种方法可能是为每个工作流程创建一个布尔变量,然后在每个工作流程运行后,将变量切换为该工作流程。但是,我不知道该怎么做...
我可以想到的另一种方法是使用一个Switch(或多个Switch),并使用new Random().Next(1,3)
将表达式设置为1到3之间的随机数-但是我仍然有一个问题,那就是它可能会运行工作流程1两次。有没有办法告诉Switch活动以随机顺序执行所有Case?
答案 0 :(得分:0)
这是一种可能的方法。确保将每个工作流程都移动到其自己的文件中。用所有文件名创建一个集合。随机排列列表,对其进行迭代,然后调用工作流文件。
我的示例使用Integers
,但您也可以使用Strings
。请注意,我在Invoke Code
活动中初始化了列表,但是您可以在任意位置进行操作,并将列表作为In
参数传递。
这是调用代码活动中使用的代码,摘自here:
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()
此方法的一个好处是添加或删除工作流文件仅需要更改列表,而无需更改主要工作流本身。