ヘッダーをスキップ

Oracle Workflow APIリファレンス
リリース2.6.3.5

部品番号: B15622-01
前へ 次へ       目次 索引 用語集
         前へ  次へ          目次  索引  用語集

通知後関数

通知アクティビティに対して、1つの通知後関数を関連付けることができます。ワークフロー・エンジンでは、通知の配信後に、通知のステータス更新に応じて通知後関数が実行されます。たとえば、通知の受信者が通知を転送して譲渡したときに、通知後関数が実行されるように指定できます。 通知後関数をバックエンド・ロジックで実行し、転送や譲渡が適切かどうかを検証したり、他にサポートしているロジックを実行することもできます。

通知後関数はPL/SQLプロシージャの一種で、関数アクティビティで必要な標準APIと同じものを使用して記述されています。 『Oracle Workflow開発者ガイド』の関数アクティビティがコールするPL/SQLプロシージャの標準APIに関する項を参照してください。

通知後関数を指定すると、ワークフロー・エンジンでは、最初にコンテキスト情報が設定されます。この情報は、次の2種類のグローバル・エンジン変数を介して、関数で使用されます。 通知後関数がコールされるモードによって、変数の値は異なる場合があります。

これらのグローバル・エンジン変数は、PL/SQL関数内で参照できます。

注意: RUNモードおよびTIMEOUTモードでは、WF_ENGINE.context_nidおよびWF_ENGINE.context_user変数のみが設定されます。

注意: Oracle Workflowの以前のバージョンのWF_ENGINE.context_text変数は、WF_ENGINE.context_userおよびWF_ENGINE.context_new_role変数に置換されます。 下位互換性を保つため、Oracle Workflowの現行バージョンでもWF_ENGINE.context_text変数は認識されますが、将来的にも、該当する場合は新しいWF_ENGINE.context_userおよびWF_ENGINE.context_new_role変数のみを使用するようにしてください。

通知のステータスが変わると、通知のコールバック関数は、通知のステータス(RESPOND、FORWARD、TRANSFER、QUESTIONまたはANSWER)と一致するモードで通知後関数を実行します。

受信者が応答すると、ワークフロー・エンジンは最初にVALIDATEモードで通知後関数を実行します。これにより、応答を受け入れる前に応答値を検証できます。 次に、ワークフロー・エンジンはRESPONDモードで通知後関数を実行して、応答を記録します。 最後に、通知システムがRESPONDモードで通知後関数の実行を終了すると、ワークフロー・エンジンは自動的にその通知後関数をRUNモードで再実行します。 このモードでは、通知後関数で投票集計のような追加の処理を実行できます。

通知アクティビティがタイムアウトになると、ワークフロー・エンジンはそのアクティビティの通知後関数をTIMEOUTモードで実行します。投票アクティビティの場合、TIMEOUTモードのロジックでは、タイムアウトになるまでに受け取った投票の集計方法を識別する必要があります。

通知後関数が完了すると、2つのグローバル・エンジン変数は無効になります。

最終手順として、通知後関数がTRANSFERモードで実行され、通知アクティビティの「ロールの拡張」がオフになっている場合は、その通知に割り当てられているユーザーが指定の新規ロール名に設定されます。

注意: 通知後関数でERROR:<errcode>が戻されるか、例外が発生すると、ワークフロー・エンジンは処理を中止します。 たとえば、通知後関数をFORWARDモードで実行した場合に、転送先のロールが不正なために例外が発生すると、エラーが表示され、転送処理を実行できなくなります。通知の受信者は、もう一度なんらかの処理を行うように要求されます。

関連項目

通知モデル


          前へ   次へ           目次   索引   用語集



Oracleロゴ
Copyright © 2003, 2004, Oracle. All rights reserved.