コラム 「RPAの気になる話」

もう止まらせない!UiPathワークフローの作り方

2021.03.15

春の陽気が感じられるほど暖かい日も増えてきましたね。

コロナ禍の在宅勤務にだいぶ慣れてきた方も多いのではないでしょうか。私も早1年、おうち時間の過ごし方のコツが掴めてきたかなと思います。

家で過ごすことが多くても、春はなにか新しいこと始めたい気持ちになりますよね。とはいっても、気軽に始めることができるものが良い・・・  そんな気分に、UiPathの学習はピッタリなんです。

コミュニティ版のアプリケーションは無料でインストールができて、E-learningが用意されていて、公式のCommunity ForumなどFAQの場も充実しています。

インストール手順はこちら
コミュニティ版の利用には一部制限があります、詳しくはこちら

今回は、これから始めたい!始めたばかり!という初心者の方向けに、ワークフローが完成して、いざ実行!というときに遭遇しがちなあるあるエラーとその対策についてお話します。

目次:

あるある度★☆☆ 『Excelファイルが読み込めないエラー
あるある度★★☆ 『ファイルが正常に取得されないエラー』
あるある度★★★ 『画面の遷移やアクティブ化になる前にRPAが先走るエラー』
【番外編】 停止し続けてしまうエラーにならないエラー
【さらにおまけ】 「メッセージをログ」アクティビティ


 

あるある度★☆☆ 『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アプリケーションスコープ」アクティビティを、もう一つは、「待機」アクティビティと「メッセージをログ」アクティビティを配置します。

「並列」アクティビティのプロパティ「条件」の設定は「True」とします。ここには「True」もしくは、「False」のどちらかを定義するのですが、違いは以下です。

True False
分岐のいずれかの処理が終了すると並行アクティビティを終了します。 分岐の全ての処理が終了すると、並行アクティビティを終了します。

実行した時に得られる結果は次のようになります。

  • 正常系:
    Excelファイルを開くことができて並行アクティビティを抜けて、後続の処理へと続く。
  • 異常系:
    Excelファイルを開くことができなかった場合に、30秒待機後、エラーメッセージがログに出力されて、後続処理へと続く。

 

【さらにおまけ】「メッセージをログ」アクティビティ

ここでもう一つ、おまけのTipsです。エラーが起こったときに最初に確認するものはログだと思います。

「メッセージをログ」アクティビティに書いたものが出力されるのは、皆さんもご存知と思いますが、ログレベルまで指定できることは知らなかった、もしくはあまり活用していなかった方も多いのではないでしょうか。

以下イメージのように、開発時には色別での確認ができますし、テキストファイルに出力された場合でも「Error」や「Warn」のようなワードで分けて管理ができます。

いち早く、エラー箇所の特定ができたり、想定の結果であることを確認できたりしますので積極的に組み込んでいきましょう。

 

CACでは、こうした開発のノウハウを生かしてエラーが発生しづらい、エラーが起きてもすぐ対応できるような開発規約やテンプレートを持ち合わせており、RPAの開発、さらには運用・保守やトレーニングをワンストップにサポートしています。トレーニングは、一日でUiPathを取得できるハンズオン型のOne-dayトレーニングを初心者向け、中級者向けのレベル別にご提供しています。特に、初心者向けのコースは、開発経験に関わらずどなたでもワークフローを一から作成できることを目標にしています。

是非お気軽にお問い合わせください。

もう止まらせないワークフローの作成を一緒にしていきましょう。

 

今回は、UiPathを例にあげて、絶対止まらせないRPAを作成するコツを取り上げましたが、WinActor編も気になるところかと思いますので、またの機会にご紹介させていただきます。是非ご期待ください。

このコラムの執筆者

株式会社シーエーシー
アドバンスドテクノロジー本部
森永 和花

入社以来、RPAの開発・保守を担当しています。RPAが初めての方はもちろん、今、運用中のお悩みをお持ちのお客様と一緒に、RPAを着実に進めていけるよう、日々業務に取り組んでいます。セミナーではそんな思いを後輩二人とお届けできれば嬉しいです。

RPA技術レポート無料ダウンロード

15分で読める「RPAを一人で始めて、会社を巻き込むコツ」(PDF)
15分で読める「RPAを一人で始めて、会社を巻き込むコツ」(PDF)
ダウンロード ダウンロード
RPAで全社的な業務改善をするならCoE導入という選択肢
RPAで全社的な業務改善をするならCoE導入という選択肢
ダウンロード ダウンロード
RPA導入初期につまずかないTips5選
RPA導入初期につまずかないTips5選
ダウンロード ダウンロード