実稼働環境でのエラーの処理

エラーを発生時に適切に処理するようにプロセスを設計できます。

  • 実行時にプロセスデータを監視するには、Variable Logger サービスを使用します。

  • 実行エラーを処理するには、イベントキャッチを使用します。

  • 望ましくない状況が発生したときに実行を中断するには、Stall サービスを使用します。

実行エラー

実行エラーが発生すると、プロセスインスタンスは停止します。プロセスインスタンスは、次のいずれかの理由で処理を完了できません。

停止した操作のエラー

停止した操作のエラーは、プロセスバージョンの操作が実行時に失敗したときに発生します。例えば、Set Value サービスからの execute 操作では、文字列値を float データ型のプロセス変数に割り当てようとします。この値は無効であり、操作は停止します。

停止したブランチのエラー

停止したブランチのエラーは、ルーティング条件にエラーがある場合に発生します。例えば、フォームの値を使用するルートに条件が設定されている場合があります。ルート条件は数値に基づきますが、フォーム値は誤って文字列値として入力されています。このエラーにより、ブランチは停止します。

管理コンソール内から、停止した操作のエラーまたは停止したブランチのエラーのリストと詳細を表示できます。停止した操作またはブランチの名前が表示されます。トレースバックの詳細を表示して、その情報を問題の原因の特定に役立てることができます。

実装エラー

プロセスバージョンの実行が正常に完了しても、プロセスバージョンが設計どおりに動作しない場合は、実装エラーが発生します。例えば、すべての高リスクローンの申し込みをマネージャーにルーティングするルート条件があり、マネージャーにこれらのローン申し込みがルーティングされない場合は、プロセスバージョンにエラーがあります。実装エラーには、計算エラーと状況エラーの 2 つのタイプがあります。

計算エラー

計算エラーは、コマンドを実行してエラーが発生した場合に発生します。例えば、式内の関数で誤ったデータ型のパラメーターが使用されている場合、ルーティング条件でエラーが発生することがあります。エラーが発生すると、関連するブランチまたはアクションは、AEM forms 管理者が介入するまで停止します。プロセスバージョンで使用されるブランチのタイプによっては、計算エラーの影響が軽減される可能性があります。

状況エラー

状況エラーは、プロセスバージョンが設計どおりに動作しても、プロセスバージョンの実行中に望ましくない問題が発生すると、発生します。例えば、プロセスバージョンによって、タスクが特定のユーザーグループ内のユーザーにランダムに割り当てられるとします。そのユーザーが特定時間までにタスクを完了しない場合、そのタスクはグループ内の同じユーザーに誤って再割り当てされます。

状況エラーは、タスクが同じユーザーに再割り当てされた場合に発生します。状況エラーを回避するために、その状況が発生する前にブランチを停止させることができます。その後、管理者が介入して状況の修正を試みることができます。

Variable Logger サービスを使用した変数の監視

実稼働環境で実行時にプロセス変数の値を監視するには、Variable Logger サービスに用意されているログ操作を使用します。ログ操作は、プロセスの特定のポイントで変数値をファイル、標準出力または AEM forms サーバーログに書き込みます。

テスト時の変数値の表示について詳しくは、 プロセスの記録と再生 を参照してください。

例えば、次のプロセスダイアグラムには、Assign Task 操作後のログ操作が含まれています。ログ操作後、Assign Task 操作で取得されたデータが Set Value サービスの execute 操作によって処理されます。ログ操作は変数データをファイルに保存します。execute 操作が実行時に停止した場合、ログに記録された変数値を使用してエラーをトラブルシューティングできます。

ログ操作によって、プロセス内の各変数に関する次の情報が報告されます。

  • XPath 式としての変数の名前

  • 変数のデータ型

  • 変数の値

  • ログ操作が実行されたプロセスインスタンスのプロセス識別子(PID)

  • ログ操作の操作識別子(ActionID)

次のテキストは、log3 というログ操作によるログエントリの例です。log3 操作は ActionID が 37 で、PID が 13 のプロセスインスタンスで実行されました。プロセスには、numberVar および listVar という 2 つの変数が含まれています。

[PID:13] [ActionID:37] Action Name: "log3" Start... 
[PID:13] /process_data/@numberVar - java.lang.Float: 100000.0 
[PID:13] /process_data/@listVar: null 
[PID:13] [ActionID:37] End!

ログ操作について詳しくは、 log 操作 を参照してください。

例外イベントキャッチを使用したエラーの処理

例外イベントキャッチを使用すると、プロセスは操作の実行時に発生したエラーに対応できるようになります。例えば、例外イベントがキャッチされると、プロセスは情報をログファイルに書き込んだり、電子メールを AEM forms 管理者に送信したりできます( イベントスローの取得 を参照)。

次のプロセスダイアグラムでは、Remove PDF Password Encryption 操作を使用して PDF ドキュメントを復号化し、Write Document 操作を使用してハードドライブにドキュメントを保存しています。ドキュメントの復号化時に EncyrptionServiceException 例外が発生した場合、Send With Document 操作は電子メールを送信して管理者に通知します。

Stall サービスを使用した状況エラーの処理

予想される状況エラーの発生を防ぐには、Stall サービスに用意されている execute 操作を使用します。

例えば、プロセスにおいてパートナーのデータベースなどの外部リソースから提供されるデータを使用できます。 Execute Script サービスの executeScript 操作は、データが有効であるかを検証するために使用できます。データが有効でない場合、Stall サービスの execute 操作は、データベース内のデータの修正中にプロセスインスタンスを停止できます。