PLSQL_通过UTL_MAIL发送并发程式结果报表至用户邮箱(案例)

2014-06-01 Created By BaoXinjian

PLSQL_通过UTL_MAIL发送并发程式结果报表至用户邮箱(案例)一、摘要


在开发报表时,客户有时候会要求在运行报表后,系统自动会将报表的结果发送至客户邮箱

遇到这种情况,有很多的技术去实现,包括workflow,alert,utl_mail等等

之前做过一个小需求将invoice结果发送给客户如下

做需求必须分析以下几个构建

  • 程式的Layout存放在服务器哪个目录下
  • 在database directory表中是否建立该路径的虚拟路径
  • utl_file如何去读文件
  • utl_mail如何去发邮件

 

PLSQL_通过UTL_MAIL发送并发程式结果报表至用户邮箱(案例)二、案例


需求:将Invoice程式的输出结果自动发送给客户邮箱

    1. 报表默认输出方式

    2. 报表的最终的方式为PDF

    3. 运行报表,查看layout

    4. 其layout显示

    5. 其layout的存放的位置

    6. 建立改路径

    7. 使用测试脚本

    8. 收到email

 

PLSQL_通过UTL_MAIL发送并发程式结果报表至用户邮箱(案例)三、案例实现


Step1. 报表默认输出方式

    PLSQL_通过UTL_MAIL发送并发程式结果报表至用户邮箱(案例)

Step2. 报表的最终的方式为PDF

    PLSQL_通过UTL_MAIL发送并发程式结果报表至用户邮箱(案例)

Step3. 运行报表,查看layout

    PLSQL_通过UTL_MAIL发送并发程式结果报表至用户邮箱(案例)

Step4. 其layout显示

    PLSQL_通过UTL_MAIL发送并发程式结果报表至用户邮箱(案例)

Step5. 其layout的存放的位置

    PLSQL_通过UTL_MAIL发送并发程式结果报表至用户邮箱(案例)

Step6. 建立改路径

    PLSQL_通过UTL_MAIL发送并发程式结果报表至用户邮箱(案例)

Step7. 使用测试脚本

 1 DECLARE
 2 
 3    p_request_id   VARCHAR2 := '19087352';
 4 
 5    l_output       UTL_FILE .file_type ;
 6 
 7    l_file         RAW (32767);
 8 
 9    l_size         NUMBER;
10 
11    BLOCK          NUMBER;
12 
13    b              BOOLEAN;
14 
15 BEGIN
16 
17    UTL_FILE.FGETATTR ('C_CONC_REQOUT_DIR' ,'C_AP_SPLITTER_R_' || p_request_id || '_1.PDF',
18 
19                                    b,
20 
21                                    l_size ,
22 
23                                    BLOCK);
24 
25  
26 
27    l_output :=  UTL_FILE .fopen ('C_CONC_REQOUT_DIR',  'C_AP_SPLITTER_R_' || p_request_id || '_1.PDF',  'r');
28 
29  
30 
31    UTL_FILE.get_raw (l_output, l_file, l_size);
32 
33  
34 
35    UTL_FILE.fclose (l_output);
36 
37  
38 
39    UTL_MAIL.SEND_ATTACH_RAW (sender         => 'bao@motorola.com',
40 
41                              recipients     => 'bcrp67@motorola.com',
42 
43                              subject        => 'subject',
44 
45                              attachment     => l_file,
46 
47                              MESSAGE        => 'messge',
48 
49                              att_inline     => FALSE,
50 
51                              att_filename   => 'C_AP_SPLITTER_R_' || p_request_id || '_1.PDF');
52 
53 END;

Step8. 收到email

    PLSQL_通过UTL_MAIL发送并发程式结果报表至用户邮箱(案例)

 

Thanks and Regards

 PLSQL_通过UTL_MAIL发送并发程式结果报表至用户邮箱(案例)

ERP技术讨论群: 288307890
技术交流,技术讨论,欢迎加入
Technology Blog Created By Oracle ERP - 鲍新建
上一篇:阿里云中间件技术 促进互联网高速发展


下一篇:日志服务消费延迟问题排查