Previous  Next          Contents  Index  Navigation  Glossary  Library

User Profile Loader

The User Profile Loader (FNDPLOAD) is a concurrent program that can move Oracle Applications user profile information between database and text file representations. The following sections describe the operation of the User Profile Loader.

Supported Operations

The User Profile Loader allows you to move profile data between the database (where it is used for runtime operation) and a text file representation (where it can be used for distribution). Specifically, you can:

Download database information to a text file

The text file is human-readable and portable, and can be examined and modified with any editor. Generally, a "developer key" is used to identify records written out to text files. In other words, the PROFILE_OPTION_NAME, not the PROFILE_OPTION_ID, is used to identify records.

Upload (merge) the information in a text file to the database

If a row is already correct in the database, it is not touched. If a row exists, but has different attributes, the row is updated. If a row does not exist, a new row is inserted. No rows are deleted, even if they are absent from the uploaded file.

These download and upload capabilities allow profile value information that is defined in one database to be easily propagated to other databases. This is useful for delivering Oracle Applications seed data to customers, as well as for copying customer profile definitions from a primary site to other sites.

The text file version of profile value data is also useful for bulk editing operations, which can be accomplished more efficiently with a text editor than with a form.

Usage

The User Profile Loader takes the following arguments:

FNDPLOAD <username/password> 0 Y 
  <appsname> <filename> UPLOAD | DOWNLOAD               <profappsname> ...

where

<username/ password> is the APPLSYS account

<appsname> is an application short name or "LOCAL"

<filename> is the file that will be read or written
<profappsname> is a list of applications profiles to download, or "ALL"

The location of the file is determined by the <appsname> and <filename> arguments. <appsname> indicates whether the file is in the install/import directory for a particular application, or whether it is in the local directory.

Appsname File Location
<APP> <file> $<APP_TOP>/install/import/<file>.slt
LOCAL <file> <file>


Examples

FNDPLOAD applsys/fnd 0 Y FND install/import/FND.plt UPLOAD

references file "$FND_TOP/install/import/FND.plt"

FNDPLOAD applsys/fnd 0 Y FND.plt UPLOAD

references file "FND.plt"

UPLOAD and DOWNLOAD

The loader works in either upload or download mode. In UPLOAD mode the entire file is read and merged into the database. In DOWNLOAD mode for one or more application names, the loader will download all profiles belonging to those applications to the file. "DOWNLOAD ALL" will download all profiles belonging to all applications to the file.

FNDPLOAD applsys/fnd 0 Y FND FND.plt DOWNLOAD FND

will download all profiles belonging to application FND to the file FND.plt

FNDPLOAD applsys/fnd 0 Y FND FND.plt UPLOAD

will upload everything in the file FND.plt to the database

Profile File Format

Profile information is stored in text file format by writing out a series of "records" for each profile. The file is plain text that can be viewed and edited with any standard text editor. You need to understand this file format only if you plan to edit the file.

The file consists of a series of text lines, each of which must be less than 1024 bytes in length (when written, no line will exceed 80 bytes in length).

A line may be a comment line, meaning it has no effect on the data contained in the file. Comment lines begin with a "#" and end with a newline.

# This is a comment line

The information in the file consists of a series of tokens delimited by white space. Note that a token may itself contain a space, in which case it is delimited with double-quote marks. Tokens may not contain non-printing characters unless they are preceded by the "escape" character, which is a backslash. Predefined escapes are:

String Meaning
\e Escape
\n Newline
\r Carriage return
\b Backspace
\v Vertical tab
\f Form feed
\" The double quote itself
\\ The backslash itself

Other escapes consist of octal values preceded by the backslash, as in "\007". If a line is too long to fit within 80 characters, the line is broken into as many "continuation" lines as necessary. A line ending with a single backslash is taken to be continued on the next line. In such a case, the newline following the backslash is ignored, rather than being taken as a white space delimiter. The line following such a line is taken to be a continuation of the "broken" line, and such a line can itself end in a backslash, indicating further continuation. Note that in the case of continuation lines, a leading "#" is not taken as a comment indicator, but rather as part of the continued data item.

The file starts with three lines as follows:

LANGUAGE = "AMERICAN"
CODESET = "WE8ISO8859P1"
TRANSLATED = "Y"

These lines indicate the NLS_LANG language and codeset of the file and the current translation status of any translated column values.

Then there is a series of object definitions of the format:

BEGIN <object type> <object identifier>
 <attribute> = <value> 
 ... 
END <object type>

There is only one type of object in the file: PROFILE. Each object type has some identifier, followed by a series of attribute values. If an attribute value is not specified, it is assumed to be NULL.

PROFILE record

Profiles are identified by PROFILE_OPTION_NAME. Profile information is formatted as follows:

