Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> ฐานข้อมูล

คู่มือ DBA: แก้ไขปัญหา Oracle Workflow Notification Mailer แบบรวดเร็ว

โพสต์นี้อภิปรายปัญหา Oracle® Workflow Notification Mailer แบบทั่วไปที่ผู้ดูแลฐานข้อมูล (DBA) เผชิญหน้าทุกวัน

บทนำ

เมื่อคุณจัดการปัญหา คุณต้องจัดการกับกระบวนการบันทึก ติดตาม และแก้ไขปัญหา เนื่องจาก Workflow Notification Mailer มีหลายส่วนประกอบ คุณอาจต่อสู้กับการแก้ไขปัญหาที่เกี่ยวข้องกับมัน เพื่อช่วยคุณ ผมครอบคลุมบางปัญหาและวิธีแก้ไขที่เป็นไปได้ อย่าพลาดสคริปต์ที่คุณต้องการเพื่อจัดการกิจกรรม Workflow Notification Mailer ได้อย่างง่ายดาย

ปัญหาทั่วไปของ Workflow Notification Mailer และวิธีแก้ไข

ส่วนต่อไปนี้สำรวจปัญหาและโซลูชันบางอย่างของ Workflow Notification Mailer

ปัญหา: ผู้ใช้ไม่ได้รับ Notification

ผู้ใช้ไม่ได้รับอีเมล Notification หรือไม่สามารถแก้ไข Notification ที่ล้มเหลวได้

สาเหตุ:

การตั้งค่าต่อไปนี้ตั้งค่าเป็น DISABLED แทนที่จะเป็น MAILHTML:

  • PREFERENCE_VALUE ในตาราง FND_USER_PREFERENCES
  • NOTIFICATION_PREFERENCE ในตาราง WF_LOCAL_ROLES

วิธีแก้ไข:

  1. รันคำสั่งต่อไปนี้เพื่อสำรองตาราง:
 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. 
  1. รันคำสั่งต่อไปนี้เพื่ออัปเดตตาราง:
 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>%' 
  1. รัน Request Resend Failed/Error Workflow Notifications จากหน้าที่ System Administrator เพื่อส่ง Notification ที่ล้มเหลวใหม่ ตั้งค่าพารามิเตอร์วันที่ Notifications sent on or after เป็นวันที่เฉพาะเจาะจง

หมายเหตุ: ใช้รูปแบบวันที่ต่อไปนี้: DD-MMM-YYYY (ตัวอย่าง: 01-JAN-2020)

ปัญหา 2: อีเมลไปโฟลเดอร์ผิด

ระบบส่งอีเมลอนุมัติค่าใช้จ่ายไปที่โฟลเดอร์ DISCARD แทนที่จะเป็น PROCESS

ตัวอย่างต่อไปนี้แสดง Action Item อนุมัติมาตรฐานที่สร้างขึ้นเมื่อผู้อนุมัติคลิกที่ลิงก์ Approval:

Action: 'Approve' Note: '' NID[5513471/192168752214903990869743932721878211126@WFMAIL] 

เมื่อ Notification ไปที่โฟลเดอร์ Junk "Action" Item จะปรากฏดังนี้:

Action: 'Approve'Note: ''NID5389465/1779945055187563456464409735425450546126@WFMAIL 

สาเหตุ:

การตั้งค่ารูปแบบการสร้างอีเมลของ Microsoft® Outlook® เป็น Text Mode หรือคุณอนุมัติ Notification จากอุปกรณ์เคลื่อนที่

วิธีแก้ไข:

ทุกครั้งที่คุณอนุมัติ Notification ผ่านอีเมล Text Mode หรือจากอุปกรณ์เคลื่อนที่ คุณควรตรวจสอบให้แน่ใจว่าคุณทำดังนี้:

  • เว้นวรรคระหว่างแต่ละ Field
  • ใส่ค่า NID ในวงเล็บ

ข้อความจากตัวอย่างก่อนหน้าควรมีอย่างน้อยหนึ่งช่องว่างระหว่าง Field และค่า NID ควรมีวงเล็บเหลี่ยม ([ ]) ตามตัวอย่างต่อไปนี้:

Action: 'Approve' Note: '' NID[5389465/1779945055187563456464409735425450546126@WFMAIL] 

