07. UiPath Studio開発(準備編)-プログラミングの基礎

Programming Languages and Software Engineering | UCSB Computer Science

UiPath Studioは、ドラッグ&ドロップ操作で簡単にワークフローを作成できる強力なRPAツールです。そのため、プログラミング経験がなくても自動化プロセスを構築できます。

しかし、複雑なプロセスを設計したり効率的に自動化を進めたりするためには、基本的なプログラミング知識を持っていることが大いに役立ちます

本記事では、UiPath Studioの活用において知っておくべきプログラミングの基礎とそのメリットについて解説します。

プログラミングの基礎知識が役立つ理由

前述のように、効率的で拡張性のある自動化を行うには、プログラミングの基礎知識を持っていることが大きなアドバンテージとなります。以下では、具体的にどのような場面でプログラミングの知識が役立つかを解説します。

制御構造

RPA開発では、プロセスの流れを設計する際にロジックの理解が不可欠です。例えば、条件分岐(IfSwitch)やループ(For EachWhile)を活用することで、プロセスを柔軟に設計できます。プログラミングの基本構造を理解していれば、これらのアクティビティを効果的に使いこなせます。

例(分岐処理): “分岐処理”とは条件によって実行の流れが変わる処理です。上のフローチャートでは、もし(IF)前に壁がある場合には右を向き、前に壁がない場合(ELSE)には前に進む処理を繰り返しています。

変数とデータ型の理解

UiPathでは、プロセス中のデータを扱うために変数が必要です。文字列、数値、ブール値などの基本的なデータ型を理解していると、変数の適切な宣言や利用が容易になります。また、変数スコープの理解は、複雑なプロセスを設計する際のトラブルを防ぐのに役立ちます。

例:以下はPythonの例ですが、UiPathでも同じ考え方です。

関数

関数とは、データを受け取って、何らかの処理をする仕組み(または処理した結果をデータとして返す仕組み)のこと。コードを再利用可能にし、簡潔に保つ上で重要です。

UiPathでは、複数のプロセスで使用できるリユーザブルコンポーネントを作成する際に関数的な考え方を取り入れることが求められます。特に、繰り返し発生する処理を「ワークフローとしてモジュール化」することで、効率的な自動化が可能になります。

式エディターと.NETの知識

UiPathの式エディターでは、VB.NETやC#に基づいた表現を記述します。例えば、文字列操作(item.ToString())、日付計算(DateTime.Now.AddDays(1))、リスト操作(list.Add(item))など、簡単な.NETの知識があると、ワークフローにおけるデータ操作がスムーズに進みます。

エラーハンドリング

プロセス設計において、エラーが発生した際の対処は非常に重要です。Try-Catchアクティビティを使用してエラーを適切にキャッチし、エラーメッセージの記録やリトライの実装ができます。

プログラミングで例外処理を学んでいると、エラーハンドリングの設計が格段に容易になります。

エラーハンドリングの流れは以下の通りです。

これらの基礎知識を身につけることで、UiPath開発の生産性が向上し、信頼性の高いワークフローを構築できるようになります。次に、これら基礎知識の詳細、及びUiPath Studioでの応用を詳しく説明します。

制御構造

プログラムの3つの制御構造とは「順次」「繰り返し」「分岐」という基本的な処理のことを言います。プログラムはこの3つの制御構造を組み合わせることによって表現出来ます。

  • 順次構造

順次構造とは、プログラムを上から下へ、一行ずつ順番に実行していく基本的な処理の流れを指します。

UiPath Studioでのワークフロー例:
1. フォルダ内のファイルを読み込む
2. データをExcelに入力する
3. メールを送信する

  • 繰り返し構造

繰り返し構造は、同じ処理を条件が満たされるまで何度も実行するための構造です。

UiPathでは、以下のようなアクティビティで繰り返し処理を実現します:
– Do While: 条件を後で評価しながら繰り返す。
– For Each: 配列やリストを1つずつ処理する。
– While: 条件がTrueである間、処理を繰り返す。

例:Excelの各行を繰り返し処理

  • 分岐構造

