HRMS Update Employee API
DECLARE
/* Out Variables*/
l_object_version_number number;
l_date_of_birth date;
l_effective_start_date date;
l_effective_end_date date;
l_full_name varchar2(250);
l_comment_id number;
l_name_combination_warning boolean;
l_assign_payroll_warning boolean;
l_orig_hire_warning boolean;
l_employee_number varchar2(20);
l_person_id number;
/* Local Variables */
l_validate_cnt number;
l_status varchar2(10) := 'True';
l_errmsg varchar2(1000);
l_total_records number := 0;
l_success_records number := 0;
l_failure_records number := 0;
BEGIN
FOR hr_data IN ( SELECT * From xx_emps )
LOOP
l_errmsg := '';
l_status := 'True';
l_object_version_number := null;
l_person_id := null;
l_employee_number := '';
l_total_records := l_total_records + 1;
BEGIN
/* Get Date Of Birth */
--p_original_date_of_hire := to_date (hr_data.hire_date , 'DD-MM-RRRR');
L_employee_number := null;
<hr class="system-pagebreak" />
SELECT person_id, object_version_number , employee_number
INTO l_person_id, l_object_version_number , l_employee_number
FROM per_all_people_f f
WHERE f.attribute1 = hr_data.EMP_OLD_NO
AND effective_end_date = TO_DATE ('31/12/4712', 'DD/MM/RRRR');
hr_person_api.update_person
(p_effective_date => TRUNC(SYSDATE)
,p_datetrack_update_mode => 'CORRECTION'
,p_person_id => l_person_id
,p_object_version_number => l_object_version_number
,p_date_of_birth => to_date(hr_data.DATE_OF_BIRTH, 'DD-MM-RRRR')
,p_employee_number => l_employee_number
,p_effective_start_date => l_effective_start_date
,p_effective_end_date => l_effective_end_date
,p_full_name => l_full_name
,p_comment_id => l_comment_id
,p_name_combination_warning => l_name_combination_warning
,p_assign_payroll_warning => l_assign_payroll_warning
,p_orig_hire_warning => l_orig_hire_warning
);
l_success_records := l_success_records + 1;
UPDATE xx_emps
SET status = 'I',
error_msg = ''
WHERE emp_old_no = hr_data.emp_old_no;
COMMIT;
EXCEPTION
WHEN OTHERS THEN
l_failure_records := l_failure_records + 1;
l_errmsg := SUBSTR(SQLERRM,1,200);
UPDATE xx_emps
SET status = 'E',
error_msg = l_errmsg
WHERE emp_old_no = hr_data.emp_old_no;
COMMIT;
END;
END LOOP;
dbms_output.put_line('Total Records To Be Loaded : ' || l_total_records);
dbms_output.put_line('Total Success Records : ' || l_success_records);
dbms_output.put_line('Total Failure Records : ' || l_failure_records);
END;
/


