【質問】メールトリガーと条件分岐の組み合わせ方法について

初めまして、UiPathをダウンロードしたばかりの初心者です。
下記、ご教示いただけますと幸いです。

=============
★やりたい事

①Outlookのメールトリガーを使用

②メールを検知後、件名or本文より複数ある中の1つのキーワード一致で処理分岐
→例:”A” ,”B” ,”C”の中で”A”に合致したら”A”の処理に移行

③分岐後の各処理で該当サイトより資料(主にエクセル)をダウンロード

④ダウンロードフォルダに格納され次第、ファイル名を変更し指定フォルダへ格納

⑤終了(再度メールが来た際には①から再度実行)

※①③④⑤は作成できたのですが、つなぎ部分の②が上手くいかず。。(単一のキーワードであれば実行できました)

※思考イメージ画像を添付しておきます。

=============
★聞きたい事

①そもそもでUiPathで実現可能かどうか

②可能なら方法をご教示いただきたい(画像付きだと嬉しいです!!)

③不可能な場合、UiPathで実現できる他の方法を知りたい

=============

お忙しいところ恐縮ですが、ご助言いただけますと大変助かります。
情報が足りない等がございましたらご指摘くださいませ。
よろしくお願いいたします。

@Yamaguchi_00

You can check like this

{"A","B","C"}.Any(function(x) Subject.Contains(x))

This can be used in condition which returns trye if subject contains any one of tgese three values…

If you want to check exact match then use Equals instead of contains

Hope this helps

Cheers

1 Like

こんにちは

たとえば

body = args.MailMessage.Subject+vbcrlf+args.MailMessage.Body

としておいて

target = System.Text.RegularExpressions.Regex.Match(body,"A|B|C").Value

としてtargetの値に応じてSwitchアクティビティで処理を振り分ける方法があると思います。
なお上記正規表現のパターンは、正規表現の特殊文字があるときは少々工夫が必要なのでご注意ください

1 Like

ご助言ありがとうございます!!

早速試したいのですが、この式はどこに設定すれば良いのでしょうか?
また、変数の登録が必要になりますか?

初心者のため何も分からず、もう少し詳細に教えていただけるとありがたいです。。

画像付きでご説明いただきありがとうございます!!

実際に設定を試しているのですが、上手くいかず。。
メールトリガーとどのように繋げなければならないのかも分からず、大変恐縮なのですが、
もう少し詳細に教えていただけると嬉しいです。
よろしくお願いいたします。

以下のような感じになると思います。

1 Like

@Yamaguchi_00

You need to use in if condition

Cheers

1 Like

ご返答いただきありがとうございます。
画像通りに設定してみたのですが、下記2点ご質問です。

①メールトリガーとアクションは矢印で繋げないのでしょうか?(画像の仕様等であればすみません。。)

②代入部分でエラーが発生しているのですがどのように処理すればよろしいでしょうか?

→エラー内容:「代入:Object reference not set to an instance of an object.」

ちなみに変数は下記3点を登録しております。
・body : String
・args : MailEventInfo
・target : String

質問ばかりで申し訳ないのですが、ご教示頂けますと幸いです。
よろしくお願いいたします。

こんにちは

①メールトリガーとアクションは矢印で繋げないのでしょうか?(画像の仕様等であればすみません。。)

トリガースコープの中のアクションを指していますでしょうか?
基本的にトリガーアクティビティはトリガースコープの中で動作しますので、矢印でつなぐ(フローチャートのことでしょうか?)ことはできないと思います。

②代入部分でエラーが発生しているのですがどのように処理すればよろしいでしょうか?

状況がよくわからないので、使用している式やスクリーンショット等共有可能でしょうか?

ご返答ありがとうございます。

①添付画像のメールトリガー→代入への矢印を指しておりました。

②添付画像をご確認頂けますと幸いです。
使用している式は上記で教えていただいたものをそのまま使用しております。(キーワード部分のみ変更)

ご確認の程よろしくお願いいたします。

こんにちは

上図の通りトリガースコープアクティビティを使用してみてください。

1 Like

ご返答ありがとうございます。

無事トリガースコープにて設定はできたのですが、エラーが出ておりまして。。
これはどのように処理すれば良いでしょうか?

何度も申し訳ございません。
よろしくお願いいたします。

エラーの出ている式に誤りがあると思われます。
どうのような式にしているか共有可能でしょうか?

1 Like

ご返答ありがとうございます。

式としては、教えていただいた式をそのまま入力して、ABCの部分を指定したいキーワードにしております。

target = System.Text.RegularExpressions.Regex.Match(body,“A|B|C”).Value

イメージ
target = System.Text.RegularExpressions.Regex.Match(body,“週報|日報|日誌”).Value

スクリーンショット共有できませんか?おそらく実際の式に誤りがあると思いますので。

1 Like

ご返答ありがとうございます。

上記ですが、実際にUiPath上で設定している式をコピペ+キーワード部分をイメージにて記載した文言(週報、等)に変更させていただいた形になります。

ただぜひ私としても見ていただきたいのでスクリーンショットをお送りできればと思うのですが、今手元にPCが無いため、明日スクリーンショットを送ります!!

よろしくお願いいたします。

お待たせしました。
画像をお送りしますので、ご確認頂けますと幸いです。
※キーワード部分のみ伏せさせていただきます。

よろしくお願いいたします。

こんにちは

画像の解像度が低くてよくわかりませんが、変数bodyがString型ではないように見えます。
bodyの型をString型にしてみてください。

1 Like

ご返答ありがとうございます。

bodyをString型にしたところ式のエラーは解消されました!!
ありがとうございます。

ただ、新たなエラーが発生しており、
こちらはどのように処理すれば良いでしょうか?
連日本当にありがとうございます。。

どのような式が入力されているかわかるように共有可能でしょうか?
あとスクリーンショットが等倍ではないので、文字がつぶれて読み取りが困難です。
どのように画像を作成されていますか?単純にはPrtScreenキーで画面全体の画像を取得→ペイント等で不要部分をトリミングすれば良いかと思います。