見出し画像

【いきなりStudio19】(実践編)[UiPath✖YouTube]本格的にソース・テンプレートでガチる前に、Configファイルの使い方の基本=パラメータでガチろう~Configを読み込めた後は、ソースに直打ちなんざしない( ´∀` )

オッス、3週間ぶり( ´∀` )
UiPathなんてすっかり、忘れちゃってるので
オイラも思い出しながらで
不定期に記事にしてくや( ´∀` )

さてと、前回

でConfigファイルを読み込む、

ソース・テンプレートまでは完成

したので、今回から

ソース・テンプレートを使った実践編

をやってく💃

から

までで作った機能を

Studio=ガチな方
👉ガチり

で遊んでく。
んだば、早速

前回までのソース

■Main

シンプル

■RobotMain

シンプル

■ReadConfi

てな感じ

今回は、

と同じで、まずは

YouTubeを開く

をやってくや( ´∀` )

操作

1、新規ボタンをクリック

一番左上~~~
ワークフローをクリック

2、新しいワークフローの作成画面が開くので、入力

てな感じで

適当に名前に

ReadYouTube

なんかを入力
※ここはプロジェクトパネルに表示されるので、

キャメルケースの内、
アッパーケース
👉単語の先頭が大文字始まり

で入力した名前ね。

3、プロジェクトパネルに追加されたのを確認

てな感じ

この機能もこのロボットオリジナルなので~~~

てな感じで
ドラッグして、RobotOriginalフォルダへ移動

4、ReadYouTube.xamlを開いて引数を追加

追加前のまっさらな状態

追加する引数はとりあえず(後からいくらでも追加できるので)、

  • ReadYouTubeConfig:読み込んだConfigファイルの入力用引数

  • ReadYouTubeRunResult:処理の結果をRobotMainに返す出力用引数

でOK( ´∀` )

追加後

てな感じ

5、RobotMain.xamlを開いて、ワークフローの呼び出しアクティビティをReadConfigシーケンスの後に追加

追加前
追加後

6、ワークフロー名にReadYouTubeを選んで、引数をインポート

てな感じで選ぶと、
引数のインポート設定画面が出てくるので~~~
てな感じで設定完了
保存ボタンをクリック
ホイ、エラーも消えた

ReadYouTube.xamlに戻って、YouTubeを開くアクティビティを追加していく前に、

7、Configファイルの値がきちんとやり取り出来ているかを確認

てな感じでメッセージをログを追加

メッセージにConfigファイルの

このキーの値を呼び出すように
ReadYouTubeConfig("YouTube").ToString

を入力して、ログレベルはInfoに設定。ブレークポイントを設定して

Mainタブを選んで、ファイルをデバッグをクリック
ここで止まったのを確認出来たら、

左上のローカルで

コイツの鉛筆マークをクリック
てな感じで、ReadConfigで読み込めた
ディクショナリが引き継がれているのを確認

でステップインしてみると

コイツな
左下の出力パネルにキーの値が出てきた💃

ここまで確認出来たら、今のメッセージをログとかブレークポイントは使わないので~~~

てな感じで削除
👉初期状態( ´∀` )

8、処理開始と処理終了のメッセージログを追加

てな感じでここまで追加して~~~

ここでポイント①:Configファイル読み込み後の処理でソースに直打ちはしない

これまでのソース・テンプレートは、

Configファイルの読み込みまでをやる処理
👉まだ読み込み自体がないので直打ちしていた

てな感じ

けど、ここから先は、Configファイルの読み込み後なので

Configファイルで設定した値
=パラメータで管理出来る
👉パラメータ管理

なので、設計の4大原則

  • 正確性

  • 統一性

  • 可読性

  • 変更可能性

のうち、可読性って意味を単純に、

ソースをパッと見て、分かる

と勘違いしてる自称さんだと、

てな感じで

やらかしちゃうんだけど、今後の改修コストまで含めた管理を意識すると、

使う値は直打ちしない

Configファイルを開いて

てな感じで追加して
ReadYouTubeConfig("YouTube処理開始").ToString
ReadYouTubeConfig("YouTube処理終了").ToString

