はじめに
今回の記事では、メールデータ連携の一つの方法として、UiPath Actvitiesを利用して、メールデータを連携する方法を紹介します。
ロボットが接続するOrchestratorのテナントとUiPath Communications Mining(以下、CM)のテナントが同じかどうかに応じて、利用するアクティビティが異なります。
- テナントが同じである場合は、UiPath Official CM Activitiesを利用して、メールデータをUiPath CMにアップロードすることができます。
- テナントが異なる場合は、UiPath Marketplace Activitiesを利用します。
UiPath Marketplace Activitiesは将来的に置き換えられる予定ですので、ワークフローの改修が必要になります。これをご了解の上で利用していただくようお願いします。
UiPath Official CM Activitiesを利用する際の実装
以下のリンクのページで、該当アクティビティの利用方法を記載していますので、詳細な手順はそちらでご確認いただけますので、ここでは省略します。
参考のために、ワークフローを以下に示します。
メールの添付ファイル名を連携する場合、ワークフローでメールの添付ファイル名を取得し、レコード作成アクティビテにそれをユーザー定義フィールドとして追加する必要があります。
UiPath Marketplace Activitiesを利用する際の実装
UiPath CMから必要な値の取得
UiPath Marketplace Activitiesを利用して、メールをアップロードする際には、UiPath CMでのURLやAPIキー、及びアップロード先のソース名などを入力する必要があるので、最初にこれら値を取得します。
- UiPath CMでのURLの取得
UiPath CMを開いて、URLから「reinfer_/」までの部分を取得し、メモしておいてください。
- UiPath CMでのAPI Tokenの取得
右上側の歯車アイコンをクリックして、MyAccountよりAPI tokenを取得し、メモしておいてください。
- アップロード先のプロジェクト名とソース名の取得
Sourcesタブよりメールのアップロード先のプロジェクト名とソース名を取得し、メモしておいてください。
UiPath Studioを利用してメールデータの取得とアップロード
以下に示すステップを通じて、UiPath Studioを利用して、メールボックスからメールデータを取得して解析します。解析したデータを組み合わせて、CMで利用できるフォーマットに変換し、アップロードします。
StudioプロジェクトにCMのアクティビティのインストール
UiPath Studioを起動し、新規プロジェクトを作成します。次に、「パッケージの管理」をクリックし、「CommunicationsMining」と入力して検索します。その後、「InternalLabs.CommunicationsMining.Activities」パッケージをインストールします。
詳細は以下の図をご参照ください。
メールの取得
連携したいメールボックスからメールを取得するために、「Get Outlook Mail Messages」アクティビティ(outlook利用の場合)をドラッグアンドドロップし、メインシーケンスに配置します。
業務の要件に応じて、「Get Outlook Mail Messages」アクティビティのプロパティを設定します。以下は参考例:
メールデータの解析と組み合わせ
次に、取得した複数のメールデータを解析し、解析したデータを組み合わせて、CMで利用できるフォーマットに変換します。
-
複数のメールを取り扱うため、「繰り返し(コレクションの各要素)」アクティビティを使用します。「項目のリスト」には、取得したメールを保存した変数
messages
を指定します。 -
メールに関連するデータも追加するため、ユーザー定義のメタデータを作成できます。メタデータに関しては、こちらページでの「user_properties」を参照ください。変数を定義し、代入アクティビティを利用して、必要なメタデータを変数に設定します。
-
ユーザー定義のメタデータを辞書型のjsonDicに保存しましたが、データをアップロードするために、それをJSONオブジェクトに変換します。「JSONを逆シリアル化」アクティビティを使用し、プロパティを以下のように設定します。
- TypeArgument:
Newtonsoft.Json.Linq.JObject
- 入力(JSON文字列):
Newtonsoft.Json.JsonConvert.SerializeObject(jsonDic)
- 出力(Json オブジェクト):
user_properties
(*この変数を新規作成する必要あり*)
- TypeArgument:
-
取得したメールデータのヘッダー、本文、およびユーザー定義のメタデータを組み合わせて、CMへのアップロード用データを作成します。
- 「Construct a Raw Email Document 」アクティビティを入れて、入力と出力を設定します。
- 入力(Email Headers):
new ParsedEmailHeaders(message.DateAsDateTime,message.Subject,message.Sender.ToString(),message.Headers("Message-id"),message.Headers("References"),message.To.ToString())
- 入力(Raw Email Body):
new RawEmailHtmlBody(message.BodyAsHtml)
- 入力(User properties):
user_properties
- 出力(Raw Email Object):
rawEmail
(*この変数を新規作成する必要あり*)
-
次は上記の作成した
rawEmail
をコレクションに追加します。- コレクションの変数
rawEmails
を新規作成します。該当変数の型をList<RawEmailDocument>
にします。 - 「Append items to collection」アクティビティを追加して、以下のように設定します。
- コレクション:
rawEmails
- 項目:
rawEmail
- コレクション:
- コレクションの変数
上記のステップで複数件のメールを解析し、CMへアップロード用のフォーマットに変換しました。
変換したメールデータをCMにアップロード
こちらで、変換したメールデータをCMにアップロードします。
-
UiPath CMから取得したURL及びAPI Tokenを指定の型に変換し、変数に保存します。
- 以下の変数を新規作成します。
- baseURL:変数の型がSystem.Uri
- secureAPIToken:変数の型がSystem.Security.SecureString
- stringAPIToken:変数の型がStringで、既定値に取得したAPI Tokenを設定します。
- URLとAPI Tokenを指定の型に変換し、変数に保存します。
- 保存先(baseURL):
new Uri("https://staging.uipath.com/uipatveuzxie/JunLiTest/reinfer_/")
- 保存する値(secureAPIToken):
new System.Net.NetworkCredential("",stringAPIToken).SecurePassword
- 保存先(baseURL):
- 以下の変数を新規作成します。
-
「Sync Raw Emails」アクティビティを使用して、変換したメールデータやメタデータをアップロードします。
ワークフローを実行して確認
作成されたワークフローを実行し、UiPath CMにて該当メールが連携されているかを確認します。
以下に示す図のように、メールボックスでのメールおよびワークフローで設定したユーザー定義メタデータがUiPath CMで確認できれば、メールデータの連携が問題なく完了したことが確認できました。