Last updated on 2022年8月9日
UiPath社が公開しているマーケットプレイスで提供されているAttededロボットのためフレームワーク”Attended Framework”が公開されています。
以前、エラーハンドリングはこうするほうが良いという記事を書いたのですが、このフレームワークを利用すればエラーハンドリングだけでなく、その周辺の課題を解決できるように組まれています。
少し感動してしまったのでこちらについて紹介したいと思います。
使いやすいフレームワークで色々参考になると思います。
Contents
Attended Frameworkとは
Atteded Framewrokとは、REFreameworkと互換性を持つUiPath社が提供しているシンプルなプロセス向けのフレームワークです。
UiPath Connectのマーケットプレシスから無料でダウンロードし利用することができます。
利用するメリットとして次があげられています。
Attended Framework 概要
・モジュール化: 3 つのメインステップ (初期化、処理、およびクリーンアップ) への分離
・よりきめ細かな例外処理: アプリケーション例外とビジネスルール例外の区別 (それぞれの例外の具体的な処理を含む)
・コンフィグレーションファイル: ユーザーフレンドリーな設定定義により、柔軟性が高く、メンテナンスが簡単
・ReFramework 用に作成されたダッシュボードとの互換性
UiPath Go!
少しイメージしづらいかと思いますので、より具体的にまとめました。
Attended Framework を利用するメリット
Attended Frameworkを利用するメリットとしては次のようなものがあると思います。
- エクセルを用いた設定の読み込み
- 例外処理の標準実装
- ログの標準実装
エクセルを用いた設定の読み込み
UiPathでの開発では、変数を利用する場合がほとんどであると考えていますが、(開発が業務部門へよればよるほど)変数の値を直接ワークフロー内へ書き込んでしまうケースが見受けられます。
これは、「UiPath の開発自由度が高いこと」および「現場での開発手法が統一されていないこと」に起因しますが、保守や修正を行う場合(0からワークフローを眺めなければならず)非常に苦労します。
Attended Frameworkでは、そのような環境に依存する変数の値を外部のエクセルファイルから読み込む仕組みが実装されています。
そのため、エクセルファイルを確認するだけで、利用している値やその用途を把握することができるようになっています。
読み込むエクセルについては、Attended Framework内の[Data]フォルダ内に格納されており、Config,.xlsxという名称です。
ReFrameworkを使ったことがある方は同様のものを見たことがあるのではないでしょうか。
実際のファイル(書き込む前)は、次のようになっています。
シートに Settings/ Constants/ Assets とありますが基本Settings内へ変数を追加していきます。
ドキュメントでは次のように定められています。
SettingsとConstantsは結構曖昧です。
- Settings:環境ごとに変更が発生するおそれのある変数値
- Constants:プロジェクト、開発ルールに関連した定数
- Assets:Orchestartorのアセット機能と連携する値
下記のような議論が、UiPath Communityでありましたので参考にしてください。(英語です)
このようにエクセル(Configファイル)上に記載した値をワークロー内で呼び出し利用できる点が非常に協力となっています。
Configファイルに記載した値を取得する場合は、次のように書き込むことで取得することができます。
// Mainファイルから呼び出す場合
Config("Name列の値")
// Mainファイル以外、例えばProcessファイルから呼び出す場合
in_Config("Name列の値")
デフォルトで入っている「log_BusinessProcessName」の値(初期では、AttendedFramework)を取得したい場合次のようになります。
// Valueの値「AttendedFramework」文字列を取得
Config("log_BusinessProcessName")
// Valueの値「AttendedFramework」文字列を取得
in_Config("log_BusinessProcessName")
例外処理の標準実装
Attended Frameworkを利用することで基本的なエラーハンドリングについては網羅することが可能です。
一度 Attended Framework を見ていただければよいのですが、実行の起点となる Main.xaml ファイルには事前に2つのアクティビティが配置されていると思います。
Attended Framework では具体的な処理は Process.xaml というワークフローに記載していくのですが、Main.xaml 内でこのワークフローを呼び出しています。
その際、呼び出しにて使う【ワークフロー呼び出し】アクティビティを【トライキャッチ】アクティビティで囲むことでこれを可能としています。
実際の業務プロセスを記載するワークフローの呼び出しは次のようになっています。
トライキャッチのfinallyブロックで、例外対応の処理をしている形式となっていますが、「メールを飛ばしたい」「ポップアップを出したい」等行いたい場合は、必要に応じここをカスタマイズをする必要があります。
余談ですが例外の種類としてUiPathでは「アプリケーション例外」と「ビジネス例外」があります。
それぞれ対応も異なると思いますので、例外対応の際は注意です。
ビジネス例外 | 自動化プロジェクトで使用するデータが不完全または欠損していることが原因で発生するエラー ユーザーの利用方法が原因となるため適切な方法での通知が必要となります |
アプリケーション例外 | 応答しないアプリケーションなど、技術的な問題が原因のエラー ワークフローに起因するエラーの場合は、修正するようにします |
ログの標準実装
先程、finallyブロック内で見たように【ログフィールドの追加】【ログメッセージ】アクティビティが標準で実装されています。
また、Configファイルの「Enable_Screenshot」をTrueとした場合は、スクリーンショットを取得する処理も実装されています。
出力形式もREFramework と同様な形式となっていますので、集計し分析する際も問題なく利用することができます。
最後に
Attended Framework いかがだったでしょうか。
個人的にはエラーハンドリングまで含まれていて非常に使いやすいという印象です。フレームワークであり、無料で利用できるので気になる方は使ってみてください。
最後までお読みいただきありがとうございました。
では。