こんにちは、RPAコンサルタントの鈴木です。今回はNEアセット(双日テックイノベーション標準BPアセット)に関する記事の第四回として、「プロセステンプレート」について書いていく予定です。
>>NEアセットって何?という方はこちら:「双日テックイノベーション標準BPアセットの使い方(1) - 概要編」
NEアセットのダウンロードはこちら(外部サイトにジャンプ)
プロセステンプレートとは?
NEアセットには「プロセステンプレート」が含まれていますが、これは名前の通り、Blue Prismプロセスを作成するにあたりテンプレートとして用いるものです。プロセステンプレートはBlue Prism公式からも公開されており、公式版については開発者資格などの勉強を通して触れることができます。NEアセットに含まれるテンプレートは公式のものをより便利かつ、様々なシチュエーションに適用できるように拡張したものです。そのためNEアセットのプロセステンプレートの理解には、公式のプロセステンプレートをまず理解する必要があります。今回の記事では公式からNEアセットにも引き継がれている、プロセステンプレート自体の基礎的な流れを説明します。
プロセステンプレートの基本的な流れ
Blue Prism社が(弊社も)推奨するBlue Prismプロセスの基本構造は、図のような形をしています。以下それぞれのステップについてもう少し詳細を確認していきますが、見ての通りこのフローはBlue Prismワークキューの使用を前提としています。本記事でワークキューの使い方や意義などについて解説すると非常に長くなってしまうため、それについては割愛し公式のガイド等に譲ることにします。
スタートアップ
業務の事前準備として、何個のキューアイテムがあったとしても最初に1回だけ必要な処理を行うステップです。どこまでが「事前準備」にあたるかはワークキューの設計に依存するためやや曖昧ですが、例えば設定ファイルの読込などは基本的にこのステップに位置すると思ってよいでしょう。ワークキューが1データ1アイテムのデータ単位設計(例:公式基礎トレーニングの「オーダーシステム」操作で学ぶ、受注データCSVの1行=1受注を1アイテムに格納するような設計)の場合は、操作するアプリケーションをこの段階で予め起動しておくのが普通です。また同オーダーシステム業務の例では、受注データが格納されたCSVファイルを読み込む処理もこのタイミングで行うことになるでしょう。
キューアイテムの追加
ワークキューにこのプロセスが利用するアイテムを登録します。多くの単純なプロセスは、その実行で処理する分のアイテムを登録するだけに過ぎませんが、大規模な業務では複数の(別、あるいは並列で実行される同名の)プロセス向けにまとめてアイテムを登録するようなケースもあります。オーダーシステムの例では、1受注データ=1アイテムですので、スタートアップで読み込んだCSVデータをそのような形で登録することになります。設計によってさまざまなキューアイテムの内容がありえますが、データ単位の他には実行日や実行時刻を格納した「実行単位」、あるいは入力ファイルが複数ある場合にファイル1つを1アイテムに登録する「ファイル単位」などが代表的な設計です。
キューアイテムの処理
このステップとその次の状態更新ステップは、図にもある通り、未処理のアイテム全てに対して繰り返し実行していきます。キューアイテムのデータを用いて業務本体を実行する部分ですので、オーダーシステムの例ならオーダーシステムへの受注データ登録操作がここに入ることになります。実行単位のキューの場合はキューのデータはあまり使いませんが、強いて言えば実行日などがアイテムに格納されていますので、実際の業務処理を行った後キューデータの日付を本文に記載して結果メールを出すといった処理が発生するでしょう。
アイテムの状態更新
キューアイテムの処理結果が成功だったか、エラーだったかに応じてそのアイテムの状態をどちらかとして記録しておくためのステップです。
クローズダウン
スタートアップとは対照的に、現時点で処理可能な全てのキューアイテムを処理し終えた後に1回だけ行うような後始末作業を行うステップです。オーダーシステムの例のように、データごとに登録の成否が分かれるような業務では、このステップ内で結果報告メールを出すことが多いでしょう(※上述の通り、実行日単位のキューを持つプロセスでは1回の実行につき1アイテムしか処理されないのが普通なため、ここではなくキューアイテムの処理内でメールを送ってしまうことが多いです)。その他使ったアプリをすべて閉じておき、次に実行されるロボットに支障が出ないようにするのもこのステップの重要な作業です。
NEアセットのメインページフロー
こちらはNEアセット版プロセステンプレートのメインページです。実際のBlue Prismプロセスは、前節の説明よりもやや複雑な構造をしていますが、流れは実は変わっていません。分かりにくい点を補足すると、「初期化」~「スタートアップ」までの流れが前節の説明における「スタートアップ」にあたります。なおスタートアップより手前にある処理は、公式テンプレートには存在せずNEアセットで追加された処理になります。また「完了として記録」「例外として記録」が「アイテムの状態更新」としていた部分になります。普通にキューアイテムの処理が終わる=例外が発生しなかった場合は「完了」であり、キューアイテムの処理で例外が発生して復元ステージにキャッチされると「例外」というロジックになっていますね。
「次のアイテムを取得」「アイテムが取得できた?」「リセット」「ストップ?」などは説明に登場しませんでしたが、前節の図では「全てのアイテムを1つ1つ実行」として簡略化していた繰り返しをBPプロセス上で表現するためのステップです。大まかに言うと新しいアイテムをキューから取得してはそのアイテムの処理をし、アイテムが取得できない=残りのアイテムが無くなればループを抜けるという仕組みになっています。細かい実装については書ききれない部分が多いですので、実際にNEアセットをダウンロードして確認いただければ幸いです。
補足:社内用プロセステンプレートの作成
公式プロセステンプレート、NEアセット版テンプレート両方に共通する話ですが、実際に自社の案件でプロセステンプレートを使用する場合は、社内向けにカスタマイズ版を用意することをお勧めします。通常ほとんどの会社のプロセスでは、汎用的なプロセステンプレートに事前定義された以上に、個社ごとの決まりきった手続き(RPA用の共有フォルダパス生成など)が存在します。提供されたプロセステンプレートをそのまま使用するのではなく、そういった共通処理も事前に設定したカスタム版を社内のテンプレートとすることで、より製造時間を短縮できるはずです。
NEアセット版のテンプレートでは図左側の灰色コメントのように「テンプレートを社内向けに改変する作業者向けの」コメントもテンプレート内に記載されています(その業務用の共有フォルダパスを生成する処理のカスタムを促す内容)。NEアセットを導入するBPプロジェクトでは、まずリード的な立場のエンジニアがこれらのコメントをベースに社内向けテンプレートを作成し、それを他のメンバーに使用いただく形にするとスマートです。
念のため、テンプレートのカスタマイズや実使用はBPスタジオ左上のメニューから「ファイル>名前を付けて保存」で別名保存することでコピー版を作って行うようにしましょう(オブジェクト系のテンプレート同様です)。
おわりに
今回の内容で、プロセステンプレートの基本構造(メインページのフロー)はなんとなく掴んでいただけたかと思いますが、実際に利用してみると各サブページにも色々と不明点があると思います。次回はメインページに配置された各サブページの内容について、もう少し掘り下げてご紹介していく予定ですのでよろしくお願いします。