15.14 EXECUTE_WEB_SOURCEプロシージャ

このプロシージャは、モジュール名、操作およびURLパターン(必要な場合)に基づいて、Webソース操作を実行します。t_parameters配列を使用して、宣言したWebソース・パラメータの値を渡します。Webソースの呼出しは、共有コンポーネントに定義されたメタデータに基づいて行われます。

構文

procedure execute_web_source (
    p_module_static_id in varchar2,
    p_operation        in varchar2,
    p_url_pattern      in varchar2         default null,
    p_parameters       in out t_parameters );

パラメータ

表15-12 EXECUTE_WEB_SOURCEプロシージャのパラメータ

パラメータ 説明

p_module_static_id

Webソース・モジュールの静的IDです。

p_operation

操作の名前(たとえば、POST、GET、DELETE)。

p_url_pattern

同じ名前の操作が複数存在する場合は、共有コンポーネントに定義されているようにURLパターンを指定して、Webソース操作を識別します。

p_parameters

外部Webソースに渡すパラメータ値。

通常、Webソース・モジュールに渡されるHTTPヘッダー、URLパターンおよびその他のパラメータは文字列です。T_PARAMETERS配列に追加する前に、すべての値をVARCHAR2に明示的に渡すことをお薦めします。

戻り値 該当なし

p_parameters

Webソース・モジュールから受け取ったOUTパラメータ値の配列。

この例では、ORDSおよびAuto-REST機能(ORDS.ENABLE_OBJECT)を使用して、RESTサービスがEMP表に作成されていることを前提としています。このRESTサービスのWebソース・モジュールは、共有コンポーネントにORDS EMPとして作成されています。

POST操作には、次のリクエスト本文テンプレートが定義されています。{"empno": "#EMPNO#"、"ename": "#ENAME#"、"job": "#JOB#"、"sal": #SAL#}

パラメータは次のように定義されています。

名前 方向 タイプ

EMPNO

IN

リクエスト・ボディ

ENAME

IN

リクエスト・ボディ

SAL

IN

リクエスト・ボディ

JOB

IN

リクエスト・ボディ

RESPONSE

OUT

リクエスト・ボディ

Content-Type

IN

HTTPヘッダー

Webソース操作を呼び出すPL/SQLコードは次のようになります。

declare
    l_params apex_exec.t_parameters;
begin
    apex_exec.add_parameter( l_params, 'ENAME', :P2_ENAME );
    apex_exec.add_parameter( l_params, 'EMPNO', :P2_EMPNO );
    apex_exec.add_parameter( l_params, 'SAL',   :P2_SAL   );
    apex_exec.add_parameter( l_params, 'JOB',   :P2_JOB   );

    apex_exec.execute_web_source(
        p_module_static_id => 'ORDS_EMP',
        p_operation        => 'POST',
        p_parameters       => l_params );

    :P2_RESPONSE := apex_exec.get_parameter_clob(l_params,'RESPONSE');
end;