就業先では、RPAツールのBizRobo!を使用しています。BizRobo!開発で悩み、BizRobo!ナレッジベースで日々検索しています。
Excelファイルから値を抽出することは、RPAではよくあるケースです。
BizRobo!では、「セル値抽出(Extract Cell)」ステップを用いて、Excelファイルから抽出します。
しかし、そのステップ内にある「数値を抽出」コンバータの使用方法を間違えるとエラーになってしまいます。
今回は、「数値を抽出」コンバータを利用して、変数から数値を抽出する際のエラーについて、共有いたします。
※時間が経過して変わってしまった箇所や間違っている箇所、不適切な表現があるかもしれませんが、その時は都度修正いたしますので、ご指摘いただけると幸いです。
私の就業先で出くわした事象
私の就業先で出くわした事象を例え話で説明します。
株式会社TBOの経理部門のお話です。
経理部には様々な申請があり、その中に子会社に関わる申請もあります。経理部に関わる申請は、ServiceNowで行いますが、入力ミスを防ぐために、申請の下書きをRPAで行っています。
入力データの元は、Excelに記載されています。ExcelのG列には、数値が必ず入っていなければいけないのですが、空白や文字列が入ってしまったため、セル値抽出を行う箇所でエラーになりました。
過去に開発されたBizRobo!のRPAでしたが、エラーハンドリングが正しく組み込まれていませんでした。今回原因を調査した際、BizRobo!ナレッジベースの下記URLが該当しました。
「数値を抽出」ステップで変数から数値を抽出する際に、入力から数値を抽出できませんとのエラーが発生します
詳細に解説します。
エラー発生個所箇所は、「セル値抽出(Extract Cell)」ステップになります。そのステップ内のコンバータで「数値を抽出」を使用している時にエラーになるケースがあります。
「数値を抽出」コンバータは、¥1,234,000,020のような通貨形式の数字でも対応可能です。
下記のようなExcelファイルがあると仮定します。金額と書いてあるC列を見てください。
C2のように、値段が書いてある場合は、エラーは発生しません。
C3やC4のように、空白や文字列がある場合に、エラーが発生します。
今まで説明したことは、下記URLに記載してあります。
「数値を抽出」ステップで変数から数値を抽出する際に、入力から数値を抽出できませんとのエラーが発生します
つまり、「セル値抽出(Extract Cell)」ステップ内の「数値を抽出」コンバータの使用している際に、数値以外の文字列や空白の場合に、エラーになることが書かれておりました。
私が対応した方法
今回のエラーを解消する方法で思いついた方法は、2つありました。
①「抽出」>「高度な抽出」コンバータを利用する
先ほど紹介したURLに書いてある方法となります。
数値のパターンが決まっている場合は、効果的だと考えています。
通貨のように、¥1,234,000,020と不規則なパターンの場合、適用するのが難しいと考えています。
②「数値を抽出」コンバータのまま、エラーとしてログ記録のチェックを外す
通貨のように、¥1,234,000,020と不規則なパターンの場合、①を適用するのは難しいです。通貨の場合は、「数値を抽出」コンバータのままの方が都合がいいです。
その場合、「エラーとしてログ記録」のチェックを外し、「Then」の選択肢を「次の代替手段を試行」か「無視して続行」を選択する方法もあります。
上記方法は、エラーがでても、無視して、後続処理を進める方法になります。数値以外の文字列や値が空白の場合、変数にはNullが入ります。
この場合、「テスト」ステップを利用すれば、エラー時にログを出力するようなロジックを組むことも可能です。
しかし、空白の時も数値以外の文字列の時も、どちらも変数にはNullが格納されるため、空白か文字列か判断したいときは向きません。
今回の改修では、下記理由から②で対応することにしました。
・ユーザーと要件を確認した際に数値とNullが入る可能性はあるが、文字列が入らないことが判明した。
・¥1,234,000,020のように通貨形式で出力されるため、パターンを定めることが難しい。
最後に
下記のエラーについて、共有しました。
「数値を抽出」ステップで変数から数値を抽出する際に、入力から数値を抽出できませんとのエラーが発生します
RPAで初めてエラーに出くわした時は、こういうエラーが出るのはなぜだろうと検討もつきませんでした。ナレッジベースに書いてあったので、助かりました。BizRobo!で不明点が出てきた時は、BizRobo!ナレッジベースとBizRobo! LAND Communityはとても有効だなと感じました。
今回の記事が、RPA開発で悩んでいる人の為になれば幸いです。