見出し画像

【UiPath StudioXの遊びかた 8】逐条編⑤ファイルの存在確認とファイル数で遊ぼう~下へ下へと思ってるでしょ👀💦

さてと、明日は13時から散髪だし、デジタルフリーデーにしたいので~~~

晩酌しながら、遊んでこ💃

前回

で、フォルダが存在できたのでエクセルブックの操作で、次に必要になる、

ファイルの存在を確認アクティビティをやってこう!

普段、自分で手で無意識にしてる操作を思い浮かべてもらうと分かると思うんだけど、エクセルブックを操作するとき

  1. 対象のエクセルブックが格納されたフォルダがあるかを確認してフォルダを開く

  2. 対象のエクセルブックがあるかを確認して開く☜今回はココな💃

  3. 対象のシートがあるかを確認して、シートを選ぶ

  4. シートの操作をする

って流れになってるはず。

フォルダ自体がそもそも存在しないのに、そこにあるファイルへの操作をする奴なんて手作業でやるときにおらんわな( ´∀` )
☞でもなぜか、ロボットでソースを組み込もうとする瞬間から、それをやっちゃう人が多い。それは偏に

がイメージ出来てないから。ではさっそく本題

ファイルの存在を確認するアクティビティ

ここの
コイツな

を参考に、プロパティ

コイツな( ´∀` )

を見ると、

■UiPath.Core.Activities.FileExistsX

指定したファイル パスが存在するかどうかを確認します。
このアクティビティの使い方については、「チュートリアル : ファイルとフォルダーを操作する」をご覧ください。

StudioXで必要そうなのは、

■[プロパティ] パネル内

◇共通
表示名
- デザイナー パネルに表示されるアクティビティの名前です。
◇入力
パス
- 「アクティビティの本体」の「ファイル パス」をご覧ください。
◇その他
プライベート
- 選択すると、アクティビティで使用したデータが StudioX のログに記録されなくなります。
出力
存在の有無
- 「アクティビティの本体」の「出力結果」をご覧ください。

お👀ここで初めてプライベートちゃんが出てきたが、やはり、

特に組み込みにはあまり関係ないし、
むしろログに出力されないようにしたい
なんてしたいと思ったことないわ( ´∀` )
誰得
👀💦

■アクティビティの構成としては

◇アクティビティの本体

コイツな
  • ファイル パス - フィールドの横にある [参照] アイコン をクリックし、確認するファイルを参照して選択します。または、フィールドの右側にあるプラス記号 をクリックし、メニューから、確認するファイル パスを指定するオプションを選択します。

    • アクティビティが [繰り返し (フォルダー内の各ファイル)] アクティビティ内にある場合は、[CurrentFile] > [完全名 (フル パスを含む)] を選択して、現在反復処理をしているファイルのパスを指定します。

    • プロジェクト ノートブック、親の Excel ファイル、または Outlook アカウントからのデータ。たとえば、Excel ファイルを選択してファイル パスを含むセルを選択するか、または Outlook で選択されているメールからファイル パスを含むフィールドを指定します。

    • 保存された値を使用 - プロジェクトで後で使用するために以前保存したファイル パス形式の値を選択します。

    • テキスト - テキスト ビルダーでファイル パスを入力します。テキストに Excel ファイルのセルの数式を結合できます。たとえば、プロジェクト ノートブックの数式を使用して、ファイル名に日付を追加できます。

    • 実行時に確認 - プロジェクトの実行時にファイル パスの入力を求めます。

    • 詳細エディターを開く - VB の式を入力します。

  • 出力結果 - フィールドの右側にあるプラス記号 をクリックして、メニューの選択可能なオプションから、結果 (ファイルが存在する場合は TRUE、ファイルが存在しない場合は FALSE) の保存先を指定するオプションを選択します。

    • Excel ファイルまたは Excel ワークシートを選択し、結果を保存するセルを選択します。

    • 後で使用するために保存 - この出力結果を、プロジェクトで後で別のアクティビティの入力として使用します。

    • 詳細エディターを開く - VB の式を入力します。

ココな( ´∀` )

てな感じで早速~~~

操作

前回コイツを扱ったので~~~

コイツの中に

ファイルなしの状態

ここで、

