0% found this document useful (0 votes)
62 views3 pages

Oracle HR API: Create Employee Procedure

This document contains the specification and body of a PL/SQL package called XX_HR_APIS. The package contains a procedure called create_employee that takes in input parameters and outputs parameters to create a new employee record by calling an HR API. The procedure loops through a people_date table, calls the HR API to create an employee for each row, and updates the row's flag after completion.

Uploaded by

hossam.elrweny
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
62 views3 pages

Oracle HR API: Create Employee Procedure

This document contains the specification and body of a PL/SQL package called XX_HR_APIS. The package contains a procedure called create_employee that takes in input parameters and outputs parameters to create a new employee record by calling an HR API. The procedure loops through a people_date table, calls the HR API to create an employee for each row, and updates the row's flag after completion.

Uploaded by

hossam.elrweny
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 3

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;

You might also like