はじめに
前回は Decision Table について見てきました。
今回はもう一つの内蔵機能である DataStand の紹介をします。
DataStand とは
DataStand(データスタンド)は、BizRobo! のロボットとデータの間の「中継地点」として機能する、データ管理プラットフォームです。
これまでは、ロボット自身がExcelファイルを開いて複雑な加工を行ったり、設定ファイルを各端末に配置して回ったりする必要がありました。DataStandを利用することで、データの「準備(加工)」「分配(実行)」「設定(変数)」をサーバー側で一元管理できるようになります。これにより、ロボット開発の負担を減らしながら、複数台ロボットによる並行処理や、柔軟な運用変更を即座に実現します。
DataStand を構成する3つの機能
DataStandは、以下の3つのコア機能によって構成されています。
Handler
「データの準備と加工を、もっと自由に」
Handlerは、スプレッドシート(Excel/CSV)上のデータをブラウザ上で容易に操作・加工するための機能です。
これまでロボット内部で複雑なロジックを組んで行っていた「列の結合」「重複削除」「フィルタリング」といった前処理を、直感的なUI操作で完了させ、後続の Task Queue へシームレスにデータを流し込むことができます。
Task Queue
「タスクの直列処理から、並列シェアへ」
Handlerから取り込まれたデータを、ロボットが効率よく処理するためのタスク管理機能です。
従来のRPA開発では、ロボットがExcelの1行目から順にループ処理を行う「直列処理」が一般的でした。Task Queueはタスクリストをサーバー側で管理し、ロボットからの要求に応じて「未処理のタスク」を1件ずつ切り出します。これにより、1つのタスクリストを複数のロボットで同時に取りに行く「並行処理(シェア)」が可能になり、大量データの処理時間を劇的に短縮します。
Garage
「設定ファイル管理からの解放」
Garageは、これまで各端末のローカルフォルダに config.xlsx などの形で散在していたロボット用の設定変数を、Web管理画面上で集中的に管理する機能です。
単なるキーバリューストアではありません。「適用期間」や「優先度」の設定が可能です。「キャンペーン期間中だけこの値を使う」「年末年始だけ処理モードを変える」といった制御を、ロボットのコードを一切変更することなく、サーバー側の設定を予約しておくだけで実現できます。
BizRobo! Link における Handler
Handlerを利用する最大のメリットは、「不完全なデータをロボットに渡さない」 ことにあります。事前にデータをクレンジングし、整形された状態(Task)にしてからロボットに渡すことで、ロボット側のエラーハンドリング処理を大幅に削減できます。
画面と機能
ファイル読込・編集画面
上記は、Excelファイルを読み込ませた直後の画面です。ブラウザ上でスプレッドシートのようにデータを閲覧できます。
ツールバーには「列結合」「列分割」「重複行削除」などの機能が備わっており、ロボットが扱いやすい形式にデータを加工できます。加工が完了したら、「Task登録」ボタンを押すだけで、即座に後続のQueueへデータが投入されます。
ロボット連携画面(スタンドアローンモード)
こちらは、ロボットがコネクターを通じてデータを渡し、動的に生成されたページです。
「ファイルパス」や「データ(JSON/CSV文字列)」を渡して Handler起動 アクションを実行すると、ロボット専用のURLが発行されます。ロボットがこのURLを開くことで、スプレッドシートの情報をロボットが効率的に処理できます。
Handler Sessions 一覧
現在編集中のデータや、ロボットが生成した一時的なセッションの一覧です。データサイズや最終更新日時を確認でき、不要になったセッションの管理もここで行えます。
実行方法
Handlerには、大きく分けて「人が主体となる実行」と「ロボットが主体となる実行」の2つのパターンがあります。
人による実行
- 管理画面からHandlerを開き、手元のExcelやCSVファイルをアップロードします。
- 画面上でデータの不備(空白や重複)を確認し、フィルタリングや削除機能を使ってデータをきれいにします。
- 処理対象のTask Queue名(例:
Invoice_Data)を指定して「Task登録」を実行します。 - これにより、データがサーバー上のキューに格納され、待機中のロボットが即座に処理を開始できる状態になります。
ロボットによる実行
- ロボット内の
API_DataStandコネクターを使用し、Handler起動アクションを実行します。この際、処理したいデータやファイルパスを引数として渡します。 - コネクターが編集用のURLを返します。
- ロボットは
参照ステップでそのURLを開き、ユーザーの操作を待機(Wait)します。 - ユーザーがブラウザ上でデータを確認・修正し、「Task登録」ボタンを押すと、データがキューに送られ、ロボットは次の処理へ進みます。
BizRobo! Link における Task Queue
Task Queueを導入することで、ロボットの 「スケーラビリティ(拡張性)」と「堅牢性」 が飛躍的に向上します。処理件数が増えた場合でも、ロボットの台数を増やすだけで対応可能になります。
画面と機能
Queue サマリー画面
現在稼働しているキューの一覧が表示されます。各キューの「未処理(Total)」「完了(Done)」「処理中(Processing)」「エラー(Error)」の件数がひと目でわかり、進捗状況をリアルタイムにモニタリングできます。
タスク詳細画面
特定のキュー内のタスク一覧です。各行が1つの処理単位を表しています。
ここでは、タスクごとのステータス確認だけでなく、エラーになったタスクの内容(JSONデータ)を確認したり、手動でステータスを変更したりすることができます。
実行方法
Task Queueは、ロボットが自律的に仕事を取りに行く「プル型」の実行モデルを採用しています。
人による実行(管理・運用)
- モニタリング: 管理画面から、現在どのロボットがどのタスクを処理しているかを確認できます。
- リカバリー: エラーになったタスクの内容を修正し、ステータスを「未着手」に戻すことで、ロボットに再処理させることができます。
- 緊急タスク投入: ロボットが稼働中であっても、HandlerやAPI経由で優先度の高いタスクを追加投入することが可能です。
ロボットによる実行
- ロボットはコネクターの
次タスク取得 (queue.next)アクションを実行します。 - サーバーは「未着手」の中で最も古いタスクを1つ選び、ステータスを「処理中」に変更した上で、データをロボットに返します(排他制御)。
- ロボットは受け取ったデータに基づいて業務処理を行います。
- 処理が終わったら
タスク更新 (queue.update)アクションで、結果に応じてステータスを「完了」または「エラー」に更新します。 - このサイクルを繰り返します。他のロボットを追加起動すれば、自動的に同じキューからタスクを取り合い、処理速度が倍増します。
BizRobo! Link における Garage
Garageを利用することで、ロボットの運用における 「設定変更のリードタイム」 をなくすことができます。変数の変更が必要になった際、ロボットを止めてファイルを書き換える必要はもうありません。
画面と機能
Garage 変数一覧画面
プロジェクトごとに定義された変数の一覧です。
同じ「データ名(Key)」に対して、複数の設定を持たせることができるのが特徴です。一覧では「現在有効な値」がハイライトされ、どの設定が適用されるかが視覚的にわかります。また、この画面で「適用期間(開始・終了日時)」や「優先度」を設定します。
コンテンツ編集画面
変数の値を設定する画面です。シンプルなテキストや数値だけでなく、JSON形式(リストやKey-Value)での入力もサポートしており、専用のエディタで構造化データを簡単に作成できます。
実行方法
Garageは「条件付き変数解決」という高度なロジックを持っています。
-
設定(人):
管理画面から、データ名税率に対して以下の2つの値を設定します。- 値
0.10(優先度: 0, 期間: 指定なし) - 値
0.08(優先度: 10, 期間: 2025-12-01 ~ 2025-12-31)
- 値
-
呼び出し(ロボット):
ロボットはコネクターのGarage変数取得 (garage.resolve)アクションで、キー税率を指定します。 -
解決ロジック:
サーバーはリクエストを受け取った瞬間の時刻と設定を照合します。- 通常時は、期間指定のない
0.10が返されます。 - 指定された期間内(セール期間など)になると、優先度が高い
0.08が自動的に選ばれて返されます。
- 通常時は、期間指定のない
このように、人があらかじめスケジュールや優先順位を設定しておくことで、ロボット側のロジックを変えることなく、状況に応じた動的な値の切り替えが可能になります。
まとめ
今回は BizRobo! Link の DataStand について紹介しました。
次回は BizRobo! Link の中核機能であるコネクター管理の紹介に移ろうと思います。
ちなみに今回の記事のメインコンテンツもソースコードを基にAIが生成した文章をベースに加筆修正しています。













