04. UiPath Studio開発(準備編)-Windowsファイルシステムの基本

RPA(Robotic Process Automation)は、主にWindows OS上で動作するアプリケーションやファイルを操作するための技術です。そのため、Windowsの基本的な知識を正しく理解することが、効率的で効果的なRPAの活用において非常に重要です。

Windows OSでは、ディスク、フォルダ、ファイル、ファイルパスが日々の作業の基本構成要素となっています。これらを適切に管理・操作できる知識は、RPAツールを活用する際の基盤となるだけでなく、以下のような具体的な利点をもたらします。

  1. 業務プロセスの最適化と標準化
    ファイルシステムを深く理解することで、手動作業の効率化が進み、自動化対象を明確に特定できます。
  2. RPAの活用効果を最大化
    Windowsの構造を理解していることで、RPAツールの機能をより効果的に活用し、エラーや非効率を削減できます。
  3. 問題の迅速な対応
    フォルダ構造やファイルパスの知識を持つことで、トラブルシューティングが容易になり、自動化プロセスの信頼性を向上させます。

このコースでは、今後RPAと深く関わっていく上で必要となる、基本的なWindowsに関する知識についてご説明いたします。

ディスク

コンピューターのディスクドライブは、フォルダーやファイルを保存するための「仮想的な箱」です。RPAソフトウェアロボットは、ディスク、フォルダー、ファイルと頻繁にやり取りする必要があります。

ユーザーのコンピューターには複数のディスクが存在する場合があります:

ローカル: ユーザーのコンピューターに物理的に接続されたもの(内部または外部)
ポータブル: 一時的にケーブルで接続されたもの(携帯電話、カードリーダーなど)
ネットワーク: ユーザーのネットワーク内の他のコンピューターに接続されたもの(よくマッピングされる)
クラウド: 第三者が提供するコンピューター上のもの(Amazon、Google、Apple、Dropboxなど)

RPA処理時の注意点

RPAがネットワーク上のディスク(特に共有ディスク)でファイルを処理する際には、以下のような注意点があります。これらを考慮することで、競合やエラーを防ぎ、安定した自動化を実現できます。

  1. ファイルの同時アクセスによる競合
    問題点
    共有ディスクでは複数のユーザーやプロセスが同時に同じファイルを操作する可能性があります。これにより、ファイルのロックや上書きエラーが発生することがあります。
    対策:
    1. ファイルロックの確認: ファイルを処理する前に、ロック状態を確認するロジックを追加する。
    2. 一時コピーの利用: 操作対象のファイルをローカルディスクに一時コピーし、処理後に共有ディスクに戻す。
  2. ネットワーク遅延と接続の不安定さ
    問題点:
    ネットワークの遅延や接続の不安定さにより、ファイルの読み書きが中断される可能性があります。
    対策:
    1. リトライロジックの実装: エラーが発生した場合に再試行するロジックを設定する。
    2. タイムアウト設定: 処理が一定時間以上かかった場合に中断するようタイムアウトを設定する。
  3. 同時実行ロボット間の調整
    問題点:
    複数のRPAロボットが同時に同じディスクやファイルを操作する場合、競合や不整合が発生する可能性があります。
    対策:
    キュー管理の導入: 処理するファイルやタスクをキューで管理し、ロボットが順番に処理するようにする。

フォルダ

フォルダも、フォルダーやファイルを保存するための「仮想的な箱」です。
フォルダの中にはさらにフォルダ(サブフォルダ)を作成でき、階層的にデータを構造化して管理できます。

親フォルダと子フォルダ

親フォルダ
親フォルダとは、特定のフォルダを包含する上位階層のフォルダのことです。例えば、「C:\Users」フォルダがある場合、”Users”の親フォルダは”C:”です。

子フォルダ(サブフォルダ)
子フォルダは、特定のフォルダの中に作成されるフォルダです。
例: 「C:\Users\Documents」では、”Documents”は”Users”フォルダの子フォルダとなります。

関係性の例

