API - hr_employee_api.hire_into_job
Example --
Consider a Contact for some employee already exist in Oracle System. Now that Contact has got Job, so his Person type should be converted to Employee from Contact (External)
Following API helps to create assignment for that Contact and helps to change his Person Type
DECLARE
-- Local Variables
-- ---------------------
lc_dt_ud_mode VARCHAR2(100) := NULL;
ln_person_id NUMBER := 32981;
ln_object_number NUMBER := 1;
ld_effective_date DATE := TO_DATE('28-JUN-2012');
lc_employee_number VARCHAR2(100) := 'CONTACT_TEST_01';
-- 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 Hire to Job 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
( -- Input data elements
-- ---------------------------
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;