Giới Thiệu
Bài viết này thảo luận một số vấn đề chung của Oracle® Workflow Notification Mailer mà database administrators (DBAs) gặp hàng ngày.
Khi quản lý vấn đề, bạn đối mặt với quá trình ghi nhận, theo dõi, và giải quyết vấn đề. Vì Workflow Notification Mailer có nhiều thành phần, bạn có thể gặp khó khăn giải quyết các vấn đề liên quan đến nó. Để giúp bạn, tôi trình bày một số vấn đề và sửa pháp có thể. Đừng bỏ lỡ các script bạn cần để quản lý hoạt động Workflow Notification Mailer dễ dàng.
Vấn Đề Chung Của Workflow Notification Mailer Và Cách Sửa
Các phần sau khám phá một số vấn đề và giải pháp của Workflow Notification Mailer.
Vấn Đ: Người Dùng Không Nhận Thông Báo
Người dùng không nhận email thông báo hoặc không thể sửa các thông báo thất bại.
Nguyên Nhân:
Các thiết lập sau được đặt thành DISABLED thay vì MAILHTML:
- PREFERENCE_VALUE trong bảng FND_USER_PREFERENCES
- NOTIFICATION_PREFERENCE trong bảng WF_LOCAL_ROLES
Sửa Pháp:
- Chạy các lệnh sau để backup các bảng:
SQL> create table fnd_user_preferences_bkp as select * from fnd_user_preferences; Table created.
SQL> create table wf_local_roles_bkp as select * from wf_local_roles; Table created.
- Chạy các lệnh sau để cập nhật bảng:
select user_name,preference_value from FND_USER_PREFERENCES where preference_value = 'DISABLED' and preference_name = 'MAILTYPE' and module_name = 'WF' and user_name like '%<USER_NAME>%';
update FND_USER_PREFERENCES set preference_value = 'MAILHTML' where preference_name = 'MAILTYPE' and preference_value = 'DISABLED' and module_name = 'WF' and user_name like '%<USERNAME>%';
select * from wf_local_roles where notification_preference = 'DISABLED' and name like '%<NAME>'
update wf_local_roles set notification_preference = 'MAILHTML' where notification_preference = 'DISABLED' and name like '%<NAME>%'
- Chạy request Resend Failed/Error Workflow Notifications từ trách nhiệm System Administrator để gửi lại thông báo thất bại. Đặt tham số ngày, Notifications sent on or after, thành ngày cụ thể.
Lưu ý: Sử dụng định dạng ngày sau: DD-MMM-YYYY (Ví dụ: 01-JAN-2020)
Vấn Đề 2: Email Đi Sai Thư Mục
Hệ thống gửi email phê duyệt chi tiêu vào thư mục DISCARD thay vì PROCESS.
Ví dụ sau hiển thị mục Action chuẩn của email phê duyệt được tạo khi người phê duyệt nhấp vào link Approval:
Action: 'Approve' Note: '' NID[5513471/192168752214903990869743932721878211126@WFMAIL]
Khi thông báo đi vào thư mục Junk, mục "Action" xuất hiện như sau:
Action: 'Approve'Note: ''NID5389465/1779945055187563456464409735425450546126@WFMAIL
Nguyên Nhân:
Cài đặt định dạng tạo email Microsoft® Outlook® ở chế độ text, hoặc bạn phê duyệt thông báo từ thiết bị di động.
Sửa Pháp:
Bất cứ khi nào bạn phê duyệt email thông báo bằng chế độ text email hoặc từ thiết bị di động, bạn nên đảm bảo thực hiện các hành động sau:
- Đặt khoảng trắng giữa các trường.
- Đặt giá trị NID trong ngoặc vuông.
Tin nhắn từ ví dụ trước nên có ít nhất một khoảng trắng giữa các trường, và giá trị NID nên bao gồm ngoặc vuông ([ ]), như ví dụ sau:
Action: 'Approve' Note: '' NID[5389465/1779945055187563456464409735425450546126@WFMAIL]
Vấn Đề 3: Người Dùng Bỏ Lỡ Email Hoặc Nhận Email Cũ
Người dùng không nhận email đúng thời điểm, hoặc họ nhận thông báo cũ đã đóng hoặc hủy.
Nguyên Nhân:
Vấn đề xảy ra khi hàng đợi Workflow Notification Mailer đầy dữ liệu rác.
Tham số wf_notifications có mail_status đặt thành MAIL cho thông báo đã đóng hoặc SENT cho thông báo mở.
Trong kịch bản này, hàng đợi wf_notification_out có các entry rất cũ từ bảng wf_notifcations. Sự việc này gửi thông báo bất thường khi tham số request Workflow Background Process không chính xác.
Sửa Pháp:
Sử dụng các bước cấp cao sau để rebuild hàng đợi Workflow Notification Mailer:
- Kiểm tra với khách hàng về cách dọn dẹp thông báo cũ.
- Giữ ngày để tham chiếu, như begin_date.
- Tắt Workflow Notification Mailer.
- Đóng tất cả thông báo OPEN cũ hơn begin_date.
- Cập nhật mail_status thành SENT cho bất kỳ thông báo nào cũ hơn begin_date.
- Rebuild hàng đợi bằng script sau với user APPS:
SQL> @$FND_TOP/patch/115/sql/wfntfqup.sql apps <APSS_PASSWD> APPLSYS
Script Bảo Trì Cho Workflow Notification Mailer
Các lệnh trong phần này giúp bạn bảo trì Workflow Notification Mailer. Bạn có thể đặt các lệnh vào script để tiện lợi.
Script 1
Script này sửa đổi các thiết lập sau:
RUNNINGSTARTINGSTOPPED_ERRORDEACTIVATED_USERDEACTIVATED_SYSTEMNOT_CONFIGURED
Sử dụng các lệnh sau để cập nhật component_status cho Workflow Notification Mailer và sửa đổi thiết lập:
SQL> select component_status from fnd_svc_components where component_id = (select component_id from fnd_svc_components where component_name = 'Workflow Notification Mailer');
COMPONENT_STATUS
------------------------------
STARTING
SQL> update fnd_svc_components set component_status='DEACTIVATED_SYSTEM' where component_id = (select component_id from fnd_svc_components where component_name = 'Workflow Notification Mailer');
1 row updated
SQL> commit;
Commit complete.
Script 2
Bạn có thể dùng các lệnh sau để đặt STARTUP_MODE của Mailer thành MANUAL hoặc AUTOMATIC:
SQL> select fsc.COMPONENT_NAME,fsc.STARTUP_MODE,fsc.COMPONENT_STATUS from APPS.FND_CONCURRENT_QUEUES_VL fcq, fnd_svc_components fsc where fsc.concurrent_queue_id = fcq.concurrent_queue_id(+) order by COMPONENT_STATUS , STARTUP_MODE , COMPONENT_NAME;
SQL> update fnd_svc_components fsc set fsc.STARTUP_MODE='MANUAL' where fsc.COMPONENT_NAME='Workflow Notification Mailer';
1 row updated.
SQL> commit;
Commit complete.
Script 3
Script này cập nhật mật khẩu Workflow Notification Mailer từ backend:
SQL> @wfmlrpwupd_in.sql
Enter value for password: *****
Enter value for componentid: 10006
Updated
SQL> @wfmlrpwupd_out.sql
Enter value for password: *****
Enter value for componentid: 10006
Updated
Script 4
Dùng script đơn sau để thay đổi giá trị Workflow Notification Mailer từ backend:
$FND_TOP/sql/afsvcpup.sql
Kết Luận
Workflow Notification Mailer có nhiều thành phần và một số vấn đề phức tạp. Hãy chắc chắn backup các bảng wf_* trước khi cập nhật chúng.
Tham khảo Oracle MetaLink note liên quan trước khi chạy script để áp dụng sửa pháp. MetaLink có nhiều script khác ngoài những script trong bài viết này có thể giúp bạn giải quyết vấn đề trong Workflow Notification Mailer.