Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1355375
  • 博文数量: 416
  • 博客积分: 10495
  • 博客等级: 上将
  • 技术积分: 4258
  • 用 户 组: 普通用户
  • 注册时间: 2005-04-23 22:13
文章分类

全部博文(416)

文章存档

2015年(7)

2014年(42)

2013年(35)

2012年(14)

2011年(17)

2010年(10)

2009年(18)

2008年(127)

2007年(72)

2006年(23)

2005年(51)

分类: Oracle

2012-12-05 10:40:20

  Oracle EBS中数据移植心得 
2009-11-18 20:15:22|  分类: Oracle EBS |  
培训期间,第一次移植数据时对fndload理解的有些似是而非,虽然大概知道了是怎么一回事,但是并没有真正的理解是怎么一回事!

项目期间,再次遇到数据移植的问题,要把自己开发的功能从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消息的控制文件为例)

image(在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查询获得:

'"' || nls_language || '_' || nls_territory || '.' || || '"' nls_lang fnd_languages, v$nls_parameters language_code ('US', 'ZHS') 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。

 

转载:http://blog.163.com/xialingge2006@126/blog/static/102822902009101881522159/

 

阅读(2986) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~