Oracle Certification, Database Administration, SQL, Application, Programming Reference Books
Changing default GL account type

The standard Oracle process of defaulting GL account types to "Expense".

If a user enters a new balance sheet account and description and saves, the account is automatically saved with a valid but
incorrect account type.  Incorrect account types can cause a BUNCH of problems with year-end retained earnings processing, budget uploads and OFA interfaces.

If the user does not specify a valid account type.
1) Sign on to the Application Developer responsibility:
 a) Menu path Application->Validation->Quick Codes->Special
    Use Find, select ACCOUNT_TYPE
    Add a new account type "X" with a description of "Invalid"
 b) Menu path Flexfield->Key->Register
    Use Find, specify Application of Oracle General Ledger, hit Find button
    Select Qualifiers button for Accounting Flexfield  Down
    arrow to GL_Account, Change the default value from Expense to "Invalid"
 c) Menu path Application->Validation->Quick Codes->Special
    Use Find, select ACCOUNT_TYPE  Disable the new account type "X"

2) For R10 installations (only), you must also connect to SQL*Plus (as APPS) and create the following trigger.
   Remember to update the value set ID specific to your installation.

   If your installation has multiple sets of books, the when clause may need to include multiple ID's. the trigger should
   be named according to client's standards.  This trigger is NOT required in R11 since the Value Set Maintenance form
   generates an error if the account type quick code is disabled.
/*+==========================================+|
| FILENAME: custom_fnd_flex_values_trg.sql|
+===========================================+
|| DESCRIPTION
|     This trigger will generate an error if a user attempts to
|     create a main account without specifying a valid acct type.
|
| MODIFICATION HISTORY - Created by ISS - 08/16/99|
*===========================================*/
CREATE OR REPLACE TRIGGER
CUSTOM_FND_FLEX_VALUES_TRGBEFORE INSERT ON FND_FLEX_VALUES
FOR EACH ROW
WHEN  (new.flex_value_set_id = xxxxxxx)
DECLARE v_temp  NUMBER(15);
BEGIN
   IF :NEW.COMPILED_VALUE_ATTRIBUTES IS NULL THEN
            FND_MESSAGE.SET_NAME('FND','Account Type');
            FND_MESSAGE.SET_TOKEN
                ('Error','PLEASE ENTER A VALID ACCOUNT TYPE...');
            APP_EXCEPTION.RAISE_EXCEPTION;
   END IF;
   IF SUBSTR(:NEW.COMPILED_VALUE_ATTRIBUTES,5,1) = 'X' THEN
            FND_MESSAGE.SET_NAME('FND','Account Type');
            FND_MESSAGE.SET_TOKEN
                ('Error','PLEASE ENTER A VALID ACCOUNT TYPE...');
            APP_EXCEPTION.RAISE_EXCEPTION;
   END IF;
END;
/

Return to : Oracle Database, SQL, Application, Programming Tips