After Delete trigger is firing twice
661161Feb 19 2010 — edited Feb 23 2010Hi,
We have a requirement to send a mail to emp when a leave has been deleted. So I have written a AFTER DELETE trigger on "per_absence_attendances" table.
But this trigger is firing twice once when delete button is pressed and once when record is being saved. I need to fire it only once. Please find below the code for the below.
Please assist me in this.
Thanks,
Sri
--------------------------------
CREATE OR REPLACE TRIGGER XX_ABS_DEL_TRG
after delete on per_absence_attendances
for each row
--
declare
--
v_absence_attendance_id number;
v_abs_type_id number;
v_person_id number;
v_date_start date;
v_date_end date;
v_full_name VARCHAR2 (100);
v_email_address varchar2(50);
v_emp_invite varchar2(2) := NULL;
v_manager_email varchar2(50);
v_manager varchar2(50);
v_mgr_invite varchar2(2) := NULL;
l_abs_typ varchar2(30) := NULL;
l_duration number;
--
begin
--
v_absence_attendance_id := :old.absence_attendance_id;
v_abs_type_id := :old.absence_attendance_type_id;
v_person_id := :old.person_id;
v_date_start := :old.date_start;
v_date_end := :old.date_end;
v_duration := :old.absence_days;
begin
SELECT papf.email_address, papf.title||' ' ||papf.first_name||' ' ||papf.last_name, papf.attribute20
INTO v_email_address, v_full_name, v_emp_invite
FROM per_all_people_f papf
WHERE papf.person_id = v_person_id
AND SYSDATE between papf.effective_start_date and papf.effective_end_date
AND papf.current_employee_flag = 'Y';
select name into v_abs_typ
from per_absence_attendance_types
where absence_attendance_type_id = v_abs_type_id;
exception when others then
dbms_output.put_line('Error');
end;
if DELETING then
APPS.XX_CAL_PKG.send_mail(
---
---
);
end if;
end;