見出し画像

BluePrismでエンコードを指定してCSVを読むには

群馬県のコロナ感染者情報として公開されているCSVをBluePrismで直接読み込むと文字化けします。※タイトル画像

もともとBluePrismは日本語のデータを読むと文字化けする場合があります。
そのため日本語対応のVBOを利用するのですが、それでも全部対応しているわけではありません。

Textをコレクションに読みこむ時には”ファイルからすべてのテキストを読み取る - 文字コード指定”でエンコードを指定できます。
しかし、CSVを読み込むときのVBO "CSVテキストをコレクションとして取得 " にはエンコード指定できるものがありません。

というときに「じゃあ、エンコード対応版に改造して作っちゃおう!」となるのがBluePrism流。
他のRPAでは中々改造できないですよね。
例えばエクセルの操作をコードレベルで公開して改造どうぞっていうRPAは見たことないですw

では始めます。
まず”CSVテキストをコレクションとして取得 - 文字コード指定” コピーします。名前は他と合わせて、”CSVテキストをコレクションとして取得 - 文字コード指定” とします。

画像1


次にエンコード対応版に変更します。

内容は

画像2

「Parse CSV」以外が追加されています。
内容はCSVファイルをテキストとして読み込みます。この時にエンコードはしてしなくても結果は同じですが、念のため指定。
そして一時的なCSVファイルとして書き出します。
そして、その一時的なCSVをコレクションに読み込み、一時的なCSVファイルを削除して終了。
プロセスでやってもいいのですが、今後も共通化で使うことを考えてオブジェクトで。

ワンポイント:一時的にCSVを格納する場所ですがMyDocumentsに元々のファイル名を流用し使いました。環境変数を取得するテストも兼ねて。
ファイル名はテンポラリー用に変えてます。一行「Replace([FileName], ".csv", "_tmp.csv")」でファイル名を変更しています。もしバグがあっても関連性がわかるので。
※csvの場所に作るのが楽ですが、書き込み権限のない場所のCSVを読むことも想定してこうしました

この記事が気に入ったらサポートをしてみませんか?