Move concurrent program from One Instance to Another Instance having same name as old instance. Working as same as under old instance same responsibility and request group
Step 1) we should have a few details of the program handy, to fetch them below query can be used
a) application_short_name
b) concurrent_program_name
c) request_group_name
SELECT
fcptl.user_concurrent_program_name,
fa.application_short_name,
fcp.application_id,
fcp.concurrent_program_id,
fcp.concurrent_program_name,
fcp.executable_application_id,
fcp.executable_id,
fcptl.user_concurrent_program_name,
fcptl.description,
fa.application_short_name,
fa.basepath,
fa.product_code,
fatl.application_name,
fatl.description application_description,
frgu.application_id request_application_id,
frg.request_group_name,
frgu.request_group_id,
frgu.request_unit_id,
frgu.unit_application_id,
frg.description request_group_description
FROM fnd_concurrent_programs_tl fcptl,
fnd_concurrent_programs fcp,
fnd_application fa,
fnd_application_tl fatl,
fnd_request_group_units frgu,
fnd_request_groups frg
WHERE fcp.application_id = fcptl.application_id
AND fcp.concurrent_program_id = fcptl.concurrent_program_id
AND fcptl.LANGUAGE = USERENV ('LANG')
AND fa.application_id = fcptl.application_id
AND fatl.application_id = fcptl.application_id
AND frg.request_group_id = frgu.request_group_id
AND frg.application_id = frgu.application_id
AND frgu.request_unit_id = fcptl.concurrent_program_id
AND frgu.unit_application_id = fcptl.application_id
AND fcptl.user_concurrent_program_name LIKE 'Concurrent%Program%Name';
Step 2) To get the application_short_name we can pass the concurrent program in the below query and fetch the details.
SELECT fr.responsibility_key,
fatl.application_name,
fa.application_short_name,
fa.basepath,
fa.product_code,
fr.application_id,
fr.request_group_id,
fr.responsibility_id,
fr.data_group_application_id,
fr.menu_id,
fr.group_application_id
FROM fnd_responsibility fr, fnd_application_tl fatl, fnd_application fa
WHERE 1 = 1
AND fa.application_id = fatl.application_id
AND fatl.application_id = fr.application_id
AND (fr.request_group_id, fr.application_id) IN (
SELECT frgu.request_group_id, frgu.application_id
FROM fnd_concurrent_programs_tl fcptl,
fnd_concurrent_programs fcp,
fnd_application fa,
fnd_application_tl fatl,
fnd_request_group_units frgu,
fnd_request_groups frg
WHERE fcp.application_id = fcptl.application_id
AND fcp.concurrent_program_id = fcptl.concurrent_program_id
AND fcptl.LANGUAGE = USERENV ('LANG')
AND fa.application_id = fcptl.application_id
AND fatl.application_id = fcptl.application_id
AND frgu.request_unit_id = fcptl.concurrent_program_id
AND frgu.unit_application_id = fcptl.application_id
AND frg.request_group_id = frgu.request_group_id
AND frg.application_id = frgu.application_id
AND fcptl.user_concurrent_program_name LIKE '%Concurrent%Program%Name%')
Step 3)
a) So as get the Concurrent Program Level details copied from one instance to another we need to have an LDT File get downloaded from the source instance(in which the concurrent program exists
b) This can be achieved with by FND Download command, below is the syntax to download a Concurrent Program LDT File which needs to be executed in Putty
c) We need to Change the ldt file name, Application_short_name, and concurrent_program_name as per the requirement.
FNDLOAD DataBase_UserName/DataBase_Password O Y DOWNLOAD $FND_TOP/patch/115/import/afcpprog.lct XX_CUSTOM_ORACLE_PROG.ldt PROGRAM APPLICATION_SHORT_NAME=”XXCustom” CONCURRENT_PROGRAM_NAME=”XXCustomProgramName”
Step 4)
Now we need to download an LDT file for a Request Group, as we did previously we need to use FNDLOAD DOWNLOAD script as mentioned below with a few changes
FNDLOAD DataBase_UserName/DataBase_Password O Y DOWNLOAD $FND_TOP/patch/115/import/afcpreqg.lct XX_MY_REPORT_GROUP_NAME2.ldt REQUEST_GROUP REQUEST_GROUP_NAME=”All Reports” APPLICATION_SHORT_NAME=”XXCustom” REQUEST_GROUP_UNIT UNIT_NAME=”XXCustomProgramName”
Note:
a) Here we need to change the ldt file name, request_group_name, application_short_name, and unit name as per our requirement.
b) Unit name refers to concurrent_program_name
Step 5)
Now we have completed downloading the Files from the Source Instance, To migrate it to the Target Instance we need to login into the Putty using the credentials
We need to place the LDT Files in a specific directory with all the Read, Write, Execute access (chmod 777) downloaded from the Source system and run the below FNDLOAD Upload Commands for both the Concurrent Program and Request Group
FNDLOAD Upload Command for Concurrent Progam
FNDLOAD DataBase_UserName/DataBase_Password O Y UPLOAD $FND_TOP/patch/115/import/afcpprog.lct XX_CUSTOM_ORACLE_PROG.ldt
FNDLOAD Upload Command for Request Group
FNDLOAD DataBase_UserName/DataBase_Password O Y UPLOAD $FND_TOP/patch/115/import/afcpreqg.lct XX_MY_REPORT_GROUP_NAME.ldt
Once script execution is done we need to validate the Log Files generated in the same directory to ensure the upload is a success or a failure with an error
Step-6) We can login into the Front End Application of the Target Instance where the script of FNDLOAD Upload and verify the Concurrent Program Level and also Request Group Level
Introduction: It is generally a time-consuming process and task to create the same setup data on each instance separately. Hence to migrate setup data from one instance to another instance (E.g. From DEV to TEST to PROD), LDT & LCT files are used.
LDT (Data Loader Files)- These files are Used to upload & download setup data on different instances.
LCT (Data Config Files)- These files are used to create LDT Files. There are different lct files for different sets of data.
By using FNDLOAD we can achieve the process for moving data like Concurrent Programs, Executables, Key and Descriptive Flex fields, Profile Options, Forms and Form Functions, Value Sets and Values and many others.
Standard Syntax will be the
FNDLOAD apps/ 0 Y mode configfile datafile entity [parameter¦…]
1. In mode we can make use of download or upload
2. Configuration file is that Fndload needs to download or upload data.
3. Data _file is the output file (which contains the downloaded data)
4. Entity is nothing but which we need to download like value sets or profiles.
1) FNDLOAD Command to download a Concurrent Program.FNDLOAD username/password 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”
1. Username and password refer to the database password of the instance from which we would like to download the LDT file.
2. XX_CUSTOM_CP.ldt We should replace this with Concurrent Program Short Name
3. Application Short Name should be mentioned where the concurrent program has been registered.
4. In CONCURRENT_PROGRAM_NAME we should mention the Concurrent_Program_Short_Name
The above FNDLOAD command is used to download the LDT for a Concurrent Program. Once the Download is done in the server we can notice two files generated one is an LDT File with .ldt as an extension which has all concurrent program data in it and a log file which shows the status of the LDT download.
And we need to move the downloaded LDT file into the other instance where we need to upload the LDT once placed in the server path we need to run the below command in Putty so that the upload of the Concurrent Program becomes successful.
2) FNDLOAD Command to upload a Concurrent Program
FNDLOAD username/password 0 Y UPLOAD $FND_TOP/patch/115/import/afcpprog.lct XX_CUSTOM_CP. ldt
1. Username and password refer to the database password of the instance from which you would like to upload the LDT file.
2. XX_CUSTOM_CP.ldt We need to mention the LDTFile Name that needs to be uploaded
We need to run the above command to upload the LDT file in the new instance once the upload is done only a log file will be generated which shows the status of the upload.
The above command will be helpful only when a new Concurrent Program is being registered in the new instance.
If we would like to update the existing concurrent program(that means the concurrent program already exists in the new instance but we need to update the changes of the program from old instance to the new instance) then we need to add – CUSTOM_MODE=FORCE
FNDLOAD username/password 0 Y UPLOAD $FND_TOP/patch/115/import/afcpprog.lct XX_CUSTOM_CP. ldt – CUSTOM_MODE=FORCE
The above fndload command will update the changes in the concurrent program existing already in the instance without – CUSTOM_MODE=FORCE it will not update the changes
NOTE: When running the fnd_load script we should ensure that the pwd(present working directory) path from which we will be executing the command should have all the permissions read write and execute chmod 777 as new files i.e(LDT’s and log’s will be generated in that path) else privileges errors will be encountered when we execute the command.