10. UiPath Studio開発 初級編 変数を利用してデータの操作

以下の記事では、変数とデータ型の概要を紹介しました。変数の基本がまだ理解できていない方は下記の記事をご参照ください。UiPath Studioでは、変数(Variables) を活用することで、データの管理や操作を効率的に行うことができます。

本記事では、UiPathの変数に関する基本概念から実践的な使用方法までを解説します。以下のポイントに焦点を当て、変数を使ったデータ操作の方法を紹介します。

  • 変数パネルとデータマネージャーの活用
    UiPath Studioの変数パネルとデータマネージャーを使用して、変数を管理しやすくする方法を解説します。
  • 変数の種類とデータ構造
    よく使用される基本的な変数型(String, Integer, Boolean, Array, DataTable など)に加え、特殊な変数型の探し方を説明します。
  • Assignアクティビティの利用
    変数に値を代入するための Assign アクティビティの使い方を実践的に解説します。
  • アクティビティの出力を変数に格納
    他のアクティビティから得られたデータを変数に保存し、ワークフロー内で活用する方法を紹介します。
  • 変数のスコープと管理
    変数のスコープ(適用範囲)を理解し、無駄な変数を削減することで、スクリプトの可読性を向上させる方法を解説します。
  • 未使用の変数の削除
    使われていない変数を整理し、ワークフローを最適化する方法を説明します。

変数を適切に活用することで、よりスムーズなデータ操作が可能になります。本記事を通じて、UiPath Studioでの変数の基本を学び、実践的なワークフロー構築に役立てましょう!

変数パネルとデータマネージャーの活用

変数パネル

UiPath Studioの変数パネルは、ワークフロー内で使用する変数の作成や管理を行うための機能です。 このパネルを活用することで、変数の追加、編集、削除が容易になり、ワークフローの効率的な設計が可能となります。

変数パネルの主なフィールド

  • 名前: 変数の名称を指定します。名前を変更すると、現在のファイル内でその変数が使用されているすべての箇所が自動的に更新されます。
  • 変数の型: 変数が保持するデータの型を選択します。既定のオプションには、Boolean、Int32、String、Object、System.Data.DataTable、Array of [T] などがあります。 リストにない型を使用する場合は、[型の参照] オプションから選択できます。
  • スコープ: 変数が有効となる範囲を設定します。特定のアクティビティやシーケンスなど、変数を使用可能な範囲を指定できます。
  • 既定値: 変数の初期値を設定します。このフィールドが空の場合、変数はその型の既定値で初期化されます。

変数の管理

変数パネルでは、変数の作成や編集に加えて、以下の操作が可能です。

  • 引数に変換: 既存の変数を引数に変換できます。これにより、ワークフロー間でデータの受け渡しが容易になります。
  • コピーと貼り付け: 変数を他のワークフローにコピーし、貼り付けることができます。これにより、同じ変数を複数のワークフローで再利用できます。
  • 削除: 不要になった変数をパネルから削除できます。ただし、ワークフロー内で使用中の変数を削除すると、エラーの原因となるため注意が必要です。
  • 注釈の追加: 変数にコメントを追加し、変数の用途や注意点を記載できます。これにより、プロジェクトの可読性と保守性が向上します。

変数パネルの例

データマネージャー

UiPath Studioのデータ マネージャーは、オートメーション プロジェクト内のさまざまなデータ要素を一元的に管理するためのパネルです。

このパネルを活用することで、変数や引数だけではなく、プロジェクト内のデータ管理が効率化され、ワークフローの設計や保守が容易になります。

データ マネージャーで管理できる主なデータ要素は以下のとおりです。

  • 変数: さまざまなデータ型の情報を格納し、プロジェクト内のアクティビティ間でデータを受け渡すために使用します。
  • 引数: ワークフロー間でデータをやり取りするためのもので、プロジェクト内外でデータを受け渡す際に利用します。
  • 定数: 変更不可能なグローバル値を格納し、プロジェクト全体で共通の値として使用します。
  • リソース: ファイル、メール アカウント、アプリケーション、ブラウザーなど、プロジェクトで使用する外部リソースを管理します。
  • エンティティ: UiPath Data Serviceのレコードであり、中央集中的なデータモデリングとストレージサービスを提供します。

