FNDLOAD Examples


FNDLOAD Examples

Here are few examples of FNDLOAD.

Concurrent Programs:

Source:

$FND_TOP/bin/FNDLOAD username/password@database 0 Y DOWNLOAD $FND_TOP/patch/115/import/afcpprog.lct XXCPNAME.ldt PROGRAM APPLICATION_SHORT_NAME=”XXCUST” CONCURRENT_PROGRAM_NAME=”XXCPNAME”

Target:

$FND_TOP/bin/FNDLOAD username/password@database 0 Y UPLOAD $FND_TOP/patch/115/import/afcpprog.lct XXCPNAME.ldt

$FND_TOP/bin/FNDLOAD username/password@database 0 Y UPLOAD_PARTIAL $FND_TOP/patch/115/import/afcpprog.lct XXCPNAME.ldt PROGRAM CONCURRENT_PROGRAM_NAME=”XXCPNAME” APPLICATION_SHORT_NAME=”XXCUST”

Responsibilities:

Source:

$FND_TOP/bin/FNDLOAD username/password@database 0 Y DOWNLOAD $FND_TOP/patch/115/import/afscursp.lct XXRESNAME.ldt FND_RESPONSIBILITY RESP_KEY=”XXRESNAME”

Target:

$FND_TOP/bin/FNDLOAD username/password@database 0 Y UPLOAD $FND_TOP/patch/115/import/afscursp.lct XXRESNAME.ldt

$FND_TOP/bin/FNDLOAD username/password@database 0 Y UPLOAD_PARTIAL $FND_TOP/patch/115/import/afscursp.lct XXRESNAME.ldt FND_RESPONSIBILITY RESP_KEY=”XXRESNAME” APPLICATION_SHORT_NAME=”XXCUST”

Request Groups:

Source:

$FND_TOP/bin/FNDLOAD username/password@database 0 Y DOWNLOAD $FND_TOP/patch/115/import/afcpreqg.lct XXRQGNAME.ldt REQUEST_GROUP REQUEST_GROUP_NAME=”XXRQGNAME” APPLICATION_SHORT_NAME=”XXCUST”

Target:

$FND_TOP/bin/FNDLOAD username/password@database 0 Y UPLOAD $FND_TOP/patch/115/import/afcpreqg.lct XXRQGNAME.ldt

$FND_TOP/bin/FNDLOAD username/password@database 0 Y UPLOAD_PARTIAL $FND_TOP/patch/115/import/afcpreqg.lct XXRQGNAME.ldt REQUEST_GROUP REQUEST_GROUP_NAME=”XXRQGNAME” APPLICATION_SHORT_NAME=”XXCUST”

Request Sets:

Source:

$FND_TOP/bin/FNDLOAD username/password@database 0 Y DOWNLOAD $FND_TOP/patch/115/import/afcprset.lct XXRQSNAME.ldt REQ_SET REQUEST_SET_NAME=”XXRQSNAME”

$FND_TOP/bin/FNDLOAD username/password@database 0 Y DOWNLOAD $FND_TOP/patch/115/import/afcprset.lct XXRQSLNAME.ldt REQ_SET_LINKS REQUEST_SET_NAME=”XXRQSNAME”

Target:

$FND_TOP/bin/FNDLOAD username/password@database 0 Y UPLOAD $FND_TOP/patch/115/import/afcprset.lct XXRQSNAME.ldt

$FND_TOP/bin/FNDLOAD username/password@database 0 Y UPLOAD $FND_TOP/patch/115/import/afcprset.lct XXRQSLNAME.ldt

Forms:

Source:

$FND_TOP/bin/FNDLOAD username/password@database 0 Y DOWNLOAD $FND_TOP/patch/115/import/afsload.lct XXFRMNAME.ldt FORM APPLICATION_SHORT_NAME=”XXCUST” FORM_NAME=”XXFRMNAME”

Target:

$FND_TOP/bin/FNDLOAD username/password@database 0 Y UPLOAD $FND_TOP/patch/115/import/afsload.lct XXFRMNAME.ldt

Functions:

Source:

$FND_TOP/bin/FNDLOAD username/password@database 0 Y DOWNLOAD $FND_TOP/patch/115/import/afsload.lct XXFUNNAME.ldt FUNCTION FUNC_APP_SHORT_NAME=”XXCUST” FUNCTION_NAME=”XXFUNNAME”

Target:

