離線審批概念
離線審批–是指不進入系統,通過郵件來完成工作流審批的工作。适用于不希望登入系統,又能及時做審批的情形。
當審批人點選了郵件中的準許或拒絕後,會向指定的收件人發一封郵件,Oracle會定時讀取并處理收到的郵件,根據郵件中的辨別來更新相應的單據狀态,以使審批者不進系統而可以完成審批的工作。
通知和郵件處理過程
-
郵件處理程式定時讀取收件箱檔案夾中的郵件。如果郵件是工作流節點的通知響應,這意味着它包含目前節點的節點辨別(NID)和響應結果。
-
如果通知不存在,意味着通知ID或NID是不合法或者是NID格式不對,郵件将被移到删除檔案夾。
-
如果通知存在,但已經關閉或取消,郵件将被移到删除檔案夾,并發送工作流關閉或取消通知給相關職責。
-
如果通知存在,并是打開的,郵件處理程式把響應的消息生成XML,并放到代理WF_NOTIFICATION_IN中。同時電子郵件将被移到已處理的檔案夾。
OracleWorkflow支援的協定
目前,Oracle Workflow支援SMTP協定(預設端口是25)處理出站消息、IMAP4協定(預設端口是143)處理進站消息,不支援pop3,這也是Oracle Workflow對Mail伺服器的要
求。
檢查郵件伺服器協定
如果想使用ORACLE的郵件離線審批功能,郵件伺服器必須開通SMTP,IMAP4協定。這個要根據不同類型的郵件伺服器去具體分析和設定。比如EXCHANGE伺服器可以通過指令get-imapsettings得到imap4協定的配置。
一般常用的郵件伺服器隻會開通SMTP和POP3服務。如果郵件伺服器支援的話,可以隻對中轉郵箱開通IMAP4協定。
最簡單的做法,就是 通過用戶端使用SMTP,IMAP4去登入,看是否能正常收發郵件。
建立收發中轉郵箱
建立收發中轉郵箱,EBS 通過此郵箱向使用者發送消息;使用者向此郵箱發送審批或拒絕資訊。EBS定時讀取和分析指定目錄的郵件,以便完成流程的審批或拒絕。
比如,[email protected]
中轉郵箱中建立檔案夾
檔案夾
用途
舉例
收件箱檔案夾
EBS定時讀取和分析此檔案夾中的郵件
ERPINBOX
已處理的檔案夾
已讀取并處理完成的郵件,将被轉移到此檔案夾
PROCESS
删除檔案夾
已讀取并被删除的郵件,将被轉移到此檔案夾
DISCARD
收件箱檔案夾建議不要使用标準的收件箱(INBOX),把符合審批條件的郵件通過郵箱規則轉移到收件箱檔案夾。這樣可以盡量避免無關郵件的幹擾。
将mail server的ip和域名解析增加到erp server的host檔案中。
unix下/etc/hosts中設定的是:
vi/etc/hosts
192.168.100.2 mailer.xxxxxx.com.cnmailer
檢查“工作流代理接收器服務”和“工作流郵件程式服務”是否已經啟動,如沒有啟動,請選擇并通過下方的按鈕來激活。
系統管理者/工作流/工作流管理器/
點選Service Components,出現服務清單視窗
(注:這裡檢視“WorkflowNotification Mailer”的目前狀态,并可以在動作框中選擇啟動,停止,重新整理等操作。由于郵件伺服器、網絡等原因導緻“WorkflowNotification Mailer”服務中斷停止,可以通過這裡重新啟動。)
點選WorkflowNotification Mailer,出現工作通知郵件設定視窗
點選Edit按鈕,可以進行設定
參數
值
說明
Outbound Server Name
mailer.xxxxxx.com.cn
預設端口是25
Outbound SSL Enabled
N
Inbound Processing
Y
啟用離線審批
Inbound Server Names
mailer.xxxxxx.com.cn
預設端口是143
Username
[email protected]
Password
Reply-To Address
[email protected]
Inbound SSL Enabled
N
1.1. 修改參數
參數
值
說明
JOB_QUEUE_PROCESSES
20
它指定每個例程的 SNP 作業隊列程序的數量
AQ_TM_PROCESSES
10
啟用對隊列消息的時間監視。該時間值可用于指定消息的延遲和失效屬性
WF_NOTIFICATION_OUT retry_delay
600
輸出消息的重試延遲時間(600秒)
WF_NOTIFICATION_IN retry_delay
600
輸入消息的重試延遲時間(600秒)
注:參數根據實際的需要來設定。
ORACLE 建議設定 JOB_QUEUE_PROCESSES=10. AQ_TM_PROCESSES >= 1.
使用APPS在資料庫中執行如下語句:
ALTER SYSTEM SET JOB_QUEUE_PROCESSES = 20;
ALTER SYSTEM SET AQ_TM_PROCESSES = 10;
BEGIN
DBMS_AQADM.ALTER_QUEUE(queue_name => 'APPLSYS.WF_NOTIFICATION_OUT',retry_delay => 600);
END;
BEGIN
DBMS_AQADM.ALTER_QUEUE(queue_name => 'APPLSYS.WF_NOTIFICATION_IN',retry_delay => 600);
END;
要使參數設定永久有效,需要修改資料庫參數檔案:
vi $ORACLE_HOME/dbs/initPROD.ora
驗證參數:
導航路徑:系統管理者/工作流/工作流管理器
如果是在現有的系統中增加郵件通知和郵件審批功能,系統中可能存在大量沒有發送的通知,需要進行清理。
在所有使用者完成必需的工作流審批之後,對相關表進行處理。
更新表 WF_NOTIFICATIONS
update WF_NOTIFICATIONS
set mail_status = ‘SENT’
where mail_status = ‘MAIL’;
更新表WF_ITEMS
UPDATE WF_ITEMS
SET end_date = SYSDATE
WHERE end_date IS NULL
用産品語言
針對需要電子郵件通知和電子郵件審批的使用者,建議修改使用者的“預設的應用産品語言”為“簡體中文”,此選項會影響使用者擷取電子郵件通知時所用的語言。
如果“預設的應用産品語言”為“美式英語”,可能會出現接收的待審批郵件題頭存在亂碼的現象。特别是OIE審批中,題頭上的員工姓名可能會出現亂碼。
電子郵件樣式
需要審批的使用者,應該設定為“HTML郵件”。不需要郵件提醒和審批的使用者,可以設定為“請不要給我發送郵件”。對同一個使用者,盡量避免同時使用郵件審批和通知審批兩種方式。