Monday, 6 March 2017

Oracle FDNLOAD upload and download Commands for AOL Components

Below are the different AOL components and its Upload and Download commands :-

1. Lookups 
-- -------------
Download:-
FNDLOAD apps/apps_pwd O Y DOWNLOAD $FND_TOP/patch/115/import/aflvmlu.lct XX_CUSTOM_LKP.ldt FND_LOOKUP_TYPE APPLICATION_SHORT_NAME="XXCUST" LOOKUP_TYPE="XX_LOOKUP_TYPE"

Upload:-
FNDLOAD apps/apps_pwd O Y UPLOAD $FND_TOP/patch/115/import/aflvmlu.lct XX_CUSTOM_LKP.ldt UPLOAD_MODE=REPLACE CUSTOM_MODE=FORCE


2. Concurrent Program
-- -----------------------------
Download:-
FNDLOAD apps/apps_pwd 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"

Upload:-
FNDLOAD apps/apps_pwd 0 Y UPLOAD $FND_TOP/patch/115/import/afcpprog.lct XX_CUSTOM_CP.ldt - WARNING=YES UPLOAD_MODE=REPLACE CUSTOM_MODE=FORCE


3. Profile Options
-- ---------
Download:-
FNDLOAD apps/apps_pwd O Y DOWNLOAD $FND_TOP/patch/115/import/afscprof.lct XX_CUSTOM_PRF.ldt PROFILE PROFILE_NAME="XX_PROFILE_NAME" APPLICATION_SHORT_NAME="XXCUST"

Upload:-
$FND_TOP/bin/FNDLOAD apps/apps_pwd 0 Y UPLOAD $FND_TOP/patch/115/import/afscprof.lct XX_CUSTOM_PRF.ldt - WARNING=YES UPLOAD_MODE=REPLACE CUSTOM_MODE=FORCE


4. Request Set and Link 
-- ------------------------------
Download:-
FNDLOAD apps/apps_pwd 0 Y DOWNLOAD $FND_TOP/patch/115/import/afcprset.lct XX_CUSTOM_RS.ldt REQ_SET REQUEST_SET_NAME='REQUEST_SET_NAME'

Upload:-
FNDLOAD apps/apps_pwd O Y UPLOAD $FND_TOP/patch/115/import/afcprset.lct  XX_CUSTOM_RS.ldt UPLOAD_MODE=REPLACE CUSTOM_MODE=FORCE


5. FND Message 
-- ---------------------
Download:-
FNDLOAD apps/apps_pwd 0 Y DOWNLOAD $FND_TOP/patch/115/import/afmdmsg.lct XX_CUSTOM_MESG.ldt FND_NEW_MESSAGES APPLICATION_SHORT_NAME="XXCUST" MESSAGE_NAME="MESSAGE_NAME%"

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


6. D2K FORMS 
-- ------------------
Download:-
$FND_TOP/bin/FNDLOAD apps/apps_pwd 0 Y DOWNLOAD $FND_TOP/patch/115/import/afsload.lct XX_CUSTOM_FRM.ldt FORM FORM_NAME="FORM_NAME"

Upload:-    
$FND_TOP/bin/FNDLOAD apps/apps_pwd 0 Y UPLOAD $FND_TOP/patch/115/import/afsload.lct XX_CUSTOM_FRM.ldt - WARNING=YES UPLOAD_MODE=REPLACE CUSTOM_MODE=FORCE


7. Form Function
-- ---------------------
Download:-
FNDLOAD apps/apps_pwd 0 Y DOWNLOAD $FND_TOP/patch/115/import/afsload.lct XX_CUSTOM_FUNC.ldt FUNCTION FUNCTION_NAME="FORM_FUNCTION_NAME"

Upload:-
$FND_TOP/bin/FNDLOAD apps/apps_pwd 0 Y UPLOAD $FND_TOP/patch/115/import/afsload.lct XX_CUSTOM_FUNC.ldt - WARNING=YES UPLOAD_MODE=REPLACE CUSTOM_MODE=FORCE


8. Alerts 
-- ---------
Download:-
FNDLOAD apps/apps_pwd 0 Y DOWNLOAD $ALR_TOP/patch/115/import/alr.lct XX_CUSTOM_ALR.ldt ALR_ALERTS APPLICATION_SHORT_NAME=XXCUST ALERT_NAME="XX - Alert Name"

Upload:-
FNDLOAD apps/apps_pwd 0 Y UPLOAD $ALR_TOP/patch/115/import/alr.lct XX_CUSTOM_ALR.ldt CUSTOM_MODE=FORCE


