Box で受け取ったPDF データをOCR で読み取ってkintone に登録:ABBYY FlexiCapture & CData Arc

こんにちは。CData Software Japan リードエンジニアの杉本です。

今回はOCR に関するソフトウェアで世界的に有名なABBYY のFlexiCapture とCData Arc を組み合わせて、Box上のPDF データをOCR で読み取り、kintone に登録する処理の自動化を実現してみたいと思います。

ABBYY FlexiCapture とは?

ABBYY 社が提供するAI OCRを用いた帳票処理プラットフォームです。

https://www.abbyy.com/ja/flexicapture/

ABBYY FlexiCapture にはPDFや画像データを読み込んでOCR 処理を行う機能が充実しているのはもちろんのこと、そのOCR した結果を様々なサービス・ワークフローに繋げて統合する機能も多数備えています。

https://www.abbyy.com/ja/flexicapture/how-it-works/

また、対象のファイルもローカルファイルだけでなく、FTPやメールの添付ファイルを取り込んで、OCR処理を行うことができるようになっています。

https://help.abbyy.com/ja-jp/flexicapture/12/distributed_administrator/import_profiles/

とはいえ、昨今BoxやDropboxなどのクラウドストレージの活用や、Salesforce・KintoneなどのSaaS との連携ニーズも増してきています。

そこで今回はABBYY Flexi Capture をより様々なサービスと統合させるために、CData が提供する自動化ツールCData Arc と組み合わせて、Box・Kintone との連携を実現してみます。

CData Arc とは?

CData Arc は、CData 製品の中で「自動化/Automate」を担うデータ連携ツールです。「B2B 連携をもっとシンプルに」をコンセプトに、ファイル連携 & DB 連携 & API 連携といったB2B 連携に必要なすべてをノーコード・ローコードでつなぐことができるプラットフォームです。

https://www.cdata.com/jp/arc/

ABBYY Flexi Capture はBox やKintone とは直接連携することができませんが、CData Arc を介在させることにより、この連携機能の不足をカバーします。

この記事のシナリオ

今回の記事では、以下のような連携を実現します。

1. Box からPDFファイルを受け取り、ABBYY Flexi Capture でOCR 処理を行う

2. ABBYY Flexi Capture でOCRした結果のXMLファイルを元に、kintone にデータ登録を行う

ABBYY FlexiCapture では予めOCR を行うための設定、文書定義と呼ばれるものを構成しておく必要があります。

今回は予めABBYY FlexiCapture 日本語版に含まれているTemplateProjectsの請求書(Invoice)のサンプルを利用してみました。

以下のような請求書のフォーマットです。

Box は以下のように「FlexiCapture」というフォルダを構成しておき、ここにOCR処理の対象となるPDFが随時登録される想定です。

OCRした結果はkintone の以下のようなアプリに登録します。今回はOCR結果のCSVを元に簡易的にアプリを作成しておきました。

なお、CData Arc はkintone 以外にも様々なクラウドサービス向けのコネクタを提供しています。ぜひ自社で利用しているサービスと合わせて試してみてください。

https://www.cdata.com/jp/drivers/

事前準備:CData Arc 製品のインストールとナレッジ

事前にCData Arc を任意の環境にインストールしておきます。

以下のリンクから30日間のトライアルが取得できます。
https://arc.cdata.com/jp/trial/

CData Arc のインストールはこちらを参考にしてください。
https://www.cdata.com/jp/blog/arcesb-install-windows

CData Arc を使い始めるときは、こちらも参考にしてください。
https://arc.cdata.com/jp/start/

CData Arc に関するナレッジは、こちらにまとめています。あわせて参考にしてください。 https://arc.cdata.com/jp/kb/

事前準備:FlexiCapture の設定:インポート

最初にFlexiCapture 側の設定を行っていきます。

今回FlexiCapture ではローカルファイルを定期的にチェックする「画像のインポートプロファイル」を作っておきます。ここにBox から取得したPDF を配置して、OCR 処理を行います。

まずは、対象とする「Invoice Processing」のプロジェクトを立ち上げて

「プロジェクト」→「画像のインポートプロファイル」をクリックします。

「新規」をクリックし

「画像ソース」として「ホットフォルダ:ローカルファイルまたは LAN フォルダ」を選択します。併せて任意のフォルダパスを入力しましょう。

あとは、フォルダ定期チェックの頻度などを指定して、登録します。その他の設定はデフォルトのものを使用しました。

作成したインポートプロファイルを対象のバッチに指定します。対象のバッチを右クリックし「画像をインポート」を選択

先程作成したインポートプロファイルを指定します。

これで以下のフォルダに配置されたPDF をFlexiCapture で自動で読み取り、OCR処理してくれるようになります。

事前準備:FlexiCapture の設定:エクスポート

続いてOCRした結果をXMLフォーマットで出力するエクスポートの設定を追加します。FlexiCapture はXML以外のフォーマットでも出力可能ですが、CData Arc はXML がデータ処理を行う際のメインフォーマットとなるので、XML を利用すると良いでしょう。

「プロジェクト」→「文書定義」に移動し

「Invoice」の文書定義の編集画面を開きます。

「文書定義」→「エクスポート設定」に移動し

デフォルトのエクスポート設定を編集します。データフォーマットを「XMLドキュメント」、データフォルダへのパスを任意のフォルダに指定します。

全体設定は以下のよう内容になります。