BEGIN PROFILE <profile_name> 
 APPLICATION_SHORT_NAME =   50-character value 
 USER_PROFILE_OPTION_NAME = 240-character translated                              value 
 DESCRIPTION =              240-character translated                              value 
 USER_CHANGEABLE_FLAG =     1-character value 
 USER_VISIBLE_FLAG =        1-character value 
 READ_ALLOWED_FLAG =        1-character value 
 WRITE_ALLOWED_FLAG =       1-character value 
 SITE_ENABLED_FLAG =        1-character value 
 SITE_UPDATE_ALLOWED_FLAG = 1-character value 
 APP_ENABLED_FLAG =         1-character value 
 APP_UPDATE_ALLOWED_FLAG =  1-character value 
 RESP_ENABLED_FLAG =        1-character value 
 RESP_UPDATE_ALLOWED_FLAG = 1-character value 
 USER_ENABLED_FLAG =        1-character value 
 USER_UPDATE_ALLOWED_FLAG = 1-character value 
 START_DATE_ACTIVE =        DD/MM/YYYY 
 END_DATE_ACTIVE =          DD/MM/YYYY or NULL 
 SQL_VALIDATION =           2000-character value 
END PROFILE

Example:

BEGIN PROFILE ATCHMT_SET_INDICATOR
 APPLICATION_SHORT_NAME = FND 
 USER_PROFILE_OPTION_NAME = "Indicate Attachments" 
 DESCRIPTION = "Indicate whether attachments exist" 
 USER_CHANGEABLE_FLAG = Y 
 USER_VISIBLE_FLAG = Y 
 READ_ALLOWED_FLAG = Y 
 WRITE_ALLOWED_FLAG = Y 
 SITE_ENABLED_FLAG = Y 
 SITE_UPDATE_ALLOWED_FLAG = Y 
 APP_ENABLED_FLAG = Y 
 APP_UPDATE_ALLOWED_FLAG = Y 
 RESP_ENABLED_FLAG = Y 
 RESP_UPDATE_ALLOWED_FLAG = Y 
 USER_ENABLED_FLAG = Y 
 USER_UPDATE_ALLOWED_FLAG = Y 
 START_DATE_ACTIVE = 01/01/1900 
 END_DATE_ACTIVE = "" 
 SQL_VALIDATION = "SQL=\"SELECT MEANING \\\"Indicate Attachments Exist\\\", LOOKUP_CODE\ninto\ :visible_option_value,\n    :profile_option_value\nfrom\ fnd_lookups\nwhere lookup_type =\ 'YES_NO'\"\nCOLUMN=\"\\\"Indicate Attachments Exist\\\"(10)\""  
END PROFILE

Sample Profile File

# 
# $Header$ 
# 
LANGUAGE = "AMERICAN" 
CODESET = "US7ASCII" 
TRANSLATED = "Y"#
BEGIN PROFILE ATCHMT_SET_INDICATOR 
  APPLICATION_SHORT_NAME = FND 
  USER_PROFILE_OPTION_NAME = "Indicate Attachments" 
  DESCRIPTION = "Indicate whether attachments exist" 
  USER_CHANGEABLE_FLAG = Y 
  USER_VISIBLE_FLAG = Y 
  READ_ALLOWED_FLAG = Y 
  WRITE_ALLOWED_FLAG = Y 
  SITE_ENABLED_FLAG = Y 
  SITE_UPDATE_ALLOWED_FLAG = Y 
  APP_ENABLED_FLAG = Y 
  APP_UPDATE_ALLOWED_FLAG = Y 
  RESP_ENABLED_FLAG = Y 
  RESP_UPDATE_ALLOWED_FLAG = Y 
  USER_ENABLED_FLAG = Y 
  USER_UPDATE_ALLOWED_FLAG = Y 
  START_DATE_ACTIVE = 01/01/1900 
  END_DATE_ACTIVE = "" 
  SQL_VALIDATION = "SQL=\"SELECT MEANING \\\"Indicate Attachments Exist\\\", LOOKUP_CODE\ninto :visible_option_value,\n    :profile_option_value\nfrom fnd_\ lookups\nwhere lookup_type = 'YES_NO'\"\nCOLUMN=\"\\\"Indicate Attachments Exist\\\"(10)\""
