![UiPath RPA开发:入门、实战与进阶](https://wfqqreader-1252317822.image.myqcloud.com/cover/221/39888221/b_39888221.jpg)
4.1.3 Switch
Switch活动也是分支结构活动之一。Switch活动专门用于根据不同的条件,从多种不同的情况中,选择其中一种情况来执行。当项目中需要根据不同的条件,在多种情况中选择其中一种情况执行时,都可用Switch活动。
Switch活动由三部分组成:Expression、Default、Case,如图4-25所示。其中,Expression用于编写条件表达式,为必填项;Case用于符合某一种情况要执行的一个或一组活动;Default用于包含在所有情况都不满足时才执行的默认活动。
![](https://epubservercos.yuewen.com/CF253F/20784355001359406/epubprivate/OEBPS/Images/4-25.jpg?sign=1739276412-SZrW8dYlTtDvLS2Cnw68esml2eM4aaK2-0-6036771a14bdeff6a04e5cb651e8e200)
图4-25 Switch活动示意图
下面通过一个案例学习Switch活动的具体使用方法。
【例4.3】用户根据弹出的对话框选择“提交”“审核”“完成”状态名,流程根据不同的状态打印不同的内容。
1)进入Studio界面,点击Process创建一个流程,命名为4_3_Switch,如图4-26所示。
![](https://epubservercos.yuewen.com/CF253F/20784355001359406/epubprivate/OEBPS/Images/4-26.jpg?sign=1739276412-bg3vLHBVajw5tyMbVKbOEFP2bcgyk0xJ-0-addbb031e0042ea4147c6e7bfb85a77e)
图4-26 新建流程
2)打开Main,拖入一个序列,新建一个String类型的变量Status,如图4-27所示。
![](https://epubservercos.yuewen.com/CF253F/20784355001359406/epubprivate/OEBPS/Images/4-27.jpg?sign=1739276412-IMDPN2GGJYWwT0rz15JnYqO8TU9UvjTa-0-2f37d2f747949c473470486db02e2edf)
图4-27 新建变量Status
3)将Input Dialog活动拖入这个序列中,将其属性值按图4-28所示进行更改。
![](https://epubservercos.yuewen.com/CF253F/20784355001359406/epubprivate/OEBPS/Images/4-28.jpg?sign=1739276412-l3oPPUfLsXnpWDzUw0rdUvhplypu3Xz0-0-060add90f2c67209331d581dff79eab1)
图4-28 设置Input Dialog属性值
4)在Input Dialog活动下面拖入一个Switch活动,如图4-29所示。
5)选择Switch活动并查看其属性面板,将其Expression属性值选择为变量Status,TypeArgument的属性值改为String,如图4-30所示。
![](https://epubservercos.yuewen.com/CF253F/20784355001359406/epubprivate/OEBPS/Images/4-29.jpg?sign=1739276412-Zy9rlQTVZcTjoparELQWKW1i8mZoXSIm-0-929c4ca5022c5f3415caaee09d976007)
图4-29 拖入Switch活动
![](https://epubservercos.yuewen.com/CF253F/20784355001359406/epubprivate/OEBPS/Images/4-30.jpg?sign=1739276412-S1fE8PjjJsCpT3jUpRkY6FEBAeQ10c00-0-65c47ec884b88e5e8376d3d4b3230f55)
图4-30 设置Switch属性值
6)点击Add new case增加一个Case,如图4-31所示。将Case Value的值改为“提交”,然后在该分支下拖入一个MessageBox并将其Text属性改为“"您的申请已经提交"”,如图4-32所示。
![](https://epubservercos.yuewen.com/CF253F/20784355001359406/epubprivate/OEBPS/Images/4-31.jpg?sign=1739276412-AM6PyI0011zNJZMflmX44astfeAOpDQs-0-3c4374c020243650d0af9bf75fb92071)
图4-31 新增Case
![](https://epubservercos.yuewen.com/CF253F/20784355001359406/epubprivate/OEBPS/Images/4-32.jpg?sign=1739276412-lsS9ZQ68iegEyZUadc6UY7vWCErwakJu-0-fd7f54617150151e46f7168e535434d9)
图4-32 设置“提交”状态分支活动
7)按第6步操作再增加一个Case,并将Case Value的值改为“审核”,然后在该分支下拖入一个MessageBox并将其Text属性改为“"您的申请正在审核"”,如图4-33所示。
![](https://epubservercos.yuewen.com/CF253F/20784355001359406/epubprivate/OEBPS/Images/4-33.jpg?sign=1739276412-wPmBQ2om1GeIhjpCC01kUsd6J2qO2rX8-0-f3f2981d1e6399a8f077b9582d685ec7)
图4-33 设置“审核”状态分支活动
8)按第6步操作再增加一个Case,并将Case Value的值改为“完成”,然后在该分支下拖入一个MessageBox并将其Text属性改为“"您的申请已经完成"”,如图4-34所示。
![](https://epubservercos.yuewen.com/CF253F/20784355001359406/epubprivate/OEBPS/Images/4-34.jpg?sign=1739276412-zDDoF3Z5assrTOyco6mCUEtDlr2iRzpC-0-e573942e27c59b53d9cfdf7671820a1b)
图4-34 设置“完成”状态分支活动
9)点击Run File按钮(快捷键Ctrl+F5)执行,UiPath将弹出一个对话框,如图4-35所示,选择“审核”并点击OK按钮。
10)执行结果如图4-36所示。
![](https://epubservercos.yuewen.com/CF253F/20784355001359406/epubprivate/OEBPS/Images/4-35.jpg?sign=1739276412-oorXKA7Xzx0DqWuRDEzUXOJWZkCtAtpW-0-23b008b321e5d0290c169accbe0089c7)
图4-35 选择状态
![](https://epubservercos.yuewen.com/CF253F/20784355001359406/epubprivate/OEBPS/Images/4-36.jpg?sign=1739276412-anevo3imKZTiM4vb9QPVkWcwZfeIlVlI-0-af48cfee364736590c7dfcb47198faed)
图4-36 执行结果
11)重新执行程序,更改选项状态,观察执行结果的变化。
通过这个案例大家可以知道,Switch活动在执行过程中会先执行Expression表达式,然后用表达式的结果和每个Case后的条件值做比较。哪个Case后的值与Expression表达式的值相等,就执行哪个Case中的活动。如果所有Case与Expression表达式的值都不相等,则Switch活动自动执行Default中的默认活动。
注意
Switch的Expression条件表达式返回的数据类型默认是Int32,可以根据实际需要更改为String。虽然在序列和流程图中我们都可以使用Switch,但通常情况下在流程图中建议选择Flow Switch。