34.1 BUILD_REQUEST_BODYプロシージャ
このプロシージャは、RESTデータ・ソースDMLリクエストのリクエスト本文を作成します。リクエスト本文テンプレートが設定されている場合、#COLUMN#プレースホルダはDMLコンテキスト列の値に置き換えられます。この場合、リクエスト本文は任意のデータ形式にできます。
                  
リクエスト本文テンプレートが設定されていない場合、ファンクションは次の構造を持つJSONを作成します。
{
   "{column1-name}": "{column1-value}",
   "{column2-name}": "{column2-value}",
   :
}構文
APEX_PLUGIN_UTIL.BUILD_REQUEST_BODY (
    p_request_format    IN    apex_plugin.t_data_format,
    p_profile_columns   IN    apex_plugin.t_web_source_columns,
    p_values_context    IN    apex_exec.t_context,
    p_build_when_empty  IN    BOOLEAN,
    --
    p_request_body      IN OUT NOCOPY CLOB );パラメータ
表34-1 BUILD_REQUEST_BODYのパラメータ
| パラメータ | 説明 | 
|---|---|
| p_request_format | リクエスト形式(JSONまたはXML)。 | 
| p_profile_columns | 列メタデータ(名前、データ型)。 | 
| p_values_context | DML値を含むapex_execコンテキスト・オブジェクト。 | 
| p_build_when_empty | p_request_bodyが空の場合、新しいリクエスト本文を作成するかどうか。 | 
| p_request_body | 置換を実行するリクエスト本文テンプレート。 | 
戻り値
表34-2 BUILD_REQUEST_BODYの戻り値
| パラメータ | 説明 | 
|---|---|
| p_request_body | リクエスト本文(置換されたか、最初から作成されたもの)。 | 
例
次の例では、プラグインDMLプロシージャ内でBUILD_REQUEST_BODYを使用します。
apex_plugin_util.build_request_body (
    p_plugin     IN            apex_plugin.t_plugin,
    p_web_source IN            apex_plugin.t_web_source,
    p_params     IN            apex_plugin.t_web_source_dml_params,
    p_result     IN OUT NOCOPY apex_plugin.t_web_source_dml_result )
IS
    l_web_source_operation apex_plugin.t_web_source_operation;
    l_request_body         clob;
BEGIN
    l_web_source_operation := apex_plugin_util.get_web_source_operation(
        p_web_source   => p_web_source,
        p_db_operation => apex_plugin.c_db_operation_insert,
        p_perform_init => true );
    apex_plugin_util.build_request_body(
        p_request_format       => apex_plugin.c_format_json,
        p_profile_columns      => p_web_source.profile_columns,
        p_values_context       => p_params.insert_values_context,
        p_build_when_empty     => true,
        p_request_body         => l_request_body );
    -- continue with APEX_PLUGIN_UTIL.MAKE_REST_REQUEST
END plugin_dml;親トピック: APEX_PLUGIN_UTIL