如何把数据上传到EBS的forms的数据块中
创建一个临时表: XXX_TEMP_FILES
建表语句是:
CREATE TABLE XXX_TEMP_FILES (
FILE_ID NUMBER,
SEQ NUMBER,
TEXT VARCHAR2(2000),
CREATION_DATE DATE
)
创建这个表的目的就是要把数据从FND_LOBS这个表的file_data这个字段的数据,通过程序,因为这个表的这个数据是lobs类型的,所以整个文件都放在这个字段里,我们利用这个临时表,把数据文件拆成一行一个纪录.然后每行在根据分个符查分.
2. 创建上传包: XXX_FILE_IO
XXX_FILE_IO 包含三个子程序:
INS_TEMP_FILES:从fnd_lobs 表中取上传的数据,把它按行来拆分,并插入到: XXX_TEMP_FILES 表中
SEL_TEMP_FILES:从XXX_TEMP_FILES 中把数据去出
DEL_TEMP_FILES:数据已经上传到Form的界面中,需要删除文件.
主要语句就是:
PROCEDURE INS_TEMP_FILES(p_file_id IN NUMBER) IS
w_integer INTEGER;
w_blob BLOB;
w_raw RAW(10);
w_buff VARCHAR2(30000);
w_line VARCHAR2(30000);
w_len INTEGER;
eofsw BOOLEAN := FALSE;
offset INTEGER;
w_b_len NUMBER := 0;
w_num NUMBER;
w_seq NUMBER := 0;
BEGIN
SELECT file_data INTO w_blob FROM fnd_lobs WHERE file_id = p_file_id;
offset := 1;
LOOP
EXIT WHEN eofsw;
w_seq := w_seq + 1;
w_raw := utl_raw.cast_to_raw(chr(10));
w_num := dbms_lob.instr(w_blob, w_raw, offset, 1);
w_len := w_num - w_b_len;
w_b_len := w_num;
IF w_num = 0
THEN
w_len := 20000;
eofsw := TRUE;
END IF;
BEGIN
DBMS_LOB.READ(w_blob, w_len, offset, w_buff);
EXCEPTION
WHEN no_data_found THEN
EXIT;
WHEN OTHERS THEN
RAISE;
END;
w_line := utl_raw.cast_to_varchar2(w_buff);
SELECT REPLACE(w_line, chr(10), NULL) INTO w_line FROM dual;
SELECT REPLACE(w_line, chr(13), NULL) INTO w_line FROM dual;
INSERT INTO XXX_TEMP_FILES
(FILE_ID, SEQ, TEXT, CREATION_DATE)
VALUES
(p_file_id, w_seq, w_line, SYSDATE);
offset := offset + w_len;
END LOOP;
END;
3. 在Form文件中的Program Unit中健一个包.XXX_UPLOAD
这个文件最好做成PLL,和其他客制化的有用的程序一起打包,上传到form这是一个系统比较有用的通用的程序.
主要是利用FND_GFM这个通用上传的工具,把文件传到,FND_LOBS中去,然后第二步建好的的包,进行数据拆分:
p_file_id := NULL;
access_id := FND_GFM.AUTHORIZE(NULL);
FND_PROFILE.GET('APPS_WEB_AGENT', l_server_url);
l_url := rtrim(l_server_url, '/') ||
'/fnd_file_upload.displayGFMform?access_id=' ||
to_char(access_id) ||
chr(38) ||
'l_server_url=' ||
l_server_url;
if (l_url is NULL) then
raise form_trigger_failure;
return NULL;
end if;
FND_UTILITIES.OPEN_URL(l_url);
FND_MESSAGE.SET_NAME('FND', 'ATCHMT-FILE-UPLOAD-COMPLETE');
button_choice := FND_MESSAGE.QUESTION(
button1 => 'YES',
button2 => null,
button3 => 'NO',
default_btn => 1,
cancel_btn => 3,
icon => 'question'
);
if button_choice = 1 then
p_file_id := FND_GFM.GET_FILE_ID(access_id);
XXX_FILE_IO.INS_TEMP_FILES(p_file_id);
-- pcm_dbms_lob.UPOPEN(p_file_id);
else
return NULL;
end if;
return p_file_id;
1. 在Form文件中的Program Unit中健一个程序如: UPLOAD_XXX_XXX(X根据实际需要转换)
UPLOAD_XXX_XXX 这个文件的需要在实际的应用中作改动,根绝实际的要导入的字段修改程序.主要功能就是从XXX_TEMP_FILES把数据读出,然后根据分割符来,把每个数据对应到form的域中.
相关推荐
总结来说,在Oracle EBS中实现文件上传和下载功能需要结合前端Form设计、后端Java处理以及数据库或文件系统的存储策略。通过合理的设计和编程,可以有效地实现安全、高效的文件管理功能,满足企业的业务需求。
在Web开发中,异步JavaScript和XML(Ajax)技术被广泛用于提高用户体验,尤其是在处理表单提交和文件上传时。本教程将详细讲解如何利用jQuery、jQuery Form插件以及Spring MVC框架来实现Ajax提交表单并上传图片。...
Oracle Form上传编译步骤,操作实例
总之,jQuery.form.js插件是开发中不可或缺的工具,它简化了表单处理,特别是异步文件上传的复杂性,让开发者能更专注于业务逻辑和用户体验设计。通过熟练掌握并运用这个插件,可以大大提高前端开发的效率和质量。
对于大量文件上传,可以考虑使用异步处理、分片上传、队列等技术提高性能和用户体验。 总结,实现Java Web表单上传多个文件涉及到HTML表单的构建、Servlet或Spring MVC的后端处理以及文件存储策略。通过合理的编程...
在Java Web开发中,JSP(JavaServer Pages)常常用于创建动态网页,配合Servlet处理用户交互,例如文件的上传和下载。本项目专注于解决在JSP中实现文件上传和下载时遇到的一些常见问题,特别是针对中文文件名的处理...
总的来说,C# WinForm文件上传下载的实现涉及网络操作、文件处理、数据库交互等多个方面,需要对C#语言和相关技术有深入理解。通过`WebClient`类,我们可以轻松地完成基本的文件上传下载功能,但为了提供更健壮、...
"JSP实现文件上传与下载" JSP(Java Server Pages)是一种动态网页技术,用于开发基于Web的应用程序。...JSP文件上传和下载是Web应用程序中常用的功能,需要注意文件上传和下载的安全性、性能和可扩展性。
"不用form提交表单,用ajax上传文件"是这种需求的一个典型场景。这种方式可以让用户在上传文件时无需等待页面刷新,而是通过Ajax(Asynchronous JavaScript and XML)技术实现实时反馈,提升交互体验。 在JDK 8版本...
通过以上步骤,我们成功地在一个form表单中实现了同时上传多个文件和文本信息的功能。这种实现方式不仅提高了用户的使用体验,也方便了开发者对上传数据的管理和处理。在实际应用中,还可以进一步扩展该功能,例如...
在C#中,可以使用HttpWebRequest和HttpWebResponse类来实现multipart/form-data方式上传附件与请求参数。首先,需要创建一个HttpWebRequest对象,并设置其Method属性为“POST”,ContentType属性为“multipart/form-...
jQuery Form插件是jQuery库的一个扩展,它使得表单提交变得更加灵活和易于控制,特别是在处理文件上传时。在这个例子中,我们将探讨如何在Asp.Net MVC项目中实现这一功能。 首先,我们需要确保项目已经引用了必要的...
此外,你还需要确保文件存储策略安全,避免敏感信息泄露,限制上传文件类型和大小,以防止恶意文件上传。 总结起来,Django Forms提供了方便的方式来处理文件上传,包括定义表单、处理视图、创建模板以及配置URL...
在现代Web应用中,用户界面的交互性和用户体验是至关重要的,而“ajax上传进度条”和“form上传文件进度条”就是提升这方面体验的重要技术。本文将深入探讨这两种技术的原理、实现方式以及如何在实际项目中应用。 ...
总结,`jquery.form.js`是jQuery文件上传领域的强大工具,通过其简单易用的API和丰富的功能,能够帮助开发者构建高效、用户体验良好的文件上传功能。无论是单文件还是多文件上传,结合Ajax技术,都能实现无刷新的...
在提供的压缩包文件中,"down"和"load"可能是两个关键的目录或文件,它们可能分别代表了下载和上传的实现代码或者示例。通常,一个Web项目会包含Web-INF目录,其中存放web.xml配置文件,定义Servlet和JSP的映射关系...
在Java编程领域,文件上传和下载是Web应用中常见的功能,尤其在用户交互丰富的网站或系统中。本项目通过一个简单的源码实例,演示了如何实现在JSP(JavaServer Pages)界面上处理文本和图片的上传与下载,涵盖了相关...
SSM(Spring、SpringMVC、MyBatis)框架是Java Web开发中广泛使用的三大组件。这个项目示例主要展示...通过以上知识点的整合和实践,你可以创建一个稳定且功能完善的文件上传下载系统,为用户提供良好的文件管理体验。
总的来说,Delphi 7 使用 Indy 10 的 `TIdHTTP` 控件和 `TIdMultipartFormDataStream` 类可以方便地实现 `multipart/form-data` 方式的文件上传。理解这些组件的工作原理和使用方法,对于开发涉及文件交互的Web应用...
在IT行业中,文件上传是常见的Web应用功能,特别是在数据处理和管理中。Excel文件因其方便的数据组织和分析能力,常被用于数据交换。本场景主要涉及的是使用JSP(JavaServer Pages)创建一个表单来实现Excel文件的...