C:(親フォルダ)
└─ Users(親フォルダ)
    └─ Documents(子フォルダ)

ツリー構造

フォルダとファイルはツリー構造で表されます。ツリー構造の最上位にあるフォルダがルートフォルダです。例: “C:”ドライブ。

C:\
├─ Users
│   ├─ Documents
│   │   ├─ Report.docx
│   │   └─ Budget.xlsx
│   └─ Pictures
│       └─ Vacation.jpg
└─ Program Files

このように、ツリー構造はフォルダ間の階層や関係性を分かりやすく表します。

/ で区切るパス表記

フォルダやファイルを指定する際、パス(Path)と呼ばれる表記方法が使われます。フォルダの階層は「/」(またはWindowsでは「\」)で区切ります。

UiPathでのフォルダ操作

UiPath Studioでは、フォルダ操作用のアクティビティが用意されています。

フォルダ操作アクティビティ一覧:

例:システムで定義された特殊フォルダ(例: デスクトップ、ドキュメント、ダウンロードなど)のパスを取得します。

ファイル

ファイルは、データを保持する「ドキュメント」です。ファイル名の末尾に拡張子(例: .txt、.xls、.pdf など)があります。拡張子は、どのアプリケーションでそのファイルを開くべきかをシステムに伝える役割を果たします。

拡張子は、通常オペレーティングシステムによって非表示に設定されています。拡張子を表示させるため、以下の操作が必要です。

UiPathでのファイル操作

ファイル操作アクティビティ一覧:

例:「ダウンロードを待機」アクティビティは、UiPathでファイルのダウンロード完了を検知し、次の処理に進むためのアクティビティです。これにより、ダウンロードの進行状況を手動で確認する必要がなくなり、プロセスの自動化がスムーズに行えます。

スクリーンショット

スクリーンショット(screenshot)は、コンピュータの画面全体、またはその一部の状態を静止画像として保存したものです。画面上に表示されている内容を瞬時にキャプチャできるため、問題解決や作業記録、共有などに便利です。

スクリーンショットは通常、画像ファイルとして保存されます(例: PNG、JPEG、BMP形式)。

RPAにおけるスクリーンショットの重要性

RPAプロセス実行中にエラーが発生した場合、その時点の画面状態を記録することで、エラーの原因を特定するのに役立ち、RPAプロジェクトの品質向上とトラブル解決において不可欠なツールです。

スクリーンショットのファイル名は、自動的に日付や時刻が付与されることが一般的(例: Screenshot_20250108.png)。

UiPathでのスクリーンショット取得方法

UiPath Studioでは、スクリーンショットを簡単に取得するためのアクティビティが用意されています。また、StudioのRobotic Enterprise Frameworkには、既に組み込まれました(TakeScreenshot.xaml)。

確認する方法は以下の通りです。

[Studio]→[スタート]→[テンプレートから新規作成]:

新規作成したプロジェクトでの「TakeScreenshot.xaml」

スクリーンショットを取得して、画像ファイルとして保存されます。

メモリ

RPAの効率的な実行には、ハードディスク(HDD/SSD)とメモリ(RAM)の役割と特性を理解することが重要です。
ハードディスクはデータを長期間保存するためのストレージであり、ログファイルやアプリケーションのデータを管理します。一方、メモリはプログラムの実行中に一時的にデータを格納する高速な領域であり、ボットのリアルタイム処理を支える重要なリソースです。

ハードディスクとメモリの比較は以下の通りです:

ハードディスクとメモリ

項目 ハードディスク(HDD/SSD) メモリ(RAM)
役割 データの長期保存 実行中のデータやコードを一時的に保存
データの保存期間 永続的(電源を切ってもデータが保持される) 一時的(電源を切るとデータは失われる)
速度 遅い 非常に速い
容量 大容量(数TB以上も可能) 小容量(数GB~数十GB程度)
用途 1. ログファイルやExcelデータなどの保存 2. アプリケーションのインストール先 1. 実行中のボットが使用する一時データの格納 2. 処理速度の向上に寄与
RPAへの影響 1. ファイル保存や読み込み速度に影響 2. ストレージ不足が発生すると処理が失敗になる可能性ある 1. 実行速度やリアルタイム処理に影響 2. メモリ不足は処理の遅延や失敗の原因に

