プロセス/オブジェクト - 例外タイプ

さまざまな理由でプロセスの実行中に例外が発生します。たとえば、次のような例外が考えられます。

  • プロセス自体の誤り(例:無効な式が計算に入力された)
  • 要素が一致しない(例:存在しないボタンを「押下」しようとしている)
  • データに問題がある(例:どのように機能するかが分からないアカウントタイプ)

通常、例外が発生すると、プロセスが停止し、Control Roomでそのステータスが「中止」と表示されます。場合により、例外が発生したときにプロセスが停止するのは望ましくありません。特定の状況では、例外を処理して処理を続けることができます。たとえば、ロック済みであるために特定のケースを処理できないと顧客システムから通知された場合、結果として発生する例外をトラップし、後で処理するようにそのケースにマークを付けることができます。これによりプロセスは後続のケースの実行と処理を継続できます。

処理の階層

最も重要な例外処理の概念には、その処理に階層的な性質があります。例外が発生すると、次のことが起こります。

  • 現在のステージがブロック内にあり、そのブロックがリカバリーステージを含む場合、コントロールはそこに移動します。
  • それ以外の場合、現在のページに(ブロックの外側で)リカバリーステージが含まれていると、コントロールはそこに移動します。
  • このページが別のページから呼び出された場合(ページ参照、アクション、サブプロセス呼び出しなどとして)、元の呼び出しを行ったステージで例外が発生し、上のルールがもう一度適用されます。
  • 最終的に例外が上のいずれによっても処理されない場合、例外が元の親プロセスのメインページにあるステージで必ず発生します。リカバリーステージはありません。この時点で、プロセス自体は例外状態で停止し、プロセスのステータスは[中止]としてマークされます。

リカバリー中に新しい例外が発生した場合、上のプロセスは階層の1つ上のレベルから再開します。

例外ステージ

例外ステージは、プロセスフロー中の任意の時点で例外を発生させるために使用されます。この方法で意図的に発生した例外は、処理中に発生する可能性がある通常の例外と同じように動作します。

例外ステージには、次の詳細が関連付けられています。

  • 例外タイプ - 例外のカテゴリーを説明するユーザー定義のラベルです。ユーザーは「データ例外」や「タイムアウト例外」などの独自のカテゴリーを作成できます。Blue Prism製品は、すべてのプロセスおよびビジネスオブジェクトで作成されたすべての例外タイプを自動的にまとめて記憶します。これは、同じタイプがすべてのプロセス/オブジェクト全体にわたって一貫した方法で再利用できることを意味します。

    新しく作成された例外タイプを[例外タイプ]ドロップダウンで選択できるようにするには、オブジェクトを保存する必要があります。

  • 例外の詳細 - 例外に関連する詳細を含む式です。
  • 現在の例外タイプと詳細を保持:このオプションを回復ステージで使用することで例外の詳細を保持し、プロセスのクリーンアップ後でもセッションログでエラーの正確な説明を保持できます。有効にすると、元の例外からタイプと詳細が保持されるため、[例外タイプ]フィールドと[例外の詳細]フィールドが無効になります。これは、例外のトラブルシューティングとエラーの原因の特定に役立ちます。

回復ステージ

回復ステージは、例外から回復する手段です。ページで例外が発生し、そのページに回復ステージが含まれている場合、プロセスフローはそこで続行されます。プロセスフローが回復ステージに転送されると、プロセスはリカバリーモードになり、再開ステージになるまで、またはさらに例外が発生するまでリカバリーモードのままです。まだリカバリーモードにある間に別の例外が発生した場合、その例外は同じリカバリーステージでキャッチされるのではなく、代わりに次のレベルに「バブルアップ」します。

再開ステージ

再開ステージはリカバリーが終了したことを示すために使用され、通常の処理は継続しています。通常、回復ステージの後には、(例外のタイプに応じて)さまざまなタイプのクリーンアップにつながる決定や選択のステージがいくつか続きます。その後、これらのステージをメインフローにリンクして戻せます。これは再開ステージを介して実行する必要があります。再開ステージがない場合、発生したそれ以上の例外は同じ回復ステージでは処理されませんが、実行中の例外処理がないかのように次のレベルにバブルアップします。再開ステージを通過すると、通常の例外処理が再度行われます。

ブロック

ブロックは、その中に完全に収まるすべてのステージをグループ化した矩形の領域です。ブロックには、そのブロック内で発生した例外を処理する独自の回復ステージを含めることができます。

視覚的には、ブロックは矩形として表示され、内部領域は影付きで表示されます。ブロックの左上隅のラベルにも名前があります。これは、ブロックのプロパティフォームで利用可能な唯一のフィールドです。

ツールバーからブロックを選択すると、マウスを使って希望のサイズにドラッグして新しいブロックを作成できます。ブロックは、四隅のいずれかをドラッグしてサイズ変更できます。ブロックがオーバーラップするのはエラーです。オーバーラップするブロックがある場合、それらは[プロセス検証]に表示されます。

例外関数

式エディターの関数ツリー表示には、ExceptionText()、ExceptionDetail()、ExceptionStage()という3つの例外関数を含む、例外と呼ばれる追加の分岐が含まれます。これらの関数は、プロセスがリカバリーモードにあるときに計算または決定から使用できます。

さらに、3番目のアイテム「Types」が存在します。これは展開可能で、以前に使用済みのすべての例外タイプを含みます。ツリー表示からこれらのアイテムをドラッグすると、文字列定数、たとえば「UserNameTooLong」が式ビューに貼り付けられます。

例外メッセージダイアログ

通常、デバッグ中にポップアップ表示される例外メッセージダイアログは、例外がリカバリーステージによって処理される場合は表示されません。代わりに、プロセスフローはリカバリーステージにジャンプします。さらに、ダイアログでポップアップしていたメッセージが、Process Studioのステータスバーの上に表示されるようになります。

ログ履歴ビューアー

ログ履歴ビューアーには、ステータスバーの右側にあるボタンをクリックしてアクセスできます。このボタンをクリックすると、ログ出力の最後の10行を表示するテキストボックスがポップアップ表示されます。これは、何が例外の原因となったか、またはサブページで例外が発生したときにどこで例外が発生したかを特定する必要がある場合に役立ちます。