Flows for APEXでは、ワークフローの実行中に発生したエラーをフロー・モニターから確認することができます。エラーの原因を取り除いた後、エラーが発生したステップから再実行することもできます。
実際にエラーを発生させて、フロー・モニターの使用方法を確認します。
ステータスがdraftのフロー・ダイアグラムを開き、タスク従業員への通知のPL/SQLコードをnull;から以下に変更します。このタスクが実行されるとき、つまり上司または部門長によって経費精算の申請が却下されたときに、タスク従業員への通知でエラーが発生します。
begin
raise_application_error(-20001,'エラー発生');
end;
変更の適用を実行し、フロー・ダイアグラムの変更を保存します。
APEXアプリケーション経費精算 - 開発中を実行します。従業員で経費精算を申請し、上司によって、その申請を却下します。ステータスはdelined_by_mgrになります。
declined_by_mgrをクリックし、ワークフローの進捗をビューワーで確認します。タスク従業員への通知が赤くマークされ、エラーが発生していることがわかります。
Flows for APEXのアプリケーションを実行し、インスタンスのステータスを確認します。
経費精算のバージョン2に、エラーが発生しているインスタンスが1つ、レポートされています。この数値をクリックします。
画面がフロー・モニターに移り、エラーが発生しているインスタンスの一覧とフロー・ダイアグラムが表示されます。詳細をクリックして、特定のインスタンスについてエラーの詳細を表示させます。
エラーが発生したワークフロー(プロセス・インスタンス)の詳細が表示されます。履歴の表示やフロー・ダイアグラムのタスクをクリックすると、エラーの詳細を確認できます。
履歴の表示の実行結果です。ユーザー定義例外の発生が報告されています。フロー・ダイアグラムで赤くなっている、タスク従業員の通知をクリックしても同じ表示ができます。
インスタンス・イベントの変数より、プロセス変数の追加、変更、削除も可能です。画面には対話グリッドが使われています。
今回はPL/SQLコードのエラーなので、プロセス変数の編集は行いません。フロー・ダイアグラムを再度開き、タスク従業員への通知のPL/SQLコードをnull;に戻します。
変更の適用を実行し、フロー・モニターの画面に戻ります。
errorが発生しているプロセスの詳細を表示し、再起動を実行します。
確認画面が表示されるので、コメントを入力し確認をクリックします。
タスク従業員への通知が再実行されます。今度はエラーは発生しないので、フローはタスク申請の修正に移り、ステータスもrunningに変わります。
タイマー・イベントが有効であると、1分後にはワークフローは完了します。
ワークフローの処理の途中でエラーが発生した際、それまでに行われた処理をすべてキャンセルしてやり直すのは、現実的で無い場合も多いです。そのため、それぞれのステップでエラーを修正し、そのステップからワークフローを再実行できるのは、とても有用です。