
4.1.3 Switch
Switch活动也是分支结构活动之一。Switch活动专门用于根据不同的条件,从多种不同的情况中,选择其中一种情况来执行。当项目中需要根据不同的条件,在多种情况中选择其中一种情况执行时,都可用Switch活动。
Switch活动由三部分组成:Expression、Default、Case,如图4-25所示。其中,Expression用于编写条件表达式,为必填项;Case用于符合某一种情况要执行的一个或一组活动;Default用于包含在所有情况都不满足时才执行的默认活动。

图4-25 Switch活动示意图
下面通过一个案例学习Switch活动的具体使用方法。
【例4.3】用户根据弹出的对话框选择“提交”“审核”“完成”状态名,流程根据不同的状态打印不同的内容。
1)进入Studio界面,点击Process创建一个流程,命名为4_3_Switch,如图4-26所示。

图4-26 新建流程
2)打开Main,拖入一个序列,新建一个String类型的变量Status,如图4-27所示。

图4-27 新建变量Status
3)将Input Dialog活动拖入这个序列中,将其属性值按图4-28所示进行更改。

图4-28 设置Input Dialog属性值
4)在Input Dialog活动下面拖入一个Switch活动,如图4-29所示。
5)选择Switch活动并查看其属性面板,将其Expression属性值选择为变量Status,TypeArgument的属性值改为String,如图4-30所示。

图4-29 拖入Switch活动

图4-30 设置Switch属性值
6)点击Add new case增加一个Case,如图4-31所示。将Case Value的值改为“提交”,然后在该分支下拖入一个MessageBox并将其Text属性改为“"您的申请已经提交"”,如图4-32所示。

图4-31 新增Case

图4-32 设置“提交”状态分支活动
7)按第6步操作再增加一个Case,并将Case Value的值改为“审核”,然后在该分支下拖入一个MessageBox并将其Text属性改为“"您的申请正在审核"”,如图4-33所示。

图4-33 设置“审核”状态分支活动
8)按第6步操作再增加一个Case,并将Case Value的值改为“完成”,然后在该分支下拖入一个MessageBox并将其Text属性改为“"您的申请已经完成"”,如图4-34所示。

图4-34 设置“完成”状态分支活动
9)点击Run File按钮(快捷键Ctrl+F5)执行,UiPath将弹出一个对话框,如图4-35所示,选择“审核”并点击OK按钮。
10)执行结果如图4-36所示。

图4-35 选择状态

图4-36 执行结果
11)重新执行程序,更改选项状态,观察执行结果的变化。
通过这个案例大家可以知道,Switch活动在执行过程中会先执行Expression表达式,然后用表达式的结果和每个Case后的条件值做比较。哪个Case后的值与Expression表达式的值相等,就执行哪个Case中的活动。如果所有Case与Expression表达式的值都不相等,则Switch活动自动执行Default中的默认活动。
注意
Switch的Expression条件表达式返回的数据类型默认是Int32,可以根据实际需要更改为String。虽然在序列和流程图中我们都可以使用Switch,但通常情况下在流程图中建议选择Flow Switch。