$FND_TOP/bin/FNDLOAD username/password@database 0 Y UPLOAD $FND_TOP/patch/115/import/afsload.lct XXFUNNAME.ldt

Menus:

Source:

$FND_TOP/bin/FNDLOAD username/password@database 0 Y DOWNLOAD $FND_TOP/patch/115/import/afsload.lct XXMNNAME.ldt MENU MENU_NAME=”XXMNNAME”

Target:

$FND_TOP/bin/FNDLOAD username/password@database 0 Y UPLOAD $FND_TOP/patch/115/import/afsload.lct XXMNNAME.ldt

Profile Options:

Source:

$FND_TOP/bin/FNDLOAD username/password@database 0 Y DOWNLOAD $FND_TOP/patch/115/import/afscprof.lct XXPRNAME.ldt PROFILE PROFILE_NAME=”XXPRNAME” APPLICATION_SHORT_NAME=”XXCUST”

Target:

$FND_TOP/bin/FNDLOAD username/password@database 0 Y UPLOAD $FND_TOP/patch/115/import/afscprof.lct XXPRNAME.ldt

$FND_TOP/bin/FNDLOAD username/password@database 0 Y UPLOAD_PARTIAL $FND_TOP/patch/115/import/afscprof.lct XXPRNAME.ldt PROFILE PROFILE_NAME=” XXPRNAME” APPLICATION_SHORT_NAME=”XXCUST”

Lookups:

Source:

$FND_TOP/bin/FNDLOAD username/password@database 0 Y DOWNLOAD $FND_TOP/patch/115/import/aflvmlu.lct XXLKPNAME.ldt FND_LOOKUP_TYPE APPLICATION_SHORT_NAME=”XXCUST” LOOKUP_TYPE=”XXLKPNAME”

Target:

$FND_TOP/bin/FNDLOAD username/password@database 0 Y UPLOAD $FND_TOP/patch/115/import/aflvmlu.lct XXLKPNAME.ldt

$FND_TOP/bin/FNDLOAD username/password@database 0 Y UPLOAD_PARTIAL $FND_TOP/patch/115/import/aflvmlu.lct XXLKPNAME.ldt FND_LOOKUP_TYPE LOOKUP_TYPE=”XXLKPNAME” APPLICATION_SHORT_NAME=”XXCUST”

Value Sets:

Source:

$FND_TOP/bin/FNDLOAD username/password@database 0 Y DOWNLOAD $FND_TOP/patch/115/import/afffload.lct XXVALSNAME.ldt VALUE_SET FLEX_VALUE_SET_NAME=”XXVALSNAME”

Target:

$FND_TOP/bin/FNDLOAD username/password@database 0 Y UPLOAD $FND_TOP/patch/115/import/afffload.lct XXVALSNAME.ldt

$FND_TOP/bin/FNDLOAD username/password@database 0 Y UPLOAD_PARTIAL $FND_TOP/patch/115/import/afffload.lct XXVALSNAME.ldt VALUE_SET FLEX_VALUE_SET_NAME=”XXVALSNAME” APPLICATION_SHORT_NAME=”XXCUST”

Descriptive Flex-fields:

Source:

$FND_TOP/bin/FNDLOAD username/password@database 0 Y DOWNLOAD $FND_TOP/patch/115/import/afffload.lct XXDFFNAME.ldt DESC_FLEX P_LEVEL=’COL_ALL:REF_ALL:CTX_ONE:SEG_ALL’ APPLICATION_SHORT_NAME=”PN” DESCRIPTIVE_FLEXFIELD_NAME=”PN_LEASE_DETAILS” P_CONTEXT_CODE=”Global Data Elements”

Target:

$FND_TOP/bin/FNDLOAD username/password@database 0 Y UPLOAD $FND_TOP/patch/115/import/afffload.lct XXDFFNAME.ldt

Key Flex-fields:

Source:

$FND_TOP/bin/FNDLOAD username/password@database 0 Y DOWNLOAD $FND_TOP/patch/115/import/afffload.lct XXKFFNAME.ldt KEY_FLEX P_LEVEL=’COL_ALL:FQL_ALL:SQL_ALL:STR_ONE:WFP_ALL:SHA_ALL:CVR_ALL:SEG_ALL’ APPLICATION_SHORT_NAME=”FND” ID_FLEX_CODE=”key flex code” P_STRUCTURE_CODE=”structure name”

Target:

$FND_TOP/bin/FNDLOAD username/password@database 0 Y UPLOAD $FND_TOP/patch/115/import/afffload.lct XXKFFNAME.ldt

