【UiPath × invoiceAgent】WebAPIで文書管理！サンプルシーケンスを作成してみた

## はじめに

今回はRPAツールの[**UiPath**](https://www.uipath.com/ja)と、電子帳票プラットフォーム [**invoiceAgent**](https://www.wingarc.com/product/ia/) との連携についてご紹介したいと思います。

**UiPathから特定のPDFなどのファイルをWebAPI経由で「invoiceAgent 文書管理」にダウンロード/アップロードするためのサンプルシーケンスファイル**を作成しました。

## invoiceAgentについて

https://www.wingarc.com/product/ia/

<details><summary>【詳細】invoiceAgentは、文書管理機能をベースとした文書の保管・OCRによるデータ化・帳票配信などを行うための電子帳票プラットフォームです。

</summary><div>

:::note info
invoiceAgentは、**企業間取引の帳票の送信と受信を電子化し、保管/データ化まで一元管理できるソリューション**です。各企業の帳票のフォーマットをそのままに企業間取引における業務負担を減らし、よりスムーズに、快適な取引をサポートします。
:::

詳細は公式ホームページをご参照いただければと思いますが、

✅ **電子帳簿保存法に対応した文書管理**
✅ **5つのAIOCRによる帳票データ化**
✅ **請求書の送受信による企業間取引**
✅ **契約の電子化**

これらを可能にする製品群となります。（以下製品ラインナップ）
![製品ラインナップ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2842935/2b66112b-b50a-ea79-0599-f7edf4587f1f.png)

:::note warn
invoiceAgentは有償のソフトウェア・クラウドサービスです。
本記事の内容をお試し希望される場合は、[トライアル](https://pg.wingarc.com/mkto-form-1728A1.html?_fsi=b75PMLgd
)にお申込みください。
:::

</div></details>

## ご紹介の前に - invoiceAgent WebAPIの新情報

実は2年ほど前から UiPath MarketplaceにてinvoiceAgent連携サンプルを公開してきましたが、旧サンプルは認証APIコール時に複雑なCookieの処理を行なっており、若干扱いが難しいものになっていました。

最近のバージョンアップにより、invoiceAgent 文書管理のWebAPI実行時に下記のURLを指定すると、認証の処理が必要な場合でもCookieを使わずにAPIを呼び出すことが出来るようになりました。

**※クラウド版のみご利用いただける機能です。**
 
```
http://<hostname>:44230/auth/service/<各WebAPIのパス>
```

詳細はこちら：https://cs.wingarc.com/manual/ia/cloud/ja/3431698.html

こちらを指定すると下のように処理が進むため、比較的簡単に目的のAPIを呼び出すことができます。ログインとログアウトが自動で行われるため、認証の処理を意識する必要がなくなります。

:::note info
ログインの処理 → 目的のWeb APIの処理 → ログアウトの処理
:::

今回はこちらのWebAPIをUiPathから利用するサンプルシーケンスファイルを作成しましたので、ご紹介していきます！

## 利用環境

(1) UiPath Studio
(2) invoiceAgent 文書管理（クラウド版）

上記を利用できる環境が必要になります。
作成時は、以下バージョンを利用しています。
|UiPath Studio|invoiceAgent文書管理|
|---|---|
|**Studio 2023.11.3 Community License**　<br></br> ※利用前にUiPath Studioの [パッケージ管理] から「UiPath.WebAPI.Activities」のインストールが必要です。| **クラウド版** <br></br>※今回のサンプルはinvoiceAgent 文書管理 クラウド版でのみ利用可能です。|

それでは早速紹介していきます↓↓

## ファイルダウンロード

**・Sample_FileDownload.xaml**
invoiceAgent 文書管理から特定のファイルをローカル環境(C:) にダウンロードします。


![half_ダウンロード.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2842935/c32429eb-3dca-2380-1144-f814f07842b9.png)
![half2_ダウンロード.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2842935/0bdb0b8f-3847-8883-e874-b1a029199461.png)
　

**・ファイルダウンロード（HTTP要求ウィザード）**
以下のような設定をしています。

![HTTPReq_ダウンロード.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2842935/e2daffcc-1ef3-4d1e-026c-aa6fc97d1b72.png)

ユーザーが入力したinvoiceAgentのURL・文書ID（in_DocId）をエンドポイントの末尾に付与してダウンロードAPIの呼び出しを行います。

※文書IDとは：
invoiceAgentに文書をアップロードした際、ファイルに自動で付与される一意の番号です。


```
エンドポイント: in_iA_URL + "/auth/service/download_v4" + in_DocId
```

WebAPIリファレンス：https://cs.wingarc.com/manual/ia/cloud/ja/2979913.html

## ファイルアーカイブ
**・Sample_FileArchive.xaml**
ローカル環境上の特定のファイルを invoiceAgent 文書管理にアーカイブします。

![half_アーカイブ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2842935/1617290d-5853-f5e2-d220-f58f1ab55526.png)
![half2_アーカイブ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2842935/87c41f3d-6291-f13f-c16f-32cf8dba12d2.png)

　
**・ファイルアーカイブ（HTTP要求ウィザード）**
以下のような設定になります。

![HTTPReq_アーカイブ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2842935/41497d9f-dd74-6ffa-b210-b4158bb29199.png)

ユーザーが入力した情報（フォルダーID・アーカイブ後のファイル名など）をパラメーターとして利用し、ファイルアーカイブAPIの呼び出しを行います。

```
エンドポイント: in_iA_URL + "/auth/service/archives_v5"
```
WebAPIリファレンス：https://cs.wingarc.com/manual/ia/cloud/ja/2924035.html

## 最後に

今回のサンプルをご覧いただき、より簡単にUiPathとinvoiceAgentを連携させる手段の一つとして今後ご参考いただければ幸いです。
将来的に他のWebAPIを利用したサンプルを増やしていく予定です。暫くは本記事でご紹介したダウンロード・アーカイブサンプルのMarketplace公開をお待ちください！