OPM Batch Release API
OPM Batch Release API
8) */
DECLARE
l_batch_header
gme_batch_header%ROWTYPE;
x_batch_header
gme_batch_header%ROWTYPE;
p_batch_header
gme_batch_header%ROWTYPE;
x_message_count
x_message_list
NUMBER;
VARCHAR2 (2000);
x_unallocated_material gme_api_pub.unallocated_materials_tab;
x_return_status
VARCHAR2 (1);
l_material_detail
gme_material_details%ROWTYPE;
x_material_detail
gme_material_details%ROWTYPE;
p_values_tab
l_field
gme_api_pub.field_values_tab;
gme_api_pub.p_field;
l_unallocated_material gme_api_pub.unallocated_materials_tab;
l_msg_index_out
NUMBER;
BEGIN
fnd_global.apps_initialize (user_id
resp_id
resp_appl_id
=> 1007882,
=> NULL,
=> NULL
);
l_batch_header.batch_type := 0;
l_batch_header.batch_id := '103237';
--batch_id
l_batch_header.update_inventory_ind := 'Y';
l_batch_header.actual_start_date := SYSDATE;
---
--- RELEASE IT
---
gme_api_pub.release_batch
(p_api_version
=> 1,
p_validation_level
p_init_msg_list
p_commit
=> 1000,
=> TRUE,
=> FALSE,
x_message_count
=> x_message_count,
x_message_list
=> x_message_list,
x_return_status
=> x_return_status,
p_batch_header
=> l_batch_header,
x_batch_header
=> x_batch_header,
p_ignore_shortages
=> TRUE,
x_unallocated_material
p_ignore_unalloc
=> l_unallocated_material,
=> TRUE
);
IF x_return_status = fnd_api.g_ret_sts_success
THEN
DBMS_OUTPUT.put_line ('Batch Released');
p_batch_header.batch_id := 103237;
--batch_id
--
gme_api_pub.save_batch (p_batch_header
x_return_status
p_commit
--
=> p_batch_header,
=> x_return_status,
=> TRUE
);
ELSE
DBMS_OUTPUT.put_line ('Batch Release failed');
IF x_message_count = 1
THEN
DBMS_OUTPUT.put_line ('Error:' || x_message_list);
ELSE
FOR i IN 1 .. x_message_count
LOOP
fnd_msg_pub.get (p_msg_index
p_data
=> i,
=> x_message_list,
p_msg_index_out
=> l_msg_index_out
);
DBMS_OUTPUT.put_line ('Error: ' || x_message_list);
END LOOP;
END IF;
END IF;
EXCEPTION
WHEN OTHERS
THEN
gme_batch_header%ROWTYPE;
x_message_count
NUMBER;
x_return_status
VARCHAR2 (2);
x_message_list
VARCHAR2 (2000);
r_batch_header_out
gme_batch_header%ROWTYPE;
r_unallocated_material1 gme_api_pub.unallocated_materials_tab;
--PL/SQL Table definition
BEGIN
r_batch_header.batch_id := p_batch_id;
r_batch_header.actual_start_date := SYSDATE;
r_batch_header.actual_cmplt_date := SYSDATE;
r_batch_header.update_inventory_ind := 'Y';
gme_api_main.release_batch
(p_api_version
=> 1,
=> gme_api_pub.max_errors,
--Validation Level
p_init_msg_list
=> TRUE,
--false,--TRUE,
p_commit
=> FALSE,
x_message_count
--p_init_msg_list
--TRUE, --p_commit
x_message_list
=> x_message_list,
x_return_status
p_batch_header
x_batch_header
p_ignore_shortages
x_unallocated_material
=> TRUE,
--output Parameter
--batch size
=> r_unallocated_material1
--, --output Record
-- p_ignore_unalloc
=>TRUE --p_ignore_unalloc
);
fnd_file.put_line (fnd_file.LOG,
'release batch return_status = ' || x_return_status
);
gme_debug.display_messages (x_message_count);
-- FND_FILE.PUT_LINE (FND_FILE.LOG,'RELEASE BATCH =' || TO_CHAR (X_MESSAGE_COUNT));
IF x_return_status != 'S'
THEN
fnd_file.put_line (fnd_file.LOG,
'release batch return_status = '
|| x_return_status
|| ' - '
|| x_message_list
);
END IF;
END;