ああああ

フレームワーク「ReFramework」でシナリオを作る[1]

フレームワーク「ReFramework」でシナリオを作る[1]

同じ処理を一つ一つ繰り返し、エラー制御も行いたい、そんな時はUiPath社が提供しているReFramework(Robotic Enterprise Framework)がおすすめです。

 

ReFrameworkの特徴は、繰り返し行われる対象業務を一つずつ処理し、途中で失敗してしまったら次の対象に移る…というように制御フローが整っている点です。また、「初期処理」「処理」「終了処理」といった風に、過程を分けて処理を行います。

 

UiPathアカデミーのLesson3でも出てきましたよね!

 

ReFrameworkについて紹介されている記事が世にまだ少ないなぁという印象ですので(私もアカデミー時代に苦労しました…)、何回かに分けて備忘も兼ねてご紹介したいと思います。

 

 

ReFrameworkは、UiPath Studio Communityからダウンロードできます。

 

先述した通り、ReFrameworkでは過程を分けて処理を行っているので、xamlファイルも処理によって分かれています。

ざっくり主な各ファイルを説明します。

 

Main.xaml … フレームワークのメイン。(ここは基本いじりません)

ここでフレームワークの流れを簡単に説明します。(Orchestratorのキューは使わないことを想定しています)

 

英語だとわかりにくいので日本語にしました。

 

ReFrameworkでは、同じ処理を行う業務対象(複数)を「トランザクションデータ(TransactionData)」として取得し、それを一つ一つ取り出して処理を行います。

その一つ一つを「トランザクションアイテム(TransactionItem)」、何番目かを「トランザクションナンバー(TransactionNumber)」と言います。

 

例えば、経費精算処理で社員一覧があり、その社員分の処理(同じ処理)を行わなければいけないとします。その社員一覧(処理を行う全体)がトランザクションデータで、社員(一つ一つの処理)がトランザクションアイテム、何人目の処理をやっているかをトランザクションナンバーというイメージです。

 

【全て成功の場合】

トランザクションアイテム単位で処理を行い、成功したら次のトランザクションアイテムを持ってきて処理を行い、最後のトランザクションアイテムの処理が終わったら終了処理に行きます。

(上図の「成功」のルート。次のトランザクション処理を行い、最後に新規トランザクションアイテムがなくなったら終了処理へ)

 

【ビジネスルール例外が途中で起きた場合】

あるトランザクションアイテムの処理中にビジネスルール例外が起きた場合は、そのトランザクションの処理をやめ、次のトランザクションアイテムを取得し処理を行います。

(上図の「ビジネスルール例外」のルート)

 

【システムエラーが起きた場合】

あるトランザクションの処理中にシステムエラーが起こった場合、開いているアプリケーションを閉じ、初期処理に進みます。その後、Configファイルで設定したMaxRetryNumberの回数だけ同じトランザクションの処理を行います。

例、 MaxRetryNumberを1にしていた場合、システムエラーが起きたらもう一度そのトランザクションアイテムの処理を行う

(上図のシステムエラーのルート)

 

※Configファイルについて

基本的に、シナリオ内で使用する値は後々変更ができるよう、Configファイルに記載する方向です。Dataフォルダの中に格納されているConfig.xlsxに記載します。

 

各箇所で何を行っているかは上図をご覧ください。

 

Process.xaml … 実際に行う処理は、こちらに設定。

CloseAllApplications.xaml … 開いているアプリケーションを閉じる処理。

GetTransactionData.xaml … トランザクションデータの取得。Orchestratorキューを使用しない場合は、トランザクションデータをDataTableとして取得。また、そこから実際に処理を行うトランザクションアイテムのセットも行う。

InitAllApplications.xaml … 初期処理を行う。

InitAllSettings.xaml … Config.xlsxを読込、ディクショナリー型の引数 out_Config に格納

KillAllProcess.xaml … アプリケーションの強制終了。

SetTransactionStatus.xaml … トランザクションナンバーを+1する(成功の場合・ビジネスルール例外の場合・再試行回数がMaxRetryNumberに達した場合)

 

主にいじるファイルは、Process、CloseAllApplication、GetTransactionData、InitAllApplicationsになります。

ただ、UiPathからダウンロードできるFrameworkがOrchestratorのキューを使用していること前提なので、変数の変更とか、フレームワーク自体の変更がちょっと必要です。

 

 

以上、めちゃくちゃ簡単にはなってしまいましたが、ReFrameworkについてでした。

長くなってしまうので、今回はイントロダクションで終わりますが、今度はこちらを使って実際にシナリオを作成してみたいと思います~

 

一つ一つの処理の成功/失敗を管理したいときに是非使ってみてください。