ゆとりSEは副業がしたい

ゆとりSE

RPAやPythonをはじめとした情報系の発信やガジェットの紹介などがメインです

【UiPath】フォルダの移動をするアクティビティがない? コードの呼び出しアクティビティで対応してみた。

UiPath Studioでフォルダの移動をしたい

この前業務関連の処理を書いていた時に、処理の終了したファイルがまとまって入っているフォルダを処理済みのフォルダに移動しようと思ったのですが、アクティビティを探してみるとファイルのコピーしかなくてフォルダに対する処理ができないようでした。

結局アクティビティでは対応できなそうなので、「.NET フォルダ 移動」とかで調べて対応することにしました。

コードの呼び出しアクティビティ

アクティビティの検索ボックスに「code」とか入れると出てきます。

f:id:oichiki:20201031181930p:plain
コードの呼び出し
この中に.NETのコードを書くことができるようです。アクティビティの見た目はこのような感じです。コードの編集からコードの記述を行います。

ワークフロー内で使っている変数は、引数として渡してあげると使用することができるので、繰り返し等で動的な処理も実現可能です。
f:id:oichiki:20201031182231p:plain
アクティビティ

.NETのDirectory.Moveで処理済みのフォルダを移動

実際の構成は下記のような感じです。

フォルダ構成:
・処理前フォルダ
 -処理対象フォルダ
  -Excelファイル
  -PDFファイル
  -TXTファイル
・処理済みフォルダ

ここで処理対象フォルダの中のファイルに対してそれぞれ処理を行い、すべて正常終了したら処理済みフォルダにフォルダ事移動しちゃいます。

ちなみに何度も実行するワークフローなので、処理の日付のフォルダを作ったり、フォルダ名に処理の順番で連番を付け加えてリネームしたりしてますが、今回は割愛します。

ドットと頭文字位を入れると候補が出てくるので正直何となくでもできますが、実際に書くコードはこんな感じです。

「System.IO.Directory.Move("処理対象フォルダのパス", "処理済みフォルダのパス\処理対象フォルダ名")」 移動先の方にフォルダ名はリネームも兼ねているので、末尾に「DateTime.Now.ToString("yyyyMMdd")」など追加してみたり、そもそものフォルダ名を変えたりなど、そこは要件に合わせることができます。

f:id:oichiki:20201031184532p:plain
コード例
引数を使用する場合は適宜文字列に変換してから使用してください。

まとめ

今回はフォルダの移動を行いましたが、フォルダのコピーをするアクティビティもない?ので、その場合もコードを呼び出しで対応することができます。

UiPathすごく便利なんですが、たまにかゆいところに手が届かない時があるんですよね。プログラム書いたことある人なら特に問題ないと思うのですが、せっかくのノーコードで使えるツールなのでそこはどうなのかなと思います。

最近はStudioXも出てきたのでそっちではできるのでしょうか?そっちはまだ勉強不足なので少しずつ触っていきたいと思います。