END PROFILE 
BEGIN PROFILE AUDITTRAIL:ACTIVATE 
  APPLICATION_SHORT_NAME = FND 
  USER_PROFILE_OPTION_NAME = "AuditTrail:Activate" 
  DESCRIPTION = "Activate AuditTrail" 
  USER_CHANGEABLE_FLAG = N 
  USER_VISIBLE_FLAG = N 
  READ_ALLOWED_FLAG = Y 
  WRITE_ALLOWED_FLAG = Y 
  SITE_ENABLED_FLAG = Y 
  SITE_UPDATE_ALLOWED_FLAG = Y 
  APP_ENABLED_FLAG = Y 
  APP_UPDATE_ALLOWED_FLAG = Y 
  RESP_ENABLED_FLAG = N 
  RESP_UPDATE_ALLOWED_FLAG = N 
  USER_ENABLED_FLAG = N 
  USER_UPDATE_ALLOWED_FLAG = N 
  START_DATE_ACTIVE = 01/01/1900 
  END_DATE_ACTIVE = "" 
  SQL_VALIDATION = "SQL=\"SELECT MEANING \\\"AuditTrail:Activate\\\", LOOKUP_CODE\n   INTO :VISIBLE_OPTION_VALUE, :PROFILE_OPTION_VALUE\n   FROM FND_LOOKUPS\n  WHERE LOOKUP_TYPE = 'YES_NO'\"\nCOLUMN=\"\\\"AuditTrail:Activate\\\"(*)\" END PROFILE 
BEGIN PROFILE AUTOCOMMIT 
  APPLICATION_SHORT_NAME = FND 
  USER_PROFILE_OPTION_NAME = "AutoCommit" 
  DESCRIPTION = "Automatically commit all changes when leaving a form" 
  USER_CHANGEABLE_FLAG = Y 
  USER_VISIBLE_FLAG = Y 
  READ_ALLOWED_FLAG = Y 
  WRITE_ALLOWED_FLAG = Y 
  SITE_ENABLED_FLAG = Y 
  SITE_UPDATE_ALLOWED_FLAG = Y 
  APP_ENABLED_FLAG = Y 
  APP_UPDATE_ALLOWED_FLAG = Y 
  RESP_ENABLED_FLAG = Y 
  RESP_UPDATE_ALLOWED_FLAG = Y 
  USER_ENABLED_FLAG = Y 
  USER_UPDATE_ALLOWED_FLAG = Y 
  START_DATE_ACTIVE = 01/01/1900 
  END_DATE_ACTIVE = "" 
  SQL_VALIDATION = "SQL=\"select meaning AUTOCOMMIT,lookup_code\n   into :visible_option_value,:profile_option_value\n      from fnd_lookups\n  where\ 
 lookup_type = 'YES_NO'\"\nCOLUMN=\"AutoCommit(*)\"" 
END PROFILE  
BEGIN PROFILE CALCULATOR:TYPE 
  APPLICATION_SHORT_NAME = FND 
  USER_PROFILE_OPTION_NAME = "Calculator:Type" 
  DESCRIPTION = "Calculator or Adding Machine" 
  USER_CHANGEABLE_FLAG = Y 
  USER_VISIBLE_FLAG = Y 
  READ_ALLOWED_FLAG = Y 
  WRITE_ALLOWED_FLAG = Y 
  SITE_ENABLED_FLAG = Y 
  SITE_UPDATE_ALLOWED_FLAG = Y 
  APP_ENABLED_FLAG = Y 
  APP_UPDATE_ALLOWED_FLAG = Y 
  RESP_ENABLED_FLAG = Y 
  RESP_UPDATE_ALLOWED_FLAG = Y 
  USER_ENABLED_FLAG = Y 
  USER_UPDATE_ALLOWED_FLAG = Y 
  START_DATE_ACTIVE = 01/01/1900 
  END_DATE_ACTIVE = "" 
  SQL_VALIDATION = "SQL=\"select MEANING \\\"Calculator:type\\\", LOOKUP_CODE \ 
into\n   :VISIBLE_OPTION_VALUE, :PROFILE_OPTION_VALUE from FND_LOOKUPS w\ here\n       LOOKUP_TYPE='CALCULATOR_TYPE'\" \nCOLUMN=\"\\\"Calculator:type\\\"(*)\"" 
END PROFILE 
BEGIN PROFILE CONC_COPIES 
  APPLICATION_SHORT_NAME = FND 
  USER_PROFILE_OPTION_NAME = "Concurrent:Report Copies" 
  DESCRIPTION = "Number of copies to print for a concurrent process" 
  USER_CHANGEABLE_FLAG = Y 
  USER_VISIBLE_FLAG = Y 
  READ_ALLOWED_FLAG = Y 
  WRITE_ALLOWED_FLAG = Y 
  SITE_ENABLED_FLAG = Y 
  SITE_UPDATE_ALLOWED_FLAG = Y 
  APP_ENABLED_FLAG = Y 
  APP_UPDATE_ALLOWED_FLAG = Y 
  RESP_ENABLED_FLAG = Y 
  RESP_UPDATE_ALLOWED_FLAG = Y 
  USER_ENABLED_FLAG = Y 
  USER_UPDATE_ALLOWED_FLAG = Y 
  START_DATE_ACTIVE = 01/01/1900 
  END_DATE_ACTIVE = "" 
  SQL_VALIDATION = "" 
END PROFILE


         Previous  Next          Contents  Index  Navigation  Glossary  Library