理解の一助|【エラー対応:DataTable編】System.○○およびSystem.Stringで'△△'操作を実行できません。
<エラー例>
DataTableで下記のselectメソッドを実行すると、下記エラーが発生しました。
◆エラーメッセージ
◆実行処理(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)」など、全種類のデータを格納できる型です。
<対象法>
対象ExcelのSelectで判定対象となる列の書式設定を、「文字列」として設定すると、
本エラーは解消されます。
※上記ケースの場合は、「カラム2」列です。
※エラーが解消されない場合、書式設定を行った上で値を入力してみて下さい。