![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=1738805982-GfOnPQpW9n1P8lKN7i4Hx6gIxlGSSari-0-966f5647f67d7f4daf4de7c6ab6b6304)
图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=1738805982-C1Kg3nFhCucEnf8dcRxsTysEzVDwurPO-0-87ff007fcc6d68741b21acdde32ed785)
图4-26 新建流程
2)打开Main,拖入一个序列,新建一个String类型的变量Status,如图4-27所示。
![](https://epubservercos.yuewen.com/CF253F/20784355001359406/epubprivate/OEBPS/Images/4-27.jpg?sign=1738805982-HnNE0hVd8v01avb0gYaE7MwxHq4qRSQ4-0-b7c99b103b5eaf7bcf94c2f06c964b1d)
图4-27 新建变量Status
3)将Input Dialog活动拖入这个序列中,将其属性值按图4-28所示进行更改。
![](https://epubservercos.yuewen.com/CF253F/20784355001359406/epubprivate/OEBPS/Images/4-28.jpg?sign=1738805982-aJ8TBGQBBKuydimJe8df2xiP0dZkgkqV-0-f5a1577cff1147d3bc16220f4e281b8a)
图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=1738805982-0PVpoPsFgbqV2JLCUyHEFCG6ezRY1LBU-0-0d8d8cf7b663d9f5b83d35271f5c6114)
图4-29 拖入Switch活动
![](https://epubservercos.yuewen.com/CF253F/20784355001359406/epubprivate/OEBPS/Images/4-30.jpg?sign=1738805982-7qJ36JLpvPEbevRgZAXZSkz1zPnJWv5l-0-4e79286eb469c1e9b4e491bf368d30db)
图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=1738805982-XcjEIRsFDVqohHO92lRje9CsuayAQUdI-0-cbdbf590822d5b40b1ce4631c89fb14f)
图4-31 新增Case
![](https://epubservercos.yuewen.com/CF253F/20784355001359406/epubprivate/OEBPS/Images/4-32.jpg?sign=1738805982-eO2xH4E3zVpksZJxxksIECURWHEycll1-0-016e99e5538e1a3fd8681b530b17063b)
图4-32 设置“提交”状态分支活动
7)按第6步操作再增加一个Case,并将Case Value的值改为“审核”,然后在该分支下拖入一个MessageBox并将其Text属性改为“"您的申请正在审核"”,如图4-33所示。
![](https://epubservercos.yuewen.com/CF253F/20784355001359406/epubprivate/OEBPS/Images/4-33.jpg?sign=1738805982-oNEsEFTEsuNU2Ns9eFVw3l11sRSN6h2j-0-c25cc1627072b4f7a748168f4a2608c9)
图4-33 设置“审核”状态分支活动
8)按第6步操作再增加一个Case,并将Case Value的值改为“完成”,然后在该分支下拖入一个MessageBox并将其Text属性改为“"您的申请已经完成"”,如图4-34所示。
![](https://epubservercos.yuewen.com/CF253F/20784355001359406/epubprivate/OEBPS/Images/4-34.jpg?sign=1738805982-6S8jBOI6zqL1kH4uiNDsyHOknozs8PIC-0-0174cd13c61e4d4a1bb60525638ff817)
图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=1738805982-1zM9RqSUqcxl7H1O7TpmqMfTGIZz8H3X-0-94cfdbe3df2f1a7472703e1960a091f2)
图4-35 选择状态
![](https://epubservercos.yuewen.com/CF253F/20784355001359406/epubprivate/OEBPS/Images/4-36.jpg?sign=1738805982-pzoo8cT07E3Rdx0Es79Ijf3Cl1z3FIdj-0-4de462b9690b3003922e812d8375e50c)
图4-36 执行结果
11)重新执行程序,更改选项状态,观察执行结果的变化。
通过这个案例大家可以知道,Switch活动在执行过程中会先执行Expression表达式,然后用表达式的结果和每个Case后的条件值做比较。哪个Case后的值与Expression表达式的值相等,就执行哪个Case中的活动。如果所有Case与Expression表达式的值都不相等,则Switch活动自动执行Default中的默认活动。
注意
Switch的Expression条件表达式返回的数据类型默认是Int32,可以根据实际需要更改为String。虽然在序列和流程图中我们都可以使用Switch,但通常情况下在流程图中建议选择Flow Switch。