CREATE OR REPLACE PACKAGE XX_HR_APIS IS
PROCEDURE create_employee
( lc_employee_number IN OUT PER_ALL_PEOPLE_F.EMPLOYEE_NUMBER
%TYPE ,--:=zzz.nextval+1 ,
ln_person_id OUT PER_ALL_PEOPLE_F.PERSON_ID%TYPE,
ln_assignment_id OUT PER_ALL_ASSIGNMENTS_F.ASSIGNMENT_ID
%TYPE,
ln_object_ver_number OUT
PER_ALL_ASSIGNMENTS_F.OBJECT_VERSION_NUMBER%TYPE,
ln_asg_ovn OUT NUMBER,
ld_per_effective_start_date OUT PER_ALL_PEOPLE_F.EFFECTIVE_START_DATE
%TYPE,
ld_per_effective_end_date OUT PER_ALL_PEOPLE_F.EFFECTIVE_END_DATE
%TYPE,
lc_full_name OUT PER_ALL_PEOPLE_F.FULL_NAME%TYPE,
ln_per_comment_id OUT PER_ALL_PEOPLE_F.COMMENT_ID%TYPE,
ln_assignment_sequence OUT
PER_ALL_ASSIGNMENTS_F.ASSIGNMENT_SEQUENCE%TYPE,
lc_assignment_number OUT
PER_ALL_ASSIGNMENTS_F.ASSIGNMENT_NUMBER%TYPE,
lb_name_combination_warning OUT BOOLEAN,
lb_assign_payroll_warning OUT BOOLEAN,
lb_orig_hire_warning OUT BOOLEAN);
END XX_HR_APIS;
/
CREATE OR REPLACE PACKAGE BODY XX_HR_APIS IS
PROCEDURE create_employee
( lc_employee_number IN OUT PER_ALL_PEOPLE_F.EMPLOYEE_NUMBER
%TYPE ,--:=zzz.nextval+1 ,
ln_person_id OUT PER_ALL_PEOPLE_F.PERSON_ID%TYPE,
ln_assignment_id OUT PER_ALL_ASSIGNMENTS_F.ASSIGNMENT_ID
%TYPE,
ln_object_ver_number OUT
PER_ALL_ASSIGNMENTS_F.OBJECT_VERSION_NUMBER%TYPE,
ln_asg_ovn OUT NUMBER,
ld_per_effective_start_date OUT PER_ALL_PEOPLE_F.EFFECTIVE_START_DATE
%TYPE,
ld_per_effective_end_date OUT PER_ALL_PEOPLE_F.EFFECTIVE_END_DATE
%TYPE,
lc_full_name OUT PER_ALL_PEOPLE_F.FULL_NAME%TYPE,
ln_per_comment_id OUT PER_ALL_PEOPLE_F.COMMENT_ID%TYPE,
ln_assignment_sequence OUT
PER_ALL_ASSIGNMENTS_F.ASSIGNMENT_SEQUENCE%TYPE,
lc_assignment_number OUT
PER_ALL_ASSIGNMENTS_F.ASSIGNMENT_NUMBER%TYPE,
lb_name_combination_warning OUT BOOLEAN,
lb_assign_payroll_warning OUT BOOLEAN,
lb_orig_hire_warning OUT BOOLEAN)
IS
BEGIN
for i in (select * from people_date f where flag ='N') loop
hr_employee_api.create_employee
( -- Input data elements
-- ------------------------------
p_hire_date =>
to_date(HR_SA_HIJRAH_FUNCTIONS.HIJRAH_TO_GREGORIAN(i.HIRE_DATE),'RRRR/MM/DD'), --
TO_DATE('03-DEC-1988'),--
to_date(HR_SA_HIJRAH_FUNCTIONS.HIJRAH_TO_GREGORIAN('1440/03/11')),
p_business_group_id => 81,
p_last_name => i.FAMILY_NAME,
p_first_name => i.FIRST_NAME,
P_PER_INFORMATION1 => i.FATHER_NAME,
p_PER_INFORMATION2 =>i.GRAND_FATHER_NAME,
p_sex => 'M',
-- p_employee_number =>to_char(i.EMP_NUMBER),
p_national_identifier => i.nat_id,
p_person_type_id =>
to_number(i.PERSON_TYPE),
p_nationality =>'PQH_SA',
p_title =>'MR.',
p_date_of_birth
=>to_date(HR_SA_HIJRAH_FUNCTIONS.HIJRAH_TO_GREGORIAN(i.BIRTH_DAY),'RRRR/MM/DD'),--
TO_DATE('03-DEC-1988'),
-- Output data elements
-- --------------------------------
p_employee_number => lc_employee_number,
p_person_id => ln_person_id,
p_assignment_id => ln_assignment_id,
p_per_object_version_number => ln_object_ver_number,
p_asg_object_version_number => ln_asg_ovn,
p_per_effective_start_date =>
ld_per_effective_start_date,
p_per_effective_end_date => ld_per_effective_end_date,
p_full_name => lc_full_name,
p_per_comment_id => ln_per_comment_id,
p_assignment_sequence => ln_assignment_sequence,
p_assignment_number => lc_assignment_number,
p_name_combination_warning =>
lb_name_combination_warning,
p_assign_payroll_warning => lb_assign_payroll_warning,
p_orig_hire_warning => lb_orig_hire_warning
);
dbms_output.put_line('Done');
update people_date set flag='E' where nat_id = i.nat_id;
commit;
lc_employee_number :=zzz.nextval+1 ;
end loop;
commit;
EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
dbms_output.put_line(SQLERRM);
commit;
END create_employee;
END XX_HR_APIS;