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

2014-06-01
BaoXinjian

一、摘要

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

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

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

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

  • 程式的Layout存放在服务器哪个目录下

  • 在database directory表中是否建立该路径的虚拟路径

  • utl_file如何去读文件

  • utl_mail如何去发邮件

二、案例

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

1. 报表默认输出方式

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

3. 运行报表,查看layout

4. 其layout显示

5. 其layout的存放的位置

6. 建立改路径

7. 使用测试脚本

8. 收到email

三、案例实现

Step1. 报表默认输出方式

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

Step3. 运行报表,查看layout

Step4. 其layout显示

Step5. 其layout的存放的位置

Step6. 建立改路径

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

Thanks and Regards

时间: 2024-08-02 04:44:57

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

Others_FND Loader程式迁移工具介绍和应用(案例)

2014-06-10 BaoXinjian 一.摘要 1. FNDLOAD的作用 则是为了移植EBS数据定义而诞生的工具,有LCT控制文件和LDT设定源数据 2. 存在两种模式: 下载/上传 下载: FNDLOAD apps/apps 0 Y DOWNLOAD afcpprog.lct xxap_prog.ldt PROGRAM APPLICATION_SHORT_NAME=XXAP CONCURRENT_PROGRAM_NAME=XXAP_PROGRAM 上传: FNDLOAD apps/ap

Java_并发工具包 java.util.concurrent 用户指南(转)

译序 本指南根据 Jakob Jenkov 最新博客翻译,请随时关注博客更新:http://tutorials.jenkov.com/java-util-concurrent/index.html.本指南已做成中英文对照阅读版的 pdf 文档,有兴趣的朋友可以去 Java并发工具包java.util.concurrent用户指南中英文对照阅读版.pdf[带书签] 进行下载. 1. java.util.concurrent - Java 并发工具包 Java 5 添加了一个新的包到 Java 平台

C#发送Email邮件(实例:QQ邮箱和Gmail邮箱)

下面用到的邮件账号和密码都不是真实的,需要测试就换成自己的邮件账号. 需要引用: using System.Net.Mail; using System.Text; using System.Net; 程序代码: MailMessage myMail = new MailMessage(); //创建邮件实例对象 myMail.From = new MailAddress(""); //发送者,要和邮件服务器的验证信息对应,不能随便更改 myMail.To.Add(new MailAd

Report_矩阵报表的实现(案例)

2014-05-31 BaoXinjian In Capgemini 一.摘要 1. 矩阵报表的建立条件 必须建立4个组Group 其中一个为交叉组Cross Group 其中两个子组包含在交叉组内,一个组显示行头,一个组显示猎头 其中一个为显示具体值的组 2. 矩阵报表的类型 单查询矩阵报表:只有一个Query构成 多查询矩阵报表:有多个Query构成,例如一个Query构成行,一个Query构成列,一个Query构成显示列,由两个Datalink进行连接 矩阵间断式报表:有5个组Group构

基于CAS线程安全的计算方法 java并发编程的艺术上的一个案例

package thread; import java.util.ArrayList; import java.util.List; import java.util.concurrent.atomic.AtomicInteger; /**  * @author  changxiangxiang  * @date 2014年8月6日 下午3:25:12  * @description  * @since  sprint2  */ public class Counter {     privat

Workflow_工作流发送Document和Form链接的实现(案例)

2014-06-01 BaoXinjian 一.摘要 Oracle Workflow可以发送Form.Document.URL链接,经常遇到,下文介绍Form和Document如何发送 Attribue Type Form Document URL 二.案例 - 发送Document Link链接 需求:发送Document文件 Step1. 建立一个Message,包含两个Attribute: Document和Form Step2. 在BXJ_DOCUMENT调用两个Function Ste

掌控全局,关注细节:利用运维报表、用户/主机轨迹实现安全运维

作为IT运维管理者,如果拥有一个既能把控全局,又能触及运维细节的运维审视工具,定能极大提升运维管理水平,加强团队运维保障能力.行云管家为IT管理者提供了更高.更全面而细致的安全管理视角,帮助运维管理者在掌控运维全局的同时,随时挖掘运维操作细节.从这个层面上来讲,行云管家提供了: 运维报表: 行云管家为用户提供多维度的运维报表,可以全面掌握IT资源运维状况,帮助运维管理者全方位分析IT资源的运行健康以及运维能力的分布状况等.行云管家的运维报表支持多维度自定义展现方式,并且支持PDF.DOC等多种格

前端发送并发请求思路

下面试ts简单写的思路代码 enum Statu { plain, plianing, error, ready, } // 并发数 class Parallel { num; files = [] as any[]; PARALLEL_NUM = 0; async filesErrorTips () { // doto } async send (index: number) { if (!this.files[index]) return; if (this.files[index].Sta

SYS_并发管理系列7_并发并发程式组的定义方式RequestSet(案例)

2014-06-21 Created By BaoXinjian 一.摘要 1. 定义Request Set,有两部分构成,Define Stage和Define Link 2. 建立Stage 2-1. 在Stage中建立Program: 定义每一步需运行那个Concurrent Program 2-2. 对Program设定Paremeter: 定义每个Concurrent Program的参数 3. 建立link 定义以上定义的Stage执行的先后顺序,遇到Success Waring E