二次开发中附件的使用实例

上传人:cn****1 文档编号:403028890 上传时间:2023-12-14 格式:DOCX 页数:8 大小:17.73KB
返回 下载 相关 举报
二次开发中附件的使用实例_第1页
第1页 / 共8页
二次开发中附件的使用实例_第2页
第2页 / 共8页
二次开发中附件的使用实例_第3页
第3页 / 共8页
二次开发中附件的使用实例_第4页
第4页 / 共8页
二次开发中附件的使用实例_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《二次开发中附件的使用实例》由会员分享,可在线阅读,更多相关《二次开发中附件的使用实例(8页珍藏版)》请在金锄头文库上搜索。

1、Oralce ERP二次开发中附件的使用实例Oracle ERP 二次开发中使用的方式有两种,一是通过标准功能,在系统管理员中定义即可,不用写代码,就可以使几 乎任何 Form 具有附件功能,具体参考系统管理员文档,或者ucolor=#0000ffurl=http:/ ewthread.php?tid=36637/url/color/u二是通过PL/SQL Gateway,需要我们便写代码完成。该方式其实和上述方式一的后台实现是一样的。我写了个 Package,大体可以演示改写的代码。简单说明如下:1、Package功能,测试通过PL/SQL Gateway (MOD PL/SQL)完成文件上

2、传下载2、本 Package 直接使用 EBS 的 DAD,所以对应的 Document 表为 APPS.fnd_lobs_document在非EBS环境开发,需要自己定义DAD请参考9ias_plsql.pdf和9ias.pdf,步骤如下a、仓ll建 Document 表,参照 fnd_lobs_document 和 fnd_lobs_documentpart,表名 自己起b、配置 DAD,配置文件为$IAS_ORACLE_HOME/Apache/modplsql/cfg/wdbsvr.appc、参照fnd_gfm,改写成自己的包,或者简单点改写本Package也行3、需要把我们写的包在 s

3、ystem administrator - security - Web PL/SQL里面注册一下, 不然通过 IE 打开会提示用户名和密码4、本测试把在接口fnd_lobs_document中的附件,按照EBS的做法保存到fnd_lobs,也可以改写代码保存到自己的表,一般没必要,我们自己的表保存File_ID即可5、一个表中的 BLOB 等数据可以直接插入另一个表codeCREATE OR REPLACE PACKAGE oracle_up_down AUTHID CURRENT_USER IS1、Package功能,测试通过PL/SQL Gateway (MOD PL/SQL)完成文件上

4、传下载2、本 Package 直接使用 EBS 的 DAD,所以对应的 Document 表为 APPS.fnd_lobs_document 在非EBS环境开发,需要自己定义DAD请参考9ias_plsql.pdf和9ias.pdf,步骤如下1、创建 Document 表,参照 fnd_lobs_document 和 fnd_lobs_documentpart,表名自己起2、配置 DAD,配置文件为$IAS_ORACLE_HOME/Apache/modplsql/cfg/wdbsvr.app3、参照fnd_gfm,改写成自己的包,或者简单点改写本Package也行3、需要把我们写的包在 sys

