工事中です

Share on facebook
Share on twitter
Share on linkedin

UiPath > configファイルを読み込む前に行うべきエラーハンドリング

はじめに

ReFrameworkを学んだ時に学習したことをもう一つ紹介しようと思います。一つ目に学んだことは、SecureTypeの重要性についてでした。それはこちらについて記載しております。

今回ご紹介するのは、InitialAllSettingsについてです。

元々はDictionary型変数「config」をアウトプットするためのワークフローですが、その事前作業に必要なことをちょっと追記しようと思います。

コンフィグファイルをお客様が編集する場合、エラー率は高まる

まず、このお話の前提条件についてですが、UiPath Orchestratorにパブリッシュしていないというケースについてです。この恐ろしさについて、ちょっと私の経験談を交えて語ってみたいと思います。

何が恐ろしいかというと、UiPath Orchestratorのアセットにあたる情報もコンフィグファイルの中に格納しなければならないです。あらゆるユーザーが何度も何度もコンフィグファイルを開いたは情報を編集して閉じる、つまりコンフィグファイル自体が破損してしまう恐れが高いのです。

お客様はモンスターです。

知っておくべきこととして、お客様は私たちの想像を絶するほどの方法でロボットを操作します。”まさか”コンフィグファイルを削除しないだろう。”まさか”ロボットのワークフローを削除しないだろう、”まさか”……、その”まさか”をしでかしてしまうのがお客様です。

「お客様のコンピューターリテラシーは高いはずである」という性善説に立つのはロボットの品質向上を低下させる一番の要因です。 「仕様書に書いたじゃん!」と文句を言ってもいいですが、余計な争い事は初期設定で避けるべきです。

コンフィグファイルにはシートの保護を絶対にかけるべき

もうこれは絶対と言っていいでしょう。必ず、必ずエクセル自体にシートの保護をかけてください。もうこれは鉄則です。

  • シート名を誤って違うものに変更してしまう
  • シートを削除してしまう
  • 列名を変更してしまう
  • 変数名を変更してましう

こうした変更すや削除の可能性を事前に防いでくれるのが、シートの保護です。必ず行ってください。

チェック1:コンフィグファイルが存在するか

その上でコンフィグファイルをチェックします。まずは何をチェックするのか、それはコンフィグファイルが存在するかです(笑)。笑ってしまいますよね。けど発生しかねないケースです。

お客様は様々な方法でコンフィグファイルを操作します。コンフィグファイルをデスクトップフォルダに置いたり、時にはコンフィグファイル自体を切り取って移動させてしまうこともありました。 まずコンフィグファイルが存在するかを確認しましょう。

チェック2:変数のパスは本当に存在するのか

ロボットを実行している途中で必要なファイルが存在していない場合、エラーが発生します。 特にプロジェクトフォルダ外のファイルを参照する場合、エラーが発生する確率は高まります。

プロセスの段階でエラーハンドリングをしてもいいのですが、私はもう初期設定の段階でファイルが存在するのかチェックします。

列「check path」を挿入し、パスのチェックを行う

一般的に用いられるコンフィグファイルは3列「name, value, description」ですが、そこに1列「check path」を追加します。

この「check path」の列内に文字記載があった場合、そのパス存在してるのかをチェックします。もしも存在しない場合スローでエラーを吐き出します。

コンフィグファイルを読み取ったDataTableをFor Each Rowでループさせ、もしも列「check path」に何か文字を含んでいた場合、パスの存在を確認します。

もしもフォルダーパスもファイルパスもない場合、List型変数「not_exist_path_list」に格納し、最後に 「not_exist_path_list」 にコレクションが存在する場合、スローを発生させます。

やっとコンフィグファイルをDictionary化することができました!

こうした段階を踏んだ後に、コンフィグファイルを読みます、この時点で初期設定何かしらのエラーが発生した場合、この時点でエラー、です

ワークフロー概要

Excel管理からAssetへ

これやり出し始めるとキリがないですよね、ワークフローが全てちゃんと揃っているのかも確認しなければなりません。なので、UiPath Orchestratorにロボットパブリッシュしてお客さんが変更するべき設定はアセットに書くべきです。

ロボットを実行した時に必要なワークフローが全て揃っているのかをチェックした上で実行するという方もいました。工数がすごいわかりますよね。

では、素晴らしいRPAの時間をお過ごしください。

目次