如何使用Oracle FND_LOAD工具在不同Instance间同步数据(Example)

简介:

FNDLOAD是Oracle官方提供数据同步工具(Data Synchronization),一般情况下,我们通过FNDLOAD工具把DEV Instance的客户化AOL数据下载到一个文本文件中,然后同样使用FNDLOAD上传到PROD Instance中去。

什么样的情况下,需要使用FNDLOAD来同步

我们在测试环境开发了一些客户化程序(Personalization),Concurrent Program,Message....想要同步到正式的环境中去,这时我们可以使用FNDLOAD同步工具。

哪些数据可以使用FNDLOAD来同步?

* Concurrent Programs, Executables
* Request Groups, Request Sets
* Profile Options
* Key and Descriptive Flexfields
* Menus and Responsibilities
* Forms and Form Functions
* Attachments
* Messages
* Value Sets and Values
* Lookup Types
* User Responsibilities
* Printer Definitions
* FND Dictionary
* Help Configuration
* Document Sequences
* Concurrent Manager Schedules

FNDLOAD的使用语法

FNDLOAD apps/appspwd 0 Y mode configfile datafile entity [parameter1|..]
The mode is either DOWNLOAD or UPLOAD.
The configfile is the file that Fndload needs to download on upload data.
The data file is the output file, in which the downloaded data is written
The entity is the entity you want to download,
Parameters van is passed to download a certain Alert

A Example How to download Personalization Code

我在测试环境给Move Order form写了一个简单的Personalization代码,这个Function Name为INV_INVTOMAI

现在我想把这个测试代码整体迁移到另外一个环境,可以使用FNDLOAD工具来做迁移。登陆到Unix/Linux服务器,执行下边的命令,

FNDLOAD apps/apps 0 Y DOWNLOAD $FND_TOP/patch/115/import/affrmcus.lct PTIAN_CUSTOM_FUC.ldt FND_FORM_CUSTOM_RULES function_name="INV_INVTOMAI"

“INV_INVTOMAI”为我新加的客户化功能的名称;

“PTIAN_CUSTOM_FUC.ldt”是我为到处的文本文件设定的名称;

命令执行完之后,在当前目录就会生成一个“PTIAN_CUSTOM_FUC.ldt”文本文件,里边就包含了我们客户化程序的表数据。

