#Bot Runner上で稼働するIQ Bot
IQ Bot A2019.16から、「IQ Bot [Local Device]」というパッケージが登場しています。
(少し分かりづらいのですが、IQ Bot Advanceという名前のjarファイルとなっており、APeopleよりダウンロードできます。)
従来のIQ Botでは、ドキュメントは一旦IQ Botサーバー側に送信する必要がありましたが、
このパッケージを使うことで、サーバーにドキュメントを送信しない形での変換処理や、大量のドキュメントの一括処理が可能となります。
コマンドは至ってシンプル、「ドキュメントを処理」の一つだけです。
##仕組み
下の表を見てください。
従来のIQ Botについては、各処理がIQ Botサーバー側にて行われていました。
ラーニングインスタンスの作成やValidationの「IQ Botサーバー」は、IQ Botサーバーにブラウザでアクセスして実施するという意味です。
それに対して、IQ Bot Advanceでは、ラーニングインスタンスの作成は従来と変わりませんが、
ドキュメント処理はローカル環境のBot Runnerマシン上で行われます。
つまり、複数のBot Runnerマシンを立てれば、それだけ同時に変換処理を行うことが可能となります。
注意点としては、現状、対応しているOCRエンジンがABBYYのみという事でしょうか。
処理/機能 | 従来のIQ Bot | IQ Bot Advance |
---|---|---|
ラーニングインスタンスの作成 | IQ Botサーバー | IQ Botサーバー |
ドキュメントの変換処理 | IQ Botサーバー | Bot Runnerマシン |
Validation | IQ Botサーバー | IQ Botサーバー または Bot等で実施 |
OCRエンジン | 対応エンジン全て | ABBYYのみ |
カスタムロジック | 対応 | 対応 |
##アクションコマンド
コマンド内のパラメータ指定も至ってシンプルです。
パラメータ | 設定内容 |
---|---|
ラーニングインスタンス名 | 利用するラーニングインスタンスを選択します。 |
入力ドキュメントフォルダーパス | 処理を行う帳票が置かれているフォルダを指定します。福薄うのファイルがあれば全て処理されます。 |
出力フォルダーパス | 結果が配置されるフォルダです。このフォルダ配下にSuccess / Fail / BotNotReadyといったサブフォルダが作成されます。 |
検証ツールの設定 | ValidationをIQ Botのウェブインターフェースで行うか否かの設定。チェックを外した場合は、IQ BotのValidationキューには入らなくなりますので、例えばInteractive Formsを利用したValidation用Botを作成する等の対応になります。 |
##変換結果
実行すると、下記の様にサブフォルダが作成され、処理結果のファイルが配置されていきます。
サブフォルダ | 対象 | ファイルフォーマット |
---|---|---|
Success | csv変換処理に成功したドキュメント | csvファイル |
Fail | Validationルールに引っ掛かったドキュメント | csvファイル |
BotNotReady | (IQ Botの)BotのステータスがProductionではない | pdfファイル |
Failフォルダに入った場合は、何らかのValidationルールに引っ掛かっていますが、
csvファイルの中を見るとその理由が分かるようになっています。
##ローカルでValidationを行う方法
ValidationをIQ Botサーバーで行うように設定した場合、当然のことながらIQ Botサーバー側へファイルが送信されます。
どうしてもローカルで処理を完結させたいという事であれば、Validationをサーバー側で行わないように設定します。
A2019.16のInteractive Forms機能では、テーブル表示も可能となっており、
csvファイルから読み込んだテーブル変数の内容をそのまま表示/編集可能となっています。
(2020/9/26時点では、どうやらバグがあり日本語のフォーム表示が出来ないようです。。。)
このテーブル表示と、PDF/png/jpg等を表示するドキュメント表示をフォームに配置することで、Validation用の画面を実装できるようになっています。
また、ダイナミックエリアを利用し、帳票毎または表部分の行毎に表示させてあげるのも良いですね。
###注意点・・・
IQ Bot Advanceのパッケージですが、約1.2GBありますので、御利用は時間に余裕のある時で。