IT虾米网

工作流邮件审批设置详解

admin 2018年05月31日 编程语言 214 0

离线审批概念

离线审批--是指不进入系统,通过邮件来完成工作流审批的工作。适用于不希望登录系统,又能及时做审批的情形。

当审批人点击了邮件中的批准或拒绝后,会向指定的收件人发一封邮件,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定时读取和分析指定目录的邮件,以便完成流程的审批或拒绝。

比如,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

 


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邮件”。不需要邮件提醒和审批的用户,可以设置为“请不要给我发送邮件”。对同一个用户,尽量避免同时使用邮件审批和通知审批两种方式。





发布评论

分享到:

IT虾米网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!

Java中英文字母汉字混合字符长度值计算详解
你是第一个吃螃蟹的人
发表评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。