Notification Mailer停用一段时间后,总会积累一些待发送邮件,因此如果有需要重启mailer,需要清理过期的邮件。步骤如下:更新WF_NOTIFICATIONS 中的STATUS为CLOSED,MAIL_STATUS为SENT。
如果STATUS为OPEN,MAIL_STATUS为MAIL,表示这部分数据将被送入发送队列。因此,此处需要手工标记为已发送。 $FND_TOP/patch/115/sql/wfntfqup.sql 更新队列。
(更新数据到WF_NOTIFICATION_OUT表,这里存放格式化后的邮件发送队列。
注意,必须在停止Mailer和相应的Service Container后才能进行此步操作。) 之后用$FND_TOP/sql/wfver.sql检查WF_NOTIFICATION_OUT的Ready数目。
然后重启Workflow Notification Mailer即可。
P.S: 你也可以修改WF_NOTIFICATIONS中的BEGIN_DATE来修改发送日期1.1. 等待发送Mail的Notification 代码实例
SELECT notification_id, status, mail_status, begin_date
FROM wf_notifications
WHERE status = 'OPEN'
AND mail_status = 'MAIL'
注意:status = 'SENT'的记录说明已经成功发送。
外发Mail通常在如下Queue中(corrid = APPS + ):
SELECT *
FROM applsys.wf_notification_out wno
WHERE wno.state = 0
AND wno.corrid = 'APPSCUXCMNTF'
State说明如下:
0 Ready
1 Delayed
2 Retained/Processed
3 Exception
1.2. 清理Notification 代码实例,小心使用!!!
1、 更新不需要的消息,条件自己加
UPDATE applsys.wf_notifications
SET mail_status = 'SENT'
WHERE message_type IN ('XDPWFSTD', 'WFERROR');
2、 重建WF_NOTIFICATION_OUT对列
$FND_TOP/patch/115/sql/wfntfqup.sql