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

IQ Bot のカスタムロジック 基本のキ

こんにちは。

昨日こちら↓で紹介したAutomation AnywhereのIQ Botですが・・・
https://qiita.com/IQBotJapan/items/fab5f59230ff38a98bbd

11.3.3というバージョン以降、読み取り結果に対して、
Pythonというプログラミング言語を使ってちょっとした加工ができるようになりました。

Automation Anywhereの用語では、これを「カスタムロジック」と言っています。

2020年4月3日現在の情報によると、
A2019のクラウド版にくっついているIQ Botではカスタムロジックは使えないのですが、
A2019のオンプレやV11系統のバージョンでは使えます。

カスタムロジックはどんなときに使う?

そもそもカスタムロジックってどんなときに使うんですか?

という質問に対して、答えは色々ありますが、以下に例を挙げてみます。

パターン 具体例
パターンの決まった文字化けの修正 ・東京棘問題(東京が「棘」として読み込まれるというOCRあるある)の修正
・YY年MM月DD日の「日」がBや0に化ける問題(これもOCRあるある)の修正
読み取り結果からほしい要素だけを取り出す ・「お支払金額は123円になります」から金額の123だけを取り出す
・「あいう銀行かきく支店」から支店名だけを取り出す
・1000mgから単位のmgだけを抽出
固定値の代入 当該グループ(※)に対して値が一意に決まる場合は、固定値を入れてしまう
形式の適用 YYYY年MM月DD日をYYYY/MM/DDに直す

単純にOCRで結果を読み取るだけだと、後続処理のデータとしては汚すぎて使えない・・・

という場合に、カスタムロジックでちょこっといじってあげると、きれいなデータができたりします。

カスタムロジックはどう使う?

フィールド項目とテーブル項目で若干使い方が違うのでそれぞれ説明します。

フィールド項目

フィールド項目の場合、ひとつひとつの項目に対してそれぞれカスタムロジックを適用できます。

読み取った素の値がfield_valueという変数に入っているので、それをいじくって加工します。

フィールド項目へのカスタムロジック適用例:固定値代入の場合
field_value = "代入したい値"

こんなかんじです。

フィールド項目は、単純な文字列操作なのでかなりシンプル。
とはいえ追々、便利なコピペ用コードを公開していきたいと思います。

テーブル項目

テーブル項目の場合、テーブル全体の内容がtable_valueという変数に入っています。
このtable_valueは、データフレームという特殊な型に入っていて、扱うときにちょっとしたお約束があります。

それがこちら↓

テーブル項目へのカスタムロジックの書き方
#表の操作をするときに必ず入れるコード(最初)
import pandas as pd
df = pd.DataFrame(table_values)

#
# この間の部分に、処理したいコードを入れていく
#

#表の操作をするときに必ず入れるコード(最後)
table_values = df.to_dict()

こちらは処理コードの部分にもちょっとしたお約束があって、
Pandasに慣れてない人(※)はけっこう迷ったりすることも多いと思います。

# ※白状します。それは私です・・・

そんなわけで、今後しばらく私のQiitaコンテンツでは、
テーブル項目まわりの便利コード(IQ Bot触ってて迷ったり調べたりしたやつ)を
紹介していこうと思います!

まとめ

  • IQ Botでは、読み取り結果をカスタムロジックで加工することで、後続の自動処理に耐えうる品質のデータを作れるよ
  • カスタムロジックは、フィールド項目とテーブル項目で適用できる範囲が違うよ
  • フィールド項目の場合は、field_valueにという変数に格納された素の読み取り結果を加工するだけなので楽勝だよ
  • テーブル項目の場合は、table_valueにという変数にデータフレームとして格納されたテーブル全体を処理するので、Pandasに慣れてない人には若干ハードル高めかも
  • そんなわけで、今後はテーブル項目に対するカスタムロジックのチートシート的なのを公開していくよ

では!

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
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  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
ユーザーは見つかりませんでした