天天看點

EBS中工作流郵件審批設定詳解

離線審批概念

離線審批–是指不進入系統,通過郵件來完成工作流審批的工作。适用于不希望登入系統,又能及時做審批的情形。

當審批人點選了郵件中的準許或拒絕後,會向指定的收件人發一封郵件,Oracle會定時讀取并處理收到的郵件,根據郵件中的辨別來更新相應的單據狀态,以使審批者不進系統而可以完成審批的工作。

通知和郵件處理過程

  1. 郵件處理程式定時讀取收件箱檔案夾中的郵件。如果郵件是工作流節點的通知響應,這意味着它包含目前節點的節點辨別(NID)和響應結果。
               
  2. 如果通知不存在,意味着通知ID或NID是不合法或者是NID格式不對,郵件将被移到删除檔案夾。
               
  3. 如果通知存在,但已經關閉或取消,郵件将被移到删除檔案夾,并發送工作流關閉或取消通知給相關職責。
               
  4. 如果通知存在,并是打開的,郵件處理程式把響應的消息生成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郵件”。不需要郵件提醒和審批的使用者,可以設定為“請不要給我發送郵件”。對同一個使用者,盡量避免同時使用郵件審批和通知審批兩種方式。

繼續閱讀