ORACLE workflow审批界面显示附件信息和附件的下载链接(转)
原文:
ORACLE workflow审批界面显示附件信息和附件的下载链接
代码如下:
- CREATE OR REPLACE PACKAGE cux_attachment_util_pkg IS
- TYPE curtype IS REF CURSOR;
- TYPE c_attached_record IS RECORD(
- row_num NUMBER,
- pk1_value NUMBER,
- user_entity_name VARCHAR2(1000),
- title VARCHAR2(1000),
- file_name VARCHAR2(1000),
- datatype_name VARCHAR2(1000),
- file_data BLOB,
- file_id NUMBER);
- -------------------------------------------------------------------
- ---------------
- -- 功能名称:
- -- GET_ATTACHED_HTML
- -- 功能说明:
- -- 获取附件列表html 代码
- -- 参数说明:
- -- PITEM_TYPE 工作流代码
- -- P_ITEM_KEY 审批关键字
- -- P_FUNCTION_NAME 附件功能名称
- -- P_ENTITY_NAME 文档实体标识
- -- P_TABLE_NAME 文档实体表
- -- p_BLOCK_NAME 附件功能的块名
- -- 返回附件列表的HTML代码
- -- 版本信息:
- -- 1.0 Initial Creation
- -------------------------------------------------------------------
- ---------------
- FUNCTION get_attached_html(pitem_type IN VARCHAR2,
- pitem_key IN VARCHAR2,
- p_function_name IN VARCHAR2,
- p_entity_name IN VARCHAR2,
- p_table_name IN VARCHAR2,
- p_block_name IN VARCHAR2) RETURN VARCHAR2;
- ---------------------------------------------------------------------
- -------------
- -- 功能名称:
- -- GET_OUTPUT_URL
- -- 功能说明:
- -- 获取附件下载链接地址
- -- 参数说明:
- -- P_PK1_VALUE 附件的主关键字值
- -- P_FILE_ID 附件文件ID
- -- P_ENTITY_NAME 文档实体标识
- -- 返回指定附件文件的下载链接地址
- -- 版本信息:
- -- 1.0 Initial Creation
- ---------------------------------------------------------------------
- -------------
- FUNCTION get_output_url(p_pk1_value IN NUMBER,
- p_file_id IN NUMBER,
- p_entity_name IN VARCHAR2) RETURN VARCHAR2;
- -------------------------------------------------------------------
- ---------------
- -- 功能名称:
- -- GET_ATTACHED_HTML
- -- 功能说明:
- -- 获取附件列表html 代码
- -- 参数说明:
- -- PITEM_TYPE 工作流代码
- -- P_ITEM_KEY 审批关键字
- -- P_FUNCTION_NAME 附件功能名称
- -- P_ENTITY_NAME 文档实体标识
- -- P_TABLE_NAME 文档实体表
- -- p_BLOCK_NAME 附件功能的块名
- -- 返回附件列表的HTML代码
- -- 版本信息:
- -- 1.0 Initial Creation
- ---------------------------------------------------------------------
- -------------
- END;
- CREATE OR REPLACE PACKAGE BODY cux_attachment_util_pkg IS
- FUNCTION get_attached_html(pitem_type IN VARCHAR2,
- pitem_key IN VARCHAR2,
- p_function_name IN VARCHAR2,
- p_entity_name IN VARCHAR2,
- p_table_name IN VARCHAR2,
- p_block_name IN VARCHAR2) RETURN VARCHAR2 IS
- c_attached curtype;
- v_document_attached VARCHAR2(32000);
- vattachedinfo c_attached_record;
- v_count NUMBER := 1;
- v_pk1_value NUMBER;
- vpk1_filed VARCHAR2(61);
- vpk2_filed VARCHAR2(61);
- vpk3_filed VARCHAR2(61);
- vpk4_filed VARCHAR2(61);
- vpk5_filed VARCHAR2(61);
- vpk1 VARCHAR2(61);
- vpk2 VARCHAR2(61);
- vpk3 VARCHAR2(61);
- vpk4 VARCHAR2(61);
- vpk5 VARCHAR2(61);
- vurl VARCHAR2(500);
- vcondition_field VARCHAR2(100);
- vcondition_operator VARCHAR2(10);
- vcondition_value1 VARCHAR2(100);
- vcondition_value2 VARCHAR2(100);
- vquery_permission_type VARCHAR2(10);
- vinsert_permission_type VARCHAR2(10);
- vupdate_permission_type VARCHAR2(10);
- vdelete_permission_type VARCHAR2(10);
- v_sql VARCHAR2(32000);
- c_sql VARCHAR2(32000);
- BEGIN
- BEGIN
- SELECT abe.pk1_field,
- abe.pk2_field,
- abe.pk3_field,
- abe.pk4_field,
- abe.pk5_field,
- abe.condition_field,
- abe.condition_operator,
- abe.condition_value1,
- abe.condition_value2,
- abe.query_permission_type,
- abe.insert_permission_type,
- abe.update_permission_type,
- abe.delete_permission_type
- INTO vpk1_filed,
- vpk2_filed,
- vpk3_filed,
- vpk4_filed,
- vpk5_filed,
- vcondition_field,
- vcondition_operator,
- vcondition_value1,
- vcondition_value2,
- vquery_permission_type,
- vinsert_permission_type,
- vupdate_permission_type,
- vdelete_permission_type
- FROM fnd_attachment_blk_entities abe,
- fnd_attachment_blocks ab,
- fnd_attachment_functions af
- WHERE abe.attachment_blk_id = ab.attachment_blk_id
- AND ab.attachment_function_id = af.attachment_function_id
- AND af.function_name = p_function_name
- AND af.function_type = 'F'
- AND abe.data_object_code = p_entity_name
- AND ab.block_name = p_block_name
- AND rownum = 1;
- EXCEPTION
- WHEN no_data_found THEN
- SELECT abe.pk1_field,
- abe.pk2_field,
- abe.pk3_field,
- abe.pk4_field,
- abe.pk5_field,
- abe.condition_field,
- abe.condition_operator,
- abe.condition_value1,
- abe.condition_value2,
- abe.query_permission_type,
- abe.insert_permission_type,
- abe.update_permission_type,
- abe.delete_permission_type
- INTO vpk1_filed,
- vpk2_filed,
- vpk3_filed,
- vpk4_filed,
- vpk5_filed,
- vcondition_field,
- vcondition_operator,
- vcondition_value1,
- vcondition_value2,
- vquery_permission_type,
- vinsert_permission_type,
- vupdate_permission_type,
- vdelete_permission_type
- FROM fnd_attachment_blk_entities abe,
- fnd_attachment_blocks ab,
- fnd_attachment_functions af
- WHERE abe.attachment_blk_id = ab.attachment_blk_id
- AND ab.attachment_function_id = af.attachment_function_id
- AND af.function_name = p_function_name
- AND af.function_type = 'O'
- AND abe.data_object_code = p_entity_name
- AND ab.block_name = p_block_name
- AND rownum = 1;
- END;
- v_sql := 'SELECT ' || substr(vpk1_filed,
- instr(vpk1_filed, '.', 1) + 1,
- length(vpk1_filed)) || ' FROM ' ||
- p_table_name || ' WHERE ITEM_KEY = ''' || pitem_key || '''' ||
- ' AND ROWNUM = 1';
- EXECUTE IMMEDIATE v_sql
- INTO v_pk1_value;
- v_document_attached := '<table width=100% border="0"
- cellspacing="0" cellpadding="0" >
- <tr><td><table cellpadding="0" cellspacing="0" border="0"
- width="100%" class="x74"
- style="background-image:url(/OA_HTML/cabo/images/swan/headingBarBg.gi
- f);">
- <tr>
- <td width="100%"><h2 class="x75"> 附件列表
- </h2></td></tr></table></td></tr>
- <tr><td><table width="100%" class="x1h" cellpadding="1"
- cellspacing="0" summary="Action History" border="1" >
- <tr>
- <th class="x1r x4j" scope="col" width="2%" align="LEFT"
- valign="baseline" ><span class="x24"> 序号</span></th>
- <th class="x1r x4j" scope="col" width="5%" align="LEFT"
- valign="baseline" ><span class="x24"> 实体名</span></th>
- <th class="x1r x4j" scope="col" width="10%" align="LEFT"
- valign="baseline" ><span class="x24"> 标题</span></th>
- <th class="x1r x4j" scope="col" width="15%" align="LEFT"
- valign="baseline" ><span class="x24"> 文件名</span></th>
- </tr>';
- c_sql := 'SELECT ROWNUM ROW_NUM,
- PK1_VALUE,
- USER_ENTITY_NAME,
- TITLE,
- FILE_NAME,
- DATATYPE_NAME,
- FILE_DATA,
- FILE_ID
- FROM (SELECT FAD.PK1_VALUE,
- FAD.USER_ENTITY_NAME,
- FAD.TITLE,
- FAD.FILE_NAME,
- FAD.DATATYPE_NAME,
- FL.FILE_DATA,
- FL.FILE_ID
- FROM FND_ATTACHED_DOCS_FORM_VL FAD, FND_LOBS FL
- WHERE FAD.MEDIA_ID = FL.FILE_ID
- AND FAD.FUNCTION_NAME = ''' || p_function_name || '''' ||
- ' AND FAD.PK1_VALUE IN ' || '(SELECT T.' ||
- substr(vpk1_filed,
- instr(vpk1_filed, '.', 1) + 1,
- length(vpk1_filed)) || ' FROM ' ||
- p_table_name || ' T WHERE T.ITEM_KEY = ''' ||
- pitem_key || '''' || ')
- AND FAD.ENTITY_NAME = ''' || p_entity_name || '''' ||
- ' ORDER BY FAD.USER_ENTITY_NAME, FAD.SEQ_NUM)';
- OPEN c_attached FOR c_sql;
- FETCH c_attached
- INTO vattachedinfo;
- WHILE c_attached% FOUND LOOP
- v_document_attached := v_document_attached ||
- '<tr>
- <td align="LEFT" valign="baseline" class="x1l x4x">' ||
- v_count ||
- '</td>
- <td align="LEFT" valign="baseline" class="x1l x4x">' ||
- vattachedinfo.user_entity_name ||
- '</td>
- <td align="LEFT" valign="baseline" class="x1l x4x">' ||
- vattachedinfo.title || '</td>
- <td align="LEFT" valign="baseline" class="x1l x4x">
- <a href="' ||
- get_output_url(v_pk1_value,
- vattachedinfo.file_id,
- p_entity_name) || '">' ||
- vattachedinfo.file_name || '</a></td>
- </tr>';
- v_count := v_count + 1;
- FETCH c_attached
- INTO vattachedinfo;
- END LOOP;
- v_document_attached := v_document_attached ||
- '</table></td></tr></table>';
- RETURN v_document_attached;
- EXCEPTION
- WHEN OTHERS THEN
- RETURN NULL;
- END get_attached_html;
- ---------------------------------------------------------------------
- -------------
- -- 功能名称:
- -- GET_OUTPUT_URL
- -- 功能说明:
- -- 获取附件下载链接地址
- -- 参数说明:
- -- P_PK1_VALUE 附件的主关键字值
- -- P_FILE_ID 附件文件ID
- -- P_ENTITY_NAME 文档实体标识
- -- 返回指定附件文件的下载链接地址
- -- 版本信息:
- -- 1.0 Initial Creation
- ---------------------------------------------------------------------
- -------------
- /*FUNCTION GET_OUTPUT_URL(P_PK1_VALUE IN NUMBER, P_FILE_ID IN
- NUMBER,P_ENTITY_NAME IN VARCHAR2)
- RETURN VARCHAR2 IS
- P_ACCESS_ID NUMBER;
- V_OUTPUT_URL VARCHAR2(10000);
- BEGIN
- V_OUTPUT_URL := '';
- SELECT ACCESS_ID
- INTO P_ACCESS_ID
- FROM FND_LOB_ACCESS
- WHERE FILE_ID = P_FILE_ID;
- V_OUTPUT_URL := RPT_REG_PKG.G_XML_PATH\* 是一个配置文件值可以自己定义修改,
- 值如: http://db1.dtpower.zszy.com:8001\*\ ||
- 'OA_HTML/fndgfm.jsp?mode=download_blob&fid=' ||
- P_FILE_ID || '&accessid=' || P_ACCESS_ID;
- RETURN V_OUTPUT_URL;
- EXCEPTION
- WHEN NO_DATA_FOUND THEN
- INSERT INTO FND_LOB_ACCESS
- (ACCESS_ID, FILE_ID, TIMESTAMP)
- SELECT TO_NUMBER(TO_CHAR(FND_LOBS_S.NEXTVAL) ||
- TO_CHAR(SYSDATE, 'SSSSS')),
- D.MEDIA_ID,
- SYSDATE + 1
- FROM FND_ATTACHED_DOCUMENTS B,
- FND_DOCUMENTS_TL C,
- FND_DOCUMENTS D
- WHERE B.DOCUMENT_ID = C.DOCUMENT_ID
- AND B.DOCUMENT_ID = D.DOCUMENT_ID
- AND B.PK1_VALUE = P_PK1_VALUE
- AND D.MEDIA_ID = P_FILE_ID
- AND B.ENTITY_NAME = P_ENTITY_NAME
- AND C.LANGUAGE = 'ZHS';
- COMMIT;
- SELECT ACCESS_ID
- INTO P_ACCESS_ID
- FROM FND_LOB_ACCESS
- WHERE FILE_ID = P_FILE_ID;
- V_OUTPUT_URL := RPT_REG_PKG.G_XML_PATH ||
- 'OA_HTML/fndgfm.jsp?mode=download_blob&fid=' ||
- P_FILE_ID || '&accessid=' || P_ACCESS_ID;
- RETURN V_OUTPUT_URL;
- WHEN OTHERS THEN
- P_ACCESS_ID := 0;
- V_OUTPUT_URL := '';
- XZTZ_LOG_PKG.INSERT_LOG(' 附件列表文件下载链接生成异常',
- SQLERRM,
- 'XZ_PO_PUB_PKG.GET_OUTPUT_URL',
- 30);
- RETURN V_OUTPUT_URL;
- END GET_OUTPUT_URL;*/
- FUNCTION get_output_url(p_pk1_value IN NUMBER,
- p_file_id IN NUMBER,
- p_entity_name IN VARCHAR2) RETURN VARCHAR2 IS
- p_access_id NUMBER;
- v_output_url VARCHAR2(10000);
- BEGIN
- /* V_SQL_STR := 'SELECT d.file_name,d.media_id ,a.access_id,
- fnd_gfm.construct_download_url(fnd_web_config.gfm_agent,d.media_id)
- URL ' ||
- ' from fnd_attached_documents b,fnd_documents_tl c,fnd_lob_access
- a,fnd_documents d' ||
- ' where b.document_id=c.document_id and
- b.document_id=d.document_id and b.pk1_value=''' ||
- V_PK1_VALUE || '''' ||
- ' and a.file_id=d.media_id and b.entity_name IN
- (''XZ_PO_EXPENDED'',''XZ_PO_EXPENDED'')
- and C.LANGUAGE=''ZHS'' '; */
- v_output_url := fnd_gfm.construct_download_url(fnd_web_config.gfm_agent, /* 应用产品 Web
- 代理配置文件值: http://db1.dtpower.zszy.com:8001/pls/TEST*/
- p_file_id);
- RETURN v_output_url;
- EXCEPTION
- WHEN OTHERS THEN
- p_access_id := 0;
- v_output_url := '';
- RETURN v_output_url;
- END get_output_url;
- END;
效果如下:
ORACLE workflow审批界面显示附件信息和附件的下载链接(转)的更多相关文章
- WSDL项目---添加头信息和附件
用于底层协议的SOAP请求是HTTP,可以添加两个自定义HTTP头(例如用于身份验证或会话)和附件. 让我们看一下这两个. 1. 自定义HTTP标头 直接添加自定义HTTP头: 我们已经添加了自定义内 ...
- Java 添加、下载、读取PDF附件信息(基于Spire.Cloud.SDK for Java)
Spire.Cloud.SDK for Java提供了PdfAttachmentsApi接口添加附件addAttachment().下载附件downloadAttachment().获取附件信息get ...
- Oracle WorkFlow(工作流)(一)
转载自:http://hi.baidu.com/quce227/item/3dee702c66466a0343634a58 1概述 1.1工作流的概念 Workflow是EBS的基础架构技术之一,系统 ...
- 为Dynamics CRM的Office附件注释定制个无需下载即可在线查看的功能
关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复164或者20151021可方便获取本文,同时可以在第一时间得到我发布的最新的博文信息,follow me! 上一篇博客:为Dynamics ...
- 浅谈odoo 后台与前端文件(附件)的存储与下载
odoo 后台与前端文件(附件)存储与下载实现 笔记太多了很乱,想想还是写博客的好,慢慢更 当然了,前提是你已经配好了odoo开发环境 一.odoo后台界面实现附件的上传和下载 1).在应用中搜索下图 ...
- [统计信息系列7] Oracle 11g的自动统计信息收集
(一)统计信息收集概述 在Oracle 11g中,默认有3个自动任务,分别是:自动统计信息收集.SQL调优顾问.段空间调整顾问,查看方法如下: SQL> SELECT CLIENT_NAME,T ...
- Oracle 11gR2 待定的统计信息(Pending Statistic)
Oracle 11gR2 待定的统计信息(Pending Statistic) 官档最权威: 发布优化器统计信息的用户界面 管理已发布和待处理的统计信息 实验先拖着.
- EBS存储附件信息
附件三种形式 1.文件 2.url 3.文本 三种方式存储不一样 1.文件是存blob 2.url是存一个链接信息,读出来的时候,就是一个蓝色可点链接 fnd_attached_document ...
- Oracle WorkFlow(工作流)(二)
2.4消息(Message) 消息主要是为通知服务的,可以把消息当作通知的内容和类型.消息也属于一个单据类型,通知只能和同一个单据类型里的消息相关联. 每个消息可以有一个或多个属性和自己相联系,消息的 ...
随机推荐
- java输出重定向
Java的标准输入,输出分别是通过System.in和System.out来代表.默认情况下他们分别代表键盘和显示器. System类里提供了3个重定向标准输入,输出的方法. static void ...
- mamcached+magent构建memcached集群
cat /etc/redhat-release CentOS release 6.7 (Final) 防火墙.selinux 关闭 192.168.12.30 安装libevent和memcached ...
- linux网络编程--网络编程的基本函数介绍与使用【转】
本文转载自:http://blog.csdn.net/yusiguyuan/article/details/17538499 我们深谙信息交流的价值,那网络中进程之间如何通信,如我们每天打开浏览器浏览 ...
- Leading and Trailing(数论/n^k的前三位)题解
Leading and Trailing You are given two integers: n and k, your task is to find the most significant ...
- 【入门教程】kafka环境搭建以及基础教程
问题导读 1.Kafka独特设计在什么地方?2.Kafka如何搭建及创建topic.发送消息.消费消息?3.如何书写Kafka程序?4.数据传输的事务定义有哪三种?5.Kafka判断一个节点是否活着有 ...
- c#之有参和无参构造函数,扩展方法
例如在程序中创建 Parent类和Test类,在Test有三个构造函数,parent类继承Test类,那么我们可以在Test类自身中添加 扩展 方法吗? 答案:是不可以的.因为扩展方法必须是静态的,且 ...
- SQL 事务(Transaction)
1.概念 指访问并可能更新数据库中各种数据项的一个程序执行单元(unit)由多个sql语句组成,必须作为一个整体执行这些sql语句作为一个整体一起向系统提交,要么都执行.要么都不执行 语法步骤:开始事 ...
- div滚动条时div内容显示一半
本文为博主原创,未经允许不得转载 今天在做页面浏览器适配时,将页面中的一个div进行放大时,出现了滚动条,但滚动条对应div中的 内容只能显示一半. 仔细对应属性样式时,div具有overflow:h ...
- MVC ---- T4模板的小练习
1.先建立两个模板文件 :Manger.ttinclude.DBHelper.ttinclude Manger.ttinclude <#@ assembly name="System. ...
- Hibernate与iBastis 比较(转载)
Hibernate VS iBATIS 简介 Hibernate 是当前最流行的O/R mapping框架,当前版本是3.05.它出身于sf.net,现在已经成为Jboss的一部分了 iBATIS ...