てな感じ。

で、コイツでファイルをデバッグすると~~~

てな感じで

普通に、処理結果が出てきてる。

ソースに直打ちしないメリット:今の例では敢えて

Configファイルの値を

てな感じで

キーと値を同じ

にしたんだけど、

てな感じで

変更して保存後、再度、ファイルをデバッグすると、

てな感じで
拡大( ´∀` )

ソースを一切触らなくても、ソースファイルが存在するフォルダの外に出してる、

Configファイルの中身を編集する
=パラメータの値を変更する

だけで、

値や文言の一部変更といった
軽微な変更の度に、
パブリッシュし直さなくてよくなる
💃

ここでポイント②:ロボットの動き=構成=Config

を管理するから

Configファイル

ってゆーんだけど、いくらConfigファイルを用意したところで、

  1. 目先の可読性=可読性と勘違いして、ソースに直書きしちゃう

  2. 直書きしなくても、ソースフォルダと同じフォルダ内にConfigファイルを入れちゃう

だと、

意味なし

なので、気を付けてね( ´∀` )

一歩前へ:実際の開発現場で、この手法をやろうとすると、

さっきの自称さんに限って、「可動性が、可動性が」って人が必死に抵抗してくる人や組織もあるんだけど、

  1. ソースに直打ちはしない=Configファイルに全て外出ししておく

  2. キーを分かりやすい名前にしておく

  3. ソースの解析時にはConfigファイルを参照しながらソースを解析する

ってルールを徹底しておくだけで、

てな感じのソースでも

別にぱっと見でも分かりにくくないでしょ( ´∀` )

・直打ちしないで、ひとつのキーでまとめて使いまわせる=パラメータで管理できる👉Configファイルの該当キーの値を変えて、再パブリッシュすら要らない改修コスト

目先の可読性(読みやすさ)だけで全部直打ちして、検索とかハックしながら、バグがないように複数箇所の変更を手作業でやる改修コスト
求められる結果は同じなのに、

どちらの方が安全で、迅速に、簡単に、
変更や管理ができるんだろうね
👉プロジェクト管理

もう一歩前へ:外出しのタイミングはいつ❓👀

まあ、これに関しては、オイラは慣れちゃってるんで、

  1. 入力したい値が出てきた

  2. Configファイルのテキストならテキストシートとか、URLならURLシートに追記

  3. キーを呼び出す

って流れでやっちゃうけど、最初の内とか慣れないうちは

  1. 入力したい値を直打ちで入力

  2. 処理が想定通りにエラーまで含めて問題なく想定通りに動くことまで確認出来た

  3. Configファイルに追記(ソース・リファクタリング)

  4. キーを呼び出す(ソース・リファクタリング)

  5. 再度、同じ動きになっているかを確認(ソース・リファクタリング)

って方法で良いんじゃない( ´∀` )

このリファクタリングの作業を、

  • 後からやればいい

  • いつかやればいい

  • 動けばいいや

で何かの処理が出来上がる度にやらない人たちが、

  1. 思い思いに、

  2. ルールもなく、

  3. 直打ち(ハードコーディング)

で場当たり的にやっていくから、

  • 動きも遅く

  • 無駄な処理が多く

  • 改修も困難な

👉贅肉の多いポンコツロボット

を自分たちで作り上げるんだけどねえ( ´∀` )

と、アタッチとかでYouTubeで遊ぼう①の操作を進めたかったんだけど、

結構、文字数も増えたので、
今回はここまで( ´∀` )

恒例のソース・リファクタリング

■RobotMain

てな

■ReadYouTube

てな感じ

さてと、次回は

ソース・テンプレート編と実践編の繋がりで先に説明しておきたかった

Configファイルの使い方
👉パラメータ管理

も説明が出来たので~~~

次回は、多分、今回作った変更箇所を一回、元に戻して、

前回までのソースを流用して、
各ロボットごとにテンプレートを使う方法

を説明するや( ´∀` )

まずは今回のソースを
元に戻す方法とか
バックアップとかのポイント
なんかの説明からかな( ´∀` )

いいなと思ったら応援しよう!