[plain]  view plain copy print ?
  1. # $Header$  
  2.   
  3. # dbdrv: exec fnd bin FNDLOAD bin &phase=daa+70 checkfile:~PROD:~PATH:~FILE &ui_apps 0 Y UPLOAD @FND:patch/115/import/affrmcus.lct @~PROD:~PATH/~FILE  
  4. LANGUAGE = "US"  
  5. LDRCONFIG = "affrmcus.lct 120.3.12010000.4"  
  6.   
  7. #Source Database instance_name  
  8.   
  9. #RELEASE_NAME 12.1.3  
  10. # -- Begin Entity Definitions --   
  11.   
  12. DEFINE FND_FORM_CUSTOM_RULES  
  13. .....此处省去部分文本内容  
  14. .....此处省去部分文本内容  
  15. BEGIN FND_FORM_CUSTOM_RULES "500"  
  16.   FUNCTION_NAME = "INV_INVTOMAI"  
  17.   DESCRIPTION = "test"  
  18.   TRIGGER_EVENT = "WHEN-NEW-FORM-INSTANCE"  
  19.   SEQUENCE = "10"  
  20.   CREATED_BY = "1068"  
  21.   CREATION_DATE = "2012/07/03"  
  22.   OWNER = "MFG"  
  23.   LAST_UPDATE_DATE = "2012/07/03"  
  24.   LAST_UPDATE_LOGIN = "5760463"  
  25.   ENABLED = "Y"  
  26.   FIRE_IN_ENTER_QUERY = "N"  
  27.   FORM_NAME = "INVTOMAI"  
  28.   RULE_TYPE = "A"  
  29.   
  30.   BEGIN FND_FORM_CUSTOM_ACTIONS "729" "500"  
  31.     SEQUENCE = "10"  
  32.     ARGUMENT_TYPE = "C"  
  33.     CREATED_BY = "1068"  
  34.     CREATION_DATE = "2012/07/03"  
  35.     OWNER = "MFG"  
  36.     LAST_UPDATE_DATE = "2012/07/03"  
  37.     LAST_UPDATE_LOGIN = "5760463"  
  38.     ACTION_TYPE = "M"  
  39.     ENABLED = "Y"  
  40.     OBJECT_TYPE = "ITEM"  
  41.     MESSAGE_TYPE = "S"  
  42.     MESSAGE_TEXT = "PTIAN Test"  
  43.     BUILTIN_TYPE = "C"  
  44.     LANGUAGE = "*"  
  45.     PROPERTY_NAME = "1550"  
  46.     MENU_SEPERATOR = "N"  
  47.     
  48.   END FND_FORM_CUSTOM_ACTIONS  
  49.     
  50.   
  51.   BEGIN FND_FORM_CUSTOM_SCOPES "500" "20" ""  
  52.     LAST_UPDATE_DATE = "2012/07/03"  
  53.     OWNER = "MFG"  
  54.     CREATION_DATE = "2012/07/03"  
  55.     CREATED_BY = "1068"  
  56.     LAST_UPDATE_LOGIN = "5760463"  
  57.   END FND_FORM_CUSTOM_SCOPES  
  58.     
  59. END FND_FORM_CUSTOM_RULES  

然后我们使用FNDLOAD把这个文本文件上传到另外一个Instance中去,在第二个Instance下执行命令:

FNDLOAD apps/apps 0 Y UPLOAD $FND_TOP/patch/115/import/affrmcus.lct PTIAN_CUSTOM_FUC.ldt

这样你的客户化代码就完成了迁移,在第二个环境下也能正常使用了。下图为迁移后,在第二个instance里,Move Order Form客户化界面的截图


FNDLOAD Sample

蓝色为下载,红色为上传

1. Lookups 
-- ------------- 
FNDLOAD apps/apps O Y DOWNLOAD $FND_TOP/patch/115/import/aflvmlu.lct XX_CUSTOM_LKP.ldt FND_LOOKUP_TYPE APPLICATION_SHORT_NAME="XXCUST" LOOKUP_TYPE="XX_LOOKUP_TYPE"

 

FNDLOAD apps/apps O Y UPLOAD $FND_TOP/patch/115/import/aflvmlu.lct XX_CUSTOM_LKP.ldt UPLOAD_MODE=REPLACE CUSTOM_MODE=FORCE

 

2. Concurrent Program 
-- ----------------------------- 

FNDLOAD apps/apps O Y DOWNLOAD $FND_TOP/patch/115/import/afcpprog.lct XX_CUSTOM_CP.ldt PROGRAM APPLICATION_SHORT_NAME="XXCUST" CONCURRENT_PROGRAM_NAME="XX_CONCURRENT_PROGRAM"

 

FNDLOAD apps/apps 0 Y UPLOAD $FND_TOP/patch/115/import/afcpprog.lct XX_CUSTOM_CP.ldt - WARNING=YES UPLOAD_MODE=REPLACE CUSTOM_MODE=FORCE

 

3. Profile 
-- --------- 

FNDLOAD apps/apps O Y DOWNLOAD $FND_TOP/patch/115/import/afscprof.lct XX_CUSTOM_PRF.ldt PROFILE PROFILE_NAME="XX_PROFILE_NAME" APPLICATION_SHORT_NAME="XXCUST"

 

$FND_TOP/bin/FNDLOAD apps/apps 0 Y UPLOAD $FND_TOP/patch/115/import/afscprof.lct XX_CUSTOM_PRF.ldt - WARNING=YES UPLOAD_MODE=REPLACE CUSTOM_MODE=FORCE

 

