本节实现将并发请求输出PDF文件添加到工作流附件

省去了工作流中其他部分,只对附件部分介绍

1.       建立一个类型为Document的Attribute

2.       通知界面上创建附件链接

找到Notification下对应的Message;

将第一步中创建的Attribute复制到这个Message下面:

修改复制后的Attribute的属性

至此,Notification页面便存在一个附件链接。

3.       工作流中为附件Attribute赋值

在工作流执行过程中,代码实现对attribute进行赋值:

使用API:

wf_engine.setitemattrdocument

(itemtype        => l_itemtype,

itemkey         => l_itemkey,

aname           => 'TCL_PDF_ATTACH',

documentid      =>    'PLSQLBLOB:KS_OM_TEMP_CREDIT_LIMIT_PKG.READ_REPORT/KSOMTCLA:' || l_itemkey || ':'  || l_tcl_pdf

);

此处API中documentid  参数的固定格式为以下三种:

PLSQL:<procedure>/<document_identifier>;

PLSQLCLOB:<procedure>/<document_identifier>;

PLSQLBLOB:<procedure>/<document_identifier>;

4.       实现读取PDF文件的Procedure

该procedure的传入参数存在固定的格式:

/*

procedure <procedure name>

(document_id in varchar2,

display_type in varchar2,

document in out nocopy varchar2,

document_type in out nocopy varchar2);

procedure <procedure name>

(document_id in varchar2,

display_type in varchar2,

document in out nocopy clob,

document_type in out nocopy varchar2);

procedure <procedure name>

(document_id in varchar2,

display_type in varchar2,

document in out nocopy blob,

document_type in out nocopy varchar2);

*/

读取文件的代码:

PROCEDURE read_report (

document_id     IN       VARCHAR2,

display_type    IN       VARCHAR2,

document        IN OUT   BLOB,

document_type   IN OUT   VARCHAR2

)

IS

lfile_name   VARCHAR2 (240); --读取的目标文件名

lfile        BFILE;

BEGIN

/*从传入的参数中提取目标文件的名称*/

SELECT SUBSTR (document_id, INSTR (document_id, ':', -1) + 1)

INTO lfile_name

FROM DUAL;

/*BFILENAME是读取目录KS_FND_CONC_OUT下的文件lfile_name*/

lfile := BFILENAME ('KS_FND_CONC_OUT', lfile_name);

DBMS_LOB.OPEN (lfile, DBMS_LOB.lob_readonly);

DBMS_LOB.OPEN (document, DBMS_LOB.lob_readwrite);

document_type := 'application/pdf';

/*将lfile写入document*/

DBMS_LOB.loadfromfile (dest_lob => document,

    src_lob => lfile,

    amount => DBMS_LOB.getlength (lfile)

    );

DBMS_LOB.CLOSE (lfile);

DBMS_LOB.CLOSE (document);

END read_report;