9. Value Set
-- --------------
Download:-
$FND_TOP/bin/FNDLOAD apps/apps_pwd 0 Y DOWNLOAD $FND_TOP/patch/115/import/afffload.lct XX_CUSTOM_VS.ldt VALUE_SET FLEX_VALUE_SET_NAME="XX Value Set Name"

Upload:-
$FND_TOP/bin/FNDLOAD apps/apps_pwd 0 Y UPLOAD $FND_TOP/patch/115/import/afffload.lct XX_CUSTOM_VS.ldt - WARNING=YES UPLOAD_MODE=REPLACE CUSTOM_MODE=FORCE

Sunday, 5 March 2017

How to Customize Forms in Oracle Apps?

A) Identify the form in Oracle Apps that needs to be customized.
B) Go to the specific directory on one of the mid-tiers to get that forms executable. Say from $AU_TOP/forms/US/YOURFORM.fmb.
C) FTP that form and all its dependable form objects & pll files to your PC.
D) Open the form using for builder, ensuring that you do not receive any errors pertaining to missing library or missing form object.
E) Perform a save-as to rename this form on your pc, using your company's naming conventions.
F) Make the desired modifications to the form.
G) Generate the form on PC using Control-T keystrokes. This will ensure that nothing critical has been missed out. Surely you will need to connect to apps schema before generating the form.
H)  FTP the form file to $XXPO_TOP/forms/US. Surely, this XX will be replaced by the naming convention at your client/company.
I)  cd to  $XXPO_TOP/forms/US. And f60gen on YOURFORM.fmb, This will create a file executable as YOURFORM.fmx
J) Go to Application Developer responsibility
Menu /applicaton/form
Register the form
K) Register the Forms Function. This forms function must be registered against application "XX Purchasing".
L) Now add a menu item so that this forms function becomes available to specific responsibility.

Now you can use the new form.

Saturday, 4 March 2017

Overview of Flexfields

A flexfield is a flexible data field that your organization can customize to your business needs without programming. Oracle Applications uses two types of flexfields, key flexfields and descriptive flexfields. A key flexfield is a field you can customize to enter multi-segment values such as part numbers, account numbers, and so on. A descriptive flexfield is a field you customize to enter additional information for which your Oracle Applications product has not already provided a field.

Oracle Applications flexfields let you satisfy the following business needs:
    • Have "intelligent fields"--fields comprised of one or more segments, where each segment has both a value and a meaning.
    • Rely upon your application to validate the values or the combination of values that you enter in intelligent fields.
    • Have the structure of an intelligent field change depending on data in your application.
    • Capture additional information if you so choose.
    • Customize data fields to your meet your business needs without programming.
    • Query intelligent fields for very specific information.

Key Flexfields

A key flexfield is a field made up of segments, where each segment has both a value and a meaning. You can think of a key flexfield as an "intelligent" field that your business can use to store information represented as "codes."
Most organizations use "codes" to identify general ledger accounts, part numbers, and other business entities. Each segment in the code represents a characteristic of the entity. For example, your organization may use the part number code "PAD-NR-YEL-8 1/2x14" to represent a notepad that is narrow-ruled, yellow, and 8 1/2" by 14". But another organization may identify the same notepad with the part number code "PD-8x14-Y-NR". Although both codes represent the same part, they each have a different segment structure that is meaningful only to the organization using that code.
A key flexfield is flexible enough to let you use any code scheme you want to describe an entity. When your organization initially installs an Oracle Applications product, your organization's implementation team customizes all the key flexfields in that product to use meaningful code segments to describe each key flexfield entity. Your organization decides for each key flexfield, how many segments an entity has, what each segment means, what values each segment can have, and what each segment value means. Your organization can also define rules that govern what combination of segment values are valid (cross-validation rules), or define dependencies among the segments. The result is that your organization can use the codes it needs rather than change its codes to meet someone else's requirements.
The Accounting Flexfield in your Oracle Assets application is an example of a key flexfield that identifies a unique chart of accounts. One organization may choose to customize the Accounting Flexfield to have three segments called Company, Department, and Account, while another organization may choose to customize the flexfield to have six segments called Company, Cost Center, Account, Product, Product Line, and Subaccount, as shown in figure below in the Account column.

Figure A :-

A key flexfield looks like any other field in a block. You can simply type into a key flexfield, the segment values you want and separate each segment with a character called a segment separator. In the figure above, the designated segment separator for the Accounting Flexfield is a period ".". Alternatively, as shown in the figure below, you can open a flexfield window for a key flexfield to display a separate field for each of its segments.

Figure B:- 

Combination of Segment Values

A combination of segment values, also known as a key flexfield code combination, uniquely describes a business entity stored in a key flexfield. When you change the value of one or more segments in a key flexfield, you change the combination of segment values.