4. Request Set and Link 
-- ------------------------------ 

FNDLOAD apps/apps 0 Y DOWNLOAD $FND_TOP/patch/115/import/afcprset.lct XX_CUSTOM_RS.ldt REQ_SET REQUEST_SET_NAME='REQUEST_SET_NAME'

 

FNDLOAD apps/apps O Y UPLOAD $FND_TOP/patch/115/import/afcprset.lct  XX_CUSTOM_RS.ldt UPLOAD_MODE=REPLACE CUSTOM_MODE=FORCE

 

5. FND Message 
-- --------------------- 
FNDLOAD apps/apps 0 Y DOWNLOAD $FND_TOP/patch/115/import/afmdmsg.lct XX_CUSTOM_MESG.ldt FND_NEW_MESSAGES APPLICATION_SHORT_NAME="XXCUST" MESSAGE_NAME="MESSAGE_NAME%"

 

FNDLOAD apps/apps O Y UPLOAD $FND_TOP/patch/115/import/afmdmsg.lct XX_CUSTOM_MESG.ldt UPLOAD_MODE=REPLACE CUSTOM_MODE=FORCE

 

6. D2K FORMS 
-- ------------------ 

$FND_TOP/bin/FNDLOAD apps/apps 0 Y DOWNLOAD $FND_TOP/patch/115/import/afsload.lct XX_CUSTOM_FRM.ldt FORM FORM_NAME="FORM_NAME"
       

$FND_TOP/bin/FNDLOAD apps/apps 0 Y UPLOAD $FND_TOP/patch/115/import/afsload.lct XX_CUSTOM_FRM.ldt - WARNING=YES UPLOAD_MODE=REPLACE CUSTOM_MODE=FORCE

 

7. Form Function 
-- --------------------- 

FNDLOAD apps/apps 0 Y DOWNLOAD $FND_TOP/patch/115/import/afsload.lct XX_CUSTOM_FUNC.ldt FUNCTION FUNCTION_NAME="FORM_FUNCTION_NAME"

 

$FND_TOP/bin/FNDLOAD apps/apps 0 Y UPLOAD $FND_TOP/patch/115/import/afsload.lct XX_CUSTOM_FUNC.ldt - WARNING=YES UPLOAD_MODE=REPLACE CUSTOM_MODE=FORCE

 

8. Alerts 
-- --------- 

FNDLOAD apps/apps 0 Y DOWNLOAD $ALR_TOP/patch/115/import/alr.lct XX_CUSTOM_ALR.ldt ALR_ALERTS APPLICATION_SHORT_NAME=XXCUST ALERT_NAME="XX - Alert Name"

 

FNDLOAD apps/apps 0 Y UPLOAD $ALR_TOP/patch/115/import/alr.lct XX_CUSTOM_ALR.ldt CUSTOM_MODE=FORCE

 

9. Value Set 
-- -------------- 

$FND_TOP/bin/FNDLOAD apps/apps 0 Y DOWNLOAD $FND_TOP/patch/115/import/afffload.lct XX_CUSTOM_VS.ldt VALUE_SET FLEX_VALUE_SET_NAME="XX Value Set Name"

 

$FND_TOP/bin/FNDLOAD apps/apps 0 Y UPLOAD $FND_TOP/patch/115/import/afffload.lct XX_CUSTOM_VS.ldt - WARNING=YES UPLOAD_MODE=REPLACE CUSTOM_MODE=FORCE

 

10. Data Definition and Associated Template
--- ---------------------------------------------------------- 

FNDLOAD apps/$CLIENT_APPS_PWD O Y DOWNLOAD  $XDO_TOP/patch/115/import/xdotmpl.lct XX_CUSTOM_DD.ldt XDO_DS_DEFINITIONS APPLICATION_SHORT_NAME='XXCUST' DATA_SOURCE_CODE='XX_SOURCE_CODE' TMPL_APP_SHORT_NAME='XXCUST' TEMPLATE_CODE='XX_SOURCE_CODE'

 