添加并发请求PDF到工作流附件的更多相关文章

  1. Dynamics 365触发Microsoft Flow自动生成PDF并作为附件送邮件

    我是微软Dynamics 365 & Power Platform方面的工程师罗勇,也是2015年7月到2018年6月连续三年Dynamics CRM/Business Solutions方面 ...

  2. Jexus 高并发请求的优化技巧 笔记

    Jexus web server 5.1 每个工作进程的最大并发数固定为1万,最多可以同时开启4个工作进程,因此,每台Jexus V5.1服务器最多可以到支持4万个并发连接.但是,按照linux系统的 ...

  3. 开源个.NetCore写的 - 并发请求工具PressureTool

    本篇和大家分享的是一个 并发请求工具,并发往往代表的就是压力,对于一些订单量比较多的公司这种情况很普遍,也因此出现了很多应对并发的解决方案如:分布式,队列,数据库锁等: 对于没有遇到过或者不可能线上来 ...

  4. Asp.net并发请求导致的数据重复插入问题

    前段时间工作中,有客户反应了系统中某类待办重复出现两次的情况.我核实了数据之后,分析认为是并发请求下导致的数据不一致性问题,并做了重现.其实这并不是一个需要频繁调用的功能,但是客户连续点击了两次,导致 ...

  5. 达达O2O后台架构演进实践:从0到4000高并发请求背后的努力

    1.引言   达达创立于2014年5月,业务覆盖全国37个城市,拥有130万注册众包配送员,日均配送百万单,是全国领先的最后三公里物流配送平台. 达达的业务模式与滴滴以及Uber很相似,以众包的方式利 ...

  6. 使用HttpClient实现并发请求

    在.Net 4.0之前,一直是依靠HttpWebRequest实现Http操作的.它默认有一个非常保守的同一站点下最大2并发数限制,导致默认情况下HttpWebRequest往往得不到理想的速度,必须 ...

  7. 初学Jmeter添加Http请求,执行接口测试

    最近测试并发,刚开始使用的是录制方法,后面发现录制后无任何界面,加参数也不知从何着手,于是查了很多文章,终于慢慢的着手从http请求来测试并发了. 当然这是个遗留问题,先放在这里后面清楚了再回来补充: ...

  8. PHP实现并发请求

    后端服务开发中经常会有并发请求的需求,比如你需要获取10家供应商的带宽数据(每个都提供不同的url),然后返回一个整合后的数据,你会怎么做呢? 在PHP中,最直观的做法foreach遍历urls,并保 ...

  9. 支持10W高并发请求的IIS Web服务器常用设置

    支持高并发的IIS Web服务器常用设置   适用的IIS版本:IIS 7.0, IIS 7.5, IIS 8.0 适用的Windows版本:Windows Server 2008, Windows ...

随机推荐

  1. P1979 华容道

    题意:$n*m$棋盘上$n*m-1$颗棋子,有且只有一个格子为空白格子,每个棋子大小$1*1$ 有些棋子可以移动,而有些棋子固定,任何与空白的格子相邻(有公共的边)的格子上的棋子都可以移动到空白格子上 ...

  2. CF580C Kefa and Park dfs

    Kefa decided to celebrate his first big salary by going to the restaurant. He lives by an unusual pa ...

  3. SQL 模糊查询 可以正则匹配 (转)

    1. % 表示任意0个或多个字符.如下语句:Select * FROM user Where name LIKE '%三%'; 将会把name为“张三”,“三脚猫”,“唐三藏”等等有“三”的全找出来. ...

  4. 查看和导入证书(.cer / .pfx)

    作为文件形式存在的证书一般有这几种格式: 1.带有私钥的证书 由Public Key Cryptography Standards #12,PKCS#12标准定义,包含了公钥和私钥的二进制格式的证书形 ...

  5. Vuex基础-Module

    官方API地址:https://vuex.vuejs.org/zh/guide/modules.html 前面几节课写的user.js就称为一个module,这样做的原因是:由于使用单一状态树,应用的 ...

  6. C语言预处理命令之文件包含

    文件包含预处理命令的一般形式是: #include<文件名> 或者 #include“文件名” #include命令告诉预处理器用指定文件的内容替换这条命令,两种不同的命令格式决定了预处理 ...

  7. pytorch实现depthwise convolution

    深度分离卷积是Xception这个模型中提出来的(不太确定,但肯定是它让这个概念为大众周知),具体来说分为两步,depthwise conv和pointwise conv,前者对输入特征图的每个通道进 ...

  8. [NOI2009]管道取珠(DP)

    Luogu1758 DarkBZOJ1566 题解 因为他要让我们求出每种状态出现次数的平方和,这样模拟两人取球的时候,设第一个人取球的方案为A,第二个人取球的方案为B, 这样对于每一个A,都有C(n ...

  9. P4824 [USACO15FEB]Censoring (Silver) 审查(银)

    传送门 一个串的匹配肯定考虑KMP 那就暴力KMP 记录一下到每个字符时匹配的位置 找到一个符合的串就标记然后暴力回跳 感觉好像太暴力了... #include<iostream> #in ...

  10. 毕业设计 python opencv实现车牌识别 形状定位

    主要代码参考https://blog.csdn.net/wzh191920/article/details/79589506 GitHub:https://github.com/yinghualuow ...