【UiPath StudioXの遊びかた 8】逐条編⑤ファイルの存在確認とファイル数で遊ぼう~下へ下へと思ってるでしょ👀💦
さてと、明日は13時から散髪だし、デジタルフリーデーにしたいので~~~
晩酌しながら、遊んでこ💃
前回
で、フォルダが存在できたのでエクセルブックの操作で、次に必要になる、
ファイルの存在を確認アクティビティをやってこう!
普段、自分で手で無意識にしてる操作を思い浮かべてもらうと分かると思うんだけど、エクセルブックを操作するとき
対象のエクセルブックが格納されたフォルダがあるかを確認してフォルダを開く
対象のエクセルブックがあるかを確認して開く☜今回はココな💃
対象のシートがあるかを確認して、シートを選ぶ
シートの操作をする
って流れになってるはず。
フォルダ自体がそもそも存在しないのに、そこにあるファイルへの操作をする奴なんて手作業でやるときにおらんわな( ´∀` )
☞でもなぜか、ロボットでソースを組み込もうとする瞬間から、それをやっちゃう人が多い。それは偏に
がイメージ出来てないから。ではさっそく本題
ファイルの存在を確認するアクティビティ
を参考に、プロパティ
を見ると、
■UiPath.Core.Activities.FileExistsX
指定したファイル パスが存在するかどうかを確認します。
このアクティビティの使い方については、「チュートリアル : ファイルとフォルダーを操作する」をご覧ください。
StudioXで必要そうなのは、
■[プロパティ] パネル内
◇共通
表示名 - デザイナー パネルに表示されるアクティビティの名前です。
◇入力
パス - 「アクティビティの本体」の「ファイル パス」をご覧ください。
◇その他
プライベート - 選択すると、アクティビティで使用したデータが StudioX のログに記録されなくなります。
◇出力
存在の有無 - 「アクティビティの本体」の「出力結果」をご覧ください。
お👀ここで初めてプライベートちゃんが出てきたが、やはり、
特に組み込みにはあまり関係ないし、
むしろログに出力されないようにしたい
なんてしたいと思ったことないわ( ´∀` )
誰得👀💦
■アクティビティの構成としては
◇アクティビティの本体
ファイル パス - フィールドの横にある [参照] アイコン をクリックし、確認するファイルを参照して選択します。または、フィールドの右側にあるプラス記号 をクリックし、メニューから、確認するファイル パスを指定するオプションを選択します。
アクティビティが [繰り返し (フォルダー内の各ファイル)] アクティビティ内にある場合は、[CurrentFile] > [完全名 (フル パスを含む)] を選択して、現在反復処理をしているファイルのパスを指定します。
プロジェクト ノートブック、親の Excel ファイル、または Outlook アカウントからのデータ。たとえば、Excel ファイルを選択してファイル パスを含むセルを選択するか、または Outlook で選択されているメールからファイル パスを含むフィールドを指定します。
保存された値を使用 - プロジェクトで後で使用するために以前保存したファイル パス形式の値を選択します。
テキスト - テキスト ビルダーでファイル パスを入力します。テキストに Excel ファイルのセルの数式を結合できます。たとえば、プロジェクト ノートブックの数式を使用して、ファイル名に日付を追加できます。
実行時に確認 - プロジェクトの実行時にファイル パスの入力を求めます。
詳細エディターを開く - VB の式を入力します。
出力結果 - フィールドの右側にあるプラス記号 をクリックして、メニューの選択可能なオプションから、結果 (ファイルが存在する場合は TRUE、ファイルが存在しない場合は FALSE) の保存先を指定するオプションを選択します。
Excel ファイルまたは Excel ワークシートを選択し、結果を保存するセルを選択します。
後で使用するために保存 - この出力結果を、プロジェクトで後で別のアクティビティの入力として使用します。
詳細エディターを開く - VB の式を入力します。
てな感じで早速~~~
操作
コイツの中に
ここで、
実行すると、、、👀
実行すると
になる☞存在してるから当たり前~~~
ここで、フォルダごとデスクトップに移動させて~~~
で再実行
って、存在しないんだから当たり前の結果が返ってきたんだけど、、、。
これってそもそも何か違和感ないかい👀💦
普通にロボットでやると、
存在しないから存在しない結果が返ってきてて
問題ないじゃん
って思って素通りしちゃう人も多いんだけど、冒頭で書いてた
普段手でやる作業の時に、
存在しないフォルダの中のファイルを確認する人なんているか?👀
☞確認するまでもないよね?
何故、これが起きるかってゆーと、、、
プログラミングの組み方で上から下で組む癖
☞思い込みと習慣
ソースエディターがそーゆーデザインになっているから!!!!
☞デザイン的な問題
てのと、
StudioXにはStudioにあるはずの処理中断処理
☞スロー処理がないから
なんだよね👀💦
本当は、フォルダがない時点で処理が終わらないといけないはず=ファイルの確認をするまでもないから
ではなく、実は
実際に、これで実行してみると、フォルダがさっきみたいに存在しない場合
☞処理時間が短縮される + 想定外の処理を防止できる
そ、だからアクティビティの組み方はスローがないStudioXの場合、
✖ 上から下
〇 内へ内へ
が安全なんだよね~~~ココの感覚がよくわからずに、下へ下へで組み込んだ結果、余計な処理までやってしまい、
想定外のエラーとか処理結果になって何でだ👀❓
てな感じになってる人は多い
お前さんが不用意に下に組み込んでるからや( ´∀` )
ま、だから
手作業でやってることをロボットにやらせるイメージで良い
って少し前の記事でゆーたんだよね( ´∀` )
さてと、
ブラッシュアップ
今回は先に外出しはやったから、
要らない確認用のメッセージボックスなんかは消していこう
もうお分かりだとは思うけど、
イメージとしては、
Trueの場合:次の処理
Falseの場合:処理終了
って流れが
安全な組み込みかた( ´∀` )
(存在しないフォルダやファイルの操作を手作業でやろうとするバカはいないだろ( ´∀` ))
だから💃
一歩前へ
フォルダの存在を確認した後、ファイルの存在を確認する前に、欲を言えば、
そのフォルダの中のファイル数を確認しておいて、
1以上の場合だけ処理
みたいな感じでやっとくとさらに安全なんだけどね👀💦
でやった感じで
まとめ
とまあ、今回も長くなってしまったが、余計な処理をさせたくないなら、
下へ下へではなく、
内へ内へ
と、
事前に確認操作を入れずに、不用意なエラーを出して、UIpathと対話もせずに、このエラーは何で出てるんだろう、、、処理はエラーなく終わったのに、何でうまくいかないんだろう
って悩むより、
まずは必要な確認アクティビティを入れろや( ´∀` )
☞当たり前の作法をやろうね( ´∀` )
ってだけ分かってもらえたら充分。
ま、これが見た瞬間にわかってたから、Studioで実務経験ある人間からしたら、StufdioX=モダンデザインは
長くなる構造
って前回ゆーてたんだよね( ´∀` )
さてと、次回は
そろそろせっかちさんで
そんな確認ばっかりやってたら、余計な処理時間が増えて処理時間が延びる。やってられっか(# ゚Д゚)
って思い出す人がいそうなので
UIpathのベンチマーク=経過時間の遊びかた
をやろうかね~~~
この記事が気に入ったらサポートをしてみませんか?