目次
社内にAutomation 360のRPAを導入している、または、開発している方で、以下お悩みをお持ちではないでしょうか?
Automation 360でRPAを開発してみたが、、、
- エラー原因の特定方法がわからない
- エラーの解消に時間がかかってしまう
- 公式サイトにエラーの解決策が載っていない為、困っている など
エラー対応に時間がかかってなかなか開発を完了できない、特に開発初心者が頭を抱えて悩んでいるではないかと思います。
本日は、私がRPAエンジニアになりたての頃に苦しんだエラーが発生しやすい機能とその解決方法をお伝えします。
Excelの高度な機能でよくあるエラー
Microsoft Excelは、Automation 360との相性が良く、Automation 360にはExcel専用のパッケージがあり、操作するアクションも多数存在しております。
しかしヘッダー項目の内容やセッション名の設定など、Excelファイルを操作する際の前提条件の設定があります。それらをうまく設定できないと、エラーが多発してRPAエンジニアとしての経験が浅い場合は苦労するケースが多いです。
以下に、私が駆け出しRPAエンジニアだった際に実際発生したエラー事象を紹介致します。
エラー内容
Excelの転記処理を行うロボットを作成する際に、Excelファイルの値をループ機能で取得するタイミングで、ヘッダーに関するエラーが発生しました。
【エラー発生タイミング】
ロボットを実行し、Excelのワークシートの各行をループで処理しようとした際に、以下のポップアップのエラーメッセージが表示されました。
【エラーメッセージ】
Excel ワークシートには、次のいずれかまたはすべてが含まれます。
①空のヘッダー
②重複したヘッダー名
③無効なセル範囲
原因
上記のようなエラーが発生した原因は、ヘッダーの値が一部空欄になっていたことがほとんどでした。
解決方法
具体的なエラーの解消方法は、以下の通りです。
- ヘッダーに空欄が無いようにExcelを修正する。
- ヘッダーとして行を読み込まない
設定方法:Excel開くのアクションでヘッダーを含むにチェックを外す。
チェックをはずすことで、ヘッダー行を読み取ることがないため、空欄になっているヘッダーは、一行として認識されます。そのため、エラー解消することができます。
タスクボット呼び出し機能でよくあるエラー
タスクボット呼び出し機能は、親子関係のロボットと呼ばれることが多く、ロボットを作成する際に、一つのロボット内で別のロボットを呼び出す際に使用するアクションです。呼び出す際に、入出力機能と呼ばれる変数の値をロボット間で引き渡す機能があります。ただし、変数の入出力をどう設定すれば正しいのか、明確に理解していないと、変数の受け渡しがうまく行かず、エラーになってしまう場合が多くあります。今回はその一例をご紹介いたします。
エラー内容
親子関係のロボットを開発する際に、サブタスクボットで取得したデータを変数に格納し、メインタスクボットに渡してExcelに転記する際に、取得した値が転記されず、空欄のままでロボットが終了されました。
原因
メインタスクボットでサブタスクボットを呼び出す際に、変数の出力値の設定が間違っていたことが原因でした。
解決方法
タスクボット呼び出しのアクションを使用する際の設定時に、以下設定をすることで解消できます。
【設定方法】
出力値を設定する時は、
- メインタスクボットで取得したい値の変数を作成する
- サブタスクボットで出力値にチェックを入れた同じ変数を作成する
- メインタスクボットでタスクbot呼び出し機能を使い➊と❷の変数をマッピングする
上記設定を行った後、変数が正しく引き渡しできているかチェックします。
チェック方法は、メッセージボックス機能で、変数の値を確認することをお勧めします。
確認ロジックは、以下の通りです。
- 該当のタスクbot呼び出し機能の後に、「メッセージボックス」アクションを挿入する
- サブタスクボットで出力した変数を設定する
- メインタスクボットを実行し、設定した変数の値が入っているか、メッセージボックスを表示させて確認する
変数でよくあるエラー
Automation 360の変数には、たくさんの機能が存在します。そのため、変数の機能を完全に理解することが難しいと思います。
特に、変数内の「インデックス」の考え方や、変数のタイプの種類を理解するのが引っかかるポイントです。
誤ったインデックスを指定したり、異なったタイプを選択したりすることで、エラーが発生する場合が多いです。
以下に、実際発生したエラー事象を紹介致します。
エラー内容
【エラーメッセージ】
リスト変数のインデックスが存在しないことによるエラーが発生している。
【スクショ】
原因
リスト変数の中身がなにも入っていない為、インデックスが存在しない状態になっていることが原因です。
解決方法
以下、解決方法を実施することで、事象を解消または、解決することができます。
- 本来リスト変数に値が入っている想定でBotを実行している場合、まず、リスト変数の値が取得できているかを確認する。取得できていないのが確認できれば、該当のアクションを修正する。
- リスト変数に値が入っていなくても処理を進めたい場合は、リスト変数に値が存在するかを確認するロジックを構築する。
【構築ロジック】
リストパッケージのサイズアクションを挿入する。
IFアクションでサイズが「0」であるかを確認する。
⇒「0」である場合は、リスト変数に値が入っていないことが確認できます。
Automation 360のエラー特定方法
今回ご紹介させていただいたエラー事例はほんの一部です。開発しているなかで、エラーが発生するのは想定内ですが、エラーを解消するにも、まずはエラーを正しく特定するのが大事かと思います。
そこで、弊社が取り組んでいるエラーの特定方法を紹介させていただきます。
エラーが発生したら、以下の手順でエラーを特定します。
- エラーログから、エラー行とエラーを特定します。
- 実際のロボットのロジックを確認する。
- エラー内容とロジックが一致する場合は、該当箇所を修正する。
- エラー内容とロジックが一致しない場合は、関連性のある機能をチェックする。
上記手順で確認することで、無駄な確認作業や、エラーに関係のない誤った箇所の修正を未然に防ぐことが可能です。
そうすることで、最短時間で開発を進めることができます。
弊社では、ロボットの新規開発は、もちろん、ロボットの運用後の改修作業なども行っております。
もっと詳しいエラーの特定方法や、機能の説明・ロボットの構築ロジックのノウハウなどを受けたい方は、是非下記より、弊社へお問い合わせください。
ペネトレイター株式会社 平石