ちょっと気になるアクティビティ～CheckTrueとCheckFalse～

##はじめに
この記事はUiPathブログ発信チャレンジ2021サマーの17日目の記事です。
AWS第2話を書く前に「そういやこのアクティビティは使ったことなかったな...」と思ったので、ちょっと調べてみました。
※ちょいちょい文章がおかしいところがあったので都度修正しますね。

##Check系のアクティビティとは
このアクティビティは記載した式自体がTrueかFalseかを判断できるアクティビティです。
公式リファレンスによるとこのアクティビティは「RetryScope」で使用するようです。
そこで
#####「これ、RetryScope以外も使えるのかな...(゜-゜)」
と自分は思ったので調べてみることにしました。
###1.Check True(Trueか確認)


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/502614/d5ae5bfd-8558-4751-b823-5b289e59876f.png)


これは対象の式がTrueになるかどうかを確認できるアクティビティで、Trueであれば
通過、Falseになった場合はエラーとなります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/502614/42b6f1c0-bde6-8c9f-c7a4-3a992d7ed728.png)


###2.Check False(Falseか確認)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/502614/21404806-dfcc-7dec-2619-95cca907f407.png)
これは対象の式がFalseになるかどうかを確認できるアクティビティで、Falseであれば
通過、Trueになった場合はエラーとなります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/502614/0266abd4-f250-de2a-635d-5852a92e9b6b.png)

##通常の使い方
通常はRetryアクティビティの「条件」の箇所に入れて使用します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/502614/fb6f4a87-b97c-d557-6bab-d5cae8834eff.png)

アクションにあるアクティビティの動作後、指定の条件に対し問題なければ次の後続処理へ進み、そうでなければエラーとして処理します。



##If文で書きそうなことでもできるのかな...？
一例を出します。(文章の内容はサンプルです)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/502614/2f539eea-340e-3cb7-4784-6b82ed02cb3d.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/502614/14f2e199-15a0-45ef-4883-f39fd817bdea.png)
(まあ文章の内容はともかく)ある文章をString型変数に格納しました。
String型にいれてContain文で式を作ってみましょう。


straaa.Contains("八十二銀行")
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/502614/815f7514-d11a-abc1-32bd-733754feb4c2.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/502614/5232319c-7040-bb21-de1b-29b9d7c4c291.png)
この場合は「八十二銀行」という単語は含まれているので、Trueですよね。
それでは以下の場合はどうでしょう？
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/502614/7964cf73-eb77-158d-b893-6c974627161d.png)
この時は
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/502614/19855f5d-d488-532c-9b22-06680181fff1.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/502614/8dfe98f7-5e9f-6cd9-e848-19e89dcc9ca7.png)


「大分銀行」という単語は上記の変数に含まれていないので、Falseになります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/502614/befb0a35-9ea6-2345-50a4-28643bf1609f.png)


##CheckFalseでもやってみましょう。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/502614/38cc42b9-a070-ab35-5bb2-0d1ac383b87b.png)
この場合はCheckTrueの時と違って"False"であれば問題ありません。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/502614/f87aac7f-1686-4d83-c11c-22ada8b30e3b.png)

次の場合はどうでしょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/502614/1fafb4c9-cd48-309d-cf4f-ea3e5a19964d.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/502614/46ef0d03-ac88-b092-cc6b-b811608d6c53.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/502614/ad4879d2-c15a-b32f-43ca-a6417e759810.png)
この場合式自体はあっているので、FalseではなくTrueになります。
なので、FalseCheckは相違として、エラーメッセージを出します。

##TryCatchと合わせて使ってみよう

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/502614/e007d02d-d11b-5dcc-d889-4000889b6d1d.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/502614/b0415f97-84b2-e562-ea2a-195e466c0e9e.png)

この場合、Exceptionでエラーを拾いましたね。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/502614/31a02fff-0fd1-dc53-7ae6-edfca0c9b9c1.png)

CheckFalseの場合もCatchへ進みますね。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/502614/4d2ae53e-cbf6-92d3-fda2-30daae2238c6.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/502614/d5e65db3-b203-6895-7d9d-36be8bdf92aa.png)


##疑問：CatchはSystem.Exceptionに行くの？

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/502614/93f7511d-e7d2-604d-6e0e-76c231aec023.png)

他のExceptionには対応するのでしょうか。
よく使うSystem.Exceptionがない状態で回してみました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/502614/63473539-21b5-bae6-480a-37f970281b35.png)

どうやらSystem.Exceptionに行くようです。


##まとめ
Check系のアクティビティはわかりにくい部分もありそうですが、今後機会があれば使ってみようかと思います。


##参考URL
UiPath公式_アクティビティガイド
https://docs.uipath.com/activities/lang-ja/docs/check-true
https://docs.uipath.com/activities/lang-ja/docs/check-false