5、tem administrator - security - Web PL/SQL里面注册一下, 不然通过 IE 打开会提示用户名和密码4、本测试把在接口fnd_lobs_document中的附件,按照EBS的做法保存到fnd_lobs,也可以改写代码保存到自己的表,一般没必要,我们自己的表保存File_ID即可5、一个表中的 BLOB 等数据可以直接插入另一个表/*上传文件下载过程*1、初始化 access idselect fnd_gfm.authorize(-1) from dual;2、准备url,下面是例子SELECT fnd_web_config.trail_slash(fnd_p

6、rofile.VALUE(APPS_WEB_AGENT) |oracle_up_dow n. upload_form?p_access_id=上面 1 的查询结果FROM dual;3、用浏览器打开url即可。如果是通过Form打开url上传,那么把上面代码放入form的相应trigger4、查看 File_IDSELECT fnd_web_config.trail_slash(fnd_profile.VALUE(APPS_WEB_AGENT) |oracle_up_dow n. upload_form?p_access_id=上面 1 的查询结果FROM dual;4、把文件下载下来验证SE

7、LECT fnd_web_config.trail_slash(fnd_profile.VALUE(APPS_WEB_AGENT) |oracle_up_down.download_file?p_file_id=上面 4 的查询结果| chr(38) |p_access_id=上面1的查询结果FROM dual;5、可以直接在PL/SQL Developer 6以上中Select出来点击File_Data察看Test 脚本http:/:8003/pls/scp/fnd_web.SHOWENV;select fnd_gfm.authorize(-1) from dual;select * fro

8、m applsys.fnd_lob_access t where t.access_id = 354896931892;http:/:8003/pls/SCP/oracle_up_down.upload_form?p_access_id=354896931892;select * from applsys.fnd_lob_access t where t.access_id = 354896931892;select * from applsys.fnd_lobs_document t;http:/:8003/pls/SCP/oracle_up_down.download_file?p_fil

9、e_id=3548970&p_acce ss_id=354896931892;Select * from fnd_lobs flb where flb.file_id = 3548970;*上传文件下载过程*/g_agentCONSTANTVARCHAR2(100):=fnd_web_config.trail_slash(fnd_profile.VALUE(APPS_WEB_AGENT);g_package_name CONSTANT VARCHAR2(100) := oracle_up_down;g_upload_url CONSTANT VARCHAR2(100) := g_package

10、_name | .upload_file;g_download_url CONSTANT VARCHAR2(100) := g_package_name |.download_file;g_cancel_url CONSTANT VARCHAR2(100) := g_package_name | .cancel_file;-完成上传:把在网关中的数据抓到自己的表PROCEDURE upload_file(p_file_name IN VARCHAR2, p_access_id IN NUMBER);- 显示 HTML 取消页面PROCEDURE upload_cancel;-显示 HTML 上

11、传页面PROCEDURE upload_form(p_access_id IN NUMBER DEFAULT NULL);- 下载文件PROCEDURE download_file(p_file_id IN NUMBER,p_access_id IN NUMBER,p_purge IN VARCHAR2 DEFAULT NULL);PROCEDURE download_file_html(p_file_id IN NUMBER, p_access_id IN NUMBER, p_purge IN VARCHAR2 DEFAULT NULL);END;/CREATE OR REPLACE PAC

12、KAGE BODY oracle_up_down IS-add / to a stringFUNCTION trail_slash(p_val IN VARCHAR2) RETURN VARCHAR2 ISl_copy_val VARCHAR2(2000);BEGINl_copy_val := p_val;WHILE (substr(l_copy_val, -1, 1) = /) LOOPl_copy_val := substr(l_copy_val, 1, length(l_copy_val) - 1);END LOOP;RETURN l_copy_val | /;END;PROCEDURE

13、 err_msg(NAME VARCHAR2) ISBEGINfnd_message.set_name(FND, SQL_PLSQL_ERROR);fnd_message.set_token(ROUTINE, FND_GFM. | NAME); fnd_message.set_token(ERRNO, SQLCODE);fnd_message.set_token(REASON, SQLERRM);END err_msg;/*从fnd_gfm拷贝过来,原来的代码是删除整个fnd_lobs_document,不知道为何,现在改为仅删除上传的文件*/FUNCTION confirm_upload(a

14、ccess_id NUMBER,file_name VARCHAR2,program_name VARCHAR2 DEFAULT NULL, program_tag VARCHAR2 DEFAULT NULL, expiration_date DATE DEFAULT NULL,LANGUAGE VARCHAR2 DEFAULT userenv(LANG), wakeupBOOLEAN DEFAULT FALSE)RETURN NUMBER ISfidNUMBER := -1;fnVARCHAR2(256);mtVARCHAR2(240);bloblength NUMBER; - bug 3045375, added variable to set length of blob.BEGINIF (fnd_gfm.authenticate(confirm_upload.access_id) THENSELECT fnd_lobs_s.NEXTVAL INTO fid FROM dual;fn := substr(confirm_upload.file_name,instr(confirm_upload.file_name, /) + 1);- bug 3045375, added select to get length of BLOB.SELECT dbms

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 建筑资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号