はじめての IQ Bot：IQ Botを作ってみよう！


紙業務の自動化をサクサク進められるAutomationAnywhereの[IQ Bot](https://qiita.com/IQBotter/items/fab5f59230ff38a98bbd)。

IQ Botを使うためには、　IQ Botを作る　→　IQ Botを呼び出すRPAを作る　という事前準備が必要です。

この記事では、IQ Botを作るための流れをステップバイステップで説明します。

#IQ Botを動かすために必要なもの

以下の２つがあれば、IQ Botを動かせます。

- ① IQ Botを動かす環境
- ② サンプル帳票

##① IQ Botを動かす環境

※※※　2021/9/1 補足 現在、Community EditionのIQ Bot では日本語のIQ Bot を試すことができなくなっています。　※※※
※※※　また状況変わり次第アップデートします。　※※※

環境が今ない人は、Community Editionに無料で申し込めます。
Community Editionについての説明は↓↓↓こちら↓↓↓

[【リンク】IQ Botのコミュニティ版が復活！！](https://qiita.com/IQ_Bocchi/items/63cc4ec70d1c73a8b280)

Automation Anywhere のRPAを動かすためにはOSがWindowsでないといけませんが、IQ Botでインスタンスを作ってみるだけならMacでもできます。

##② サンプル帳票

IQ Botを作るためには、学習用のサンプルドキュメントが必要です。
サンプルドキュメントは最低１枚あればOKです。

IQ Botを始めて使う方は、まずはIQ Botに馴染む以下のサンプルで練習してみることをおすすめします。

[【外部リンク（Box）】IQ Botを始めて使う人におすすめの帳票サンプル（３ファイル入っています）](https://automationanywhere.box.com/s/fet1butftm7y99ptc3ooskl348qfm7pu)

###サンプルドキュメントを選ぶコツ

上記のサンプルファイル以外の帳票をアップロードしたい場合は、以下を理解の上、なるべくIQ Botに適した帳票を選びましょう。
（IQ Botの操作に慣れていない人がIQ Botに不向きな帳票を選んでしまうと、そもそも処理ができず精度の検証などもできない可能性があります。。。）

[帳票の種類別の向き／不向き](https://qiita.com/IQBotter/items/38a44e33577284f9a23b#%E5%B8%B3%E7%A5%A8%E3%81%AE%E7%A8%AE%E9%A1%9E%E5%88%A5%E3%81%AE%E5%90%91%E3%81%8D%E4%B8%8D%E5%90%91%E3%81%8D)
[IQ Botが扱える帳票の条件](https://qiita.com/IQBotter/items/38a44e33577284f9a23b#iq-bot%E3%81%8C%E6%89%B1%E3%81%88%E3%82%8B%E5%B8%B3%E7%A5%A8%E3%81%AE%E6%9D%A1%E4%BB%B6)

#IQ Botを作る

サンプル帳票が用意できたら、さっそくIQ Botを作ってみましょう。

IQ Botのログインのしかたはオンプレ版かクラウドかCEかによって違いますが、ログインはできたものとして、ログイン後の画面から解説をスタートします。

※コミュニティ版でIQ Botの入口までたどり着く方法を、こちら↓の記事で解説しています。
https://qiita.com/IQ_Bocchi/items/a011824dc7e6f7b4ce32

##新規インスタンスの作成

「学習インスタンス」のタブから「新規のインスタンス」ボタンを押します。
※バージョンによっては、タブの名前が「ラーニングインスタンス」になっている場合もあります。
※コミュニティ版の場合は、画面左側には「ラーニングインスタンス」のタブしかありません。
![01_新規作成.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/587845/ec81abf5-6833-063c-9a9a-3fdbb34c1c1d.jpeg)

このような画面が出てきますので、必要情報を入力していきます。入力方法は以下へ。
![002_初期表示.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/587845/d818ab2f-b699-209d-849e-8ca9025c7282.jpeg)

##基本情報の入力
###一般情報
![02_一般情報.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/587845/56104dba-151a-976b-c2a1-127278875fff.jpeg)

|No.|項目|入力内容|
|:-----------------|:------------------|:------------------|
|①|インスタンス名|該当インスタンスの名称を入力します。<br>入力できない文字を入れるとその場で怒られます。<br>同一サーバー上にある他のインスタンスと同じ名前にはできません。|
|②|ドキュメントタイプ|日本語帳票の場合は「その他」一択。|
|③|ドキュメントの主要言語|日本語帳票の場合は「Japanese」を選択。<br>英日併記などの場合も「Japanese」を選んでおきます。|
|④|カスタムドキュメントタイプ|②で「その他」を選ぶと入力欄が出てきます。|

①と④は、ひとまず何かしら入力してあればOKです。

###サンプル帳票のアップロード

「ドキュメントをアップロード」の「参照」ボタンを押して、アップロードしたいサンプル帳票を選択します。

![03_アップロード.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/587845/766226cb-1662-6b91-2b03-4e5f2ebab95b.jpeg)

複数選択もOK。

###抽出したいフィールド名の入力

次に、抽出したいフィールドの名称を入力していきます。
フィールドは、下記のようにフォームフィールドとテーブルフィールドに分かれています。

![04_フォームフィールドとテーブルフィールド.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/587845/609fdf27-9605-2abd-683b-3f42f4512d1f.jpeg)

|No.|項目|説明|
|:-----------------|:------------------|:------------------|
|①|フォームフィールド|請求書であれば請求日や入金期限、請求元の会社名など、**帳票の中に一つしか出現しない項目**。<br>該当項目のラベルを入力します。<br>ラベルがない項目（請求元の社名など）の場合は、適当にそれとわかる名前を入力します。|
|②|テーブル／繰り返しセクションのフィールド|明細項目など、**ひとつの帳票の中に繰り返し出現する項目**。<br>明細行であれば、表の列名を入力します。|

入力のしかたは以下のとおり。
以下はフォームフィールドの例ですが、テーブルフィールドも要領は同じです。

![05_入力のしかた.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/587845/59feaca6-9c43-ad68-3678-54d34a46e21f.jpeg)

入力する名称は極力、**帳票上に出現するラベルの名称と合わせる**ようにしてください。

例えば、顧客コードが帳票上に「お客様コード：A123」などと表記されている場合は、上記の欄に入力する名称は「顧客コード」とはせず「お客様コード」という名称にします。
（そうでないやりかたも応用編としてできるのですが、今回は「はじめてのIQ Bot」ということで、このやりかたで統一しましょう！）

明細行の場合は、帳票上に記載されている表のカラム名を入力します。（「商品番号」「品名」など。）

入力時の注意点やフォーム／テーブルの区別のしかたのさらに詳しい説明は、以下の記事を参照してください。

[【リンク】IQ Bot：フォームフィールド／テーブルフィールド入力時の注意点](https://qiita.com/IQBotter/items/03063d0cb5412db47d46)

###[NEW!!]OCRエンジンの選択（A2019以降およびV11.3.5以降の場合）

A2019およびV11.3.5以降のバージョンでは、テーブルフィールドの入力欄の下に、以下のようなセクションが表示されていると思います。
こちらをクリックすると……
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/587845/7eae761b-3ccd-ec62-b07b-8ab870a70f1d.png)

こんなリストが出現します。
ここからOCRを選択しましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/587845/4ae1e8ff-90e2-b63e-3997-828421284180.png)

各OCRの特徴は以下のリンクに記載していますが、この記事でおすすめしているサンプル帳票を使う場合は、ABBYYが一番うまくいきます。

[【リンク】IQ Bot：OCR選定のコツ](https://qiita.com/IQ_Bocchi/items/8ad6ec8f5a6afd3c98a1)

##帳票の分類（自動）

フィールドの入力が完了したら、「インスタンスを作成して分析」をクリックして、画面が切り替わるのを待ちます。

![06_分類の結果を待つ.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/587845/92bbd334-554b-8483-18b3-27078673e5c8.jpeg)

「インスタンスを作成して分析」ボタンが押せない（非活性になっている）場合は、以下を確認してください。

- 一般情報欄の入力漏れがないか
- サンプル帳票のアップロードができているか
- フォームフィールドかテーブルフィールドに最低１項目入力しているか

上記がそろっていないと、ボタンが押せません。

##分類の結果を確認

IQ Botの処理が終わると、マッピングの学習画面が出てきます。
さっそくマッピングの学習に入ってもいいんですが、その前に分類の結果を確認しましょう。

画面上部のパンくずリストのインスタンス名をクリックすると…
![07_パンくずリスト_上半分.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/587845/76ad56f7-94be-834a-c56c-bea64d8ef7a3.jpeg)

アップロードした帳票が１枚だけの場合は、以下のようになっているはず。
![08_分類の結果を確認.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/587845/d29995c7-cb65-3a5e-7399-3e608a04c0c7.jpeg)

「Group_xx」が「Unclassified」になっていたり、分類が意図どおりにいかない場合は、以下の記事を確認してみてください。

[IQ Bot：分類がうまくいかない場合に確認するべきこと（Unclassifiedの場合も含む）](https://qiita.com/IQBotter/items/b9f6bd9abeb4b9925744)


##マッピングの設定

ここがIQ Botの事前設定のメインとなる部分です。
フィールド項目とテーブル項目に分けて、それぞれ以下の記事にまとめました。

[フィールド項目のマッピングの学習](https://qiita.com/IQBotter/items/d569254f986cfeb1155c)
[テーブル項目のマッピングの学習](https://qiita.com/IQBotter/items/117778e2ef3e87460f62)

また、マッピングの設定とともに、[誤り検知の条件設定](https://qiita.com/IQ_Bocchi/items/4e220a9bd6e337de4508)を行うこともできます。

設定が終わったら、保存します。

![10_保存.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/587845/8c8cb9ca-cacd-e356-1c35-055d6b2dd8c4.jpeg)

「保存」と「保存して本番環境へ送信」はどちらを選んでもOKですが、以下のような違いがあります。

|ボタン|処理内容|
|:-----------------|:------------------|
|保存|学習したグループを保存するだけ。プロダクション化はしません。|
|保存して本番環境へ送信|学習したグループを保存するとともに、プロダクション化します。|

プロダクション化については[こちら](https://qiita.com/IQBotter/items/770dfcd569bcd5e4cad3)のページを参照。

この要領で、マッピングの学習を分類されたグループの数だけ行っていきます。

##プロダクション化

IQ BotをTaskbotから呼び出すためには、**インスタンス自体**と**配下のグループ**がプロダクション化されている必要があります。

プロダクション化のやりかたは、以下のページを参照してください。

https://qiita.com/IQBotter/items/770dfcd569bcd5e4cad3

ここまでで、IQ Botの作成は完了です！

#次のステップ：IQ Botを動かすためのRPAを作る

IQ Botの準備ができたら、次はIQ Botを動かすためのRPAを作る必要があります。

RPAの作り方は、以下のページを参照してください。

https://qiita.com/IQ_Bocchi/items/5b0cc3bb7e4ddcbc43bd