Form Personalization:

Source:

$FND_TOP/bin/FNDLOAD username/password@database 0 Y DOWNLOAD $FND_TOP/patch/115/import/affrmcus.lct XXFPNAME.ldt FND_FORM_CUSTOM_RULES function_name=”XXFPNAME”

Target:

$FND_TOP/bin/FNDLOAD username/password@database 0 Y UPLOAD $FND_TOP/patch/115/import/affrmcus.lct XXFPNAME.ldt

FND Users:

Source:

$FND_TOP/bin/FNDLOAD username/password@database 0 Y DOWNLOAD $FND_TOP/patch/115/import/afscursp.lct XXUSERNAME.ldt FND_USER USER_NAME=’XXUSERNAME’

Target:

$FND_TOP/bin/FNDLOAD username/password@database 0 Y UPLOAD $FND_TOP/patch/115/import/afscursp.lct XXUSERNAME.ldt

Printer Styles:

Source:

$FND_TOP/bin/FNDLOAD username/password@database 0 Y DOWNLOAD $FND_TOP/patch/115/import/afcppstl.lct XXPRSTYLE.ldt STYLE PRINTER_STYLE_NAME=”XXPRSTYLE”

Target:

$FND_TOP/bin/FNDLOAD username/password@database 0 Y UPLOAD $FND_TOP/patch/115/import/afcppstl.lct XXPRSTYLE.ldt

Data Definitions for XML Publisher Report Template:

$FND_TOP/bin/FNDLOAD username/password@database 0 Y DOWNLOAD $XDO_TOP/patch/115/import/xdotmpl.lct XXBRPRPOPRINT_XML_DD.ldt XDO_DS_DEFINITIONS APPLICATION_SHORT_NAME=’XXCUST’ DATA_SOURCE_CODE=XXBRPRPOPRINT_XML’

$FND_TOP/bin/FNDLOAD username/password@database  0 Y UPLOAD $XDO_TOP/patch/115/import/xdotmpl.lct XXBRPRPOPRINT_XML_DD.ldt

 

FNDLOAD in Oracle Apps


FNDLOAD in Oracle Apps

FNDLOAD is a developer tool provided by Oracle that migrates data between Oracle Application instances. It is executed at the UNIX command line or via Unix scripts created by the developer. Oracle provides configuration files for AOL setup data, HR setups and AME. These configuration files define the parent and child entities to be downloaded and uploaded. This “out of the box” standard functionality ensures a reliable, repeatable process to migrate setup data between instances.

What can be migrated by 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

How to Migrate Data?

The executable for FNDLOAD is located in $FND_TOP/bin. FNDLOAD can be executed from the command line with the following parameters or ideally placed in a UNIX script that logs successful uploads or downloads.

The syntax of FNDLOAD is as follows:

 

FNDLOAD <apps/$APPS_PW> 0 Y <Mode> <Configfile> <target data file> <entity> <parameter>

Where:

  • 0 Y : Concurrent Program Flags
  • Mode: UPLOAD, UPLOAD_PARTIAL or DOWNLOAD
  • Configfile = Configuration file (.lct) provided by Oracle in $FND_TOP/patch/115/import
  • Target Data File: Name of the file (.ldt) to be created by Download or used by Upload. This file contains the definition of the entity being migrated.
  • Entity: Type of object being migrated (printer style, lookup, executable,…)
  • Parameter: Parameter related to the entity (Which printer style, lookup, etc)

Configuration Files:

Configurations files are provided by Oracle for AOL, HR and AME entities. AOL configuration files are located in $FND_TOP/patch/115/import. HR and AME configuration files are located in $PER_TOP/patch/115/import in Release 11i. In release 12, the AME configuration files have moved to $AME_TOP/patch/12/import.

Another Alternative: iSetup

iSetup is the nearest Oracle provided alternative to FNDLOAD that will meet some of the needs for change management. iSetup is ideal during implementations and is a front end functional tool. iSetup additionally has the advantage of being able to migrate application data where FNDLOAD is only for setup data. However, several significant limitations are a factor in the change management process. iSetup does not consider the owner or timestamp in order to preserve the seeded data or most recent version of data. iSetup migrates data only in the primary language. There are no multi-language capabilities. More significantly for change management, iSetup has limited ability to migrate specific objects. In some cases, filters are available to migrate individual setups such as a single concurrent program, but in many cases, it’s all or nothing. The source and target instance must be at the same patch level for iSetup. iSetup is not an option during the upgrade process even for a point release upgrade. Finally, iSetup will not migrate Approvals Management entities.

