MEMONICA

MEMONICA

RPAやプログラミングなどの自分用技術メモブログです。

【Blue Prism】CSV出力とコレクション

Blue Prismには、CSV⇔コレクションの変換方法に似たような機能があったりして混乱するのでまとめ。

CSVファイル ⇒ コレクション

CSVファイルのデータをコレクションに格納する方法

Utility - File Management > Get CSV Text As Collection

非常に似ているアクション名に、

Utility - Strings > Get CSV As Collection

があるが、これはCSVテキストをコレクションに格納する場合に使用する(後述)

Utility - File Management > Get CSV Text As Collection

CSVファイルを直接コレクションに格納する。

f:id:zamdin:20200816171651p:plainf:id:zamdin:20200815142024p:plain

CSV File Path CSVファイルのフルパス
First Row Is Header 1行目をコレクションのフィールドとして設定するかどうか

指定したCSVファイルデータを直接コレクションに格納することが出来る。その際、取り込んだフィールドの型はBlue Prismが自動で型を推測して設定する。そのため、思っていた型にならないこともある(大抵、Text型になっていれば問題ないが、Number型としてフィールドが設定されてしまうと文字が取り込めなくなる)

また、取り込むCSVデータがカンマ区切りになってない場合、値が分割されず1つのフィールドにまとまって格納されてしまう。

メリット

CSVファイルを直接コレクションに取り込めるため楽

デメリット

・自動型推測が思った結果にならないことがある

CSVデータがカンマ区切りになっている必要がある

文字コードにより文字化けすることがある(Blue Prismでマルチバイトを扱う際はShift-JISでやり取りされるため、外部環境がUTF-8だと文字化けになる)

自動型推測がNumber型になりText型が取り込めない例

f:id:zamdin:20200821200128p:plain

f:id:zamdin:20200816191733p:plain

f:id:zamdin:20200821195712p:plain

カンマ区切りになっていない例

f:id:zamdin:20200815165929p:plain

1段目:カンマ区切り、2段目:空白区切り、3段目:タブ区切り

f:id:zamdin:20200816191733p:plain

f:id:zamdin:20200815165837p:plain

日本語が文字化けする例

f:id:zamdin:20200821202916p:plain

 f:id:zamdin:20200816191733p:plain

f:id:zamdin:20200821203023p:plain

 

CSVテキスト ⇒ コレクション

Utility - Strings > Get CSV As Collection

CSV形式のText型をコレクションに格納する。

f:id:zamdin:20200816171605p:plain

f:id:zamdin:20200815142048p:plain

CSV CSVテキストデータ。カンマ区切りで区切られている必要がある。
First Row Is Header 1行目をコレクションのフィールドとして設定するかどうか
Schema Filed名を記述したコレクションを指定することで、出力結果のフィールド名を自由に変更できる。実際のデータのフィールド数より少ない場合エラーとなるため、早期のエラー検知として機能する

Text型を指定するため、Utility - File Management > Read All Text from Fileを使い、CSVファイルをBlue PrismにText型として一度取り込む必要がある。

メリット

・カンマ区切りになってない、余計な空白や文字が入っている、といったCSVファイルをBlue Prismで編集した上でコレクション化できる

・Schema引数でフィールド名も指定できる

・Text型として取り込む際に文字コードを指定できるオブジェクトを使えば文字化けを回避できる

デメリット

CSVファイルから取り込む際は、CSVファイル ⇒ Text ⇒ コレクション、のようにひと手間かかる

f:id:zamdin:20200821202123p:plain

f:id:zamdin:20200816191733p:plain

f:id:zamdin:20200821202547p:plain

Utility - Strings > Get CSV Text As Collection の方を使う時

1.File Management > Get CSV As Collectionの自動型推測が思った結果にならない時

2.カンマ区切りでなかったり、最初に空白行などは入っているCSVデータの時

3.文字コードが適切でなく文字化けが起きる時

 

コレクション⇒ CSVファイル

Blue Prismには、コレクションをそのままCSVファイルに保存する機能はない

そのため、コレクション ⇒ Textデータ ⇒ CSVファイル

1.Utility - Strings > Get Collection as CSV

2.Utility - File Management > Write Text File

という手順が必要。

手順1.Utility - Strings > Get Collection as CSV

コレクションをCSV形式(カンマ区切り)のText型に変換

f:id:zamdin:20200816164438p:plain

f:id:zamdin:20200816185825p:plain

手順2.Utility - File Management > Write Text File

CSV形式のTextをCSVファイルに書き込む

f:id:zamdin:20200816190549p:plain

f:id:zamdin:20200816191016p:plain

 

f:id:zamdin:20200821204929p:plain

コレクション

f:id:zamdin:20200816191733p:plain

f:id:zamdin:20200821205005p:plain

Text型

f:id:zamdin:20200816191733p:plain

f:id:zamdin:20200821205017p:plain

CSVファイル