Outlookのメールを取得のフィルターについて

Uipath初心者です。

Outlookのメールを取得する際に、フィルターである特定の日時よりもあとに受信したメールのみを取得したいです。
フィルターに何と入力すればよろしいでしょうか?
ある特定の日時はエクセルに入力しているのでそれを読み取ってGenericValue型の変数に入れております。

どなたかよろしくお願いいたします。

Outlook メール メッセージを取得 (Get Outlook Mail Messages) アクティビティの「フィルター」オプションに「[ReceivedTime] >=XXX」のように指定すれば、絞り込めます。いかにサンプルとともに情報が乗っています。

例)変数名「前回最後の受信日時」に「2021/07/16:17:00:50」が入っている場合のフィルタ
 String.Format("[ReceivedTime] >='{0}'",CDate(最後の受信日時).ToString("yyyy/MM/dd HH:mm"))

ひとつ、落とし穴があるのですが、ReceivedTimeには「秒の指定」が出来ないので注意が必要です。(重複取得することを覚悟して、実装する必要があります)

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

これの型はstringですか?GenericValueですか?

最後の受信日時をString型の変数に入れて、メール取得のフィルターに『String.Format(“[ReceivedTime] >=‘{0}’”,CDate(最後の受信日時).ToString(“yyyy/MM/dd HH:mm”))』を入れたんですが、下記のエラーが出ます。

Outlook メール メッセージを取得: Conversion from string “2021/07/01:17:00:50” to type ‘Date’ is not valid.

また、最後の受信日時をGenericValue型の変数に入れて、メール取得ののフィルターに『String.Format(“[ReceivedTime] >=‘{0}’”,CDate(最後の受信日時).ToString(“yyyy/MM/dd HH:mm”))』を入れたんですが、下記のエラーが出ます。

Outlook メール メッセージを取得: Cannot convert Generic Value to System.DateTime

「最後の受信日時」に入れている日時の書式が誤っていることが原因で変換に失敗しています。
2021/07/01:17:00:50 ではなく、 2021/07/01 17:00:50にすべきかと思います。

またGenericValue型を指定したときの処理の場合は、変換が効かないようなので一度String型に変換して上げる必要がありそうです。

1 Like