お疲れ様です。
タイトル通りのことなのですが、既にお恥ずかしいのですが、半年以上も悩んでおります。
●処理
1)社内のoffice365 ブラウザー(以後Aページと記載)で作成されているページを開く。(ブラウザーを開くアクティビティ使用)
2)Aページにアタッチする。(ブラウザーにアタッチアクティビティ使用)
2-1)Aページ内のボタンをクリックして一覧.xlsxをエクスポートする。
●現在の状況
・自身の端末、あるメンバー端末では、正常に動作する。
・本番環境(オーケストレイター使用)、、、処理【2)】でトライキャッチで、キャッチされエラーとなる。
●ローカル時の目視の動作は、
1)columnが開く。
2)office365に画面が切替わり、ユーザid/passの認証
3)Aページが開く。
4)Aページ内のボタンをクリックし、一覧.xlsxをエクスポートされる。
●自身の対応
・本番環境の処理速度を考慮し、処理間に、待機アクティビティを入れたが、ダメでした。
かなり、行き詰ってます。どなたか、お力をお貸しして頂けないでしょうか?
宜しくお願い致します。
Yoichi
(Yoichi)
March 6, 2023, 1:18am
2
masaaki.kasahara:
社内のoffice365 ブラウザー
これは何を指していますでしょうか?SharePoint Online? Web Outlook ?
Office365関連のブラウザ経由の画面はアップデートに伴い変化しますし、場合によってはMS側がA/Bテストのようなことも実施しますので、ブラウザでのアクセスでの自動化はあまりお勧めできないケースもあります。
可能であればMicrosoft Offce365 Activities packageを使った方がよいかと思います。
いずれにしましても可能であればもう少し具体的な情報を共有いただくとよいかと思います。
与一さん
いつもお世話になっております。お返事ありがとうございます。
ご確認の件ですが、
これは何を指していますか?SharePoint Online? Web Outlook ?
→SharePoint Onlinかと思います。
・詳しい情報は、社内システム内の個人情報に係るため申しにくいのですが、
実現したことは、社内システムないのページから、マイナンバー一覧をエクスポートし、
一覧内のマイナンバーに対応する日付を外部ページから、取得して、エクスポートした一覧へ書き込む。この作業を人間が行うとかなりの時間を費やすため、
ロボット処理で、一覧の取得、一覧の編集を行う。
といった、ざっくりとした処理となります。
共有らしい情報では、ありませんが、宜しくお願い致します。
追伸
与一様
Office365関連のブラウザ画面は、目的は、画面の内のボタンをクリックし、
一覧を取得することが目的であり、画面内の情報をアップデートはいたしません。
Yoichi
(Yoichi)
March 6, 2023, 3:07am
5
こんにちは
上記で記載しましたアップデートとは、Sharepoint側の画面側の設計がアップデートにより変わる可能性があることを指しています。つまり、現時点で動作しているものが、ある日O365側のアップデートに伴い動かなくなる可能性があるという意味です。このことからUiAutomationによる自動化よりは、APIベースのMicrosoft.Office365.Activities packageを使用した方が、より安定した動作が実現出来る可能性があるということになります。(ただし実現したいことが、かならずしもできるかはわかりませんが)
ブラウザでの動作ですが、上記の流れを見ますと、ブラウザをアッタッチは、必ずしも必要ではない、あるいはブラウザを開くで出力したBrowserインスタンスをそのまま入力にすれば、エラーにはならないように思えます。
このあたり可能であれば、現状のワークフローのスクリーンショット等共有いただけるとよいかと思います。
与一様
お疲れ様です。
ご指示のキャプチャ貼り付けます。
●エラー箇所
※ローカルで、直接実行してもエラーにならない。
しかし、本番環境のオーケストレイターからの場合、エラーとなる。
キャプチャの【Attach Browser Agent Manager・マイナンバー確認用】処理
因みに、【 Microsoft Offce365 Activities package】を使用しない方法は、有りますか?
以上、ご確認をお願い致します。
Yoichi
(Yoichi)
March 6, 2023, 5:21am
7
こんにちは
これはOffice365ではなくDynamics365ですね。(SaaSなのでAPIベースのアプローチが可能ならその方がベターなのは同じですが)
取り急ぎの確認になりますが、エラーの内容とそれを出力しているアクティビティは何になっていますでしょうか?(アタッチブラウザでしょうか?)
なおワークフローのコメント中に、別ページに遷移しているからアタッチブラウザを使用と記載していますが、同一タブを使用している限りは、OpenBrowserで出力したBrowserインスタンスを、そのまま入力とすれば動作するはずです。逆に別タブで開く等をしている場合は、アタッチブラウザが必要になります。(ちなみに、このあたりはモダンデザインのブラウザを使用アクティビティを使うともう少し範囲が広くすることも可能です。)
与一さん
お疲れ様です。
・エラー内容
・エラーアクティビティ
【Attach Browser Agent Manager・マイナンバー確認用】
追伸
・上記アタッチアクティビティのコメントは、他のbotからの流用で、直してませんでした。
また、ブラウザで開くアクティビティの出力UIブウザをアタッチの検索範囲に指定してます。
Yoichi
(Yoichi)
March 6, 2023, 6:05am
9
こんにちは
上記であれば単純に動作しない端末で、問題となっているセレクターを取得してみて、差異確認してみてはと思います。
(一時的にStudioのライセンスを持ってくる、UiExplorerを導入する、あるいはExportUiTreeアクティビティで必要な情報を収集する等が考えられます)
お疲れ様です。
アドバイスの件ですが、エラーが発生している本番環境(オーケストレイター)の起動手続きが
一日かかってしまうため、すぐに、検証が出来ません。申し訳ありません。
因みに、ブラウザーを開く。→アタッチ間が本番端末の処理速度が速くて、
エラーになることはありますか?
だとすれば、ブラウザーを開く。→アタッチ間に待機アクティビティを用意し、数秒
待機させることは、無駄でしょうか?
Yoichi
(Yoichi)
March 6, 2023, 7:16am
12
こんにちは
この間の画面遷移がどのようになっているかにもよりますが、アタッチブラウザのエラーはブラウザを開くから一定のタイムアウト時間後に発生していると思いますので(ログから確認できると思います)、あまり意味はないように思えますが、原因の切り分けのために待機を試しに入れてみるのは、常套手段の一つですので、試すこと自体は良いかと思います。
与一さん
お疲れ様です。先日は、アドバイスありがとうございました。
・対応としては、【ブラウザーを開く】アクティビティ・【アタッチ】アクティビティ間に
【待機】アクティビティ(20秒)を追加
・アタッチ】アクティビティ内の【ボタンクリック】アクティビティのプロパティ<【ターゲット】
<【準備完了まで待機】箇所を『WaitForReady.INTERACTIVE』から『WaitForReady.COMPLETE』
に変更
上記修正を行いましたら、初めて、本番環境でも動作いたしました。
これで、この案件は、Closeとさせていただきます。
ありがとうございました。