添加并发请求PDF到工作流附件
本节实现将并发请求输出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到工作流附件的更多相关文章
- Dynamics 365触发Microsoft Flow自动生成PDF并作为附件送邮件
我是微软Dynamics 365 & Power Platform方面的工程师罗勇,也是2015年7月到2018年6月连续三年Dynamics CRM/Business Solutions方面 ...
- Jexus 高并发请求的优化技巧 笔记
Jexus web server 5.1 每个工作进程的最大并发数固定为1万,最多可以同时开启4个工作进程,因此,每台Jexus V5.1服务器最多可以到支持4万个并发连接.但是,按照linux系统的 ...
- 开源个.NetCore写的 - 并发请求工具PressureTool
本篇和大家分享的是一个 并发请求工具,并发往往代表的就是压力,对于一些订单量比较多的公司这种情况很普遍,也因此出现了很多应对并发的解决方案如:分布式,队列,数据库锁等: 对于没有遇到过或者不可能线上来 ...
- Asp.net并发请求导致的数据重复插入问题
前段时间工作中,有客户反应了系统中某类待办重复出现两次的情况.我核实了数据之后,分析认为是并发请求下导致的数据不一致性问题,并做了重现.其实这并不是一个需要频繁调用的功能,但是客户连续点击了两次,导致 ...
- 达达O2O后台架构演进实践:从0到4000高并发请求背后的努力
1.引言 达达创立于2014年5月,业务覆盖全国37个城市,拥有130万注册众包配送员,日均配送百万单,是全国领先的最后三公里物流配送平台. 达达的业务模式与滴滴以及Uber很相似,以众包的方式利 ...
- 使用HttpClient实现并发请求
在.Net 4.0之前,一直是依靠HttpWebRequest实现Http操作的.它默认有一个非常保守的同一站点下最大2并发数限制,导致默认情况下HttpWebRequest往往得不到理想的速度,必须 ...
- 初学Jmeter添加Http请求,执行接口测试
最近测试并发,刚开始使用的是录制方法,后面发现录制后无任何界面,加参数也不知从何着手,于是查了很多文章,终于慢慢的着手从http请求来测试并发了. 当然这是个遗留问题,先放在这里后面清楚了再回来补充: ...
- PHP实现并发请求
后端服务开发中经常会有并发请求的需求,比如你需要获取10家供应商的带宽数据(每个都提供不同的url),然后返回一个整合后的数据,你会怎么做呢? 在PHP中,最直观的做法foreach遍历urls,并保 ...
- 支持10W高并发请求的IIS Web服务器常用设置
支持高并发的IIS Web服务器常用设置 适用的IIS版本:IIS 7.0, IIS 7.5, IIS 8.0 适用的Windows版本:Windows Server 2008, Windows ...
随机推荐
- python 字符串,bytes和hex字符串之间的相互转换
import binascii datastr='13'#string 类型转换为bytedataByte=str.encode(datastr)#byte串 转换为16进制 byte串 ,比如 b' ...
- P2117 小Z的矩阵
题意: 给你一个初始01矩阵 三种操作 1.给一个x,把第x行01互换 2.给一个x,把第x列01互换 3.求$(\sum_{i=1}^n\sum_{j=1}^nf[i][j]*f[j][i])%2$ ...
- Leetcode 746. Min Cost Climbing Stairs 最小成本爬楼梯 (动态规划)
题目翻译 有一个楼梯,第i阶用cost[i](非负)表示成本.现在你需要支付这些成本,可以一次走两阶也可以走一阶. 问从地面或者第一阶出发,怎么走成本最小. 测试样例 Input: cost = [1 ...
- .NET Services Stack笔记之手写版
- vue.js使用elemnetUi
安装: npm 安装 推荐使用 npm 的方式安装,它能更好地和 webpack 打包工具配合使用. npm i element-ui -S 引入 Element 你可以引入整个 Element,或是 ...
- redis之常用Set和ZSet命令
redis五种数据类型:String,Hash,List,Set,ZSet.五种数据类型各有优点,各司其职.最后两种数据类型Set和ZSet基本上是一种,ZSet就是给Set加了个排序而已(相当于加了 ...
- github 第三方登录
第三方登录先了解 OAuth 2.0 OAuth 协议的认证和授权的过程如下: 用户打开我的博客后,我想要通过GitHub获取改用户的基本信息 在转跳到GitHub的授权页面后,用户同意我获取他的基本 ...
- POJ 3281 Dining ( 最大流 && 建图 )
题意 : 有 N 头牛,John 可以制作 F 种食物和 D 种饮料, 然后接下来有 N 行,每行代表一头牛的喜好==>开头两个数 Fi 和 Di 表示这头牛喜欢 Fi 种食物, Di 种饮料 ...
- django 母版与继承
在子页面的页面最上方使用下面的语法来继承母版. {% extends 'layouts.html' %} 块: 通过在母版中使用{% block xxx %}来定义块.在子页面中通过定义母版中的blo ...
- C++: int int& int * int**的区别、联系和用途
1.int; int是C++关键字,表示整型,其大小是32位有符号整型,表示的范围是-2,147,483,648 到 2,147,483,647:在声明和定义变量时使用,它表示的意思是所声明或所定义的 ...