FNDLOAD apps/$CLIENT_APPS_PWD O Y UPLOAD $XDO_TOP/patch/115/import/xdotmpl.lct XX_CUSTOM_DD.ldt

 

11. DATA_TEMPLATE (Data Source .xml file)
--- ---------------------------------------------------------- 

java oracle.apps.xdo.oa.util.XDOLoader DOWNLOAD -DB_USERNAME apps -DB_PASSWORD apps -JDBC_CONNECTION '(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=XX_HOST_NAME)(PORT=XX_PORT_NUMBER))(CONNECT_DATA=(SERVICE_NAME=XX_SERVICE_NAME)))' -LOB_TYPE DATA_TEMPLATE -LOB_CODE XX_TEMPLATE -APPS_SHORT_NAME XXCUST -LANGUAGE en -lct_FILE $XDO_TOP/patch/115/import/xdotmpl.lct -LOG_FILE $LOG_FILE_NAME

 

java oracle.apps.xdo.oa.util.XDOLoader UPLOAD -DB_USERNAME apps -DB_PASSWORD apps -JDBC_CONNECTION '(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=XX_HOST_NAME)(PORT=XX_PORT_NUMBER))(CONNECT_DATA=(SERVICE_NAME=XX_SERVICE_NAME)))' -LOB_TYPE DATA_TEMPLATE -LOB_CODE XX_TEMPLATE -XDO_FILE_TYPE XML -FILE_NAME $DATA_FILE_PATH/$DATA_FILE_NAME.xml -APPS_SHORT_NAME XXCUST -NLS_LANG en -TERRITORY US -LOG_FILE $LOG_FILE_NAME

 

12. RTF TEMPLATE (Report Layout .rtf file)
--- ------------------------------------------------------- 

java oracle.apps.xdo.oa.util.XDOLoader DOWNLOAD -DB_USERNAME apps -DB_PASSWORD apps -JDBC_CONNECTION '(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=XX_HOST_NAME)(PORT=XX_PORT_NUMBER))(CONNECT_DATA=(SERVICE_NAME=XX_SERVICE_NAME)))' -LOB_TYPE TEMPLATE -LOB_CODE XX_TEMPLATE -APPS_SHORT_NAME XXCUST -LANGUAGE en -TERRITORY US -lct_FILE $XDO_TOP/patch/115/import/xdotmpl.lct -LOG_FILE $LOG_FILE_NAME

 

java oracle.apps.xdo.oa.util.XDOLoader UPLOAD -DB_USERNAME apps -DB_PASSWORD apps -JDBC_CONNECTION '(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=XX_HOST_NAME)(PORT=XX_PORT_NUMBER))(CONNECT_DATA=(SERVICE_NAME=SERVICE_NAME)))' -LOB_TYPE TEMPLATE -LOB_CODE XX_TEMPLATE -XDO_FILE_TYPE RTF -FILE_NAME $RTF_FILE_PATH/$RTF_FILE_NAME.rtf -APPS_SHORT_NAME XXCUST -NLS_LANG en -TERRITORY US -LOG_FILE $LOG_FILE_NAME

13. 客户化Personalization
--- ---------------------------------------------------------- 

FNDLOAD apps/apps 0 Y DOWNLOAD $FND_TOP/patch/115/import/affrmcus.lct PTIAN_CUSTOM_FUC.ldt FND_FORM_CUSTOM_RULES function_name="INV_INVTOMAI"

 

FNDLOAD apps/apps 0 Y UPLOAD $FND_TOP/patch/115/import/affrmcus.lct PTIAN_CUSTOM_FUC.ldt


上传的时候遇到“An entity definition is required to define values of type”错误

