oracle EBS上传和下载文件(转)

时间:2024-01-09 20:55:44

最近一直在做一个工作流的项目,最终用户要求在发送消息的时候可以附带附件,这个又是给我的一个难题。
在网上查了一下ORACLE上传资料,找到了黄建华前辈写的《Oracle EBS Forms开发指南(中级)》的资料有关于附件开发的内容,真的是不得不佩服黄建华前辈的厉害啊。

言归正传,按照《Oracle EBS Forms开发指南(中级)》中的介绍就可以轻松的实现客户化FORM添加附件的功能,好现在把上传的功能实现了,要如何实现已上传的文件在最终用户想查看该附件的时候现在下来呢?这个又是给我的一个难题,这个问题也卡住了我好些天,不过当初我弄明白了当我上传的文件时存到了fnd_lobs表中以BLOB数据的形式存储,现在要把BLOB数据以原文件的格式读取出来,并且给最终用户提供下载该文件的功能,在网上还真的找到这种方法,真的感谢前人共享他们的成果。
方法如下:

DECLARE
v_file_id NUMBER;
url VARCHAR2(500);
BEGIN
--Get the file_id of the file which you want to download in fnd_lobs
v_file_id := xxxxxx;
--Get The Download URL
url := fnd_gfm.construct_download_url(fnd_web_config.gfm_agent,
v_file_id,
TRUE);
END;

以上的方法就可以轻松的实现下载存储在fnd_lobs中的文件,只要告诉fnd_gfm.construct_download_url在fnd_lobs表中文件的file_id,就可以轻松取得URL,使用fnd_utilities.open_url就可以下载该文件。不过现在还有一个问题就是要在工作流发送的消息找到一个东西(比如说一个按钮、超链接)来执行下载文件的方法,请教顾问也没得到比较好的方法,无奈只好硬着头够尝试,在多次尝试之后找到了可以在document类型的ATTRIBUTE里设置一个超链接,然后让这个超链接的地址指向我已经取得的下载文件的URL,问题终于得以解决。

参考资料:

oracle EBS上传和下载文件(转)