Help us understand the problem. What is going on with this article?

IQ Botのカスタムロジック:固定値の代入

IQ Botのカスタムロジックで、置換処理数値の取り出しほどの使用頻度はないものの、
意外とパワフルに使えるのが「固定値の代入」です。

固定値の代入

固定値の代入に関しては、処理自体はとても簡単なのでほぼ解説不要と思います。

固定値の代入(フィールド項目)
field_value = "代入したい固定値"

「こんな処理をいつ使うんですか?」という疑問の方が多いと思いますので、それを書いていきます。

使い道その1:分類されたグループを出力する

IQ Botには帳票の自動分類の機能がデフォルトでついていて、同じインスタンスの帳票をフォーマットごとに、AIが分類してくれます。

こんなかんじ↓ 
グループ.jpg

帳票の中身が見えないのでイメージわかないかもしれませんが、Group1とGroup2にはそれぞれ、
「フォーマットは違うけど取り出したい項目は同じ」という帳票がグループ分けされて入っています。

イメージでいうと、Group1はA社の請求書で、Group2はB社の請求書というかんじ。

ふたつとも請求書なので取り出したい項目は同じだけど、フォーマットが違うので別グループになっています。

処理が完了すると、今度はグループに関係なく、インスタンスごとにひとつのフォルダにCSVが出力されます。

つまり処理が終わってしまうと、どのグループに分類されて処理されたかがわからなくなります。

別にそれはそれでいいじゃん、という人は特に問題ないのですが、「通ってきたグループをぜひ知りたい!」みたいな場合は、
項目設定のときに「処理グループ」のような項目を作っておいて、そのグループに対して、固定値代入でグループの名称を入れます。

Group1の「処理グループ」にはfield_value = "Group1"
Group1の「処理グループ」にはfield_value = "Group2"

という要領で、ロジックを埋め込んでいくイメージですね。

使い道その2:分類を根拠に一意に決まる項目の設定

使い方その1と本質的には同じことかもしれませんが、実務で使うのは主にこちらだと思います。

先ほどの例と同じく、Group1はA社の請求書、Group2はB社の請求書だと考えます。

このケースで、読み取り項目の中に「請求元社名」「請求元住所」「送金先口座番号」のような項目があったとします。

真っ当にいけば、これらの項目はすべてOCRの読み取り結果をベースに出力していくわけですが、
OCRはどうしても、100%の精度にはなりません。

Group1に分類されたということは、「請求元社名」はA社だとわかりきっているのに、
OCRの結果を使ったがゆえに、ノイズが混入して「\A社」みたいになったり、
印字のちょっとしたカスレで「H社」になったりということがありえます。

また、社名の欄などは印影との重なりにより、OCRで読みづらいというケースもあります。

そうした項目に関しては、いちいちOCRの結果を使わずに、カスタムロジックで固定値を入れてしまうというのも手だったりします。

注意点

使い方その2を採用する場合は、IQ Botの自動分類を固定値代入の根拠にしていいかを事前に十分検証する必要があります。

つまり、A社とすごくよく似たフォーマットで請求書を出してくるX社という会社があって、
その会社の請求書がうっかりGroup1に分類されたりしないか、ということですね。

まとめ

  • 固定値の代入を使って、以下のことができるよ
    • その1:処理されたグループを出力する
    • その2:分類を根拠に一意に決まる項目には固定値を入れてしまう
  • その2の使い方をする場合は、分類を固定値代入の根拠にしていいかどうかを事前にしっかり検証してね
IQ_Bocchi
金融SEを経て、某企業にてAutomation Anywhere の IQ Bot という製品を触ることになったエンジニアです。 自分自身の備忘も兼ねて、IQ Botや関連技術の情報を公開していきます。 IQ Botに関する質問をTwitterでいただければ、TwitterかQiitaでお答えします。 https://twitter.com/IQ_Bocchi
https://twitter.com/IQ_Bocchi
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away