Pages

Showing posts with label AOL. Show all posts
Showing posts with label AOL. Show all posts

Register a custom table in Oracle Apps: (AD_DD Package)


      To register custom table, table columns and Primary Key under FND
  • You register your custom tables using a AD_DD package.
  • Flexfields, Value sets and Oracle Alert are depending on this information. Therefore you need to register custom tables and table columns that will be used with flexfields, Value sets or Oracle Alert.
  • You can also use the AD_DD API to delete the registrations of tables and columns. You should delete the column registration first, then the table registration.
  • To alter a registration you should first delete the registration, then re-register the table or column. 
  • The AD_DD API does NOT check for the existence of the registered table or column in the database schema, but only updates the required AOL tables. You must ensure that the tables and columns registered actually exist and have the same format as that defined using the AD_DD API.
  • You need NOT register views.
  • You should include calls to the table registration routines in a PL/SQL script.
  • You should run the AD_DD procedures against the APPS schema. You must commit your changes for them to take effect.
Procedures in the AD_DD Package:

 procedure register_table (
   p_appl_short_name in varchar2,
                           p_tab_name    in varchar2,
                           p_tab_type    in varchar2,
                           p_next_extent in number default 512,
                            p_pct_free    in number default 10,
                            p_pct_used    in number default 70
  );
p_appl_short_ name: The application short name of the application that owns the table (usually your custom application).
p_tab_name: The name of the table (in uppercase letters).
p_tab_type: Use 'T' if it is a transaction table (almost all application tables), or 'S' for a "seed data" table.
p_next_extent: The next extent size, in kilobytes. Do not include the 'K'.
p_pct_free: The percentage of space in each of the table's blocks reserved for future updates to the table (1-99). 
p_pct_used: Minimum percentage of used space in each data block of the table (1-99). The sum of p_pct_free and p_pct_used must be less than 100.

procedure register_column (
  p_appl_short_name in varchar2,
                           p_tab_name   in varchar2,
                           p_col_name   in varchar2,
                           p_col_seq    in number,
                          p_col_type   in varchar2,
                           p_col_width  in number,
                           p_nullable   in varchar2,
                           p_translate  in varchar2,
                           p_precision  in number default null,
                           p_scale      in number default null
                           );
p_col_name: The name of the column (in uppercase letters).
p_col_seq: The sequence number of the column in the table (the order in which the column appears in the table definition).
p_col_type: The column type ('NUMBER', 'VARCHAR2', 'DATE', etc.).
p_col_width: The column size (a number). Use 9 for DATE columns, 38 for NUMBER columns (unless it has a specific width).
p_nullable: Use 'N' if the column is mandatory or 'Y' if the column allows null values.
p_translate: Use 'Y' if the column values will be translated for an Oracle E-Business Suite product release (used only by Oracle E-Business Suite products) or 'N' if the values are not translated (most application columns).
p_precision: The total number of digits in a number.
p_scale: The number of digits to the right of the decimal point in a number.

procedure delete_table  (
p_appl_short_name in varchar2,
                        p_tab_name    in varchar2
);

procedure delete_column (
p_appl_short_name in varchar2,
                        p_tab_name    in varchar2,
                        p_col_name    in varchar2
);
How to use:

·         Input is your custom table name. (Execute below queries.)
·         Spool the records.
·         Execute the spooled records in apps.
·         Commit;
Useful query:

To register tables:

