项目期间,再次遇到数据移植的问题,要把自己开发的功能从demo环境移植到CRP环境,经过衡量,最后决定还是放弃手工移植,采用fnd工具来移植,以下就针对移植过程中遇到的问题做一些总结:
1、首先要确定自己要移植哪儿些数据(比如:Message、Lookup、Concurrent Program等等EBS中涉及到的数据),找到控制文件(lct文件),比如说对于AOL模块的数据,可以到$FND_TOP/patch/115/import下面寻找,常用的FNDLOAD控制文件列表如下:
模块
|
文件名 |
描述 |
FND |
afcpprog.lct |
可执行、并发程序、值集、弹性域 |
FND |
afcpexec.lct |
可执行程序 |
FND |
afattach.lct |
附件 |
FND |
afcpreqg.lct |
请求组 |
FND |
afcprset.lct |
请求集 |
FND |
afffload.lct |
值集、关键性弹性域和描述性弹性域及相关安全性设置 |
FND |
aflvmlu.lct |
Lookups |
FND |
afmdmsg.lct |
消息 |
FND |
afscprof.lct |
profile options 预制文件 |
FND |
afscursp.lct |
Application users,User Responsibilities,Security groups,Applications,Application Responsibilities and Exclusion Functions |
FND |
afsload.lct |
FORM, FUNCTION, MENU, ENTRY, OBJECT, OBJECT_INSTANCE_SET, GRANT |
FND |
affrmcus.lct |
Form个性化定义 |
2、查看lct文件中的参数
首先lct文件的内容大概如下:(以afmdmsg.lct消息的控制文件为例)
(在DOWNLOAD下面还有UPLOAD部分)
其中的COMMENT不用管,DOWNLOAD(UPLOAD)后的实体(Entity)就是DEFINE位置定义的实体,DEFINE和END之间的部分为实体的段(Section)
FNDLOAD命令工具的用法:
FNDLOAD apps/appspwd 0 Y mode configfile datafile.ldt entity [ param ... ]
Mode:有 DOWNLOAD和UPLOAD
Configfile:就是FNDLOAD用来控制上传和下载的控制文件(lct)
Datafile:是生成的数据文件 (ldt)
Entity:是要多控制文件中的哪部分数据移植(数据可以嵌套,如并发请求包括了引用的值集) ,当一个控制文件中有多个实体定义的时候,选择其中要操作的部分
Param:是用来控制数据移植的参数,可以多个(可以从DOWNLOAD部分中的sql语句中的参数来知道下载某个entity需要什么样的参数,其实参数都是可选的,如果不加控制,就会下载全部)
3、下面以Message的DOWNLOAD为例来说明:
NLS_LANG="AMERICAN_AMERICA.AL32UTF8"
export NLS_LANG
FNDLOAD apps/apps 0 Y DOWNLOAD $FND_TOP/patch/115/import/afmdmsg.lct $FND_TOP/patch/115/import/hjit_message_xia_en.ldt FND_NEW_MESSAGES APPLICATION_SHORT_NAME=HJIT NLS_LANG= "AMERICAN_AMERICA.AL32UTF8"
其中前两句是linux中设定暂时性环境变量的方式,因为Message是由多语言的,所以要事先指定一下语言,对于多语言的数据的导入导出都可以这样,先设定系统的语言种类,然后执行导出,(非多语言的则不需要),第3句中就包含了FNDLOAD命令中的用法和参数,参数也可以使用模糊限定,比如对function的导出:
FNDLOAD apps/apps 0 Y DOWNLOAD $FND_TOP/patch/115/import/afsload.lct $FND_TOP/patch/115/import/function_xia.ldt FUNCTION FUNCTION_NAME=HJIT%
其中的FUNCTION_NAME=HJIT%就是使用了模板限定,只要Function_name是以HJIT打头的都会进行DOWNLOAD
NLS_LANG可以通过下面的SQL查询获得:
SELECT '"' || nls_language || '_' || nls_territory || '.' || VALUE || '"' nls_lang
FROM fnd_languages, v$nls_parameters
WHERE language_code IN ('US', 'ZHS')
AND parameter = 'NLS_CHARACTERSET';
4、对于报表开发中定义的xml模板文件的导出,则需要使用XDOLoader命令工具,这是因为xml文件被作为了clob类型进行了处理,XDOLoader命令工具的使用如下:
导出clob型数据(XML publisher定义的数据模版):
java oracle.apps.xdo.oa.util.XDOLoader DOWNLOAD -DB_USERNAME apps -DB_PASSWORD apps -JDBC_CONNECTION '(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=tclhn.com)(PORT=1531))(CONNECT_DATA=(SID=DEMO)))' -APPS_SHORT_NAME CUX1 -LCT_FILE $XDO_TOP/patch/115/import/xdotmpl.lct -LDT_FILE $XDO_TOP/patch/115/import/cux_cxpz_xia.ldt -DS_CODE HJITCXPZ
其中绿色部分为连接数据库服务器的tns。
分享到:
相关推荐
揭开FND函数的神秘面纱 FND {POPID|LOADID|VALID}外部关键字引用弹性域(定義彈性域值集時會用到) FND FLEXSQL 动态组建SQL语句,并根据提供的参数进行查询 FND FLEXIDVAL 来格式化数据并显示在报表上面 FND...
FND_MESSAGE PACKAGE 这个包是使用 消息字典 api
fnd.js fnd.js是旨在在现代浏览器中使用的面向性能的DOM选择器微库。 它使用querySelectorAll但在可能的情况querySelectorAll退(仍然)具有更高的性能getElementsByTagName , getElementsByClass和getElementById ...
* fnd_flex_value_sets * fnd_flex_values * fnd_flex_values_vl ----弹性域 * fnd_id_flexs * fnd_id_flex_structures where id_flex_code=""GL#"" * fnd_id_flex_segments where id_flex_code=""GL#"" and id...
Controlling a FND Source
js-dev-fnd-03
FND6全自动凝点测定仪.pdf
今天学到在系统中定义的消息不仅可以当作普通的消息来引用展示(如文章以下所有内容),还可以把它当作一个固定变量来使用 ,通过使用FND_MESSAGE.SET_NAME和FND_MESSAGE.GET。 例如以下代码是把系统中定义的GME_...
EBS_FND_单据序列和序列分配API开发,包括详细的代码(建表/验证数据/塞入正是表等)。
EN_ITIL4_FND_考试样卷答案及解析
Directory: VHDL-FPGA-VerilogPlat: VHDLSize: 27KB
fnd 查找文件的简单方法。 安装 安装fnd的最简单(也是目前唯一)方法是使用货运: cargo install fnd 更新中 要更新fnd(由于货号缺少功能),您需要强制重新安装: cargo install --force fnd 用法 fnd 0.3.0 ...
Hi, This is Verilog practice code
File find componet for delphi
BA 4602 (EX) FLUDEX Couplings Types FNO, FNA, FND, FNDB and FNDS [手册]pdf,
用vc编写的关于模态和非模态的实例,对学习模态和非模态
fnd 是“function daemon”的缩写,是一个能够按需存储和运行 ruby 代码的守护程序。 将其视为动态 API。 这个怎么运作 考虑以下 Ruby 代码: # say_hello.rb "Hello #{ name } " 您可以通过运行将其上传到 ...
1 手动提交Request 在Form里面,我们可以用 APPS.FND_REQUEST.SUBMIT_REQUEST 提交一个Request到Oracle Request Manager。 如果提交成功,该函数返回Request ID,否则,返回0。
--创建触发器 create or replace trigger trigger_customerLink before insert on customerLink_table for each row when (new.id is null) begin select seq_link_id.nextval into:new.id from dual;...
SOA Using Java Web Services 英文版原文