分岐構造は、条件に基づいて異なる処理を実行する構造です。

UiPathでは、以下のアクティビティが分岐処理に使用されます:
– If: 条件に基づいてThenまたはElseの処理を実行する。
– Switch: 条件に応じて複数のケースを実行する。
– Flow Decision: フローチャートの中で条件に基づく分岐を表現する。

例:請求書の金額が一定以上の場合は承認メールを送信、それ以外の場合は却下メールを送信する

変数とデータ型の理解と使い方

変数とは、データを一時的に保存しておくための箱のようなもの。UiPathでは、変数を利用することで、動的に変化するデータを扱うことができ、プロセスの柔軟性を高めます。

プログラミングでは文字列や数値、日付など、多くのデータを扱います。例えば、画面に表示するための文字列や計算で使用する数値、日付などがあります。

それらの情報は、プログラムが処理している間、「どこか」に保存して、必要なときに「どこか」から取得できるようにしておく必要があります。その「どこか」が「変数」というわけです。

変数の使い方

 変数の使い方はとてもシンプルで、以下の流れになります。
 ① 変数にデータを入れる(格納する)。
 ② 変数に入れたデータを見る(参照する)。

 ①の変数にデータを入れる操作のことを「変数への代入」、②の変数に入れたデータを見る(使う)ことを「変数値の参照」ともいいます。

① 変数にデータを入れる(格納する)

まずは変数を利用できるように宣言を行います。 では実際に変数をUiPathで使うための手順の例を説明します。

1. UiPath Studioの変数パネル利用で変数を定義します。(箱を用意します)

右図の通りに、[変数を作成]をクリックし、名前欄に[私の名前]という変数名をつけて、変数を宣言します。それぞれの役割を説明します:
– 名前(変数名):作成した変数の名前です。変数名は、プロセス内でデータを参照するための識別子として使用されます。UiPathでは、日本語の変数名も付けられます。
– 変数の型:変数に格納できるデータの種類を指定します。データ型によって、変数に保存できる値の形式が決まります。
– スコープ:変数が有効(アクセス可能)な範囲を指定します。スコープによって、どの部分のプロセスで変数を利用できるかが決まります。
– 既定(Default 値):変数に初期値を設定する欄です。プロセス開始時に変数が持つ値を指定できます。

2. 次は、代入アクティビティで変数への値を代入します。(箱にものを入れます)

右図の通りに、代入アクティビティを利用して、変数[私の名前]に”UiPath Studio”を代入します。

② 変数に入れたデータをみる(参照する)

先ほどデータを入れた変数は、アクティビティで使われます。

使い方はアクティビティの性質、及び変数のデータ型と関連しています。

例えば、こちらでメッセージを出力する際に、文字列が必要です。[私の名前]のデータ型が[string]ですので、そのまま利用できます。
もし、[年齢]というデータ型が数字の変数があれば、利用する際に、変換(ToString)が必要です。

私の年齢.ToString+ "歳です!"

変数は初期化した後に別のデータを代入することができ、データを自由に変更することができます。

変数のデータ型

変数には決まった「型」が存在します。「型」は「データ型」と呼ばれ、「数値型」、「文字列型」、「日付型」のように、その変数が保持するデータの種類を決める役割があります。

一般的に変数には、決まった「データ型」と一致する値だけを格納できます。UiPathでは、さまざまなデータ型をサポートしており、用途に応じて適切な型を選択することが重要です。

UiPath データ型

データ型 定義
String 文字列データを格納するための型 "Hello World"、"山田太郎"
Int32 整数を格納するための型 100、-50
Boolean 真偽値(True または False)を格納する型 True、False
Double 小数点を含む数値を格納するための型 3.14、-0.001
DateTime 日時を格納するための型。日付操作や計算が可能 DateTime.Now(現在の日時)、2025-01-27
Array 同じデータ型の要素を持つコレクション(配列) {"Apple", "Orange", "Banana"}(String型の配列)
List 配列に似たコレクションだが、要素の追加や削除が柔軟に行える型 New List(Of String) From {"Item1", "Item2"}
Dictionary キーと値のペアでデータを格納する型 New Dictionary(Of String, Int32) From {{"Key1", 1}, {"Key2", 2}}
DataTable テーブル形式のデータを格納する型。行と列でデータを管理 ExcelデータやSQLクエリ結果の格納。列: "名前"、"年齢"。行: {"山田太郎", 30}

