Excelファイルの操作におけるDSかDAかの分岐点

フォローする

BizRobo! でExcelの操作をする方法としては以下2種類の選択肢があります。

  • BizRobo! 内蔵の Excel エンジンを使って、Design Studio/RoboServer 内部で直接操作
  • Device Automation を使って、リモート端末上のExcelアプリケーションを操作

その他のRPAエンジンと異なり、ロボット実行環境内部にExcel エンジンを持つことはBizRobo!の一つの強みであり特徴(Excelがインストールされていない環境でも動作可能)である一方、ロボットの中に含まれているExcelエンジンはオリジナルのExcelアプリケーションそのものではなく、様々な制約も存在します。

Excel ファイルの操作時自動化においては、ロボットで扱おうとするExcelファイルの特徴に応じて、BizRobo!内蔵のエンジン(ネイティブエンジン)を使用するか、Device Automation によるリモート操作とするかを判断する必要があります。

ネイティブエンジン
が適した場合
  • フォーマットの決まった帳票(リスト形式ではない)からのデータ抽出、入力
  • データ数の少ない帳票リスト(100件程度~端末スペックにより数百件)からのデータ抽出、追記、編集
  • 空のExcelファイルにデータを入力、生成する場合
Device Automation
が適した場合
  • Excelの機能(ピボットテーブルやグラフ生成)を使用する場合
  • シートやブックに含まれたマクロ機能などを実行する場合
  • シートのコピーや大量のデータが組み込まれたファイルを操作する場合
(番外)
BizRobo Smart Connector が適した場合
  • 大量のデータを編集・コピー・貼り付けする場合
  • ロボットによる処理の大半がExcel to Excel などデータの操作に関わるプロセスである場合


ネイティブエンジンによるExcelの処理は(XLSXの場合)、Excelファイルから解凍(XLSXファイルはZIP形式の圧縮ファイルのため)されたXMLファイルを解析してロボットの中に表現します。
例えば1MBのExcelファイルの場合、解凍後のサイズは10倍から最大100倍程度のサイズにまで膨らみます。またロボットの操作をDesign Studioの中で繰り返すことによりExcelファイルの情報をキャッシュして遷移状態を保持するため、最大の場合、1MBのファイルを操作するために1GBものメモリがロボット内で消費されることもあります。
(本番環境のRoboServerによる実行の際には画面描写等の処理が不要なため、Design Studioで必要とされるほどのメモリ容量は要求されません。)

Device AutomationでExcelを操作する必要があるかどうかについては、以下検討の手順に沿って判断ください。

  1. これは最も簡単で最も一般的なソリューションです。 小さな「サンプル」ファイルで開発すること。
    何千もの行を持つファイルを処理する場合は、最初の100行を別のファイルに保存し、そのファイルに対して開発します。 これは非常に重要なので、私はこれを繰り返します。あなたが1つのことをするとすれば、より小さなテストファイルに対して開発を試みてください。
    → フルサイズのファイルはサーバ環境でのみオープンします。
    サーバー上での処理は一般的にメモリの消費量はより少なく、かつ使用可能なRAMの量が開発端末よりも多いことが通常ですので、サーバー上で完全なExcelファイルを実行するようにしてください。ただし、サーバーでのテスト中は、サーバーのRAM使用量を確認してください。
  2. 64bit のOSを使用して、Design Studio/RoboServer から使用できるメモリの容量を増やしてください。
  3. そもそもExcelがワークフローの中に必要であるかどうかを確認します。 私はExcelの使用法に疑問を呈します – 時には必要ですが、あまりにも頻繁にデータ集約や収集のためのデータベースとして使用されます。
  4. 上記のすべてがNGの場合、Device Automationを使用してください。
また実行するマクロが複数ファイルのデータ加工・集計で、且つ同様のマクロ処理を大量かつ高速に行いたい場合は、下記のようなBizRoboサービスの追加をご検討ください。 

 

BIZROBO SMART CONNECT は INFOTERIA 社が提供するBIZROBOのアダプターで、データ連携を効率的に実現するETLツールです。