Hello,
I am calling below procedure and sometimes it gives error as mentioned above:
below is part of procedure :
CURSOR cEmpEvents (
p_person_id IN NUMBER) IS
SELECT pe.event_id, pe.object_version_number, ppr.performance_review_id, ppr.object_version_number
FROM per_events pe, per_performance_reviews ppr, per_assignments_x pax
WHERE pax.person_id = p_person_id
AND pax.assignment_id = pe.assignment_id
AND ppr.event_id = pe.event_id
AND TRUNC(SYSDATE) < pe.date_start;
BEGIN
/*
fnd_global.APPS_INITIALIZE(
p_last_updated_by,
20536,
800,
0,
-1);
*/
BEGIN
SELECT period_of_service_id,
object_version_number,
last_standard_process_date
INTO l_period_of_service_id,l_object_version_num,l_last_standard_process_date1
FROM per_periods_of_service pps
WHERE 1=1
AND person_id = p_person_id
AND actual_termination_date is NULL;
SELECT *
INTO l_last_standard_process_date1, l_final_proccess_date1
FROM
(SELECT pp.end_date ,
lead(pp.end_date) over (order by pp.end_date) next_end_date
FROM per_all_assignments_f p ,
per_time_periods pp
WHERE trunc(SYSDATE) BETWEEN p.effective_start_date AND p.effective_end_date
AND p.person_id = p_person_id
AND p.payroll_id = pp.payroll_id
AND pp.end_date >= TRUNC(TO_DATE(TO_CHAR(TO_DATE(p_actual_termination_date,'YYYY-MM-DD'),'DD-MON-YYYY'))) --
AND rownum <= 2
) inner_q
WHERE rownum=1;
EXCEPTION WHEN OTHERS THEN
l_error_flag := 'E';
l_error_message := 'Error fetching the employee period of service details.'||sqlcode||' '||SUBSTR(sqlerrm,12,200);
l_error_code := sqlcode; -- to handle the exception propertly in webcenter.
END;
l_termination_date1 := TO_DATE(TO_CHAR(TO_DATE(p_actual_termination_date,'YYYY-MM-DD'),'DD-MON-YYYY'));
-- l_last_standard_process_date1 := TO_DATE(TO_CHAR(TO_DATE(p_last_standard_process_date,'YYYY-MM-DD'),'DD-MON-YYYY'));
BEGIN
p_supervisor_warning := NULL;
p_event_warning := NULL;
p_interview_warning := NULL;
p_review_warning := NULL;
p_recruiter_warning := NULL;
p_asg_future_changes_warning := NULL;
p_entries_changed_warning := NULL;
p_pay_proposal_warning := NULL;
p_dod_warning := NULL;
p_org_now_no_manager_warning := NULL;
--mvadera initialize the session before starting DB transaction
init_user_session(p_last_updated_by);
-- A.Lanz -> Delete all the futures events and perf Reviews if any.
OPEN cEmpEvents(p_person_id);
LOOP
FETCH cEmpEvents INTO l_event_id, l_event_object_version_number, l_per_id, l_per_object_version_number;
EXIT WHEN cEmpEvents%NOTFOUND;
IF l_per_id is not null THEN
hr_perf_review_api.delete_perf_review(p_performance_review_id => l_per_id, p_object_version_number => l_per_object_version_number);
END IF;
IF l_event_id is not null THEN
per_events_api.delete_event(p_event_id => l_event_id,p_object_version_number => l_event_object_version_number);
END IF;
END LOOP;
CLOSE cEmpEvents;