このテーブルに基づき、UiPathで変数を設定する際に適切なデータ型を選択することで、プロセス設計を効率化し、エラーを防ぐことができます。

これらのポイントを理解することで、UiPathの変数を効果的に活用でき、より柔軟でメンテナンス性の高いプロセス設計が可能になります。

関数

関数とは、データを受け取って、何らかの処理をする仕組み(または処理した結果をデータとして返す仕組み)のこと。

関数の構成

ツールによって関数を作成するときの書式はさまざまですが、基本的な構成は同じなので覚えておきましょう。

function 関数名(引数) {
  処理
  ...
    
    return 戻り値
}
  1. 関数定義
    「関数定義」とは、「これから関数を作成する」と宣言することです。
    ツールによって定義方法は異なりますが、例えば、関数という意味の「function 」というキーワードを記述して関数を定義するものもあります。
  2. 関数名
    「関数名」とは、関数につける名前のことです。「どのような処理をおこなう関数なのか」がわかりやすい名前をつけましょう。
  3. 引数
    「引数」とは、関数に引き渡すデータ(入力データ)のことで、「パラメーター」と呼ぶこともあります。
    引数は、関数の中で変数として使えます。また、受け取りたいデータのデータ型も指定します。
  4. 戻り値
    「戻り値」とは、関数が処理した結果(出力データ)のことです。戻り値もデータ型を指定します。戻り値は、一般的に関数の処理の中で、「return」というキーワードを使って指定することが多いです。
    関数名の前に変数をおいて「変数 = 関数(引数)」とすると、関数の戻り値を変数に代入できます。

UiPath Studioでの利用

UiPathでは、関数という形式で直接コードを書くことは少ないですが、再利用可能なワークフローカスタムアクティビティを作成することで、プログラミングにおける関数と同様の役割を果たすことができます。
関数の基本構成(定義、名前、引数、戻り値)は、UiPathでのプロセス設計にも応用できるため、理解しておくと非常に便利です。

  • 関数定義:再利用可能なワークフローやライブラリの作成
  • 関数名:ワークフローやアクティビティ名として明確に役割を示す名前を付ける
  • 引数:ワークフローの「引数パネル」で定義し、データを入力
  • 戻り値:出力引数を使って処理結果を返す

UiPathでは、一度作成したライブラリやワークフローを他のプロセスで再利用することで、同じロジックを何度も開発する必要がなくなり、修正箇所を一元化することで効率的に変更を反映させることができます。また、共通のルールや処理を統一することで、品質のばらつきを防ぎ、チーム全体で効率的に作業を進めることが可能です。

ライブラリやアクティビティの詳細の作成方法は後述のコースで説明します。

式エディターと.NETの知識

UiPathの式エディターは、ワークフロー内で動的なデータ操作や条件設定を行う際に使用する強力なツールです。VB.NETやC#の構文を基盤としており、これらの知識を活用することで、柔軟で効率的なプロセスを設計できます。ここでは、式エディターの基本的な使い方や活用方法、具体例を詳しく解説します。

 式エディターとは

式エディターは、UiPath Studio内で使用されるツールで、プロパティやアクティビティの値を動的に設定するために利用されます。VB.NETやC#の構文に基づいて記述され、以下のような操作が可能です:

  • 変数の操作:変数の値を計算や変換する。
  • 条件式の設定:If文や三項演算子を使用して条件を設定する。
  • データの加工:文字列、日付、数値、リストなどのデータを操作する。

式エディターで使用される主な.NET機能

UiPathの式エディターでは、.NET Frameworkの機能を活用できます。以下は、よく使われる例です。

net関数

