(O+P)ut

OutPut Log by SE in SIer



(O+P)ut

Output Log by SE

【BluePrism入門】Excelからの情報取得

スポンサーリンク

Blueprismを用いた自動化対応

RPA*1にて業務を改善する際には
Excelのデータを取得し、Webブラウザに入力」等、.xlsxファイルがよく登場します。

本記事では
Excelファイルのセルの値をBluePrism内に取り込む流れを説明したいと思います。

扱うExcelファイルの構造は以下とします。
f:id:mtiit:20180903165103p:plain
一行目にラベル、二行目以降に値が格納されている形式です。

完成図のイメージ

BluePrismのプロセスは以下のようになります。

f:id:mtiit:20180903165313p:plain

見てわかるように3つのアクションがあり、それぞれは

  1. インスタンスを作成(CreateInstance)
  2. Excelファイルをオープン(OpenWorkbook)
  3. 値を取得しコレクションに代入(GetWorksheetCollection)

という内容になっています。

以下では、それぞれの作り方について説明します。

インスタンスを作成

まずは、インスタンスを用意します。
左側の四角いマークのアクションを作成し、以下のように設定します。

Business Object Action
MS Excel VBO Create Instance

上記のオブジェクトであるMS Excel VBOはデフォルトで存在していると思います。
BluePrismでは、自らオブジェクトを作成することもできますが、今回の内容ではデフォルトで入っているもので対応可能です。

ポイントは、「Output欄」でhandleという変数を作成されることです。
これを、後続のアクションで引継ぎなら利用していきます。handleは数値を扱う変数です。

Outputs
handle File name

インプットは初期設定のままで問題ないです。

ワークブックをオープン

アクションを作成し、以下のように設定します。

Business Object Action
MS Excel VBO Open Workbook

今回は、インプットを明示的に指定する必要があります。

Inputs 1 Inputs2 Outputs
handle File name Workbookname

一つ目のインプットは、インスタンス作成時に用意したhandleを、
二つ目のインプットは、Excelファイルのフルパスを入力します。
アウトプットは、Workbooknameという変数ができます。先ほどのhancleと同じく、これも後続処理に使います。
f:id:mtiit:20180903190717p:plain

値を取得しコレクションに代入

アクションを作成し、以下のように設定します。

Business Object Action
MS Excel VBO Get Worksheet As Collection

今回は3つのインプットを入力する必要がありますが、
一つ目と二つ目は過去作成してきた変数を、そして最後のシート名はExcelファイルのシート名です。

取得する値は配列形式なので、アウトプットに受け渡したいCollectionを選択します。

Inputs1 Inputs2 Inputs3 Outputs
handle Workbook Name Worksheet Name Collectuon

ちなみに、Collectionは以下のようにしてラベルはExcelファイルと揃える必要があります

以下は揃っていない例です。「Hoge」というExcel上に存在しないラベルが振ってあると、

f:id:mtiit:20180903175433p:plain

以下のようなエラーが出ます。

Internal : Collection fields are defined but cannot be matched to the incoming collection - The collection definition does not contain the field Name  

実行結果

特にエラーなく実行できれば、コレクションに値が格納されて終了します。
f:id:mtiit:20180903192111p:plain

実行後にCollectionの中を見ると、初期値には値が入っていませんが現在値には入っています。
f:id:mtiit:20180903193209g:plain

ポイントですが、Excel側の行数をBluePrism側では意識する必要はありません。
行数分だけCollectionに値が格納されます。

基本的な形ですが、ExcelファイルからBluePrismのプロセス内に値を取得する流れの解説でした。ご参考ください。

(関連)Excelへの書き込み

*1:Robotic Process Automationの略


他の記事を読む