離線審批概念 數據庫
離線審批--是指不進入系統,經過郵件來完成工做流審批的工做。適用於不但願登陸系統,又能及時作審批的情形。服務器
當審批人點擊了郵件中的批准或拒絕後,會向指定的收件人發一封郵件,Oracle會定時讀取並處理收到的郵件,根據郵件中的標識來更新相應的單據狀態,以使審批者不進系統而能夠完成審批的工做。網絡
通知和郵件處理過程 併發
1. 郵件處理程序定時讀取收件箱文件夾中的郵件。若是郵件是工做流節點的通知響應,這意味着它包含當前節點的節點標識(NID)和響應結果。spa
2. 若是通知不存在,意味着通知ID或NID是不合法或者是NID格式不對,郵件將被移到刪除文件夾。代理
3. 若是通知存在,但已經關閉或取消,郵件將被移到刪除文件夾,併發送工做流關閉或取消通知給相關職責。unix
4. 若是通知存在,並是打開的,郵件處理程序把響應的消息生成XML,並放到代理WF_NOTIFICATION_IN中。同時電子郵件將被移到已處理的文件夾。server
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定時讀取和分析指定目錄的郵件,以便完成流程的審批或拒絕。
好比,ERPinbox@xxxxxx.com.cn
文件夾 |
用途 |
舉例 |
收件箱文件夾 |
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 |
ERPinbox@xxxxxx.com.cn |
|
Password |
****** |
|
Reply-To Address |
ERPinbox@xxxxxx.com.cn |
|
Inbound SSL Enabled |
N |
|
參數 |
值 |
說明 |
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
驗證參數:
導航路徑:系統管理員/工做流/工做流管理器
若是是在現有的系統中增長郵件通知和郵件審批功能,系統中可能存在大量沒有發送的通知,須要進行清理。
在全部用戶完成必需的工做流審批以後,對相關表進行處理。
update WF_NOTIFICATIONS
set mail_status = 'SENT'
where mail_status = 'MAIL';
UPDATE WF_ITEMS
SET end_date = SYSDATE
WHERE end_date IS NULL
用產品語言
針對須要電子郵件通知和電子郵件審批的用戶,建議修改用戶的「默認的應用產品語言」爲「簡體中文」,此選項會影響用戶獲取電子郵件通知時所用的語言。
若是「默認的應用產品語言」爲「美式英語」,可能會出現接收的待審批郵件題頭存在亂碼的現象。特別是OIE審批中,題頭上的員工姓名可能會出現亂碼。
須要審批的用戶,應該設置爲「HTML郵件」。不須要郵件提醒和審批的用戶,能夠設置爲「請不要給我發送郵件」。對同一個用戶,儘可能避免同時使用郵件審批和通知審批兩種方式。