5
1

More than 3 years have passed since last update.

【UiPath】実行マシンの情報を取得する(ディスク容量)

Last updated at Posted at 2021-07-22

はじめに

この投稿は、RPAツール「UiPath」での 実装例 について記事です。

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

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

実行マシンの情報を取得するシリーズ

同様の内容で以下の投稿もあります。参考まで

ディスク容量を取得したいとき

例えば「データダウンロード」系のロボットを連続で動かしていると「いつの間にかディスク容量が減っている」ことがあります。
また、ロボットと同じ場所で「データベース等のアプリケーション」が動いていると、予期せず空きスペースがなくなることもあり、UiPath自体の動作に影響が出ることがあるので危険です。

Datadog や Zabbix 等の監視ツール、またはパフォーマンスカウンターなどを使えば「ディスク容量が閾値を下回った場合に通知する」ことも出来ますが、もっと簡単にディスク容量を取得したい。なので、UiPathで実装します。

.NETで取得する

標準アクティビティで「ディスク容量を取得」アクティビティ みたいなのがあれば良いのですが、現時点では無いみたいです。

なので、以下のカスタムコンポーネントを作りました。

67ab.png

作ったのですが「もっと簡単に取得しできないかな?」と思って、InVokeCodeで書き直しました。(持ち出しやすいように、匿名変数型にしています)

func =  Function() As DataTable
        Dim dt As New DataTable
        dt.Columns.add("DriveName")
        dt.Columns.add("TotalSize(GB)")
        dt.Columns.add("TotalFreeSpace(GB)")
        dt.Columns.add("UseRate")
        dt.Columns.add("FreeRate")
        Dim aryDriveInfo As System.IO.DriveInfo() = DriveInfo.GetDrives()
        For Each item As System.IO.DriveInfo In aryDriveInfo
            If item.IsReady Then
                Dim dr As DataRow = dt.NewRow
                dr("DriveName") = item.Name
                dr("TotalSize(GB)") = (item.TotalSize / 1024 / 1024 / 1024).ToString("0.0")
                dr("TotalFreeSpace(GB)") = (item.TotalFreeSpace / 1024 / 1024 / 1024).ToString("0.0")
                dr("UseRate") = (100- (item.TotalFreeSpace / item.TotalSize * 100)).ToString("0.0")
                dr("FreeRate") = (item.TotalFreeSpace / item.TotalSize * 100).ToString("0.0")
                dt.rows.Add(dr)
            End If
        Next
        Return dt
    End Function

このコードをこんな感じでフローにして
image.png

実行すると、以下のようにドライブの情報がデータテーブルとして取得できます。

image.png

確認しやすいように、以下にxamlを公開しています。

終わりに

いかがでしたでしょうか?ロボットフローの開始終了時、途中経過などでディスク容量を通知すると、増加傾向が分かって安心です。
実装の参考になれば幸いです。

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

5
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
1