LoginSignup
4
1

【UiPath】Integration Service版Microsoft Teamsアクティビティで添付ファイルありのメッセージを送る

Last updated at Posted at 2023-07-25

はじめに

  • タイトルの通り、Integration Service 版 Microsoft Teams アクティビティパッケージ「UiPath.MicrosoftTeams.IntegrationService.Activities」を利用して添付ファイル付きのメッセージを送信する方法を紹介します。

Integration Service 版 Microsoft Teams アクティビティパッケージの最新版 v5.0.6 のリリースに合わせて記事を修正しました。

2023年11月13日時点では、Integration Service 版 Microsoft Teams アクティビティパッケージはプレビュー公開となっています。そのため、今後仕様が変更される可能性があることご了承ください。

Microsoft Teams アクティビティ パッケージ (プレビュー) について

プロジェクトへの追加方法

v5.0.6 のリリースに伴い、Windows レガシ版の提供が過去バージョンも含めて廃止されたようです。 Integration Service 版 Microsoft Teams アクティビティパッケージを利用いただくには Windows またはクロスプラットフォームをご利用いただく必要があります。

  • 「パッケージを管理」から Integration Service 版 Microsoft Teams アクティビティパッケージを追加します。
  • 「Microsoft Teams」が表示されたら、「インストール」、「保存」を押してプロジェクトに追加します。

* 最新バージョンの v5.0.5-preview では任意項目であるはずの File Resource が必須項目となっている不具合があります。
* そのため、ひとつ前のバージョン v4.0.4-preview をご利用ください。本事象はWindowsとクロスプラットフォームのみで発生しており、Windowsレガシには影響がありません。

v5.0.6 では上記不具合が解消されていること確認しました。

image.png

ファイル添付の方法

Teams アクティビティでは以下の2つの方法でメッセージにファイルを添付することができます。以下順番に説明します。

方法1 . 画像 プロパティを使った方法
方法2 . プロパティ 添付ファイル - IDコンテンツ URL添付ファイルのリソース名を使った方法

方法1 画像 プロパティを使った方法

  • プロパティ名の通りですが画像ファイルのみ添付することができます。
  • UiPath.Platform.ResourceHandling.IResource 型のインタフェースを実装したクラスの変数を設定することで画像ファイル付きのメッセージを送信することができます。
  • IResource 型インタフェースを実装するクラスは、UiPath が提供する OneDrive や SharePoint、Google ドライブ、Dropbox などのクラウドストレージ用アクティビティから取得できます。
  • 今回は「UiPath.MicrosoftOffice365.Activities」アクティビティパッケージを利用して SharePoint に格納された画像ファイルを添付してみます。

v5.0.6 ではローカルの画像ファイルを Teams メッセージに添付できるようになりました。

注意事項その1(UiPath.MicrosoftOffice365.Activities について)

  • 「UiPath.MicrosoftOffice365.Activities」では、「Office 365」と「Office 365 - クラシック」の2種類のアクティビティで SharePoint 及び OneDrive にあるファイルの操作をすることができます。
  • 「ファイル/フォルダーを取得」等のアクティビティが「Office 365」と「Office 365 - クラシック」両方から提供されていますが、IResource 型を実装したクラスの変数が取得できるのは 「Office 365」で提供されているアクティビティのみ となります。

image.png

注意事項その2(画像形式について)

  • File Resource プロパティを利用して添付できるファイルは JPEG または PNG 形式の画像ファイルのみとなります。 JPEG や PNG 以外のファイル形式を添付したい場合は方法2を利用する必要があります。

JPEG や PNG 以外のファイル形式を設定して実行した場合にスローされる例外
image.png

サンプルワークフローと送信結果
image.png
image.png

方法2. プロパティ 添付ファイル - IDコンテンツ URL添付ファイルのリソース名を使った方法

  • こちらの方法では、IResources型のファイル変数を指定する代わりに、SharePoint または OneDrive に格納されているファイルの ID、URL 及び名前を指定することでメッセージにファイルを添付します。
  • 方法1では画像ファイルのみ指定できましたが、方法2ではファイル形式に制限はなく指定することが出来ます。

何の値をプロパティに設定すればよいのか?

公式ドキュメントのチャンネル メッセージを送信アクティビティの説明を見ると次のように書かれています。コンテンツ URL と添付ファイルのリソース名は何となくわかりますが、添付ファイルIDが何者なのかこれだけではわからないですね。

  • 添付ファイル ID - SharePoint アセットの ID です。 このフィールドは任意です。SharePoint コンテンツをアップロードする場合のみ必須です。
  • コンテンツ URL - SharePoint または DriveItem の URL です。 このフィールドは任意です。SharePoint コンテンツをアップロードする場合のみ必須です。
  • 添付ファイルのリソース名 - SharePoint アセットの名前です。 このフィールドは任意です。SharePoint アセットをアップロードする場合のみ必須です。

Microsoft Graph APIのドキュメントを確認してみる

例 4: 添付ファイルを含むメッセージを送信するを見ると以下の記述があり、添付ファイルの ID は driveItem の ETag の GUID であることがわかりました。

メモ: ファイルは既に SharePoint に存在している必要があります。 ファイルのプロパティを見つけるには、ファイルの driveItem を取得します。 たとえば、/drives/{id}/items/{id}です。 添付ファイル ID は driveItem の eTag の GUID、添付ファイル contentURL は driveItem のフォルダーの webUrl と driveItem の名前、添付ファイル名は driveItem の名前です。

実装してみる

注意事項その3

  • 方法1では、「UiPath.MicrosoftOffice365.Activities」の「Office 365」を利用する必要がありましたが、「Office 365」配下のアクティビティの出力からはETagを取得する手段がないため方法2では、「Office 365 - クラシック」のアクティビティを利用する必要があります。
  • 方法1と同様に、「ファイル/フォルダーを取得」アクティビティで SharePoint または OneDrive に格納されているファイルを取得します。
  • ファイルの取得ができたら、変数の以下のプロパティを Teams の「チャンネル メッセージを送信」アクティビティに設定していきます。
プロパティ 設定する値
添付ファイル - ID file.ETag (※1)
コンテンツ URL file.WebUrl + "/" + file.Name
添付ファイルのリソース名 file.Name

※1 file.ETag の値は、{0A1CE4AF-2871-47CF-8A75-B784737525C2},5の形式となっており、鍵括弧内の値(この例では 0A1CE4AF-2871-47CF-8A75-B784737525C2)を抽出して Attachement ID に設定する必要があります。正規表現 (?<=\{)[^\(\)]+(?=\}) を利用することで値を抽出することが出来ます。

サンプルワークフローと送信結果
image.png
image.png

おわりに

  • 本記事で紹介した内容が皆様のお役に立てれば幸いです。
4
1
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
1