もう止まらせない!UiPathワークフローの作り方
目次
今回は、これから始めたい!始めたばかり!という初心者の方向けに、ワークフローが完成して、いざ実行!というときに遭遇しがちなあるあるエラーとその対策についてお話します。
あるある度★☆☆ 『Excelファイルが読み込めないエラー』
ファイルが読み込めない原因としては、いくつか考えられるものがありますが、とくに見落としがちなハイパーリンクが含まれているときに起こってしまうエラーをご紹介します。Excelファイルにメールアドレスやファイルパスを入力して、情報をもたせることは非常に多く、自動でハイパーリンク設定になっていることもあるかと思います。
そこで、エラー回避には、”Excel”の下にある「範囲を読み込み」アクティビティを使用することが有効的です。(このエラーについては、UiPath社からの回答でも “ワークブック”の下にある「範囲を読み込み」アクティビティの内部動作に起因するものとされています)
あるある度★★☆ 『ファイルが正常に取得されないエラー』
VB.Netの機能であるファイル取得メソッドを使用すると、指定フォルダ内に格納されているファイルをすべて取得することができます。以下のように「代入」アクティビティに値を入れます。
左辺値(To) | 右辺値(Value) |
[任意の変数名]Array型 | System.IO.Directory.GetFiles(“フォルダ名“) |
このままでは、ファイル名に「~$」がついたファイルも対象となり、取得されてしまいます。実際の業務では無効な形式のファイルは扱わないと思いますので、処理対象から外すことが必要になります。図のようにワークフローを組むことでエラーを回避できます。
あるある度★★★ 『画面の遷移やアクティブ化になる前にRPAが先走るエラー』
クリックのプロパティで「準備完了まで待機」の設定をしてもうまく機能せず、クリックの空振りなどのエラーに悩むこともあるかと思います。実は、Webページなどには有効な設定ですが、システムやアプリケーションによっては待機状態から待ってくれない場合もあります。UiPath社のブログ記事 「クリックアクティビティ徹底解説」では以下のように定義しています。
Web(IE) | デスクトップ アプリケーション |
SAP | |
None | 何も待ちません | ||
Interactive | 対象エレメントが読み込まれるまで待ちます | WindowsMessageのwm_nullの応答があるまで待ちます(※1) | 専用のAPIを使用して実行状態になるまで待ちます |
Complete | 対象ページが全て読み込まれるまで待ちます |
また、重要な部分を同ブログ記事から引用しておきます。
現場でよく勘違いされるのは注釈の(※1)に関してです。プロパティ名だけ見ると、アプリケーションの待機状態を待つように思えますが、そうとも限りません。
WindowMessageを送信し応答があれば実行をします。という意味ですが、これは対象アプリがハングアップ状態のときは待ちますという意味です。つまりアプリケーションが独自で待機状態(くるくる表示、スプラッシュ画面など)を表現をしていてもUiPathからすれば実行可能と判断してしまいます。・・
https://www.uipath.com/ja/blog/developer/click-activity
この場合に、効果的な対策が「要素を探す」アクティビティのプロパティ「アクティブ化を待つ」や「表示されるまで待つ」にチェックを付けることです。ここでポイントになるのが、指定する要素を被らないようにすることです。画面遷移の前後で同じ要素がある場合に、それを選んで指定してしまうと、既に操作可能なものとみなしてしまう可能性がありますので、指定する要素はしっかりと確認しましょう。
【番外編】 停止し続けてしまうエラーを並列アクティビティで解消
これまで、エラーが発生する、あるあるな場面をご紹介しました。ここでひとつ、一般的なエラーの他に、番外編としてエラーにならないエラーをご説明します。
今まで扱ったもの、他の多くのアクティビティには、タイムアウトが設定されているものが基本です。しかし、タイムアウトが設定されていないことでエラーにもならず、停止し続けてしまうものがあります。
皆さんも使用する場面が非常に多い、「Excelアプリケーションスコープ」がその一つです。止まらせない対策としては、「並列」アクティビティを使用することです。「並列」アクティビティの中に一つは「Excelアプリケーションスコープ」アクティビティを、もう一つは、「待機」アクティビティと「メッセージをログ」アクティビティを配置します。
基礎知識・・・
UiPathの並列処理とは、複数のプロセスやタスクを同時に実行することです。これは、特に大規模なタスクの処理を高速化するために使用されることが多くあり、並列(Parallel)アクティビティを使用して、複数のアクティビティを並列に実行します。
「並列」アクティビティのプロパティ「条件」の設定は「True」とします。ここには「True」もしくは、「False」のどちらかを定義するのですが、違いは以下です。
True | False |
分岐のいずれかの処理が終了すると並行アクティビティを終了します。 | 分岐の全ての処理が終了すると、並行アクティビティを終了します。 |
実行した時に得られる結果は次のようになります。
- 正常系:
Excelファイルを開くことができて並行アクティビティを抜けて、後続の処理へと続く。 - 異常系:
Excelファイルを開くことができなかった場合に、30秒待機後、エラーメッセージがログに出力されて、後続処理へと続く。
【さらにおまけ】「メッセージをログ」アクティビティの活用
ここでもう一つ、おまけのTipsです。エラーが起こったときに最初に確認するものはログだと思います。
「メッセージをログ」アクティビティに書いたものが出力されるのは、皆さんもご存知と思いますが、ログレベルまで指定できることは知らなかった、もしくはあまり活用していなかった方も多いのではないでしょうか。
以下イメージのように、開発時には色別での確認ができますし、テキストファイルに出力された場合でも「Error」や「Warn」のようなワードで分けて管理ができます。
いち早く、エラー箇所の特定ができたり、想定の結果であることを確認できたりしますので積極的に組み込んでいきましょう。
CACでは、こうした開発のノウハウを生かしてエラーが発生しづらい、エラーが起きてもすぐ対応できるような開発規約やテンプレートを持ち合わせており、RPAの開発、さらには運用・保守やトレーニングをワンストップにサポートしています。トレーニングは、一日でUiPathを取得できるハンズオン型のOne-dayトレーニングを初心者向け、中級者向けのレベル別にご提供しています。特に、初心者向けのコースは、開発経験に関わらずどなたでもワークフローを一から作成できることを目標にしています。
是非お気軽にお問い合わせください。
もう止まらせないワークフローの作成を一緒にしていきましょう。
今回は、UiPathを例にあげて、絶対止まらせないRPAを作成するコツを取り上げましたが、WinActor編も気になるところかと思いますので、またの機会にご紹介させていただきます。是非ご期待ください。
【このコラムを動画でみる】のどか先輩のUiPath開発講座2022冬 〜①ワークフローを作ろう編〜
【このコラムを動画でみる】のどか先輩のUiPath開発講座2022冬 〜②頻出エラーを解決しよう編〜
このコラムの執筆者
株式会社シーエーシー
アドバンスドテクノロジー本部
森永 和花
入社以来、RPAの開発・保守を担当しています。RPAが初めての方はもちろん、今、運用中のお悩みをお持ちのお客様と一緒に、RPAを着実に進めていけるよう、日々業務に取り組んでいます。セミナーではそんな思いを後輩二人とお届けできれば嬉しいです。
本記事のカテゴリ :RPA技術コラム
PickUP
本記事に関連するCACのサービスやお役立ち情報をご紹介します。
RPA技術レポート無料ダウンロード
- 【コラム】WinActor ver7.5.0「シナリオ作成ガイド」で作ってみました
- 【コラム】 RPA導入・拡大の課題と解決 ―知っておきたい3つのTIPS
- 【コラム】RPA開発のポイント ―RPAを一人で始めて会社を巻き込む
- 【コラム】医療事務の現場 事務でRPAが求められる背景から対象業務、メリット、事例まで一挙解説!
- 【サービス】RPA開発/サポートサービス
- 【サービス】RPA+Oneソリューション
- 【サービス】RPA研修 自社開発イネーブルメントプログラム
- 【動画】CAC RPAセミナー オンデマンド
- 【資料ダウンロード】美しいコードをみると感動する、美しいワークフローの作り方|CAC RPA White Paper