これでOCRした結果が以下のようにXML形式で出力されます。

連携フローの作成

それでは実際に連携フローを作成していきます。 このシナリオで作成する連携フローは以下のような流れになっています。

コネクタ

内容

 

1-1

Box

Box の任意のフォルダから定期的にファイルをダウンロードします。

1-2

File

受信したファイルをFlexiCapture の画像インポート先として指定しているフォルダに配置します。

 

 

コネクタ

内容

 

2-1

File

FlexiCapture がOCR した結果を出力するフォルダのXMLファイルを定期的に読み取ります。

2-2

XMLMap

受信したXML ファイルを後続のCData コネクタで処理する項目にマッピングさせます。

2-3

CData

CData Driver を利用して受信したデータをkintone のアプリに書き込みます。

1つ目のフローがBox からPDFファイルを受信して、FlexiCapture のOCRを行うためのフォルダにファイルを配置するフロー

2つ目がOCR した結果出力されたXML ファイルを読み取り、kintone のアプリにデータを書き込むフローです。

対象のフローは以下のURLにサンプルテンプレートとして配置しているので、ぜひ自身のCData Arc 環境にインポートして試してみてください。

https://cdatajwrk.s3.ap-northeast-1.amazonaws.com/arcflow_template/Box_Kintone_FlexiCaptureSample.arcflow

1-1. Boxコネクタの設定

最初にBox からPDF ファイルをダウンロードするコネクタを構成します。

Box コネクタを配置後、「接続」ボタンをクリックして、Box へのコネクションを確立させます。

以下のようにBox へのアクセス許可が求められるので、内容を確認し、アクセスを許可しましょう。

接続が完了したら、対象となるBox のフォルダを「受信:リモートフォルダ」に入力します。

今回は「FlexiCapture」というフォルダから取得するので、以下のように指定しました。

また、「オートメーション」タブに移動して、Box のフォルダを監視する間隔を指定します。「受信」にチェックを入れて、どのくらいの受信間隔でチェックするのかを指定します。

以下は1時間に1回チェックする構成にしています。

1-2. File コネクタの設定

次にFile コネクタを配置し、Box から受信したファイルをどこのフォルダに配置し直すのか? を指定します。

以下のようにパスでFlexiCapture の画像インポートプロファイルで指定したフォルダパスを入力しましょう。

2-1. File コネクタの設定

続いて、OCR した結果をkintone に書き込むフローを構成していきます。

最初にFile コネクタを配置し、FlexiCapture のエクスポートフォルダを監視する処理を構成します。

以下のようにパスでエクスポートフォルダを指定し

「オートメーション」タブから受信間隔を指定します。以下は1分に1回フォルダを監視する構成にしています。

2-2. XML Map コネクタの設定

次にXML Mapでkintone の項目にマッピングする処理を指定します。ソースファイルにはFlexiCaptureがエクスポートする結果をサンプルとして指定します。

ディスティネーションファイルは後続のCData コネクタで対象のテーブルを指定することにより、自動的に設定されます。

あとはそれぞれの項目をドラッグアンドドロップで紐づけるだけでOKです。

2-3. CData コネクタの設定

最後にCData コネクタの設定です。ここでkintone への書き込みを行います。

なお、デフォルトでkintone コネクタがインストールされていないため、以下のURLよりkintone コネクタをCData Arc の環境にインストールしておきます。(Windows 版はADO.NET、Java 版はJDBC Driver をインストールしてください)

https://www.cdata.com/jp/drivers/kintone/jdbc/

インストール後、CData コネクタでデータソースとしてkintone が選択できるようになります。あとはkintone への接続情報を入力して、コネクションを確立させます。

接続完了後、UPSERT の設定として対象のテーブル・カラムを指定します。今回は予め作成しておいたFlexiCapture 用のテーブルに書き込みますが、ここは皆さんの環境に併せて構成してください。

これですべてのフローが作成できました。

テスト実行

それでは実際に動かしてみましょう。

Box にファイルをアップロードすると以下のようにBox コネクタが自動的にファイルを読み取ります。読み取ったファイルはBox コネクタの「アウトプット」タブで確認できます。

すぐに手動でファイルを読み取りたい場合は「受信」ボタンをクリックしてもOKです。

これで以下のようにFlexiCapture の画像インポートプロファイルで指定したフォルダに出力されます。

出力された画像がFlexiCapture に取り込まれて、以下のように識別されました。

OCR した結果がエクスポート先のフォルダに格納されると

2つ目のフローのFile コネクタが読み取って「アウトプット」のタブに表示されます。

kintone 画面に移動してみると、正常にOCRした結果が取り込まれていることが確認できました。

おわりに

このようにCData Arc を利用することで、ABBYY Flexi Capture とクラウドストレージ・SaaS の連携を簡単に実現することができます。

CData Arc はシンプルで拡張性の高いコアフレームワークに、豊富なMFT・EDI・エンタープライズコネクタを備えたパワフルな製品です。

CData Drivers との組み合わせで250を超えるアプリケーションへの連携を実現できます。必要な連携を低価格からはじめられる事も大きな特長です。 皆さんのつなぎたいシナリオでぜひ CData Arc を試してみてください。

https://www.cdata.com/jp/arc/

お試しいただく中で何かご不明な点があれば、テクニカルサポートへお気軽にお問い合わせください。

https://www.cdata.com/jp/support/submit.aspx

トライアル・お問い合わせ

関連コンテンツ