FNDLOAD Examples

 

 

Data Migration vs. Data conversion


Data Migration vs. Data conversion

When we need to enter data into oracle Apps, following are the few techniques:

• The Data can be entered using the application Screens (for small amount of data, like creating PO, entering sales orders using Oracle Apps screens).
• The data can be entered using Oracle’s Open System Interface (for regular operations e.g. for moving data from one module to another).
• The data can be stored in the database table directly (Not recommended by oracle and can be very risky, because on any event data is going to be stored in many tables and data should be validated before inserting into tables that may cause data integrity and inconsistency problem, sometimes it may corrupt the data completely.).
• Using third party tools like data loader (It is also can be used when data is relatively small (25-200 records) because it captures the keystrokes and works like manually entering the data into Oracle form but much faster as process is automated).

What is the need of Migration/Conversion?

Migration/Conversion are required when we are upgrading to one version to another (e.g. Oracle Apps 11.5.7 to Oracle 11.5.10) or moving data from some legacy system to Oracle Apps. There will be bulk  of data (sometimes millions or even more than that) that needs to be moved from one system to another  and  before moving the data it should be validated and only valid records should be entered into Oracle Apps.

If both the systems (Target and source) are not having same structure for data (Tables are not same/Table Structure is not same/The data is being stored in database is not same), it needs to be translated (e.g. upgrading from Oracle 11i to R12 where table structures are not same) then we say it as conversion (any kind of translation of data on Source data to make it suitable for Target system) otherwise migration.

 

What is Migration?

 

Migration of data means moving the data from one system to another using Interface Programs/APIs where both the systems have same structure of data.

Process of Migrating of data:
• Identify the data to be imported to new system (Business requirement).
• Extract the data into flat file/Staging table
• Load the data into Interface Table(using SQL* Loader/DB Link/Others) after validation(If loading the data using Interface)

What is Conversion?

Conversion of data means translating the data to suite target system (data should be formatted according to target system )  and then move the translated data using Interface Programs/APIs.
• Identify the data to be imported to new system (Business requirement).
• Extract into flat file/Staging table
• Translate/Convert/Format the data
• Load the data into Interface Table(using SQL* Loader/DB Link/Others) after validation(If loading the data using Interface) and then launch standard Interface concurrent program to load the data to Oracle Apps Base Tables
• If using API, fetch the data, validate it and then call API to import the data

 

How conversion/Migration and interface differ?

 

There are good numbers of parameter on which they can be categorized. Take few of them:
Frequency
• Conversions/Migration are a one time event
• interfaces are ongoing
Occurrence in the project timeline
• conversions/Migration executed before production
• interfaces executed during production
Manner of execution
• Conversions/Migration are batch
• Interfaces may be batch or real time
Complexity
• Conversion/Migration does have very complex, it’s totally depends upon the data mapping activity.
• Coordinating with other systems make interfaces more complex
Maintenance
• Maintenance of interface is bit cost intensive task.

 

Query to find Concurrent Requests submitted by a particular user


Query to find Concurrent Requests submitted by a particular user

SELECT
    user_concurrent_program_name,
    responsibility_name,
    request_date,
    argument_text,
    request_id,
    phase_code,
    status_code,
    logfile_name,
    outfile_name,
    output_file_type
FROM
    fnd_concurrent_requests fcr,
    fnd_concurrent_programs_tl fcp,
    fnd_responsibility_tl fr,
    fnd_user fu
WHERE
    fcr.CONCURRENT_PROGRAM_ID = fcp.concurrent_program_id
    and fcr.responsibility_id = fr.responsibility_id
    and fcr.requested_by = fu.user_id
    and user_name = upper(:user_name)
ORDER BY REQUEST_DATE DESC;

User Exits in Oracle Reports


User Exits in Oracle Reports

We can integrate Oracle reports with Oracle Application Object Library, and run them as concurrent programs from your forms or through standard request submission.

These are the user exits available in Oracle Reports that makes AOL integration.

FND SRWINIT
FND SRWEXIT
FND FORMAT_CURRENCY
FND FLEXIDVAL
FND FLEXSQL

FND SRWINIT

  • This is a User Exit which sets your profile option values and allows Oracle AOL user exits to detect that they have been called by oracle repots.
  • It must be included if one is using any ORACLE APPLICATION OBJECT LIBRARY features in his report (such as concurrent processing).
  • FND SRWINIT also allows your report to use the correct organization automatically.
  • Can be used in BEFORE-REPORT Trigger.
  • Syntax is : SRW.USER_EXIT(‘FND SRWINIT’);

