Tuesday 4 October 2016

Migration of XML Publisher Objects using LDTs and XMLLoader

An XML Publisher template defintion will have following things to migrate.

1) Template defintion & Data defintion  => Use FNDLOAD
2)  Actual layout templates (RTF/EXCEL/PDF) & Actual data defintion XML file. => use XDOLOADER command


Template defintion & Data defintion 
FNDLOAD apps/<appsPwd> 0 Y DOWNLOAD  $XDO_TOP/patch/115/import/xdotmpl.lct XXCUSTEMPL.ldt XDO_DS_DEFINITIONS APPLICATION_SHORT_NAME='XXCUST' DATA_SOURCE_CODE='Data defintion Code' TMPL_APP_SHORT_NAME='XXCUST' TEMPLATE_CODE='Template Code'

With the above command you will fetch both data defintion and template defintion.

You upload the above using the UPLOAD command.

FNDLOAD apps/<appsPwd> 0 Y UPLOAD $XDO_TOP/patch/115/import/xdotmpl.lct XXCUSTEMPL.ldt

Once the definitions are created in the instance, you need to upload the actual layout and data defintion files using XDOLOADER.

Data Template/Data Source:

java oracle.apps.xdo.oa.util.XDOLoader DOWNLOAD -DB_USERNAME apps -DB_PASSWORD <appsPwd> -JDBC_CONNECTION '(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=XX_DB_HOST_NAME)(PORT=XX_DB_PORT_NUMBER))(CONNECT_DATA=(SERVICE_NAME=XX_DB_SERVICE_NAME)))' -LOB_TYPE DATA_TEMPLATE -LOB_CODE XX_DATA_TEMPL_CODE -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 <appsPwd> -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_DATA_TEMPL_CODE -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


 RTF TEMPLATE (Report Layout .rtf file) 

java oracle.apps.xdo.oa.util.XDOLoader DOWNLOAD -DB_USERNAME apps -DB_PASSWORD appsPwd  -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 appsPwd -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

FNDLOAD to migrate AOL objects to different instances

During development we generally do required AOL setups in lower instances and to migrate the AOL objects such as messages/lookups/Concurrent programs etc, we generate LDTs using FNDLOAD - DOWNLOAD  from lower instance and upload them using FNDLOAD - UPLOAD command in higher instances.

Structure of FNDLOAD command:

FNDLOAD apps/<AppsPwd> 0 Y [DOWNLOAD]  [LCT file] [LDT FILE name] [ENTITY_NAME]  [KEY1=[VAL].. [KEY/CTX]=VAL]

Open the LCT file using notepad you will be able to easily understand what KEY or context you need to use/what parameters you can create.

We can create custom lcts similar to Seed lcts for any table and migrate data using the custom lct and FNDLOAD.

Tips and Examples Using FNDLOAD (Doc ID 735338.1)


Messages
FNDLOAD apps/<appsPwd> 0 Y DOWNLOAD $FND_TOP/patch/115/import/afmdmsg.lct XX_CUSTOM_MESG.ldt FND_NEW_MESSAGES APPLICATION_SHORT_NAME="XXCUST" MESSAGE_NAME="XX_AP_CUST_MSG"

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

Lookup

FNDLOAD apps/<appsPwd> O Y DOWNLOAD $FND_TOP/patch/115/import/aflvmlu.lct XX_APCUST_LKP_LKP.ldt FND_LOOKUP_TYPE APPLICATION_SHORT_NAME="SQLAP" LOOKUP_TYPE="XX_APCUST_LKP"

Concurrent Program:

FNDLOAD apps/<appsPwd> O Y DOWNLOAD $FND_TOP/patch/115/import/afcpprog.lct XX_CONC_CP.ldt PROGRAM APPLICATION_SHORT_NAME="XXCUST" CONCURRENT_PROGRAM_NAME="XX_CONC_CP"

Value set:
FNDLOAD apps/<appsPwd> 0 Y DOWNLOAD $FND_TOP/patch/115/import/afffload.lct XX_CUST_LEGAL_ENTITY_VS.ldt VALUE_SET FLEX_VALUE_SET_NAME="XX_CUST_LEGAL_ENTITY"


Desc flex:
FNDLOAD apps/<appsPwd> 0 Y DOWNLOAD $FND_TOP/patch/115/import/afffload.lct OKC_ARTICLES_DESC_FLEX_DFF.ldt DESC_FLEX P_LEVEL=:COL_ALL:REF_ALL:CTX_ONE:SEG_ALL? APPLICATION_SHORT_NAME="OKC" DESCRIPTIVE_FLEXFIELD_NAME="OKC_ARTICLES_DESC_FLEX"

Func Objec:
FNDLOAD apps/<appsPwd> 0 Y DOWNLOAD $FND_TOP/patch/115/import/afsload.lct XX_CUST_INV_UPLOAD_FUNCTION.ldt FUNCTION FUNCTION_NAME="XX_CUST_INV_UPLOAD"

Profile:
FNDLOAD apps/<appsPwd> O Y DOWNLOAD $FND_TOP/patch/115/import/afscprof.lct XX_CUST_AME_TXN_TYPE_PRF.ldt PROFILE PROFILE_NAME="XX_CUST_AME_TXN_TYPE" APPLICATION_SHORT_NAME="XXCUST"

Folder:

FNDLOAD APPS/<appsPwd> 0 Y DOWNLOAD $FND_TOP/patch/115/import/fndfold.lct XXCUST_TEST_FOLD.ldt FND_FOLDERS FOLDER_NAME="TEST ACCRUAL"


Request Set:
FNDLOAD apps/<appsPwd> 0 Y DOWNLOAD $FND_TOP/patch/115/import/afcprset.lct XX_CUST_RS.ldt REQ_SET REQUEST_SET_NAME='REQUEST_SET_NAME'

Forms:
FNDLOAD apps/<appsPwd> 0 Y DOWNLOAD $FND_TOP/patch/115/import/afsload.lct XX_CUST_FORM.ldt FORM FORM_NAME="FORM_NAME" 


Form Function :
FNDLOAD apps/<appsPwd> 0 Y DOWNLOAD $FND_TOP/patch/115/import/afsload.lct XX_CUST_FUNC.ldt FUNCTION FUNCTION_NAME="FORM_FUNCTION_NAME"

Alerts:
FNDLOAD apps/<appsPwd> 0 Y DOWNLOAD $ALR_TOP/patch/115/import/alr.lct XX_CUST_ALR.ldt ALR_ALERTS APPLICATION_SHORT_NAME="XXCUST" ALERT_NAME="XX - Alert Name"

XML Publisher Data definition and XML Layout templates:

FNDLOAD apps/<appsPwd> 0 Y DOWNLOAD  $XDO_TOP/patch/115/import/xdotmpl.lct XXCUSTTEMPL.ldt XDO_DS_DEFINITIONS APPLICATION_SHORT_NAME='XXCUST' DATA_SOURCE_CODE='Data defintion code' TMPL_APP_SHORT_NAME='XXCUST' TEMPLATE_CODE='Template Code'