UiPath Object型から変換する方法
UiPathには変数の型の定まらない値を格納するための
変数の型にObject型が存在します。
※赤字部分は変数名など可変の部分を指します。
手順
Object型変数の中に格納されているデータが
何であるかの判定を行い、
そのあとで変換を行う流れになります。
変数の型の判定
プロパティの仕様でObject型を使用しているだけで
変数の型が確定している場合は必要がありませんが、
どの変数の型が格納されるか分からない場合は
先にどの変数の型の値が入っているかを判定する必要があります。
TypeOf演算子と条件分岐
処理を分けることが可能です。
それには下のような論理式を設定します。
TypeOf Object型変数 Is 変数の型
String型であるかを条件分岐で判定するには下のように設定します。
![String型であるかを条件分岐で判定するシーケンス](https://blog-tips.sekenkodqx.jp/wp-content/uploads/2020/04/image-18.png)
Object型変数の内容がString型であれば
Thenになり、それ以外ではElseになります。
GetTypeメソッドとスイッチ
GetTypeメソッドを使用すればスイッチで
処理を分けることが可能です。
TypeArgumentプロパティにSystem.Typeに指定し、
式プロパティにGetTypeメソッドを指定します。
Object型変数.GetType()
![スイッチの設定例](https://blog-tips.sekenkodqx.jp/wp-content/uploads/2020/04/image-19-1024x459.png)
次にCaseを追加して変数の型ごとの処理を作成します。
環境にも寄るかもしれませんが、
最初に(null)を指定してからプロパティメニューで
変数を選択する流れでないと
Caseの追加がうまくいきませんでした。
![(null)を指定](https://blog-tips.sekenkodqx.jp/wp-content/uploads/2020/04/image-20.png)
![Caseの条件となる変数の型を選択](https://blog-tips.sekenkodqx.jp/wp-content/uploads/2020/04/image-21.png)
補足で、主に開発中の確認用ですが、
GetTypeメソッドはToStringメソッドで
1行を書き込みで表示することが可能です。
Object型変数.GetType().ToString
![GetTypeメソッドをToStringメソッドで表示](https://blog-tips.sekenkodqx.jp/wp-content/uploads/2020/04/image-17.png)
結果はこのようになります。
データ型 | 結果 |
---|---|
String | System.String |
Int32 | System.Int32 |
Datetime | System.Datetime |
Boolean | System.Boolean |
変数の型変換(キャスト)
Object型のままでは利用できないため
判定のあとに適切な型の変数に変換(キャスト)する必要があります。
それにはCTypeメソッドを使用します。
CType(Object型変数,データ型)
上記の構文をプロパティ内で使用してもよいですし、
代入アクティビティのFromに指定して
適切な型の変数に格納してもかまいません。
データ型 | 型変換する構文 |
---|---|
String | CType(Object型変数,System.String) |
Int32 | CType(Object型変数,System.Int32) |
Datetime | CType(Object型変数,System.Datetime) |
Boolean | CType(Object型変数,System.Boolean) |
--