FND SRWEXIT

  • This user exit ensures that all the memory allocated for AOL user exits has been freed up properly.
  • Can be used in AFTER- REPORT Trigger.
  • Syntax is : SRW.USER_EXIT(‘FND SRWEXIT’);

FND FORMAT_CURRENCY

  • To format the currency amount dynamically depending upon the precision of the actual currency value, standard precision, users profile values and location (country) of the site.
  • You obtain the currency value from the database into an Oracle Reports column.
  • Define another Oracle Reports column, a formula column of type CHAR, which executes the FORMAT_CURRENCY user exit to format the currency value.
  • A displayed field has this formula column as its source so that the formatted value is automatically copied into the field for display.

Syntax:


FND FORMAT_CURRENCY
CODE=:column containing currency
DISPLAY_WIDTH=field width for display
AMOUNT=:source column name
DISPLAY=:display column name
[MINIMUM_PRECISION=:P_MIN_PRECISION]
[PRECISION={STANDARD|EXTENDED}]
[DISPLAY_SCALING_FACTOR=:P_SCALING_FACTOR]

FND FLEXSQL

Call this user exit to create a SQL fragment usable by your report to tailor your SELECT statement that retrieves flexfield values. This fragment allows you to SELECT flexfield values or to create a WHERE, ORDER BY, GROUP BY, or HAVING clause to limit or sort the flexfield values returned by your SELECT statement. You call this user exit once for each fragment you need for your select statement. You define all flexfield columns in your report as type CHARACTER even though your table may use NUMBER or DATE or some other datatype.

Syntax:


FND FLEXSQL
CODE=”flexfield code”
APPL_SHORT_NAME=”application short name”
OUTPUT=”:output lexical parameter name”
MODE=”{ SELECT | WHERE | HAVING | ORDER BY}”
[DISPLAY=”{ALL | flexfield qualifier | segment number}”]
[SHOWDEPSEG=”{Y | N}”]
[NUM=”:structure defining lexical” | MULTINUM=”{Y | N}”]
[TABLEALIAS=”code combination table alias”]
[OPERATOR=”{ = | < | > | <= | >= | != | “||” | BETWEEN | QBE}”]
[OPERAND1=”:input parameter or value”]
[OPERAND2=”:input parameter or value”]

FND FLEXIDVAL

Call this user exit to populate fields for display. You pass the key flexfields data retrieved by the query into this exit from the formula column. With this exit you display values, descriptions and prompts by passing appropriate token (any one of VALUE, DESCRIPTION, APROMPT or LPROMPT).

Syntax:


FND FLEXIDVAL
CODE=”flexfield code”
APPL_SHORT_NAME=”application short name”
DATA=”:source column name”
[NUM=”:structure defining source column/lexical”]
[DISPLAY=”{ALL|flexfield qualifier|segment number}”]
[IDISPLAY=”{ALL|flexfield qualifier|segment
number}”]
[SHOWDEPSEG=”{Y | N}”]
[VALUE=”:output column name”]
[DESCRIPTION=”:output column name”]
[APROMPT=”:output column name”]
[LPROMPT=”:output column name”]
[PADDED_VALUE=”:output column name”]
[SECURITY=”:column name”]

Commands for Form Compilation


Commands for Form Compilation

Login to Application Server on Unix Box for Compiling Forms

Command in 11i :

f60gen module=CUSTOM.pll userid=apps/(appspwd) module_type=LIBRARY batch=NO compile_all=special output_file=$AU_TOP/resource/CUSTOM.plx

f60gen module=XXPOCF.fmb userid=apps/(appspwd) module_type=form batch=no compile_all=special output_file=$XXPO_TOP/forms/US/XXPOCF.fmx

Command in R12 :

$ORACLE_HOME/bin/frmcmp_batch module_type=LIBRARY module=$AU_TOP/resource/CUSTOM.pll userid=apps/(appspwd) output_file=$AU_TOP/resource/CUSTOM.plx compile_all=special

$ORACLE_HOME/bin/frmcmp_batch module=$XXFND_TOP/forms/US/XXFND_FHLOG.fmb userid=apps/(appspwd) output_file=$XXFND_TOP/forms/US/XXFND_FHLOG.fmx module_type=form compile_all=special