例外
この機能はバージョンの制限を受けます。詳細については、バージョンのページを参照してください。
さまざまな理由でプロセスの実行中に例外が発生します。たとえば、次のような例外が考えられます。
- プロセス自体の誤り(例:無効な式が計算に入力された)
- 要素が一致しない(例:存在しないボタンを「押下」しようとしている)
- データに問題がある(例:どのように機能するかが分からないアカウントタイプ)
通常、例外が発生すると、プロセスが停止し、コントロールルームでそのステータスが「中止」と表示されます。場合により、例外が発生したときにプロセスが停止するのは望ましくありません。特定の状況では、例外を処理して処理を続けることができます。たとえば、ロック済みであるために特定のケースを処理できないと顧客システムから通知された場合、結果として発生する例外をトラップし、後で処理するようにそのケースにマークを付けることができます。これによりプロセスは後続のケースの実行と処理を継続できます。
処理の階層
最も重要な例外処理の概念には、その処理に階層的な性質があります。例外が発生すると、次のことが起こります。
- 現在のステージがブロック内にあり、そのブロックにリカバリーステージを含む場合、コントロールはそこに移動します。
- それ以外の場合、現在のページに(ブロックの外側で)リカバリーステージが含まれていると、コントロールはそこに移動します。
- このページが別のページから呼び出された場合(ページ参照、アクション、サブプロセス呼び出しなどとして)、元の呼び出しを行ったステージで例外が発生し、上のルールがもう一度適用されます。
- 最終的に例外が上のいずれによっても処理されない場合、例外が元の親プロセスのメインページにあるステージで必ず発生します。リカバリーステージはありません。この時点で、プロセス自体は例外状態で停止し、プロセスのステータスは[中止]としてマークされます。
リカバリー中に新しい例外が発生した場合、上のプロセスは階層の1つ上のレベルから再開します。
例外ステージ
例外ステージは、プロセスフロー中の任意の時点で例外を発生させるために使用されます。この方法で意図的に発生した例外は、処理中に発生する可能性がある通常の例外と同じように動作します。
例外ステージには、次の詳細が関連付けられています。
- 例外タイプ - 例外のカテゴリーを説明するユーザー定義のラベルです。ユーザーは「データ例外」や「タイムアウト例外」などの独自のカテゴリーを作成できます。Blue Prism製品は、すべてのプロセスおよびビジネスオブジェクトで作成されたすべての例外タイプを自動的にまとめて記憶します。これは、同じタイプがすべてのプロセス/オブジェクト全体にわたって一貫した方法で再利用できることを意味します。
- 例外の詳細 - 例外に関連する詳細を含む式です。
回復ステージ
回復ステージは、例外から回復する手段です。ページで例外が発生し、そのページに回復ステージが含まれている場合、プロセスフローはそこで続行されます。プロセスフローが回復ステージに転送されると、プロセスはリカバリーモードになり、再開ステージになるまで、またはさらに例外が発生するまでリカバリーモードのままです。リカバリーモードにある間に別の例外が発生した場合、その例外は同じリカバリーステージでキャッチされるのではなく、代わりに次のレベルに「バブルアップ」します。
再開ステージ
再開ステージはリカバリーが終了したことを示すために使用され、通常の処理は継続しています。通常、回復ステージの後には、(例外のタイプに応じて)さまざまなタイプのクリーンアップにつながる決定/選択ステージがいくつか続きます。その後、これらのステージをメインフローにリンクして戻せます。これは再開ステージを介して実行する必要があります。再開ステージがない場合、発生したそれ以上の例外は同じ回復ステージでは処理されませんが、実行中の例外処理がないかのように次のレベルにバブルアップします。再開ステージを通過すると、通常の例外処理が再度行われます。
ブロック
ブロックは、その中に完全に収まるすべてのステージをグループ化した矩形の領域です。ブロックには、そのブロック内で発生した例外を処理する独自の回復ステージを含めることができます。
視覚的には、ブロックは矩形として表示され、内部領域は影付きで表示されます。ブロックの左上隅のラベルにも名前があります。これは、ブロックのプロパティフォームで利用可能な唯一のフィールドです。
ツールバーからブロックを選択すると、マウスを使って必要なサイズにドラッグして新しいブロックを作成できます。ブロックは、四隅のいずれかをドラッグしてサイズ変更できます。オーバーラップはブロックのエラーです。オーバーラップするブロックがある場合、それらは[プロセス検証]に表示されます。
例外関数
式エディターの関数ツリービューには、ExceptionText()、ExceptionDetail()、ExceptionStage()という3つの例外関数を含む、例外と呼ばれる追加の分岐が含まれます。これらの関数は、プロセスがリカバリーモードにあるときに計算または決定から使用できます。
さらに、3番目のアイテム「Types」が存在します。これは展開可能で、以前に使用済みのすべての例外タイプを含みます。ツリービューからこれらのアイテムをドラッグすると、文字列定数、たとえば「UserNameTooLong」が式ビューに貼り付けられます。
例外メッセージダイアログ
通常デバッグ中にポップアップ表示される例外メッセージダイアログは、例外がリカバリーステージによって処理される場合は表示されません。代わりに、プロセスフローはリカバリーステージにジャンプします。さらに、ダイアログでポップアップしていたメッセージが、プロセススタジオのステータスバーの上に表示されるようになります。
ログ履歴ビューアー
ログ履歴ビューアーには、ステータスバーの右側にあるボタンをクリックしてアクセスできます。このボタンをクリックすると、ログ出力の最後の10行を表示するテキストボックスがポップアップ表示されます。これは、何が例外の原因となったか、またはサブページで例外が発生したときにどこで例外が発生したかを特定する必要がある場合に役立ちます。