33.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 wwv_flow_plugin_api.t_data_format,
p_profile_columns IN wwv_flow_plugin_api.t_web_source_columns,
p_values_context IN wwv_flow_exec_api.t_context,
p_build_when_empty IN BOOLEAN,
--
p_request_body IN OUT NOCOPY CLOB );
パラメータ
表33-1 BUILD_REQUEST_BODYのパラメータ
パラメータ | 説明 |
---|---|
p_request_format |
リクエスト形式(JSONまたはXML)。 |
p_profile_columns |
列メタデータ(名前、データ型)。 |
p_values_context |
DML値を含むwwv_flow_exec_apiコンテキスト・オブジェクト。 |
p_build_when_empty |
p_request_body が空の場合、新しいリクエスト本文を作成するかどうか。
|
p_request_body |
置換を実行するリクエスト本文テンプレート。 |
戻り値
表33-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