API to Hire Employee into Job
DECLARE
— Local Variables
lc_dt_ud_mode VARCHAR2(100) := NULL;
ln_person_id NUMBER := 33104;
ln_object_number NUMBER := 1;
ld_effective_date DATE := TO_DATE(’28-JUN-2012′);
lc_employee_number VARCHAR2(100) := ‘CONTACT_TEST_02’;
— Out Variables for Find Date Track Mode API
lb_correction BOOLEAN;
lb_update BOOLEAN;
lb_update_override BOOLEAN;
lb_update_change_insert BOOLEAN;
— Out Variables for New API
ld_effective_start_date DATE;
ld_effective_end_date DATE;
lb_assign_payroll_warning BOOLEAN;
lb_orig_hire_warning BOOLEAN;
ln_assignment_id NUMBER;
BEGIN
— Find Date Track Mode
dt_api.find_dt_upd_modes
( p_effective_date => TO_DATE(’28-JUN-2012′),
p_base_table_name => ‘PER_ALL_PEOPLE_F’,
p_base_key_column => ‘PERSON_ID’,
p_base_key_value => ln_person_id,
— Output data elements
p_correction => lb_correction,
p_update => lb_update,
p_update_override => lb_update_override,
p_update_change_insert => lb_update_change_insert
);
IF ( lb_update_override = TRUE OR lb_update_change_insert = TRUE )
THEN
— UPDATE_OVERRIDE
lc_dt_ud_mode := ‘UPDATE_OVERRIDE’;
END IF;
IF ( lb_correction = TRUE )
THEN
— CORRECTION
lc_dt_ud_mode := ‘CORRECTION’;
END IF;
IF ( lb_update = TRUE )
THEN
— UPDATE
lc_dt_ud_mode := ‘UPDATE’;
END IF;
— Hire into Job API
hr_employee_api.hire_into_job
( — Input Data Elements
p_effective_date => ld_effective_date,
p_person_id => ln_person_id,
p_datetrack_update_mode => lc_dt_ud_mode,
— Output Data Elements
p_object_version_number => ln_object_number,
p_employee_number => lc_employee_number,
p_assignment_id => ln_assignment_id,
p_effective_start_date => ld_effective_start_date,
p_effective_end_date => ld_effective_end_date,
p_assign_payroll_warning => lb_assign_payroll_warning,
p_orig_hire_warning => lb_orig_hire_warning
);
COMMIT;
EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
dbms_output.put_line(SQLERRM);
END;
/
SHOW ERR;