如果上传的时候,在日志里看到“An entity definition is required to define values of type”的错误,说明你上传指定的$FND_TOP/patch/115/import/xxx文件不正确,重新指定文件,再上床应该就能够成功了。比如我之前上传是遇到这个错误,就是因为我上传的客户化程序,需要制定为affrmcus.lct,但我却用成了afsload.lct

+---------------------------------------------------------------------------+
Application Object Library: Version : 12.0.0

Copyright (c) 1979, 1999, Oracle Corporation. All rights reserved.

 module: 
+---------------------------------------------------------------------------+

Current system time is 

+---------------------------------------------------------------------------+

Uploading from the data file PT_CUSTOM_FUC.ldt
Altering database NLS_LANGUAGE environment to AMERICAN
Dump from LCT/LDT files (/slot/ems1112/appmgr/apps/apps_st/appl/fnd/12.0.0/patch/115/import/afsload.lct(120.2.12010000.1), PT_CUSTOM_FUC.ldt) to stage tables
Dump LCT file /slot/ems1112/appmgr/apps/apps_st/appl/fnd/12.0.0/patch/115/import/afsload.lct(120.2.12010000.1) into FND_SEED_STAGE_CONFIG
Dump LDT file PT_CUSTOM_FUC.ldt into FND_SEED_STAGE_ENTITY
An error occurred at line 95 in file PT_CUSTOM_FUC.ldt
An entity definition is required to define values of type FND_FORM_CUSTOM_RULES



本文转自h2内存数据库博客园博客,原文链接:http://www.cnblogs.com/h2-database/archive/2012/07/04/2583319.html,如需转载请自行联系原作者

相关文章
|
1月前
|
SQL Oracle 关系型数据库
实时计算 Flink版产品使用合集之从Oracle数据库同步数据时,checkpoint恢复后无法捕获到任务暂停期间的变更日志,如何处理
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStreamAPI、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
7天前
|
Oracle 关系型数据库 数据处理
实时计算 Flink版产品使用问题之如何进行Oracle到HBase的同步
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
7天前
|
SQL Oracle 关系型数据库
实时计算 Flink版产品使用问题之oracle无主键的表支持同步吗如何实现
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
7天前
|
SQL 数据采集 Oracle
实时计算 Flink版产品使用问题之如何读取oracle中的blob类型的数据
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
7天前
|
Oracle 关系型数据库 数据库
实时计算 Flink版产品使用问题之连接到Oracle数据库但无法读取到数据,是什么导致的
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
15天前
|
SQL Oracle 关系型数据库
探索 Linux 命令 `db_archive`:Oracle 数据库归档日志的工具
探索 Linux 中的 `db_archive`,实际与 Oracle 数据库归档日志管理相关。在 Oracle 中,归档日志用于恢复,当在线重做日志满时自动归档。管理员可使用 SQL*Plus 查看归档模式,通过 `RMAN` 进行备份和恢复操作。管理归档日志需谨慎,避免数据丢失。了解归档管理对 Oracle 管理员至关重要,确保故障时能快速恢复数据库。
|
14天前
|
运维 DataWorks Oracle
DataWorks产品使用合集之在标准模式下,当同步Oracle的表或视图时,是否需要在源端的测试和生产环境中都存在要同步的表或视图
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
14 3
|
7天前
|
SQL Oracle 关系型数据库
实时计算 Flink版产品使用问题之在进行Oracle数据库的全量同步时,只同步了一条数据而源表实际上包含多条数据,是什么原因
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
7天前
|
SQL Oracle 关系型数据库
实时计算 Flink版产品使用问题之同步oracle表时,数据量约800万,检查点异常,该如何排查
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
8天前
|
资源调度 Oracle 关系型数据库
实时计算 Flink版产品使用问题之同步oracle表时,任务不报错,但是读不到数据,是什么导致的
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。

推荐镜像

更多