离线审批概念 数据库
离线审批--是指不进入系统,经过邮件来完成工做流审批的工做。适用于不但愿登陆系统,又能及时作审批的情形。服务器
当审批人点击了邮件中的批准或拒绝后,会向指定的收件人发一封邮件,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邮件”。不须要邮件提醒和审批的用户,能够设置为“请不要给我发送邮件”。对同一个用户,尽可能避免同时使用邮件审批和通知审批两种方式。