Anda di halaman 1dari 3

/*hrms apis*/

/* Formatted on 2016/07/26 17:16 (Formatter Plus v4.8.8) */


DECLARE
ln_object_version_number
per_all_people_f.object_version_number%TYPE;
lc_dt_ud_mode
VARCHAR2 (100)
:= NULL;
ln_assignment_id
per_all_assignments_f.assignment_id%TYPE;
lc_employee_number
per_all_people_f.employee_number%TYPE;
lb_correction
BOOLEAN;
lb_update
BOOLEAN;
lb_update_override
BOOLEAN;
lb_update_change_insert
BOOLEAN;
ld_effective_start_date
DATE;
ld_effective_end_date
DATE;
lc_full_name
per_all_people_f.full_name%TYPE;
ln_comment_id
per_all_people_f.comment_id%TYPE;
lb_name_combination_warning BOOLEAN;
lb_assign_payroll_warning
BOOLEAN;
lb_orig_hire_warning
BOOLEAN;
l_person_id
NUMBER;
l_eff_start_date
DATE;
BEGIN
--lc_employee_number := '104115';
--To get the Person ID and Assignment ID of the Employee
BEGIN
SELECT papf.person_id, paaf.assignment_id, papf.effective_start_date,
employee_number
INTO l_person_id, ln_assignment_id, l_eff_start_date,lc_employee_number
FROM per_all_people_f papf, per_all_assignments_f paaf
WHERE papf.person_id = paaf.person_id
--AND papf.employee_number = lc_employee_number
AND papf.person_id = 3530
AND TRUNC (SYSDATE) BETWEEN papf.effective_start_date
AND papf.effective_end_date
AND TRUNC (SYSDATE) BETWEEN paaf.effective_start_date
AND paaf.effective_end_date;
EXCEPTION
WHEN OTHERS
THEN
DBMS_OUTPUT.put_line
( 'Error occured while fetching the Person ID and Assignment ID >>
:'
|| SQLERRM
);
END;
--To get the
BEGIN
SELECT
INTO
FROM
WHERE
AND

Max Object Verion Number of the Employee


MAX (object_version_number)
ln_object_version_number
per_all_people_f papf
papf.person_id = l_person_id
TRUNC (SYSDATE) BETWEEN papf.effective_start_date
AND papf.effective_end_date;

EXCEPTION
WHEN OTHERS
THEN
DBMS_OUTPUT.put_line
( 'Error occured while fetching the Obj Version Number >>:'
|| SQLERRM
);

END;
dt_api.find_dt_upd_modes (
p_effective_date

=> TO_CHAR(l_eff_start_

p_base_table_name

=> 'PER_ALL_ASSIGNMENTS

p_base_key_column
p_base_key_value
p_correction
p_update
p_update_override
p_update_change_insert

=>
=>
=>
=>
=>
=>

date,'DD-MON-YY'),
_F',
'ASSIGNMENT_ID',
ln_assignment_id,
lb_correction,
lb_update,
lb_update_override,
lb_update_change_ins

ert
);
IF (lb_update_override = TRUE OR lb_update_change_insert = TRUE)
THEN
lc_dt_ud_mode := 'UPDATE_OVERRIDE';
DBMS_OUTPUT.put_line ('Date Track Mode>>:' || lc_dt_ud_mode);
END IF;
IF (lb_correction = TRUE)
THEN
lc_dt_ud_mode := 'CORRECTION';
DBMS_OUTPUT.put_line ('Date Track Mode>>:' || lc_dt_ud_mode);
END IF;
IF (lb_update = TRUE)
THEN
lc_dt_ud_mode := 'UPDATE';
DBMS_OUTPUT.put_line ('Date Track Mode>>:' || lc_dt_ud_mode);
END IF;
DBMS_OUTPUT.put_line (

'Date Track Mode Before Calling API>>:'


|| lc_dt_ud_mode
);
hr_person_api.update_person
(p_effective_date
=> TO_CHAR (l_eff_start_date,'DD-M
ON-YY'), --trunc(SYSDATE),
p_datetrack_update_mode
=> lc_dt_ud_mode,
p_person_id
=> l_person_id,
p_email_address
=> 'suresh@lindinger-inspection.co
m',
p_office_number
=> '8129497971',
p_employee_number
=> lc_employee_number,
p_object_version_number
=> ln_object_version_number,
p_effective_start_date
=> ld_effective_start_date,
p_effective_end_date
=> ld_effective_end_date,
p_full_name
=> lc_full_name,
p_comment_id
=> ln_comment_id,
p_name_combination_warning
=> lb_name_combination_warning,
p_assign_payroll_warning
=> lb_assign_payroll_warning,
p_orig_hire_warning
=> lb_orig_hire_warning
);
COMMIT;
DBMS_OUTPUT.put_line ('Employee Is Updated');
EXCEPTION
WHEN OTHERS

THEN
ROLLBACK;
DBMS_OUTPUT.put_line (SQLERRM);
END;
/
SET SERVEROUTPUT ON;

Anda mungkin juga menyukai