理解の一助:UiPath開発のコツ

UiPath(VB .NET Framework)開発で詰まった際に使える、ちょっとしたコツをまとめています。

理解の一助|【エラー対応:DataTable編】System.○○およびSystem.Stringで'△△'操作を実行できません。

<エラー例>

 DataTableで下記のselectメソッドを実行すると、下記エラーが発生しました。

  

 ◆エラーメッセージ

 f:id:rikaix:20190821205122p:plain

 

 ◆実行処理(DataTableのSelectメソッド)

  dt_2 = dt_1.Select("[カラム2] Like 'テスト%' ").CopyToDataTable

 

 ・変数

変数名 備考
dt_1 DataTable 全データを格納しているDataTable
dt_2 DataTable 抽出結果を格納するDataTable

 

 ・dt_1の中身

カラム1 カラム2
10 テスト1
20 TRUE
30 テスト2

 


<本エラーの発生原因> ※ご参考程度に…

 Uipathの仕様として、「変数パネル」上においてDataTable型で宣言した変数を、ExcelReadRangeアクティビティの出力(output)プロパティに設定した場合、各列の型は、「ジェネリック型」となります。

 

 Select文実行時、DataTableのデータは、1行ずつ該当条件に合致するかどうか判定されます。また、「ジェネリック型」の場合、対象データの値によって、String型、Boolean型、Double型など自動的に判定されます。

 

 Selectメソッドの条件式で比較される値は、同じ型である必要がありますが、上記ケースの場合、2行目の「TRUE」がBoolean型として判定され、もう一方の比較対象のString型('テスト%')と型が不一致だった為、本エラーが発生しています。

 

 ※ジェネリック型とは、UiPath独自の型で、「文字列」「数値」「真偽(Boolean)」など、全種類のデータを格納できる型です。


<対象法>

 対象ExcelSelectで判定対象となる列の書式設定を、「文字列」として設定すると、

 本エラーは解消されます。

 ※上記ケースの場合は、「カラム2」列です。

 ※エラーが解消されない場合、書式設定を行った上で値を入力してみて下さい。