コマンドライン

コマンドラインとは、ファイルやアプリケーションを操作するための別の方法です(DOSプロンプトとも呼ばれます)。GUI(グラフィカルユーザーインターフェイス)を使わず、文字列コマンドを入力して操作します。

なぜコマンドラインを使用するのか?

GUIでポイント&クリックする代わりに、スクリプト化(自動化)できるからです。コンピューターが代わりに作業を実行できるので効率的です。

よく利用するコマンドライン一覧表は以下のをご参照ください。

UiPathにおけるコマンドラインの実行

 “Invoke PowerShell”アクティビティを使用してコマンドラインコマンドを実行できます。 以下のページをご参照ください。

相対パスと絶対パス

ファイルやフォルダーを指定する方法には、絶対パスと相対パスという2種類の方法があります。

絶対パスは「C:\Users\ユーザー名\Documents\UiPath\example\example.xls」のように、最上位の階層のドライブを基準に、目的のファイルやフォルダーまでのフォルダーを順番に記載する方法です。

一方、相対パスは、特定のフォルダー(例えばワークフローが実行されているフォルダー)を基準として、目的のファイルやフォルダーを相対的に記載する方法です。たとえば、exampleフォルダーに保存されているワークフローを実行している場合、同じファイルを単に「example.xls」と表記したり、現在のフォルダーを示す「.」を使って「.\example.xls」と表記できます。

なお、1つ上の階層のフォルダーは「..」を使って表現できるため、exampleフォルダーを基準とした場合、「C:\Users\ユーザー名\Documents\UiPath\example2\example2.xls」を「..\example2\example2.xls」と表すこともできます。

UiPathにおけるベストプラクティス

  1. 絶対パスの使用を最小限にする:
    プロジェクトを異なる環境で動作させる場合、絶対パスに依存するとエラーが発生しやすい。動的にパスを構築するか、相対パスを使用する。
  2. 相対パスを使用する:
    プロジェクト内で操作するファイルやフォルダは相対パスを使用し、他の環境でも動作可能にする。
  3. 環境変数の利用:
    特定のフォルダ(例: ユーザーのデスクトップ、ドキュメントフォルダなど)を参照する場は、Environment.GetFolderPath メソッドを利用。例:desktopPath = Environment.GetFolderPath(Environment.SpecialFolder.Desktop)

絶対パスは、固定的なリソースの操作に適しており、変更が少ない場合に有効。相対パスは、プロジェクトの移植性や柔軟性を高め、複数環境での実行に適しています。

UiPathでは、相対パスと動的なパス生成を組み合わせることで、より汎用的で安定したワークフローを構築できます。

Windows上のファイルビュー設定

分かりやすいファイルビューを設定することで、操作する対象ファイルやフォルダーを明確に把握でき、ファイルの種類や内容を一目で判別できるため、エラーを減らし、効率的な作業が可能になります。以下のような設定がおススメします。

  1. ファイル拡張子の表示:
    ファイル拡張子(例: .txt, .xlsx, .exe)が非表示になっていると、異なる種類のファイルを区別できないことがあります。
  2. 隠しフォルダーの表示:
    一部のシステムフォルダーや設定ファイルはデフォルトで非表示になっているため、手動またはRPAプロセスでこれらを操作する場合に見えないと不便です。
  3. 詳細ビューの利便性:
    詳細ビューでは、ファイルの作成日時、サイズ、種類を簡単に確認でき、並び替えも可能です。

最後に

この記事では、ディスク、フォルダ、ファイル、ファイルパスといった、RPAで頻繁に使用される基本的な構成要素について説明しました。
これらを適切に管理し操作するための知識は、RPAツールを効果的に活用するための基盤となりますので、ぜひしっかりと理解していただければと思います。

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

上部へスクロール