cancel
Showing results for 
Search instead for 
Did you mean: 

Create Workbookエラーの対応方法

JuriObata
Level 3
Create Workbookで,新規Excelファイルを作成できません。対応方法をご教授願います。
以下,詳細です。

■エラー内容
Internal : Could not execute code stage because exception thrown by code stage:呼び出し先が呼び出しを拒否しました。 (HRESULT からの例外:0x80010001 (RPC_E_CALL_REJECTED))

■詳細
Create Instance(handle:1)>Create Workbook でエラーが表示される。
エラー表示後,実行するとWorkbook Name:Book2 となり進む。
Showで「Book1」「Book2」が表示される。

タスクマネージャーを確認すると,1つのインスタンスに2つのプロセスが実行されている。

12 REPLIES 12

HidetoshiSuzuki
Level 5
実際の操作手順が少し呑み込めていないのですが、RRでの実行もスタジオでステップ実行しているということでしょうか?
というのは資料のフローをそのまま通常のコントロールルーム実行した場合、1回目のエラーの時点で止まってしまいそもそも2回目のCreate Workbookが行われないと思います。
もしくは資料のものは簡略化版で、実際には例外時のリトライが挟まっている形でしょうか。

HRESULT からの例外:0x80010001 (RPC_E_CALL_REJECTED) はExcelがビジー状態のときにBPから操作しようとすると汎用的に起こるエラーで、
原因は様々ですが
一番よくあるのはExcelが何か起動/ファイルオープン時の処理を行っている最中にBPから操作をしてしまうことです。
操作手順によっては単にウェイトを入れて対応することもできるのですが、厄介なのがExcel VBOのCreateやOpenは開いたExcelをそのままActivateしようとするので、
このActivateがエラーを引き起こすことがあります。(Activateされないとそれはそれで不便なのでこの仕様を否定するものではないです)
また人間が操作する前提のダイアログが出現するなどのケースでは、操作するまでいつまでもExcelはビジー状態ということもあります。
起動時によくあるのはライセンスの有効期限が切れたので認証せよ、というものですね。
人間でExcelを開いたり新規作成したりしてみて、気になるダイアログ等が出ないか確認してみるのが重要です。

どちらにせよ、オープン時のRPC_E_CALL_REJECTEDは、実際にはファイル新規作成/オープンは終わっていて、activateだけが失敗した状態を引き起こします。
したがってそのファイルを閉じずに2回目のCreateを行うとBook2が出現する挙動はある意味自然なものです。
RPC_E_CALL_REJECTEDの原因が追究出来ればよいですが、不可能な場合には例外処理ロジックの中で、作ってしまったものを閉じるか、
もしくはこのエラーが起こっても多分ファイルは出来ていると考えてそのまま処理を続行するという仕組みを作るとよいでしょう。

HitoshiNamiki
Level 5
こんにちは。なかなか同じ事例が無いようですね。
Blue Prism のサポートデスクにはお問合せしましたか?もしまだであれば聞いてみるとよいと思いますよ^^

もう1つ同じエラーになった事例を思い出したので参考までにお伝えしますね。
ExcelのCOMアドインが悪さをして、「RPC_E_CALL_REJECTED」が発生することがあります。
次の手順でCOMアドインをいったん無効にして試してみてはいかがでしょう。
(1) Excelを開き、[ファイル > オプション > アドイン]をクリックします。
(2) [管理]から「COM アドイン」を選択して、[設定]ボタンをクリックします。
(3) 使用できるアドインの一覧が表示されます。チェックがついているものが有効なCOMアドインです。
(4) チェックのついているCOMアドインのチェックをいったん外します。
(5) Excelを終了します。
(6) BPの動作を確認してみます。

無効化を試す前に、ランタイムリソースと開発PCで有効になっているCOMアドインを比較してみるといいですね。

弊社の事例としては、Obataさんと同じように急にエラーがでるようになったんですね。
調べたところ、あるミドルウェアがアップデートされて、そのCOM アドインが更新されたことによって、BPのMS Excel VBO が動作しなくなりました。
たしか、エラーの発生タイミングも同じようなところだったと思います。
現在は、対象のCOM アドイン を無効にして運用しています。

※当回答は個人的な見解です。見当違い等があってもご容赦ください。あくまで自己責任でお願いいたします。
※当回答は個人的な見解です。間違い等があってもご容赦ください。あくまで自己責任でお願いいたします。 [FirstName] [LastName] Application Developer Utsunomiya, Japan

JuriObata
Level 3
Suzuki様

ご返信いただき、ありがとうございます。
ご認識通り、コントロールルーム実行では、1回目のエラー時点で止まりました。資料は、エラー発生部分のフローを抜き出して、RRでステップ実行で検証した結果です。実際には例外時のリトライが挟まっています。

オブジェクトの詳細動作について、ご教授いただき、ありがとうございます。
Excelがビジー状態のときに発生するエラーとのこと、承知いたしました。
ウェイトではないのですが、Sleep 3秒をCreate Workbook前に入れて検証した場合も、同じエラーとなりました。人間でExcel新規作成し開いても、ダイアログは表示されなかったため、なぜビジー状態なのか判明しませんでした。

資料のExcel挙動は自然なものであるとのこと、ご教授いただき、ありがとうございます。オブジェクトの動作を理解していなかったため、エラー原因のヒントがあるのではという認識で記載しておりました。
Excelを複製し、開く操作には問題なかったため、実際のフローは、新規作成せずにテンプレートファイルを複製して編集するフローに変更いたしました。


Namiki様

ご返信いただき、ありがとうございます。
事例をご共有いただき、ありがとうございます。
ランタイムリソースのCOMアドインを確認しましたが、全て無効済みでした。
開発PCのCOMアドインはTeamsアドインのみ有効でしたが、ランタイムリソースにはTeamsアドインがありませんでした。(今回のエラーには関係なさそうです。)

Blue Prismのサポートデスクへ問い合わせることを検討いたします。