Managed

Managed​ ブロックを使用すると、エラーが発生したときに​ワークフロー​内でエラーを処理できます。また、これを使用して、エラーが発生した場合でも、特定の​アクションステップ​または ​Transactions​ が実行されるようにすることもできます。

プロパティ

  • OnError​ section behavior (OnError セクション動作)​ ​OnError​ セクション内でエラーが発生した場合、その他のエラーと同様に処理するか (​[Normal error handling (通常のエラー処理)]​)、ワークフローを直ちに中止できます (​[Abort script on error (エラー時にスクリプトを中止)]​)。

  • 前者の場合はプログラムの終了前に DoAlways 部分が実行され、後者の場合は実行されません。

DoAction

これが ​Managed ブロック​のデフォルトパスです。RPA Bot では、まず ​DoAction​ セクション内ですべての​アクションステップ​が実行されます。エラーが発生した場合 (​Image search​ が失敗したなど)、​DoAction​ セクションの実行が中止され、​OnError​ セクションが実行されます。​OnError​ セクションが空の場合、​DoAction​ セクション内のエラーにより ​Managed ブロック​がエラー状態になります。

OnError

このセクションは、​DoAction​ セクション内の​アクションステップ​が失敗した場合に実行されます。​DoAction​ セクションが失敗しても、ここでエラーを処理し、状態を復元して、残りのワークフローを引き続き通常どおりに実行できるようにすることができます。​OnError​ セクション内のすべての項目が正常に実行されると、​Managed ブロック​は成功 ($run = 1) とみなされます。空の ​OnError​ セクションでは、実行状態は変更​されません​。この場合は、​Force OK State​ (セクション 3.8.4 を参照) を使用します。

ただし、​OnError​ セクション内でエラーが発生した場合、その実行は中止され、​Managed ブロック​のエラー状態 ($run = -1) は維持されます。次の処理は、​OnError​ セクションの動作の設定によって異なります。これが ​[Normal error handling (通常のエラー処理)]​ に設定されている場合、ワークフローでは、他のすべてのステップと同様に ​OnError​ セクションでエラーが処理されます。つまり、エラーは、囲んでいる ​Managed ブロック​で処理できます。 これが ​[Abort script on error (エラー時にスクリプトを中止)]​ に設定されている場合、​OnError​ セクションでさらにエラーが発生すると、ワークフローは即時中止されます。

DoAlways

Managed ブロック​内でエラーが発生したかどうかに関係なく、​Managed ブロック​の最後で ​DoAlways​ セクションが実行されます。唯一の例外は、​[OnError section behavior (OnError セクション動作)]​ が ​[Abort script on error (エラー時にスクリプトを中止)]​ に設定され、​OnError​ セクション内でエラーが発生した場合です。​DoAlways​ セクション内でエラーが発生した場合、その実行は中止されますが、​Managed ブロック​のエラー状態は変更されません。​DoAlways​ セクションの実行はエラー状態に影響しません。エラー状態は、セクションに入ったときの状態と常に同じです。

次の例は、​Managed ブロック​を使用して、一般的な問題に​ワークフロー​内で直接対応する方法を示しています。

たとえば、​Internet Explorer​ ウィンドウを開いて Web アドレスを入力するとします。まず、Run Program を使用して ​Internet Explorer​ を開始し、アドレスバーを検索して ​Internet Explorer​ が読み込まれていることを確認してから、Web アドレスを入力します。

通常、​Internet Explorer​ が開始されると、フォーカスはアドレスバーに置かれます。

Image search​ ではこれが検索されます。これが見つかった場合は、単に Web アドレスを入力して完了です。

ただし、​Internet Explorer​ はフォーカスをすぐに失うことがあるといった一般的な問題があります。つまり、アドレスバーのテキストが強調表示されずに、アドレスバーのテキストにフォーカスがあります。

Image search​ ではこれが見つかりません。また、アドレスバーにフォーカスがないため、キーストローク項目を使用して単に入力を開始することもできません。 目的の Web サイトは開きません。

Managed ブロック​により、この問題の完璧な解決策が提供されます。

Run Program​ と ​Image search​ を ​DoAction​ セクション内に配置し、Web アドレスが含まれる ​Keystrokes​ を ​DoAlways​ セクションに配置します。
パターン画像​が見つからない場合、​Managed ブロック​では ​OnError​ セクションが実行されます。ここでは、単に ​F6​ (アドレスバーにフォーカスを置くための ​Internet Explorer​ ショートカット) を押す別のキーストロークを配置します。これにより、​DoAlways​ セクションに入ったときにアドレスバーに確実にフォーカスが置かれます。
次に、Web アドレスを入力し、正しく入力されたことを確認できます。問題が解決しました。