kao
1
お世話になります。
並列処理内にある「マクロを実行」アクティビティ実行時に、処理にあまりにも長い時間が掛かる場合はタイムオーバーと判断して後続の処理に進みたいのですが、うまく行きません。
添付画像のように並列アクティビティの左側に「マクロを実行」、右側にマクロ終了後のメッセージに応じてマクロ結果を判別する「結果判別処理」をセットしています。また規定の時間が経ってもいずれのメッセージも表示されない場合は「結果判別処理」の方でタイムオーバーと判別させています。
メッセージが表示された時はOKをクリックして後続の処理に進みます。
しかし規定時間超過時は右側の「結果判別処理」ではタイムオーバーと判別されますが、左側の「マクロを実行」が終わらず、後続の処理に進んでくれません。
タイムオーバー時にマクロ実行を終了して次の処理に進ませるにはどのようにすればよいでしょうか。
Yoichi
(Yoichi)
2
こんにちは
マクロ実行部分を別ワークフローとして切り出して、ワークフローファイル呼び出しアクティビティで、分離オプション付きで呼び出してみてください。
タイムアウト計測は並列アクティビティの別のレーンでも良いですし、ワークフロー呼び出しアクティビティのプロパティでも良いかと思います。
kao
3
Yoichi様
ありがとうございます。ご教示いただいた内容がうまく呑み込めなくて時間が掛かりましたが、ようやくうまくいきました。
⇒最初、ExcelAplicationScopeの中から「マクロを実行」アクティビティだけを切り出してしまいExcelAplicationScopeエラーが発生したので、ExcelAplicationScopeごと切り出し、
⇒プロパティの「分離」にチェックを入れて、並列の右側にセットしました。
並列の左側には前回と同じように結果判別処理を入れました。
左側の呼び出しアクティビティにタイムアウト時間を設定して「エラー発生時に実行を継続」にチェックを入れ、右側でもタイムアウト判別させてその際の処理をセットし、並列を抜けたら残りの処理を行うようにしました。
ご教示ありがとうございました!
system
(system)
Closed
4
This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.