select 'EXEC '||'AD_DD.REGISTER_TABLE(''XXCUST'', '''||TABLE_NAME||''',''T'',8,10,90);' from all_tables
where table_name = :TABLE_NAME;

To register table’s columns:

select 'EXEC '||'AD_DD.REGISTER_COLUMN(''XXCUST'', '''||TABLE_NAME||''','''||COLUMN_NAME||''','||COLUMN_ID||','''||DATA_TYPE||''','||DATA_LENGTH||','''||NULLABLE||''',''N'');' from all_tab_columns
where table_name = :TABLE_NAME
ORDER BY COLUMN_ID;

select 'EXEC '||'AD_DD.REGISTER_PRIMARY_KEY(''XXCUST'','''||INDEX_NAME||''','''||TABLE_NAME||''','''||ITYP_NAME||''',''S'',''Y'',''Y'');'
FROM ALL_INDEXES
WHERE table_name = :TABLE_NAME
and uniqueness = 'UNIQUE';

select 'EXEC '||'AD_DD.REGISTER_PRIMARY_KEY_COLUMN(''XXCUST'','''||A.INDEX_NAME||''','''||A.TABLE_NAME||''','''||A.COLUMN_NAME||''','||A.COLUMN_POSITION||');'
FROM ALL_IND_COLUMNS A, ALL_INDEXES B
WHERE A.TABLE_NAME = :TABLE_NAME
AND A.INDEX_NAME = B.INDEX_NAME
AND B.UNIQUENESS = 'UNIQUE';

To delete the registered Tables, columns

select 'EXEC '||'AD_DD.DELETE_TABLE(''XXCUST'', '''||TABLE_NAME);' from all_tables
where table_name = :TABLE_NAME;

select 'EXEC '||'AD_DD.REGISTER_COLUMN(''XXCUST'', '''||TABLE_NAME||''','''||COLUMN_NAME);' from all_tab_columns
where table_name = :TABLE_NAME
ORDER BY COLUMN_ID;

Example:

EXECUTE ad_dd.register_table('XXC', 'XXCUST_TABLE', 'T', 8, 10, 90);

EXECUTE ad_dd.register_column('XXC', 'XXCUST_TABLE', 'COLUMN1', 2, 'VARCHAR2', 30, 'N', 'N');

FNDLOAD Commands to Download / Upload concurrent program


  When we are working in oracle application development/implementation project, The equally important AOL data Migration takes place necessary to synchronize the data across databases instance during installation and upgrade.

Using FNDLOAD can download data from an application entity into an editable text file, which can be uploaded to another database. The Conversion between database format and text file format is specified by a configuration file.

What can be done?
      
·         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.

Advantages when using FNDLOAD:
1. Because downloaded data is stored in a text file, version administration is possible
2. No learning curve. This is relief for developer/dbas
3. Fully supported and recommended by Oracle
4. Capture the migrations in a file and use it during installations (log file).
5. Pin-point when something happened and where (database) easily
6. AOL data migration process is now simplified!


Disadvantages when using FNDLOAD:
1. Applications patching mechanisms use FNDLOAD heavily possibility of negative impact is not zero
2. No validation against migrating database/instance sensitive data
The Syntax:
To use FNDLOAD, the following syntax is needed.
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.
· T he data file is the output file, in which the downloaded data is written
· The entity is the entity you want to download,
·
Example of download:
FNDLOADapps/pwd 0 Y DOWNLOAD ${FND_TOP}/patch/115/import/afcpprog.lct myfile.ldt \ PROGRAM CONCURRENT_PROGRAM_NAME= concurrent_program_short_name> APPLICATION_SHORT_NAME=application_short_name
Example of Upload
FNDLOAD apps/pwd 0 Y UPLOAD ${FND_TOP}/patch/115/import/afcpprog.lct myfile.ldt – CUSTOM_MODE=FORCE undocumented parameter
Where is Config File Located?
·         Configuration files with extension .lct
Ø  On Unix – all the configuration files are in $FND_TOP/patch/115/import directory.
Ø  On Unix Oracle also places the original configuration files in $FND_TOP/admin/import directory.
·         Data files with extension .ldt.
Ø  The config files (.lct) are delivered and maintained by Oracle.
Ø  It has entity definitions, parent-child relationships and user input parameters identified by: NAME.
Ø  Downloading a parent automatically downloads all children – (Example) Concurrent Program download.
Sample Script Code for these Objects :

1) Printer Styles
:

FNDLOAD apps/apps@seed115 O Y DOWNLOAD $FND_TOP/patch/115/import/afcppstl.lct file_name.ldt STYLE PRINTER_STYLE_NAME=printer style name

