---------------BATCH HEADER UPLOADING-------------------------------
DECLARE
l_batch_id NUMBER := NULL;
l_object_version_number NUMBER := NULL;
BEGIN
pay_batch_element_entry_api.create_batch_header (
p_session_date => TRUNC (SYSDATE),
p_batch_name => 'BATCH_THROUGH_API',
p_business_group_id => 81, --relevant business group id
p_action_if_exists => 'I',
p_batch_id => l_batch_id,
p_object_version_number => l_object_version_number
);
COMMIT;
DBMS_OUTPUT.put_line (l_batch_id || ': SUCCESS');
EXCEPTION
WHEN OTHERS
THEN
DBMS_OUTPUT.put_line ('Main Exception: ' || SQLERRM);
END;
---------------BATCH HEADER UPLOADING-------------------------------
-- To Create Batch Line (Batch Element Entry)-----------------------
DECLARE
v_eff_start_date DATE := NULL;
v_eff_end_date DATE := NULL;
v_input_value_id NUMBER := NULL;
v_element_link_id NUMBER := NULL;
v_element_name VARCHAR2 (500) := NULL;
v_element_type_id NUMBER := NULL;
v_batch_id NUMBER := NULL;
v_batch_line_id NUMBER := NULL;
v_batch_object_version_number NUMBER := NULL;
CURSOR emp_details
is
Select '3601' assignment_number, '1919' assignment_id
from dual; -- table where your data is uploaded.
--You can use in above statement you relevant data for all the records you need to enter in batch entry
BEGIN
fnd_global.APPS_INITIALIZE(user_id => 1741, resp_id => 50678, resp_appl_id => 800); --non mandetory
-- BLOCK to Get Batch ID
BEGIN
SELECT batch_id
INTO v_batch_id
FROM pay_batch_headers pbh
WHERE TRIM (pbh.batch_name) = 'BATCH_THROUGH_API'; --Same as used above
EXCEPTION
WHEN OTHERS
THEN
NULL;
END;
-- Get Element Details as per your Element
BEGIN
SELECT pivf.input_value_id,
pelf.element_link_id,
petf.element_name,
petf.element_type_id
INTO v_input_value_id,
v_element_link_id,
v_element_name,
v_element_type_id
FROM pay_element_types_f petf,
pay_element_links_f pelf,
pay_input_values_f pivf
WHERE pelf.element_type_id = petf.element_type_id
AND TRUNC (SYSDATE) BETWEEN petf.effective_start_date
AND petf.effective_end_date
AND TRUNC (SYSDATE) BETWEEN pelf.effective_start_date
AND pelf.effective_end_date
AND pelf.payroll_id = 12 --<<Your payroll id>>
AND pivf.element_type_id = pivf.element_type_id
AND pivf.NAME = 'Hours'--<<Name of the Input value>>
AND TRUNC (SYSDATE) BETWEEN pivf.effective_start_date
AND pivf.effective_end_date
AND pivf.element_type_id = pelf.element_type_id
AND petf.element_name = 'ELEMENT NAME'; --<<Name of the Element>>
EXCEPTION
WHEN OTHERS
THEN
v_input_value_id := NULL;
v_element_link_id := NULL;
END;
FOR i IN emp_details
LOOP
BEGIN
-- API to create ELEMENT
pay_batch_element_entry_api.create_batch_line (
p_session_date => TRUNC (SYSDATE),
p_batch_id => v_batch_id,
p_assignment_id => i.assignment_id,
p_assignment_number => i.assignment_number,
p_date_earned => TRUNC (SYSDATE),
p_effective_date => TRUNC (SYSDATE),
p_effective_start_date => v_eff_start_date,
p_effective_end_date => v_eff_end_date,
p_element_name => v_element_name,
p_element_type_id => v_element_type_id,
p_value_2 => 3,
p_batch_line_id => v_batch_line_id,
p_object_version_number => v_batch_object_version_number
);
COMMIT;
DBMS_OUTPUT.put_line (v_batch_id || ': SUCCESS');
DBMS_OUTPUT.put_line (v_batch_line_id || ': SUCCESS');
EXCEPTION
WHEN OTHERS
THEN
DBMS_OUTPUT.put_line ('Exception for '||i.assignment_number||' : '||SQLERRM);
END;
END LOOP;
EXCEPTION
WHEN OTHERS
THEN
DBMS_OUTPUT.put_line ('Main Exception: ' || SQLERRM);
END;
-- To Create Batch Line (Batch Element Entry)-----------------------
DECLARE
l_batch_id NUMBER := NULL;
l_object_version_number NUMBER := NULL;
BEGIN
pay_batch_element_entry_api.create_batch_header (
p_session_date => TRUNC (SYSDATE),
p_batch_name => 'BATCH_THROUGH_API',
p_business_group_id => 81, --relevant business group id
p_action_if_exists => 'I',
p_batch_id => l_batch_id,
p_object_version_number => l_object_version_number
);
COMMIT;
DBMS_OUTPUT.put_line (l_batch_id || ': SUCCESS');
EXCEPTION
WHEN OTHERS
THEN
DBMS_OUTPUT.put_line ('Main Exception: ' || SQLERRM);
END;
---------------BATCH HEADER UPLOADING-------------------------------
-- To Create Batch Line (Batch Element Entry)-----------------------
DECLARE
v_eff_start_date DATE := NULL;
v_eff_end_date DATE := NULL;
v_input_value_id NUMBER := NULL;
v_element_link_id NUMBER := NULL;
v_element_name VARCHAR2 (500) := NULL;
v_element_type_id NUMBER := NULL;
v_batch_id NUMBER := NULL;
v_batch_line_id NUMBER := NULL;
v_batch_object_version_number NUMBER := NULL;
CURSOR emp_details
is
Select '3601' assignment_number, '1919' assignment_id
from dual; -- table where your data is uploaded.
--You can use in above statement you relevant data for all the records you need to enter in batch entry
BEGIN
fnd_global.APPS_INITIALIZE(user_id => 1741, resp_id => 50678, resp_appl_id => 800); --non mandetory
-- BLOCK to Get Batch ID
BEGIN
SELECT batch_id
INTO v_batch_id
FROM pay_batch_headers pbh
WHERE TRIM (pbh.batch_name) = 'BATCH_THROUGH_API'; --Same as used above
EXCEPTION
WHEN OTHERS
THEN
NULL;
END;
-- Get Element Details as per your Element
BEGIN
SELECT pivf.input_value_id,
pelf.element_link_id,
petf.element_name,
petf.element_type_id
INTO v_input_value_id,
v_element_link_id,
v_element_name,
v_element_type_id
FROM pay_element_types_f petf,
pay_element_links_f pelf,
pay_input_values_f pivf
WHERE pelf.element_type_id = petf.element_type_id
AND TRUNC (SYSDATE) BETWEEN petf.effective_start_date
AND petf.effective_end_date
AND TRUNC (SYSDATE) BETWEEN pelf.effective_start_date
AND pelf.effective_end_date
AND pelf.payroll_id = 12 --<<Your payroll id>>
AND pivf.element_type_id = pivf.element_type_id
AND pivf.NAME = 'Hours'--<<Name of the Input value>>
AND TRUNC (SYSDATE) BETWEEN pivf.effective_start_date
AND pivf.effective_end_date
AND pivf.element_type_id = pelf.element_type_id
AND petf.element_name = 'ELEMENT NAME'; --<<Name of the Element>>
EXCEPTION
WHEN OTHERS
THEN
v_input_value_id := NULL;
v_element_link_id := NULL;
END;
FOR i IN emp_details
LOOP
BEGIN
-- API to create ELEMENT
pay_batch_element_entry_api.create_batch_line (
p_session_date => TRUNC (SYSDATE),
p_batch_id => v_batch_id,
p_assignment_id => i.assignment_id,
p_assignment_number => i.assignment_number,
p_date_earned => TRUNC (SYSDATE),
p_effective_date => TRUNC (SYSDATE),
p_effective_start_date => v_eff_start_date,
p_effective_end_date => v_eff_end_date,
p_element_name => v_element_name,
p_element_type_id => v_element_type_id,
p_value_2 => 3,
p_batch_line_id => v_batch_line_id,
p_object_version_number => v_batch_object_version_number
);
COMMIT;
DBMS_OUTPUT.put_line (v_batch_id || ': SUCCESS');
DBMS_OUTPUT.put_line (v_batch_line_id || ': SUCCESS');
EXCEPTION
WHEN OTHERS
THEN
DBMS_OUTPUT.put_line ('Exception for '||i.assignment_number||' : '||SQLERRM);
END;
END LOOP;
EXCEPTION
WHEN OTHERS
THEN
DBMS_OUTPUT.put_line ('Main Exception: ' || SQLERRM);
END;
-- To Create Batch Line (Batch Element Entry)-----------------------