Outlook MailMessage
Outlookに設定されているアカウントからメールを読み取るため、強制にOutlookが起動されます。 なのでOutlookが起動している前提で作らないといけません。
Outlook機能を使うためFilter機能もOutlookからサポートしている形式が使えます
Filter項目に使える例
- “[subject] = ‘対象の件名'”
- 件名に「RE:」があっても指定不要
- “[ReceivedTime] >= ’14/02/2018′”
- “[Size] >= ‘22000’”
- 本文+添付が22000Byte(22KB)以上(本文だけでも容量計算)
- “[ReceivedTime] >= ’05/01/2017′ AND [Size] >= ‘22000’”
参考:https://uipath.site/use/receivemail.html
Containsはデータが入っているかを判断するため一部が一致してもTrueになります。 しかし大文字と全角などは区分するので使用には注意が必要です。
strA=”009_Yamada_Taro” strA.contains(“Suzuki”).ToString *Suzukiは含むか? →False *Boolean値で返す strA.contains(“Yamada”).ToString *Yamadaは含むか? →True *Boolean値で返す
参考:https://www.effigent.jp/uipath_string/
https://forum.uipath.com/t/parallel/53985/2
今回の問題
- 並列の基本概念はお互いに関係ないプロセスを走らせる場合利用するのにOutlook MailMessageを読み取るのに並列でPopupメッセージの処理を走らせた。 → 理由はGet Outlook Mail Messageをダイレクトに実行するとたまに発生するポップアップの処理のために並列を使ってたが逆にユーザーには混乱を起こす理由になった。 → 処理順番:Get Outlook MailMessage によるOutlook起動→状況によるPopup発生、Popup時はGet Outlook MailMessageが待機状態→ポップアップ解除→待機状態のGet Outlook MailMessageが再開
- 推奨フロー →Outlook起動(Open Application)→IfでPopup処理→Get Outlook MailMessage実行
→ 外すとActivateされているブラウザが対象になった場合には正常に動くが、他のアプリケーションがActivateされている場合には実行失敗になる。 →チェックをしておくと多数のブラウザ及びアプリケーションが起動中でもSelectorの対象がActivateされる
→ On Element Appearは次に必ず True状態に何かをしないといけない →Element Existsは変数に状態を入れておいていつでも使えるので使い勝手がよくいくつかのElement Existsの調合などができるので柔軟な使い方が可能。 ※もちろんElement ExistsはDo WhileとIfなどを利用してOn Element Appearと同じ動作が可能だが、On Appearは一つのActivityで作れるので簡単。 ※On Element Appearで認識できないSelectorのせいで無限待ち状態になる可能性があるため使用には注意が必要
→18.4.5には両方のボタンがあるが2019.8.0には「引数インポート」ボタンのみ。というのは最初の作りでは引数編集のみだったのが誤りが多くて引数インポート機能を入れたがまだ引数編集ボタンをなくしてないバージョンだと思う。説明には引数編集ボタンの使い勝手がよくなくてインポート機能を追加した途中のバージョンなのでインポートを使うように誘導するのがいいと思います。
→ 同じプロジェクトなのにファイルブラウザでダブルクリックすると新しいUiPathが立ち上がり、PCに負担がかかるのとBreak Pointを入れてテストがうまくできなくなるので左のProjectを開いてファイルを開くようにガイドした方がいいと思います。
→ いくつかのファイルを修正する場合必ずセーブしてから次のファイルに行くようにガイドすると解決
→ 直接にやり取りしてもいいが、規模が大きくなるとInvokeファイルの中にInvokeが入ると管理が難しくなるためできるだけMainを介して管理できるようにする必要がある。このようにしても毎回使ってるFunction代わりのxamlファイルはどこでも使ったりするのでプロセス(業務)用のxamlかFunction用のxamlなのかを判断して管理することを推奨する。
Switchの条件には「""」をいれると「""」も文字として比較するため見つからない。
- DataTableのFind機能を使うにはDataTable.Primarykeyを設定しなければなりません。
- Findが完璧ではないため数字と文字が混在した場合結果が出ないケースがあります。(1/0などの検索)
- Findより遅いが便利な機能はFilter DataTable Activityを推奨します。
- システム上日本の日付に付く「/」が日付として認識できないケースがあるためまず文字列として読み取ってから日付として返還することを推奨する。 → replace "/" to "-" → datetime.Parse(replaced_datetime).toString("yyyy/MM/dd")
- Workflowをイメージかする。
- Excelに吐き出した後Excelに表示されたActivityにコメントをつける → このように整理をするとActivityを検索して修正することが可能(必ずActivityが検索しやすくネーミングルールを決める)
- Outlook Mail to Excel
- Outlook Filter
- UiPath Study (Ko)
- UiPath Study (Ja)
- Go to giip service Page : http://giipweb.littleworld.net
- Documentation : https://github.com/LowyShin/giip/wiki
- Sample automation scripts : https://github.com/LowyShin/giip/tree/gh-pages/giipscripts
See more : https://github.com/LowyShin/giip/wiki
- Token exchanges : https://tokenjar.io/GIIP
- Token exchanges manual : https://www.slideshare.net/LowyShin/giipentokenjario-giip-token-trade-manual-20190416-141149519
- GIIP Token Etherscan : https://etherscan.io/token/0x33be026eff080859eb9dfff6029232b094732c52
If you want get GIIP, contact us any time!
Other Languages