4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【UiPath】Integration Serviceをワークフローで使ってみる

Posted at

はじめに

以前、Integration Serviceを使用して、外部のSaaSをトリガーにしたUiPathのジョブ起動の方法を記事にしました。

今回は、ワークフロー内からIntegration Serviceを使用してみます。

つかうもの

※クラウド環境は2022年5月時点のもの

  • UiPath Automation Cloud(Integration Service) Enterprise版
  • UiPath Studio 2022.4.1

コネクションを作る

前回と同様です。今回もSalesforceのコネクションを作ります。
コネクション1.png

アクティビティパックをインストールする

ワークフローからIntegration Serviceを使用するには、専用のアクティビティが必要です。
パッケージ管理から「IntegrationService」で検索すると、SaaS個別にいくつかのアクティビティパックがヒットするので、今回使用するSalesforceのアクティビティ(UiPath.Salesforce.IntegrationService.Activities)をインストールします。
パッケージ1.png

インストールすると以下のようなアクティビティが追加されます。
パッケージ2.png

アクティビティ 説明
Delete Record 特定のレコードを削除します
Get Record 特定のレコードを取得します
Insert Record レコードを新規作成します
List All Records 条件に合致するレコードを全件取得します
List Records 条件に合致するレコードを全件取得します(ページ分割します)
Update Record 特定のレコードを更新します
Salesforce Scope 上記アクティビティはこのアクティビティの中で使用します

Salesforce以外のアクティビティも基本構成は似た感じです(以下は、Service Nowのアクティビティ)。
パッケージ3.png

アクティビティを使う

インストールしたアクティビティを使ってみます。

Scopeアクティビティ

まずは、SaaS別のアプリケーションスコープアクティビティを配置します。Salesforceの場合は、「Salesforce Scope」アクティビティとなります。
実装1.png

アクティビティの「Configure」ボタンを押すと、コネクションを選択できるダイアログが表示されるので、先ほど作成しておいたコネクションを指定します。
実装2.png

ListRecordsアクティビティ

ListRecordsアクティビティは、SaaSからデータを取り出すだめのアクティビティです。GetRecordとは異なり、複数件数のレコードを取得することができます。
SQLみたいに指示することができます。
実装3.png

ListRecordsアクティビティの「Configure」ボタンを押すと、クエリを設定できるダイアログが表示されます。
whereの箇所はSQLのように条件式を書くことができます。なお、フィールドの物理名を知っている必要があります。
取得するフィールド(SQLでいうSelect)は選択できないようです。全フィールドを取ってくる仕様のようです。
実装4.png

項目 方向 説明
Select Object IN 取得対象のオブジェクト。カスタムオブジェクトも指定可能
includeDeleted IN 論理削除されたレコードを取得対象に含めるかどうか
nullsLast IN Null値のソート順。Null値を先頭にするか最後尾にするか
orderBy IN ソート順。Asc(昇順)、Desc(降順)
Page Token IN 取得したいページのトークン値。Next Page Tokenで得られた値を使用する
pageSize IN 1回のクエリで取得できる最大件数
where IN クエリの検索条件。SQLのように書ける
List OUT 取得されたレコードが格納されるDataTable型変数
Next Page Token OUT 1回のクエリで取りきれなかった場合の次ページを表すトークン値

上記、スクリーンショットのように、取引先(Account)を取得してみます。
条件は、業種(Industry)が「Energy」で、従業員数(NumberOfEmployees)が5,000人を超えるレコードとし、ソート順は従業員数の降順とします。
上手くいけば、下のように2件(Y株式会社、ダミー株式会社の順)が取得できるはずです。
実装5.png

期待通りに動きました。
実装6.png

おわりに

ListRecordsアクティビティを使ってみましたが、SQLライクな書き方ができるのはプログラマなら分かりやすい反面、プログラマでないエンドユーザには少々ハードルが高いかもしれません。さらにSalesforce上のオブジェクトやフィールド名(物理名)を知っていないといけないので、UiPathだけでなくSaaSサービス側の知識も必要になります(この辺を楽に実装できれば申し分ないです)。
しかしながら、今までのようにAPIを使ったロジックをイチから組み上げる必要はないため、大きな前進かと思います。今後のサービス改善にも期待したいです。

4
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?