さらに、ロボットがOrchestratorに接続されている場合、データ マネージャーを通じて以下のリソースも管理できます。

  • プロセス: Orchestrator上で管理される自動化プロセス。
  • アセット: ロボットが使用する定義済みの変数や資格情報。
  • キュー: ロボットが処理するためのアイテムの集合。

データ マネージャーを活用することで、これらのデータ要素を一元的に管理・操作でき、プロジェクトの効率的な開発とメンテナンスが可能となります。

UiPathのオフィシャルサイトでは変数パネルとデータマネージャーの詳しい解説がありますので、ご参照ください。

UiPathの変数のスコープとは?

UiPathでは、変数のスコープ(Scope) を適切に設定することが、ワークフローの正しい動作や保守性の向上につながります。変数のスコープとは、その変数がどこで使用できるかを決定する範囲のことです。

変数のスコープの種類

UiPathでは、変数のスコープは変数を作成したアクティビティやコンテナ(シーケンス、フローチャート、ステートマシンなど) によって決まります。主に以下のようなスコープがあります。

  1. アクティビティ単位のスコープ
    • 変数が特定のアクティビティの内部でのみ使用可能
    • 例えば、”For Each” の内部で定義した変数は、そのループ内でのみアクセス可能。
  2. シーケンス(Sequence)単位のスコープ
    • 変数が特定のシーケンス内でのみ使用可能
    • そのシーケンス外ではアクセスできないため、範囲を超えるとエラーになる。
  3. ワークフロー全体(Mainなど)
    • 変数がプロジェクト全体のワークフロー(Main.xamlなど)で使用可能
    • どのアクティビティからでもアクセスできるが、不要にスコープを広げると可読性が低下する。
  4. グローバル変数(ワークフローファイルをまたぐ)
    • 異なるワークフロー間で値を受け渡し できる。

変数スコープの設定方法

  1. 変数パネルを開く(”Ctrl + K” で変数を作成するか、”デザイン” タブの “変数” パネルを使用)
  2. スコープ列(Scope)を確認
  3. 適切なコンテナ(シーケンス、フローチャートなど)を選択してスコープを調整

スコープ設定のベストプラクティス

必要最小限のスコープを設定する(不要に広げると、変数の管理が難しくなる)
複数のワークフローをまたぐ場合は引数(Arguments)を活用する
ループや条件分岐の中でのみ必要な変数は、ローカルスコープにする

不要な変数を削除する方法

不要な変数を削除することで、ワークフローがスッキリし、デバッグやメンテナンスがしやすくなります
定期的に変数パネルを確認し、未使用の変数を整理しましょう!

よく利用する変数型

各データ型には、それぞれの用途に応じた適切な使い方があります。
配列(Array)は固定サイズリスト(List)は可変サイズ辞書(Dictionary)はキーと値のペア管理に適しています。

以下に、各変数タイプの用途、よく使う関数、作成例、利用例をまとめました。

String(文字列)

📌 用途

  • ユーザー情報の保存userinfo
  • URLの管理urls

🛠 よく使う関数

  • ToLower() → 小文字に変換
  • ToUpper() → 大文字に変換
  • Trim() → 空白を削除
  • Contains("text") → 指定の文字列が含まれているか
  • Replace("old", "new") → 文字列を置換
  • Split(" ") → 指定の文字で文字列を分割
  • Substring(start, length) → 部分文字列を取得

📝 作成例

Dim userinfo As String = "John Doe"
Dim urls As String = "https://www.example.com"

💡 利用例

Dim email As String = "User@Example.com"
Dim lowercaseEmail As String = email.ToLower() ' "user@example.com"
Dim domain As String = email.Split("@")(1) ' "example.com"

Integer(整数)

📌 用途

  • カウンター管理counters
  • リストの要素数list counts
  • 年齢などの数値データages

🛠 よく使う関数

  • ToString() → 文字列へ変換
  • Parse(String) → 文字列を整数へ変換
  • Mod → 割り算の余りを求める
  • Math.Abs(value) → 絶対値を取得
  • Math.Max(a, b) → 大きい方を取得

Decimal(小数)

📌 用途

  • 通貨管理currency
  • 温度管理temperature
  • 測定値の管理measurements

🛠 よく使う関数

  • ToString("C") → 通貨フォーマットに変換
  • Math.Round(value, digits) → 指定の桁数で四捨五入
  • Math.Floor(value) → 小数点以下切り捨て
  • Math.Ceiling(value) → 小数点以下切り上げ

Boolean(真偽値)

📌 用途

  • 条件分岐の判定true or false

