45.1 BUILD_REQUEST_BODY Procedure
This procedure builds a request body for a REST Data Source DML request. If a request body template is set, then #COLUMN#
placeholders will be replaced by the DML context column values. In this case, the request body can be any data format.
If no request body template is set, the function builds a JSON with the following structure:
{
"{column1-name}": "{column1-value}",
"{column2-name}": "{column2-value}",
:
}
Syntax
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 );
Parameters
Parameter | Description |
---|---|
p_request_format |
Request format (JSON or XML). |
p_profile_columns |
Column meta data (names, data types). |
p_values_context |
apex_exec context object containing DML values. |
p_build_when_empty |
If p_request_body is empty, whether to build a new request body.
|
p_request_body |
Request body template to perform replacements on. |
Returns
Parameter | Description |
---|---|
p_request_body |
Request body (substitutions replaced or built from scratch). |
Example
The following example uses BUILD_REQUEST_BODY within a plug-in DML procedure.
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;
Parent topic: APEX_PLUGIN_UTIL