UiPath練習帳があるかの確認をしていこう
てな感じで格納~~~
ファイルパスの右横の+マーク
ノートブック
Excel内で示すの順でを左クリック~~~
開いたノートブックのファイルシートを選んで~~~
てな感じでセットして~~~
B2セルを選んで
確認を左クリック
パスが入ったところで、
出力結果の右横の+マーク
変数を作成
の順番で左クリック( ´∀` )
変数名に ファイル確認 てな感じで設定し、
OKを左クリック~~~
てな感じで設定できたので~~~
メッセージボックスでどんな値が変数で出てくるかを確認

実行すると、、、👀

Trueが出てきたのが確認できた
☞ここも真偽値:TrueかFalseと分かったので~~~
てな感じで条件分岐を追加して~~
てな感じでファイルシートに追加
てな感じでセット~~~

実行すると

てな
てな
てなの
てな感じ

になる☞存在してるから当たり前~~~

ここで、フォルダごとデスクトップに移動させて~~~

移動前
移動後

で再実行

てな
てな
てなの
てな感じ
で処理終了

って、存在しないんだから当たり前の結果が返ってきたんだけど、、、。

これってそもそも何か違和感ないかい👀💦

普通にロボットでやると、

存在しないから存在しない結果が返ってきてて
問題ないじゃん

って思って素通りしちゃう人も多いんだけど、冒頭で書いてた

普段手でやる作業の時に、
存在しないフォルダの中のファイルを確認する人なんているか?
👀
☞確認するまでもないよね?

何故、これが起きるかってゆーと、、、

プログラミングの組み方で上から下で組む癖

☞思い込みと習慣

ソースエディターがそーゆーデザインになっているから!!!!

☞デザイン的な問題

てのと、

StudioXにはStudioにあるはずの処理中断処理

☞スロー処理がないから

なんだよね👀💦

本当は、フォルダがない時点で処理が終わらないといけないはず=ファイルの確認をするまでもないから

こーゆー上から下の組み方

ではなく、実は

Trueの内側に入れるのがStudioXの場合には手作業と一致した動きなんだよね( ´∀` )

実際に、これで実行してみると、フォルダがさっきみたいに存在しない場合

てな
てな感じで
余計な処理を通らずに終了してくれる

☞処理時間が短縮される + 想定外の処理を防止できる

そ、だからアクティビティの組み方はスローがないStudioXの場合、

 上から下
〇 内へ内へ

が安全なんだよね~~~ココの感覚がよくわからずに、下へ下へで組み込んだ結果、余計な処理までやってしまい、

想定外のエラーとか処理結果になって何でだ👀❓

てな感じになってる人は多い

お前さんが不用意に下に組み込んでるからや( ´∀` )

ま、だから

手作業でやってることをロボットにやらせるイメージで良い

って少し前の記事でゆーたんだよね( ´∀` )
さてと、

ブラッシュアップ

今回は先に外出しはやったから、

要らない確認用のメッセージボックスなんかは消していこう

ここのふたつのメッセージボックスが要らないから消して~~~

もうお分かりだとは思うけど、

ここのTrueのメッセージボックスもいらないから消す~~~

イメージとしては、

  • Trueの場合:次の処理

  • Falseの場合:処理終了

って流れが

安全な組み込みかた( ´∀` )
(存在しないフォルダやファイルの操作を手作業でやろうとするバカはいないだろ( ´∀` ))

だから💃

一歩前へ

フォルダの存在を確認した後、ファイルの存在を確認する前に、欲を言えば、

そのフォルダの中のファイル数を確認しておいて、
1以上の場合だけ処理

みたいな感じでやっとくとさらに安全なんだけどね👀💦

てな感じで元に戻して~~~
確認を左クリックして~~~

でやった感じで

てな感じにしといてあげると、より安全だよね( ´∀` )
ファイルが0個のフォルダなんてそれ以上何の処理をすんねん( ´∀` )
☞自分で新規のファイルを追加するか処理終了するしかねーやろ( ´∀` )

まとめ

とまあ、今回も長くなってしまったが、余計な処理をさせたくないなら、

下へ下へではなく、
内へ内へ

と、

事前に確認操作を入れずに、不用意なエラーを出して、UIpathと対話もせずに、このエラーは何で出てるんだろう、、、処理はエラーなく終わったのに、何でうまくいかないんだろう

って悩むより、

まずは必要な確認アクティビティを入れろや( ´∀` )
☞当たり前の作法をやろうね( ´∀` )

ってだけ分かってもらえたら充分。
ま、これが見た瞬間にわかってたから、Studioで実務経験ある人間からしたら、StufdioX=モダンデザインは

長くなる構造

って前回ゆーてたんだよね( ´∀` )

さてと、次回は

そろそろせっかちさんで

そんな確認ばっかりやってたら、余計な処理時間が増えて処理時間が延びる。やってられっか(# ゚Д゚)

って思い出す人がいそうなので

UIpathのベンチマーク=経過時間の遊びかた

をやろうかね~~~

この記事が気に入ったらサポートをしてみませんか?