ปัญหา 3: ผู้ใช้พลาดอีเมลหรือได้อีเมลเก่า

ผู้ใช้ไม่ได้รับอีเมลทันเวลา หรือได้รับ Notification เก่าที่ปิดหรือยกเลิกแล้ว

สาเหตุ:

ปัญหาเกิดขึ้นเมื่อ Workflow Notification Mailer Queue เต็มไปด้วยข้อมูลขยะ

พารามิเตอร์ wf_notifications มี mail_status ตั้งค่าเป็น MAIL สำหรับ Notification ที่ปิดแล้ว หรือ SENT สำหรับ Notification ที่เปิดอยู่

ในสถานการณ์นี้ คิว wf_notification_out มี Entry เก่ามากจากตาราง wf_notifcations การเกิดขึ้นนี้ส่ง Notification 異常 เมื่อพารามิเตอร์ Request ของ Workflow Background Process ไม่ถูกต้อง

วิธีแก้ไข:

ใช้ขั้นตอนระดับสูงต่อไปนี้เพื่อ Rebuild Workflow Notification Mailer Queue:

  1. ตรวจสอบกับลูกค้าเกี่ยวกับวิธี Purge Notification เก่า
  2. เก็บวันที่ไว้อ้างอิง เช่น begin_date
  3. ปิด Workflow Notification Mailer
  4. ปิด Notification OPEN ทั้งหมดที่เก่ากว่า begin_date
  5. อัปเดต mail_status เป็น SENT สำหรับ Notification ใดๆ ที่เก่ากว่า begin_date
  6. Rebuild Queue โดยใช้สคริปต์ต่อไปนี้ในฐานะ User APPS:
 SQL> @$FND_TOP/patch/115/sql/wfntfqup.sql apps <APSS_PASSWD> APPLSYS 

สคริปต์บำรุงรักษาสำหรับ Workflow Notification Mailer

คำสั่งในส่วนนี้ช่วยให้คุณบำรุงรักษา Workflow Notification Mailer คุณสามารถใส่คำสั่งลงในสคริปต์เพื่อความสะดวก

Script 1

สคริปต์นี้แก้ไขการตั้งค่าต่อไปนี้:

  • RUNNING
  • STARTING
  • STOPPED_ERROR
  • DEACTIVATED_USER
  • DEACTIVATED_SYSTEM
  • NOT_CONFIGURED

ใช้คำสั่งต่อไปนี้เพื่ออัปเดต Component_Status สำหรับ Workflow Notification Mailer และแก้ไขการตั้งค่า:

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

คุณสามารถใช้คำสั่งต่อไปนี้เพื่อตั้งค่า Mailer STARTUP_MODE เป็น MANUAL หรือ 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; 
คู่มือ DBA: แก้ไขปัญหา Oracle Workflow Notification Mailer แบบรวดเร็ว
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

สคริปต์นี้อัปเดตรหัสผ่าน Workflow Notification Mailer จาก 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

ใช้สคริปต์เดียวต่อไปนี้เพื่อเปลี่ยนค่า Workflow Notification Mailer จาก Backend:

$FND_TOP/sql/afsvcpup.sql 
คู่มือ DBA: แก้ไขปัญหา Oracle Workflow Notification Mailer แบบรวดเร็ว คู่มือ DBA: แก้ไขปัญหา Oracle Workflow Notification Mailer แบบรวดเร็ว

สรุป

Workflow Notification Mailer มีหลายส่วนประกอบและปัญหาที่棘手 โปรดสำรองตาราง wf_* ก่อนอัปเดต

อ้างอิง Oracle MetaLink Note ที่เกี่ยวข้องก่อนรันสคริปต์เพื่อใช้วิธีแก้ไข MetaLink มีสคริปต์อื่นๆ มากมายนอกเหนือจากที่รวมอยู่ในโพสต์นี้ ที่สามารถช่วยคุณแก้ไขปัญหาใน Workflow Notification Mailer

ใช้แท็บ Feedback เพื่อแสดงความคิดเห็นหรือถามคำถาม คุณยังสามารถแชทได้ทันทีเพื่อเริ่มการสนทนา

เรียนรู้เพิ่มเติมเกี่ยวกับ Databases