Descriptive Flexfields

A descriptive flexfield appears in a block as a two character, unnamed field enclosed in brackets, as shown in Figure C. A descriptive flexfield window appears when you move your cursor into a customized descriptive flexfield, as shown in Figure D. Your organization's implementation team can customize a descriptive flexfield to include as many additional fields as your organization needs. These fields, also called segments, appear in the descriptive flexfield window.
Note: We refer to the fields that appear in a customized descriptive flexfield as segments even though they differ from the segments that make up a single value in a key flexfield.
Each segment in a descriptive flexfield window has a name, and can have a set of valid values. Your organization can define dependencies among the segments or customize a descriptive flexfield to display context-sensitive segments, so that different segments appear depending on the values you enter in other fields or segments.
In Figure C, your organization might customize the descriptive flexfield to display fields that store more information about the asset category.

Figure C:-

Figure D:-

Thursday, 2 March 2017

Oracle SQL Monitor Report

Use the below query to get SQL Monitor Report :- 


1. get SQL id for your query :-

select * from gv$sql

2. Monitor report :-

SELECT DBMS_SQLTUNE.report_sql_monitor (sql_id         => 'dsf4z2dc63cfp',
                                        TYPE           => 'TEXT',
                                        report_level   => 'ALL')
          "SQL Monitor Report - Text"
  FROM DUAL;


It will give you below details.


SQL Monitoring Report
SQL Text
Global Information
Binds
Global Stats
SQL Plan Monitoring Details

Wednesday, 1 March 2017

Oracle Syatem Profile setup at different levels

Query to find out a specific profile setup at different levels :-


In the query below I have taken standard profile 'FND: Debug Log Enabled', you can change it accordingly for the profile you want to check.

Pass user profile name in the query.

Query :- 

SELECT po.profile_option_name "NAME",org.name name1,
pot.USER_PROFILE_OPTION_NAME,
        decode(to_char(pov.level_id),
               '10001', 'SITE',
               '10002', 'APP',
               '10003', 'RESP',
               '10005', 'SERVER',
               '10006', 'ORG',
               '10004', 'USER', '???') "LEV",
        decode(to_char(pov.level_id),
               '10001', '',
               '10002', app.application_short_name,
               '10003', rsp.responsibility_key,
               '10005', svr.node_name,
               '10006', org.name,
               '10004', usr.user_name,
               '???') "CONTEXT",
        pov.profile_option_value "VALUE"
FROM   apps.FND_PROFILE_OPTIONS po,
        apps.fnd_profile_options_tl pot,
        apps.FND_PROFILE_OPTION_VALUES pov,
        apps.fnd_user usr,
        apps.fnd_application app,
        apps.fnd_responsibility rsp,
        apps.fnd_nodes svr,
        apps.hr_all_organization_units org
WHERE  pot.user_profile_option_name like 'FND: Debug Log Enabled'
and    po.profile_option_name = pot.profile_option_name
AND    pov.application_id = po.application_id
AND    pov.profile_option_id = po.profile_option_id
AND    usr.user_id (+) = pov.level_value
AND    rsp.application_id (+) = pov.level_value_application_id
AND    rsp.responsibility_id (+) = pov.level_value
AND    app.application_id (+) = pov.level_value
AND    svr.node_id (+) = pov.level_value
AND    org.organization_id (+) = pov.level_value
ORDER BY "NAME", pov.level_id, "VALUE";


Output :- 


Feel free to ask questions :) 

How to find out Oracle DB version??

gv$views or v$views will have the info about all the DB related queries.

For GlobalDB:-

select * from gv$version



For RAC DB :-

select * from v$version


Shortcut keys in Oracle Apps Forms

FunctionShortcut Key
Show Shortcut KeysCtrl + K
Enter QueryF11
Execute QueryCtrl + F11
Count QueryF12
Clear BlockF7
Clear FieldF5
Clear FormF8
Clear RecordF6
EditCtrl + E
Update RecordCtrl + U
Insert RecordCtrl + Down
Delete RecordCtrl + Up
CommitCtrl + S
Duplicate FieldShift + F5
Duplicate RecordShift + F6
List of valuesCtrl + L
List Tab PagesF2
Next FieldTab
Next RecordDown Arrow Key
Next PrimaryKey Shift + F7
Next Set of RecordsShift + F8
Previous FieldShift + Tab
Previous RecordUp Arrow Key
Previous BlockShift+PageUp
Scroll DownPageDown
Scroll UpPageUp
UpUp Arrow Key
DownDown Arrow Key
PrintCtrl + P
ExitF4
HelpCtrl + H
Block MenuCtrl + B
Display ErrorShift + Ctrl + E