こんにちは、サーバーワークスのこけしの人、坂本(@t_sakam)です。今回は、RPAツールのUiPathを試してみます。UiPathは、ガートナーのマジック・クアドラントRPA部門でリーダーに選ばれ、ノンプログラミングで自動化ができるRPAツールの中でも特に注目されているツールです。そのため、実際にどんなことができるのか、気になっているという方もいらっしゃるかもしれません。そんなUiPathをこのブログで何回かに分けて試してみたいと思います。
第一回目は、メールの取得処理と件名による処理の条件分岐を試します。
1. プロセスの作成
まずは、開発ツールのUiPath Studioを起動し、プロセスを作成します。今回は「トランザクションプロセス」テンプレートを選択します。※テンプレートを選択せず、素のプロセスから作成することも可能です。
2. 名前を入力
適当な名前を入力して「作成」ボタンを押します。今回は「kokeshi」と入力しました。
3. プロセス作成完了
プロセスが作成されました。
4. 不要なアクテビティを削除
今回は、「Start」アクテビティと「End Process」アクテビティ以外のアクテビティを削除して、いったんまっさらな状態にしておきます。
5. 「アクテビティ」タブ
左メニュー下の「アクテビティ」タブをクリックします。ここにあるアクテビティを選んで、画面中央にドラッグアンドドロップして自動処理を構築していきます。
6. IMAP メールメッセージを取得
今回はメール取得処理をおこないたいので、「アプリの連携」 > 「メール」 > 「IMAP」 > 「IMAP メールメッセージを取得」アクテビティを画面中央にドラッグアンドドロップします。
7. メールの設定
右メニューで取得したいメールの設定をしていきます。
8. サーバー
今回は、Gmailを取得したいので、「ホスト」>「サーバー」を選択し、「imap.gmail.com」と入力して、「OK」ボタンを押します。
9. ポート
ポートは「993」と入力します。
10. パスワード
次にパスワードを入力します。パスワードはGoogleアカウントのパスワードではなく、取得したいメールアドレスのアカウントでGoogleにログイン後、以下のURLにアクセスして取得したパスワードを入力します。 https://security.google.com/settings/security/apppasswords
11. メール
「メール」欄は取得したいメールのメールアドレスを入力します。
12. 取得したメールの出力先を指定
「出力」>「メッセージ」に取得したメールの出力先を指定します。「Ctrl」 + 「K」で変数を作成します。一般的なRPAツールは、ノンプログラミングで作成できますが、「変数」などのプログラミング用語はでてくるので、プログラミングの知識はあった方がよいかもしれませんね。
13. 変数を作成
今回は、「mail_messages」という変数を作成しました。
14. 変数の確認
中央下メニューの「変数」タブで変数の確認ができます。
15. 繰り返し(コレクションの各要素)
取得したメールを1件、1件繰り返し処理で確認していきます。左メニューの「ワークフロー」>「コントロール」>「繰り返し(コレクションの各要素)」アクティビティを中央にドラッグアンドドロップします。
16. 繰り返し処理の設定
「繰り返し(コレクションの各要素)」アクティビティをダブルクリックして、詳細画面に入り、処理の設定をしていきます。「要素」欄にすでに「item」という変数が設定されているので、「コレクション」欄に先程設定した変数「mail_messages」を入力します。※「mai」と入力しようとすると、きちんと補完されます。
17. 「コレクション」欄設定完了
設定できました。
18. 型の設定
次は、繰り返し処理の詳細画面から一つ上の画面に戻って、型を設定しておきます。右メニューの「TypeArgument」のプルダウンメニューの一番下の「型の参照」を選択します。
19. System.Net.Mail.MailMessage
「型の名前」欄に「System.Net.Mail.MailMessage」と入力し、対象が絞られたら、選択して「OK」ボタンを押します。
20. 条件分岐
今回は、メールの件名に「kokeshi」と入っているか、入っていないかで処理を分けていきたいと思います。左メニューの「ワークフロー」>「制御」>「条件分岐」アクティビティを中央の繰り返し処理の本体の中にドラッグアンドドロップします。
21. 条件設定
「Condition」欄に、件名に「kokeshi」が含まれているかという条件を設定していきます。「item.Subject.Contains("kokeshi")」と入力します。
22. メッセージボックスの設定
だんだんブログも長くなってきましたので、いったん条件分岐がきちんとできているかまでを確認してまた次回続きをおこないたいと思います。件名に「kokeshi」という文字が含まれていた場合は、メッセージボックスに「kokeshi」と表示され、含まれていない場合は、「kokeshiではありません」と表示されるように設定します。左メニューの「システム」>「ダイアログ」>「メッセージボックス」を中央の「Then」、「Else」欄にそれぞれドラッグアンドドロップし、それぞれ、「kokeshi」、「kokeshiではありません」と入力します。
23. メッセージボックスの設定完了
メッセージボックスが設定できました。
24. 設定を完了させる
最後に最初の画面に戻って、「Start」アクテビティと「End Process」アクテビティを含め、全部矢印で繋ぎます。
25. 実行の前に現在の受信メールの確認
「kokeshi」という件名と「こけし」という件名の2件のメールが届いて未読状態になっています。処理を開始すると、「kokeshi」と「kokeshiではありません」のメッセージボックスがそれぞれ表示されるはずです。
26. テスト実行
それではいよいよテスト実行してみます。上メニューの実行ボタンを押します
27. 処理開始
処理を開始すると、いったんUiPath Studioが画面から消えます。
28. kokeshi
「kokeshi」と書かれたメッセージボックスが表示されました。「OK」ボタンを押します。
29. kokeshiではありません
「kokeshiではありません」と書かれたメッセージボックスが表示されました。無事2通分繰り返し処理がおこなれました。「OK」ボタンを押します。
30. 完了
また、UiPath Studioの画面が表示されました。テスト完了です。
まとめ
今回は、UiPathを使ってメール取得処理を試してみました。UiPathがどのようなツールか少しイメージしていただけたでしょうか? 今回はメールの取得と条件分岐でメールの振り分けをするところまでしか進んでいないので、まだイメージしにくいという方もいらっしゃるかもしれません。でも大丈夫です。次回は分岐した後の処理をブログにする予定ですので、お楽しみに!
いや〜、「UiPath」って本当にいいものですね!