データ型 定義
String 文字列データを格納するための型 "Hello World"、"山田太郎"
Int32 整数を格納するための型 100、-50
Boolean 真偽値(True または False)を格納する型 True、False
Double 小数点を含む数値を格納するための型 3.14、-0.001
DateTime 日時を格納するための型。日付操作や計算が可能 DateTime.Now(現在の日時)、2025-01-27
Array 同じデータ型の要素を持つコレクション(配列) {"Apple", "Orange", "Banana"}(String型の配列)
List 配列に似たコレクションだが、要素の追加や削除が柔軟に行える型 New List(Of String) From {"Item1", "Item2"}
Dictionary キーと値のペアでデータを格納する型 New Dictionary(Of String, Int32) From {{"Key1", 1}, {"Key2", 2}}
DataTable テーブル形式のデータを格納する型。行と列でデータを管理 ExcelデータやSQLクエリ結果の格納。列: "名前"、"年齢"。行: {"山田太郎", 30}

.NETの知識が役立つ理由

UiPathは.NET Framework上で動作するため、.NETの知識があると以下の点で有利です:

  • 柔軟なデータ操作:式エディターで高度なロジックを実装できる。
  • カスタムアクティビティの作成:C#やVB.NETで独自のアクティビティを開発できる。
  • エラーのトラブルシューティング:.NETの例外メッセージを理解し、問題を迅速に解決できる。

エラーハンドリング

プロセス設計において、エラーが発生した際の対処は非常に重要です。Try-Catchアクティビティを使用してエラーを適切にキャッチし、エラーメッセージの記録やリトライの実装ができます。

エラーハンドリングの各構成要素

エラーハンドリングの設計には、以下の3つのブロックが重要な役割を果たします。それぞれの役割と動作を詳しく説明します。

1. try 節

  • 役割:
    • 正常な処理を実行するセクションです。このブロック内で例外が発生すると、処理が中断され、次のcatch節に制御が移ります。
  • UiPathでの例:
    • ファイル操作(例: ファイルを開く)やAPI呼び出しなど、エラーが発生する可能性のある操作をここに記述します。

2. catch 節

  • 役割:
    • tryブロック内で例外が発生した場合に実行されるセクションです。例外をキャッチして、その処理方法(例: ログ記録、エラー通知など)を定義します。
  • 特徴:
    • キャッチする例外の種類を指定可能です(例: NullReferenceException, IOException)。
  • UiPathでの例:
    • エラーメッセージをログに記録する。
    • ユーザーにエラー内容を通知する(例: メール送信)。

3. finally 節

  • 役割:
    • trycatchブロックが実行された後、例外の有無にかかわらず必ず実行されるセクションです。リソースの解放や後処理を記述します。
  • UiPathでの例:
    • 開いたファイルや接続を閉じる。
    • クリーンアップ処理を実行する(例: 一時ファイルの削除)。

エラーハンドリングの流れ

  1. tryブロック内で処理を実行。
  2. 例外が発生した場合、catchブロックに制御が移り、例外を適切に処理。
  3. 処理が成功または失敗した場合、必ずfinallyブロックが実行され、リソースの後片付けを行う。

UiPathにおけるエラーハンドリングの実装例

Try-Catchアクティビティを使用:

  • tryに通常の処理を記述。
  • catchでエラーを記録し、適切な対応を記述。
  • finallyでリソースの解放を行う。

例外の再スロー(Rethrow):

  • catch内で処理ができない場合、例外を再スローし、呼び出し元で処理を続行可能にします。

エラーハンドリングの適切な設計により、プロセスの信頼性が向上し、エラー発生時のトラブルシューティングが容易になります。

最後に

UiPath Studioを効果的に活用するためには、基本的なプログラミング知識が大いに役立ちます。制御構造、変数とデータ型、関数、式エディター、エラーハンドリングなどの概念を理解することで、より効率的で柔軟なワークフローの設計が可能になります。

これらの知識を身につけ、UiPathの機能と組み合わせることで、複雑な業務プロセスの自動化を効果的に実現できます。継続的な学習と実践を通じて、RPA開発のスキルをさらに高めていきましょう。

コメントする

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

上部へスクロール