🛠 よく使う関数

  • Not value → 論理反転
  • AndAlso → 複数条件のAND判定
  • OrElse → 複数条件のOR判定

Object(汎用オブジェクト)

📌 用途

  • 異なるデータ型を格納できる汎用コンテナ

🛠 よく使う関数

  • GetType() → 型を取得
  • CType(object, Type) → 型変換

📝 作成例

Dim genericObject As Object = "Hello"

💡 利用例

Dim myValue As Object = 42
Dim asInteger As Integer = CType(myValue, Integer) ' 42

Array(配列)

📌 用途

  • 固定長の同じデータ型のグループを管理

🛠 よく使う関数

  • Length → 配列の長さを取得
  • IndexOf(array, value) → 指定の値のインデックスを取得

📝 作成例

Dim numbers() As Integer = {1, 2, 3, 4, 5}

💡 利用例

Dim names() As String = {"Alice", "Bob", "Charlie"}
Dim count As Integer = names.Length ' 3

7. List(可変長リスト)

📌 用途

  • 動的に要素を追加・削除できるリスト管理

🛠 よく使う関数

  • Add(value) → 要素を追加
  • Remove(value) → 要素を削除
  • Contains(value) → 要素の存在を確認

📝 作成例

Dim nameList As New List(Of String) ' System.Collections.Generic.List<T> 利用
nameList.Add("John")
nameList.Add("Doe")

💡 利用例

Dim ages As New List(Of Integer)({25, 30, 35})
ages.Remove(30)
Dim exists As Boolean = ages.Contains(25) ' True

上記のVbコード以外に、「コレクションに項目を追加」などのアクティビティも利用可能です。


Dictionary(キーと値のペア管理)

📌 用途

  • キーと値のペアでデータを管理

🛠 よく使う関数

  • Add(key, value) → 要素を追加
  • Remove(key) → 指定のキーを削除
  • ContainsKey(key) → キーの存在を確認
  • ContainsValue(value) → 値の存在を確認

📝 作成例

Dim userDetails As New Dictionary(Of String, String) ' System.Collections.Generic.Dictionary<TKey, TValue> 利用
userDetails.Add("Username", "JohnDoe")
userDetails.Add("Email", "john@example.com")

💡 利用例

Dim userAges As New Dictionary(Of String, Integer) From {
    {"Alice", 25},
    {"Bob", 30}
}
Dim aliceAge As Integer = userAges("Alice") ' 25
Dim hasCharlie As Boolean = userAges.ContainsKey("Charlie") ' False

Studioでの利用例:

引数の設定は:

Dictionaryの利用例

UiPathのワークフローでは、設定ファイル(configファイル)を読み込んで管理する際に、Dictionaryを活用 すると便利です。
ExcelやJSON形式の設定データをDictionaryに保存することで、ワークフロー内で簡単に値を取得・更新できます。

こちらでは、Dictionaryを利用して設定ファイルを読み込み、Dictionaryに保存するUiPath Studioの例を見ていきましょう。

configファイルのExcelは以下の通りです。

Dictionary型の変数 out_Configを定義します:

out_Config = New Dictionary(of String, Object)

次は、Excelでのデータをout_Configに追加します。

これで利用できるようになります。

maxNumber = out_Config("MaxRetryNumber").ToString()

サンプルXAMLファイル

こちらのXAML(InitAllSettings.xaml)では、Excelを読み込み、字典型の変数に保存しました。

上記のファイルを開いて、ブラウザーで右クリックし「名前を付けて保存…」をクリックすることで、ローカルに保存できます。

利用する方法は、ワークフローを呼び出すアクティビティを使用し、必要な引数を設定することです。

利用するExcelは以下のようなフォーマットにする必要があります。(列名:Name、Value)

最後に

UiPath Studioでの変数の活用は、ワークフローの効率性と柔軟性を高める重要な要素です。変数パネルやデータマネージャーを駆使して適切に変数を管理し、スコープやデータ型を正しく設定することで、より堅牢でメンテナンスしやすい自動化プロセスを構築できます。

特に、Dictionaryなどのコレクション型変数を活用することで、設定情報の一元管理や動的なデータ操作が可能となり、複雑な業務ロジックにも柔軟に対応できます。

本記事で紹介した手法やベストプラクティスを参考に、UiPath Studioでの開発スキルをさらに向上させてください。

コメントする

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

上部へスクロール