はじめに
- 本記事では、UiPath Data Service の使い方を紹介します。
- 記事の内容は、個人の見解または確認結果であり、UiPath の公式見解ではありません。
- 製品仕様や参考画像は 23.10 バージョンのもので構成しています。
UiPath Data Service とは
端的に説明すると
テナントをスコープとして、簡単にDBスキーマを定義・作成・利用できるサービス
です。
データの登録や更新については、権限で制御が可能ですが、すべてのユーザーに読取権限がつくため、取り扱うデータには注意が必要です。(Everyone(グループ)に読取権限が付いており、手元の動作を見る限り権限をOFFにしての更新もできない)
※Everyone(グループ)自体は削除が可能なため、削除した場合は閲覧者から制限することもできます。
Studio での使い方
事前準備
アクティビティを使うにあたって、まず Data Service にエンティティを作成します。
「新しいエンティティを作成」からDBスキーマ(新しいテーブル)を1つ追加します。
本記事では、稼働日のデータを登録して、稼働日判定をおこなう例を紹介します。
登録するデータは
- Year:日付
- Flag:稼働日か否かの真偽値
Year(日付)は「yyyy-MM-dd」の形式で指定するため Text とし、
Flag(稼働日か否か)は『Yes/No』とします。
テストレコードを2件(Yes/No それぞれ1件)を登録します。
Studio での実装手順
標準で Data Service のエンティティ(DBのテーブル)に対する検索・登録・更新・削除をおこなうアクティビティが用意されています。※一括登録・更新・削除もできます。
検索アクティビティを配置します。
下のキャプチャでは Entity 欄にエンティティ(DBのテーブル)が指定できていますが、ここでエンティティを選択するためにはプロジェクトへのエンティティのインポートが必要です。
プロジェクトパネルのエンティティ>右クリック> 「エンティティを管理」 から、操作したいエンティティ(DBのテーブル)をインポートできます。
参考ガイド:
https://docs.uipath.com/ja/studio/standalone/2023.4/user-guide/importing-entities
それでは、指定した日付が稼働日か否かを確認してみます。
「フィルターを編集」から「フィルタービルダー」を起動します。
Year 欄の値と指定日が等しいかを判定する条件式を入力します。
左辺に「Year」、右辺は「yyyy-MM-dd」形式とするため、『DateTime.Parse(指定日).ToString("yyyy-MM-dd")』 と指定します。
クエリでの検索実行で期待結果が得られたので、次にエンティティの中身を更新してみます。
「エンティティレコードを更新」を配置します。
レコードの必須項目は自動で読み込まれます。
「入力レコード」に何を指定すればよいのか不明なため、とりあえず変数を作成します。
『System.Guid』、はじめてみました。
先述の「エンティティレコードにクエリを実行」の出力は検索結果のリストデータのため、そのままでは利用できない様です。
調べたところ、GUIDはレコードのIDと同じ様なので 「出力レコード.Item(0).Id」 として更新をかけてみます。
正常に更新できました!
最後に「エンティティレコードを作成」を配置し、登録の挙動をみておきます。
これは説明不要ですね。フィールドの値を指定して実行するだけ。
おまけ
Automation Cloud の Data Service 画面上で一括登録(データインポート)方法について。
1)CSV形式のデータファイルを用意(ヘッダーはフィールド名のカンマ区切り)
2)Data Service の「データをインポート」ボタンから1番で用意したCSVファイルを取り込みます。
さいごに
いかがでしたでしょうか。
DBの運用コストもかからず、これだけ簡単に扱える内部DBの存在は大きいですよね。
冒頭にも触れたように、テナントに所属するユーザーについては、(Everyone(グループ)を削除しない限り)基本的には閲覧はできてしまうため、セキュアな情報や人事・会計情報などを登録することは控えましょう。
汎用的なマスターやテナント単位の情報収集・管理(ヘルプデスクの各種申請など)で利用できそうなものは積極的に取り入れるのがよさそうです。
最後までお読みいただきありがとうございます(・ω・)ノ