ヘッダーをスキップ

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

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

カスタム・コールバック関数

デフォルト・コールバック関数は、WF_NOTIFICATION APIの処理によって、様々な時点でコールされます。独自のカスタム・コールバック関数を作成できますが、標準の仕様に従ってください。

コールバック関数を介してイベント・タイプの属性を処理する必要がない場合は、プロシージャで次の標準APIを使用する必要があります。


procedure <name in callback argument>


     (command in varchar2,
context in varchar2,
attr_name in varchar2,
attr_type in varchar2,
text_value in out varchar2,
number_value in out number,
date_value in out date);

コールバック関数でイベント・タイプの属性を処理する必要がある場合は、イベント値に対応する追加の引数を持つ別の実装でプロシージャ名をオーバーロードできます。この場合は、下位互換性を保つために、元の実装も残しておいてください。 ただし、プロシージャのオーバーロードは、イベント属性を処理する必要がある場合にのみ行うことをお薦めします。

イベント値に対応するプロシージャの実装では、次の標準APIを使用する必要があります。


procedure <name in callback argument>


     (command in varchar2,
context in varchar2,
attr_name in varchar2,
attr_type in varchar2,
text_value in out varchar2,
number_value in out number,
date_value in out date
event_value in out nocopy wf_event_t);

保守しやすいように、event_value引数を持たないプロシージャを定義し、そこからこの引数を持つプロシージャをコールするようにすると、単一のコードを保守するだけですみます。 次の例は、このようなコールの実装方法を示しています。


procedure your_callback


     (command in varchar2,
context in varchar2,
attr_name in varchar2,
attr_type in varchar2,
text_value in out varchar2,
number_value in out number,
date_value in out date)

is
event_value wf_event_t;

begin
your_package.your_callback(command, context, attr_name,
attr_type, text_value,
number_value, date_value,
event_value);

exception
when others then
Wf_Core.Context('your_package', 'your_callback',
command, context, attr_name, attr_type,
':'||text_value||':'||to_char(number_value)
||':'||to_char(date_value)||':');
raise;

end your_callback;

引数(入力)

command 要求に応じて、GET、SET、COMPLETE、ERROR、TESTCTX、FORWARD、TRANSFER、QUESTION、ANSWER、VALIDATEまたはRESPONDを指定します。 属性値を取得するにはGETを、属性値を設定するにはSETを、応答が完了したことを示すにはCOMPLETEを、関連する通知アクティビティのステータスをERRORにするにはERRORを、項目タイプのセレクタ/コールバック関数をコールして現行のコンテキストをテストするにはTESTCTXを、通知後関数をFORWARDモードで実行するにはFORWARDを、通知後関数をTRANSFERモードで実行するにはTRANSFERを、通知後関数をQUESTIONモードで実行するにはQUESTIONを、通知後関数をANSWERモードで実行するにはANSWERを、通知後関数をVALIDATEモードで実行するにはVALIDATEを、通知後関数をRESPONDモードで実行するにはRESPONDを使用します。
context SEND( )またはSendGroup( )に渡されるコンテキスト。 書式は<itemtype>:<itemkey>:<activityid>です。
attr_name コマンドがGETまたはSETの場合、設定または取得する属性名。
attr_type コマンドがSETまたはGETの場合、属性タイプ。
text_value コマンドがSETの場合、テキスト属性値。コマンドがGETの場合、戻されるテキスト属性値。
number_value コマンドがSETの場合、数値属性値。コマンドがGETの場合、戻される数値属性値。
date_value コマンドがSETの場合、日付属性値。コマンドがGETの場合、戻される日付属性値。
event_value コマンドがSETの場合、イベント属性値。コマンドがGETの場合、戻されるイベント属性値。イベント属性を処理する別の実装でプロシージャ名をオーバーロードする場合にのみ必須です。

注意: 引数text_valuenumber_valuedate_valueおよびevent_value(使用する場合)は、相互に排他的です。 つまり、attr_type引数の値に応じて、これらの引数のうち1つのみを使用する必要があります。

通知が送られると、システムは(属性値を取得するために)各SEND属性に指定されたコールバック関数をコールします。

例1

SEND属性ごとに、次のようにコールしてください。


        your_callback('GET', context, 'BUGNO', 'NUMBER', textval, numval, dateval);

例2

ユーザーが通知に応答すると、RESPOND属性ごとに1回ずつコールバックが再コールされます。


        your_callback('SET', context, 'STATUS', 'TEXT', 'COMPLETE', numval, dateval);

例3

最後に、通知システムはCOMPLETEコマンドをコールし、応答が終了したことを示します。


        your_callback('COMPLETE', context, attrname, attrtype, textval, numval, dateval);

例4

イベント・タイプのSEND属性の場合は、event_value引数を持つ実装をコールしてください。


        your_callback('GET', context, 'RECEIVE_EVENT', 'EVENT', textval, numval, dateval, eventval);


          前へ   次へ           目次   索引   用語集



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