2
Help us understand the problem. What are the problem?

posted at

【UiPath】設定ファイルの書き方(応用編)

はじめに

この投稿は、RPAツール「UiPath」での 設定ファイルの書き方 について記事です。
今回は、細かいTipsを紹介したいと思います。

UiPathのコミュニティ「UiPath Friends」が企画する「UiPathブログ発信チャレンジ2021サマー」の 21日目の投稿でもあります。

企画の内容は こちら 。カレンダーのURLは こちら です。

設定ファイルを書きながら設計をする

設計をする際に「何を設定ファイルに持たせようかな」とイメージして設定ファイル書くと、素早く実装に入れます。

「良い設計」がされているフローは、設定ファイルを見ただけで、処理内容を理解できます。 流れ・ポイントが明確になっていて、ある意味「設計書的な役割」を果たすから です。

どう書くのが良いのか?はチームによって違いますが、例えば以下のようにして書くと良いかも知れません。

 - 設定項目を「処理の単位」でをまとめる
 - 空白行を入れて「処理の切れ目」を表現する
 - 「入出力の情報」はまとめて、InOutが分かるようにする
 - 項目に対して「極力シンプルな説明」が書かれている

設定ファイルの値チェックは「必要最低限」で良い

設定ファイルの項目は「実装中」も「仕様変更」の際も容易に増減します。そして「値のチェック」を実装するのは結構面倒です。 RPAはローコードのスピード開発なので、手間は極力省きたい。

そもそも設定値を間違えていたら「実行エラー」で止まれば良く、思い切って「値の事前検証チェックは無し」でも大丈夫だと思います。だって、チェック実装してる時間がもったいないから。

ただし「この項目だけは保証しておきたい」という項目は、初期処理の中でチェックするほうが安心だと思います。(例えば「入力ファイルのフォルダ有無」など)

また、エクセルの特性を生かして「入力規則」でエラー値を防ぐという方法もあります。
image.png

設定ファイルはプロジェクト内に置くべきか?

Reframework等のテンプレートプロジェクトはその便宜上、設定ファイルをプロジェクトに含んでしています。(じゃないと仕組みを説明しにくいから)

デメリットとして「設定ファイルもxamlファイルと同じ扱いになり、気軽に変更できない」というものがあります。先に書いたように「設定ファイルには、後で変更する可能性を書く」もので、変更したいときにはプロジェクトを再生成=パブリッシュしないといけないのは少し残念です。

なので、以下のような方法で「設定ファイルをプロジェクトに含まない」とする選択肢もあります。

1)設定ファイルのパスを固定にする
  例)デスクトップ、共有フォルダの固定パス

2)Orchestratorのアセットにパスを記述し、フローの内部で取得する
  例)[Name]ConfigPathOfProcessA   [value]z:\robot\ConfigOfProcessA.congfig

3)実行マシンのレジストリにパスを記述し、フローの内部で取得する
  例)[Name]ConfigPathOfProcessA   [value]z:\robot\ConfigOfProcessA.congfig 

設定ファイルの内容をログ出力する

処理結果を後で見た時に「その処理が、どういう設定内容で実行されたか」を記録として残しておくと、エラーの把握、原因調査時に有益です。具体的には「設定ファイルの内容をログ出力しておく」と便利です。

個人的には以下のような方法で、設定ファイルを読み込んだ際に内容を出力しています。
image.png

<メッセージに設定している値>
"ReadAndOverrideConfig - 設定内容:" & Environment.NewLine & String.Join(Environment.NewLine, From kv In out_dicConfig Select " - " & kv.Key & ":" & if(kv.Key.Contains("パスワード"), new String("*"c, kv.Value.Length), kv.Value))

※ 項目名に「パスワード」を含む場合はアスタリスクで伏せ字にしています

設定ファイルパスとシート名も格納しておく

設定ファイルの読み込み時に、コードの中で「設定ファイルの場所・シート名」を設定ディクショナリに入れておくと、追加で設定シートを読み込みたくなった場合に便利です。
ini.PNG

デバッグのログ出力と合わせると「どの設定ファイルを読んで実行されたのか」も分かり便利です。

終わりに

いかがでしたでしょうか。

運用も含め「設定ファイルをどう扱うか」は、要件によって考える必要がありますが、その際に参考になれば幸いです。

この記事が参考になったら、 LGTMをお願いします。閲覧ありがとうございました。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
2
Help us understand the problem. What are the problem?