2 ) Lookups
:
FNDLOAD apps/apps@seed115 O Y DOWNLOAD $FND_TOP/patch/115/import/aflvmlu.lct file_name.ldt FND_LOOKUP_TYPE APPLICATION_SHORT_NAME=prod LOOKUP_TYPE=lookup name

3) Descriptive Flexfield with all of specific Contexts:

FNDLOAD apps/apps@seed115 O Y DOWNLOAD $FND_TOP/patch/115/import/afffload.lct file_name.ldt DESC_FLEX P_LEVEL=?COL_ALL:REF_ALL:CTX_ONE:SEG_ALL? APPLICATION_SHORT_NAME=prod DESCRIPTIVE_FLEXFIELD_NAME=desc flex name P_CONTEXT_CODE=context name

4) Key Flexfield Structures
:
FNDLOAD apps/apps@seed115 O Y DOWNLOAD $FND_TOP/patch/115/import/afffload.lct file_name.ldt KEY_FLEX P_LEVEL=?COL_ALL:FQL_ALL:SQL_ALL:STR_ONE:WFP_ALL:SHA_ALL:CVR_ALL:SEG_ALL? APPLICATION_SHORT_NAME=prod ID_FLEX_CODE=key flex code P_STRUCTURE_CODE=structure name

5) Concurrent Programs:

FNDLOAD apps/apps@seed115 O Y DOWNLOAD $FND_TOP/patch/115/import/afcpprog.lct file_name.ldt PROGRAM APPLICATION_SHORT_NAME=prod CONCURRENT_PROGRAM_NAME=concurrent name

6) Value Sets:

FNDLOAD apps/apps@seed115 O Y DOWNLOAD $FND_TOP/patch/115/import/afffload.lct file_name.ldt VALUE_SET FLEX_VALUE_SET_NAME=value set name

7) Value Sets with values:

FNDLOAD apps/apps@seed115 O Y DOWNLOAD $FND_TOP/patch/115/import/afffload.lct file_name.ldt VALUE_SET_VALUE FLEX_VALUE_SET_NAME=value set name

8) Profile Options:
FNDLOAD apps/apps@seed115 O Y DOWNLOAD $FND_TOP/patch/115/import/afscprof.lct file_name.ldt PROFILE PROFILE_NAME=profile option APPLICATION_SHORT_NAME=prod

9) Requset Group:
FNDLOAD apps/apps@seed115 O Y DOWNLOAD $FND_TOP/patch/115/import/afcpreqg.lct file_name.ldt REQUEST_GROUP REQUEST_GROUP_NAME=request group APPLICATION_SHORT_NAME=prod

10) Request Sets:
FNDLOAD apps/apps@seed115 O Y DOWNLOAD $FND_TOP/patch/115/import/afcprset.lct file_name.ldt REQ_SET APPLICATION_SHORT_NAME=prod REQUEST_SET_NAME=request set

11) Responsibilities:
FNDLOAD apps/apps@seed115 O Y DOWNLOAD $FND_TOP/patch/115/import/afscursp.lct file_name.ldt FND_RESPONSIBILITY RESP_KEY=responsibility

12) Menus:
FNDLOAD apps/apps@seed115 O Y DOWNLOAD $FND_TOP/patch/115/import/afsload.lct file_name.ldt MENU MENU_NAME=menu_name

13) Forms/Functions:
FNDLOAD apps/apps@seed115 0 Y DOWNLOAD $FND_TOP/patch/115/import/affrmcus.lct file_name.ldt FND_FORM_CUSTOM_RULES The Upload syntax for all styles: FNDLOAD apps/apps@seed115 0 Y UPLOAD $FND_TOP/patch/115/import/affrmcus.lct file_name.ldt

14) User/Responsibilities:
FNDLOAD apps/apps@seed115 0 Y DOWNLOAD @FND:patch/115/import/afscursp.lct file_name.ldt FND_USER Then UPLOAD FNDLOAD apps/apps@seed115 0 Y UPLOAD [UPLOAD_PARTIAL] @FND:patch/115/import/afscursp.lct file_name.ldt FND_USER [].