Translate

Sunday, May 26, 2019

BEGIN
GO_BLOCK('XXPRG_IS');
FIRST_RECORD;
LOOP
IF :XXPRG_IS.DIS_HEADID  <> :XXPRG_IS.BS_ID_CHECK AND :XXPRG_IS.DIS_HEADID  <> :XXPRG_IS.ID_CHECK THEN
INSERT INTO XXPRG_REPORT(XXPRG_REPORT.HEADNAME,XXPRG_REPORT.HEADID)
VALUES(:XXPRG_IS.DIS_HEADNAME,:XXPRG_IS.DIS_HEADID);
END IF;
EXIT WHEN :SYSTEM.LAST_RECORD='TRUE';
NEXT_RECORD;
END LOOP;
FIRST_RECORD;
END;

Saturday, April 27, 2019

Background Processing/Transaction Processor Error On Transactions Interface And Pending Material Transactions Tables (Doc ID 1220763.1)



SELECT 'MTL_MATERIAL_TRANSACTIONS_TEMP' table_name, COUNT(*)
FROM MTL_MATERIAL_TRANSACTIONS_TEMP
WHERE ERROR_CODE = 'Transaction Processor Error'
AND TRANSACTION_BATCH_ID IS NOT NULL
UNION
SELECT 'MTL_TRANSACTIONS_INTERFACE' table_name, COUNT(*)
FROM MTL_TRANSACTIONS_INTERFACE
WHERE ERROR_CODE = 'Transaction Processor Error'
AND TRANSACTION_BATCH_ID IS NOT NULL ;


SELECT 'MTL_MATERIAL_TRANSACTIONS_TEMP' table_name, COUNT(*)
FROM MTL_MATERIAL_TRANSACTIONS_TEMP
WHERE ERROR_CODE = 'Transaction Processor Error'
AND TRANSACTION_BATCH_ID IS NOT NULL
UNION
SELECT 'MTL_TRANSACTIONS_INTERFACE' table_name, COUNT(*)
FROM MTL_TRANSACTIONS_INTERFACE
WHERE ERROR_CODE = 'Transaction Processor Error'
AND TRANSACTION_BATCH_ID IS NOT NULL ;





UPDATE MTL_MATERIAL_TRANSACTIONS_TEMP
SET TRANSACTION_BATCH_ID = NULL,
    PROCESS_FLAG = 'Y',
    LOCK_FLAG = 'N',
    ERROR_CODE = NULL,
    TRANSACTION_MODE = 3
WHERE ERROR_CODE = 'Transaction Processor Error'
  AND Transaction_Temp_id = &YourTransactionID;
 
 
UPDATE MTL_TRANSACTIONS_INTERFACE
SET TRANSACTION_BATCH_ID = NULL,
    PROCESS_FLAG = 1,
    LOCK_FLAG = 2,
    ERROR_CODE = NULL,
    TRANSACTION_MODE = 3
WHERE ERROR_CODE = 'Transaction Processor Error'
AND Transaction_Interface_id = &YourTransactionID;
 
  

Tuesday, April 9, 2019

Oracle APPS Important Tables

Oracle APPS Important Tables


ONT- Order Management

Table Name Description
OE_ORDER_HEADERS_ALL OE_ORDER_HEADERS_ALL stores header information for orders in Order Management.
OE_ORDER_LINES_ALL OE_ORDER_LINES_ALL stores information for all order lines in Oracle Order Management.
OE_ORDER_SOURCES Feeder System Names that create orders in Order Management tables.
OE_ORDER_HOLDS_ALL This table stores information of all the orders and lines that are on hold and the link to hold sources and hold releases.
OE_SALES_CREDITS This table stores information about sales credits.
OE_TRANSACTION_TYPES_ALL This table stores information about the order and line transaction types
WSH_DELIVERY_ASSIGNMENTS Delivery Assignments
WSH_DELIVERY_DETAILS Delivery Details
WSH_NEW_DELIVERIES Deliveries
WSH_TRIPS Trips
WSH_TRIP_STOPS Trip Stops

                  Interface Tables
  • OE_HEADERS_IFACE_ALL
  • OE_LINES_IFACE_ALL
                    
PO - Purchasing
Table Name Description
PO_ACTION_HISTORY Document approval and control action history table
PO_AGENTS Buyers table
PO_DISTRIBUTIONS_ALL Purchase order distributions
PO_HEADERS_ALL Document headers (for purchase orders, purchase agreements, quotations, RFQs)
PO_LINES_ALL Purchase document lines (for purchase orders, purchase agreements, quotations, RFQs)
PO_LINE_LOCATIONS_ALL Document shipment schedules (for purchase orders, purchase agreements, quotations, RFQs)
PO_RELEASES_ALL Purchase order releases
PO_LINES_ARCHIVE_ALL Archived purchase order lines
PO_LINE_LOCATIONS_ARCHIVE_ALL Archived purchase order shipments
PO_HEADERS_ARCHIVE_ALL Archived purchase orders
PO_LINE_TYPES_B Line types
PO_RELEASES_ARCHIVE_ALL Archived releases
PO_REQUISITION_HEADERS_ALL Requisition headers
PO_REQUISITION_LINES_ALL Requisition lines
PO_REQ_DISTRIBUTIONS_ALL Requisition distributions
RCV_TRANSACTIONS Receiving transactions
RCV_SHIPMENT_HEADERS Shipment and receipt header information
RCV_SHIPMENT_LINES Receiving shipment line information


 PO_ RFQ_VENDORS             (it holds list of suppliers to whom RFQ is sent relation po_headers_all -->header_id)   
 PO_QUOTATION_APPROVALS_ALL (list of approved quotations  relation po_line_locations_all --> line_location_id) 

               
                        Interface Tables
  • PO_REQUISTIONS_INTERFACE_ALL
  • PO_HEADERS_INTERFACE (Purchasing documents open interface)
  • PO_LINES_INTERFACE (Purchasing documents open interface)
  • PO_DISTRIBUTIONS_INTERFACE (Purchasing documents open interface)
  • RCV_HEADERS_INTERFACE (Receipts Interface)
  • RCV_TRASACTION_INTERFACE (Receipts Interface)
  • RCV_LOTS_INTERFACE (Receipts Interface)
  • RCV_SERIALS_INTERFACE (Receipts Interface)
  • PO_INTERFACE_ERRORS


INV – Inventory
Table Name Description
MTL_CATEGORIES_B Code combinations table for Item Category
MTL_CATEGORY_SETS_B Category Sets
MTL_CUSTOMER_ITEMS Customer item Information
MTL_CUSTOMER_ITEM_XREFS Relationships between customer items and inventory items
MTL_DEMAND Sales order demand and reservations
MTL_DEMAND_HISTORIES Sales order demand and reservations
MTL_ITEM_LOCATIONS Definitions for stock locators
MTL_ITEM_REVISIONS_B Item revisions
MTL_ITEM_TEMPLATES_B Item template definitions
MTL_ITEM_TEMPL_ATTRIBUTES Item attributes and attribute values for a template
MTL_LOT_NUMBERS Lot number definitions
MTL_MATERIAL_TRANSACTIONS Material transaction table
MTL_MATERIAL_TRANSACTIONS_TEMP Temporary table for processing material transactions
MTL_ONHAND_QUANTITIES_DETAIL FIFO quantities by control level and receipt
MTL_PARAMETERS Inventory control options and defaults
MTL_RESERVATIONS Reservations
MTL_SECONDARY_INVENTORIES Subinventory definitions
MTL_SECONDARY_LOCATORS Item-subinventory-locator assignments
MTL_SERIAL_NUMBERS Serial number definitions
MTL_SYSTEM_ITEMS_B Inventory item definitions
MTL_TRANSACTION_ACCOUNTS Material transaction distributions
MTL_TRANSACTION_TYPES Inventory Transaction Types Table
MTL_TXN_REQUEST_HEADERS Move Order headers table
MTL_TXN_REQUEST_LINES Move order lines table
MTL_UNIT_TRANSACTIONS Serial number transactions
 

MTL_ITEM_SUB_INVENTORIES
MFG_LOOKUPS

                      Interface Tables
  • MTL_TRANSACTIONS_INTERFACE (Inventory/Transactoin)
  • MTL_TRANSACTION_LOTS_INTERFACE
  • MTL_SERIAL_NUMBERS_INTERFACE
  • MTL_SYSTEMS_ITEM_ITERFACE (Items)
  • MTL_ITEM_CATEGORIES_INTERFACE (Item categories)
  • MTL_INTERFACE_ERRORS
               

GL- General Ledger
Table Name Description
GL_CODE_COMBINATIONS Stores valid account combinations
GL_SETS_OF_BOOKS Stores information about the sets of books
GL_IMPORT_REFERENCES Stores individual transactions from subledgers
GL_DAILY_RATES Stores the daily conversion rates for foreign currency
GL_DAILY_CONVERSION_TYPES 

                      Interface Tables
  • GL_INTERFACE
  • GL_DAILY_RATES_INTERFACE


Transactions
GL_PERIODS Stores information about the accounting periods
GL_JE_HEADERS Stores journal entries
GL_JE_LINES Stores the journal entry lines that you enter in the Enter Journals form
GL_JE_BATCHES Stores journal entry batches
GL_BALANCES Stores actual, budget, and encumbrance balances for detail and summary accounts
GL_BUDGETS Stores Budget definitions
GL_INTERFACE Import journal entry batches
GL_BUDGET_INTERFACE Upload budget data from external sources
GL_DAILY_RATES_INTERFACE Import daily conversion rates

      GL_LEDGERS
       gl_lookups

AR- Accounts Receivables
Table Name Description
RA_CUST_TRX_TYPES_ALL Transaction type for invoices, commitments and credit memos
RA_CUSTOMER_TRX_ALL Header-level information about invoices, debit memos, chargebacks, commitments and credit memos
RA_CUSTOMER_TRX_LINES_ALL Invoice, debit memo, chargeback, credit memo and commitment lines
RA_CUST_TRX_LINE_GL_DIST_ALL Accounting records for revenue, unearned revenue and unbilled receivables
RA_CUST_TRX_LINE_SALESREPS_ALL Sales credit assignments for transactions
AR_ADJUSTMENTS_ALL Pending and approved invoice adjustments
RA_BATCHES_ALL
AR_CASH_RECEIPTS_ALL Detailed receipt information
AR_CASH_RECEIPT_HISTORY_ALL History of actions and status changes in the life cycle of a receipt
AR_PAYMENT_SCHEDULES_ALL All transactions except adjustments and miscellaneous cash receipts
AR_RECEIVABLE_APPLICATIONS_ALL Accounting information for cash and credit memo applications
AR_TRANSACTION_HISTORY_ALL Life cycle of a transaction
HZ_CUST_ACCOUNTS Stores information about customer accounts.
HZ_CUSTOMER_PROFILES Credit information for customer accounts and customer account sites
HZ_CUST_ACCT_SITES_ALL Stores all customer account sites across all operating units
HZ_CUST_ACCT_RELATE_ALL Relationships between customer accounts
HZ_CUST_CONTACT_POINTS This table is no longer used
HZ_CUST_PROF_CLASS_AMTS Customer profile class amount limits for each currency
HZ_CUST_SITE_USES_ALL Stores business purposes assigned to customer account sites.
HZ_LOCATIONS Physical addresses
HZ_ORG_CONTACTS People as contacts for parties
HZ_ORG_CONTACT_ROLES Roles played by organization contacts
HZ_PARTIES Information about parties such as organizations, people, and groups
HZ_PARTY_SITES Links party to physical locations
HZ_PARTY_SITE_USES The way that a party uses a particular site or address
HZ_RELATIONSHIPS Relationships between entities
HZ_RELATIONSHIP_TYPES Relationship types




               Interface Tables
  • RA_CUSTOMERS_INTERFACE(Customer interface)
  • RA_CUSTOMER_PROFILES_INTERFACE (Customer Interface)
  • RA_INTERFACE_LINES_ALL (Invoice interface)
  • RA_INTERFACE_DISTRIBUTIONS_ALL (Invoice inteface)
  • RA_INTERFACE_SALESCREDITS_ALL (Invoice interface)
  • AR_PAYMENTS_INTERFACE_ALL (Receipts Interface)
  • RA_INTERFACE_ERRORS_ALL




CE- Cash Management
Table Name Description
CE_BANK_ACCOUNTS This table contains bank account information. Each bank account must be affiliated with one bank branch.
CE_BANK_ACCT_BALANCES This table stores the internal bank account balances
CE_BANK_ACCT_USES_ALL This table stores information about your bank account uses.
CE_STATEMENT_HEADERS Bank statements
CE_STATEMENT_LINES Bank statement lines
CE_STATEMENT_HEADERS_INT Open interface for bank statements
CE_STATEMENT_LINES_INTERFACE Open interface for bank statement lines
CE_TRANSACTION_CODES Bank transaction codes
AP- Accounts Payables
Table Name Description
AP_ACCOUNTING_EVENTS_ALL Accounting events table
AP_AE_HEADERS_ALL Accounting entry headers table
AP_AE_LINES_ALL Accounting entry lines table
AP_BANK_ACCOUNTS_ALL Bank Account Details
AP_BANK_ACCOUNT_USES_ALL Bank Account Uses Information
AP_BANK_BRANCHES Bank Branches
AP_BATCHES_ALL Summary invoice batch information
AP_CHECKS_ALL Supplier payment data
AP_HOLDS_ALL Invoice hold information
AP_INVOICES_ALL Detailed invoice records
AP_INVOICE_LINES_ALL AP_INVOICE_LINES_ALL contains records for invoice lines entered manually, generated automatically or imported from the Open Interface.
AP_INVOICE_DISTRIBUTIONS_ALL Invoice distribution line information
AP.AP_INVOICE_PAYMENTS_ALL Invoice payment records
AP_PAYMENT_DISTRIBUTIONS_ALL Payment distribution information
AP_PAYMENT_HISTORY_ALL Maturity and reconciliation history for

Payments
AP_PAYMENT_SCHEDULES_ALL Scheduled payment information on invoices
AP_INTERFACE_REJECTIONS Information about data that could not be loaded by Payables Open Interface Import
AP_INVOICES_INTERFACE Information used to create an invoice using Payables Open Interface Import
AP_INVOICE_LINES_INTERFACE Information used to create one or more invoice distributions
AP_SUPPLIERS AP_SUPPLIERS stores information about your supplier level attributes.
AP_SUPPLIER_SITES_ALL AP_SUPPLIER_SITES_ALL stores information about your supplier site level attributes.
AP_SUPPLIER_CONTACTS Stores Supplier Contacts

FA – Fixed Assets
Table Name Description
FA_ADDITIONS_B Descriptive information about assets
FA_ADJUSTMENTS Information used by the posting program to generate journal entry lines in the general ledger
FA_ASSET_HISTORY Historical information about asset reclassifications and unit adjustments
FA_ASSET_INVOICES Accounts payable and purchasing information for each asset
FA_BOOKS Financial information of each asset
FA_BOOK_CONTROLS Control information that affects all assets in a depreciation book
FA_CALENDAR_PERIODS Detailed calendar information
FA_CALENDAR_TYPES General calendar information
FA_CATEGORIES_B Default financial information for asset categories
FA_CATEGORY_BOOKS Default financial information for an asset category and depreciation book combination
FA_DEPRN_DETAIL Depreciation amounts charged to the depreciation expense account in each distribution line
FA_DEPRN_PERIODS Information about each depreciation period
FA_DEPRN_EVENTS Information about depreciation accounting events.
FA_DEPRN_SUMMARY Depreciation information at the asset level
FA_DISTRIBUTION_ACCOUNTS Table to store account ccids for all distributions for a book
FA_DISTRIBUTION_DEFAULTS Distribution set information
FA_DISTRIBUTION_HISTORY Employee, location, and Accounting Flexfield values assigned to each asset
FA_DISTRIBUTION_SETS Header information for distribution sets
FA_FORMULAS Depreciation rates for formula-based methods
FA_LOCATIONS Location flexfield segment value combinations
FA_MASS_ADDITIONS Information about assets that you want to automatically add to Oracle Assets from another system
FA_METHODS Depreciation method information
FA_RETIREMENTS Information about asset retirements and reinstatements

HRMS- Human Resource Management System
Table Name Description
HR_ALL_ORGANIZATION_UNITS Organization unit definitions.
HR_ALL_POSITIONS_F Position definition information.
HR_LOCATIONS_ALL Work location definitions.
PER_ADDRESSES Address information for people
PER_ALL_PEOPLE_F DateTracked table holding personal information for employees, applicants and other people.
PER_ALL_ASSIGNMENTS_F Allocated Tasks
PER_ANALYSIS_CRITERIA Flexfield combination table for the personal analysis key flexfield.
PER_ASSIGNMENT_EXTRA_INFO Extra information for an assignment.
PER_ASSIGNMENT_STATUS_TYPES Predefined and user defined assignment status types.
PER_CONTRACTS_F The details of a persons contract of employment
PER_CONTACT_RELATIONSHIPS Contacts and relationship details for dependents, beneficiaries, emergency contacts, parents etc.
PER_GRADES Grade definitions for a business group.
PER_JOBS Jobs defined for a Business Group
PER_PAY_BASES Definitions of specific salary bases
PER_PAY_PROPOSALS Salary proposals and performance review information for employee assignments
PER_PEOPLE_EXTRA_INFO Extra information for a person
PER_PERIODS_OF_PLACEMENT Periods of placement details for a non-payrolled worker
PER_PERIODS_OF_SERVICE Period of service details for an employee.
PER_PERSON_ANALYSES Special information types for a person
PER_PERSON_TYPES Person types visible to specific Business Groups.
PER_PERSON_TYPE_USAGES_F Identifies the types a person may be.
PER_PHONES PER_PHONES holds phone numbers for current and ex-employees, current and ex-applicants and employee contacts.
PER_SECURITY_PROFILES Security profile definitions to restrict user access to specific HRMS records

PAY- Payroll
Table Name Description
PAY_ACTION_INFORMATION Archived data stored by legislation
PAY_ALL_PAYROLLS_F Payroll group definitions.
PAY_ASSIGNMENT_ACTIONS Action or process results, showing which assignments have been processed by a specific payroll action, or process.
PAY_ELEMENT_CLASSIFICATIONS Element classifications for legislation and information needs.
PAY_ELEMENT_ENTRIES_F Element entry list for each assignment.
PAY_ELEMENT_ENTRY_VALUES_F Actual input values for specific element entries.
PAY_ELEMENT_LINKS_F Eligibility rules for an element type.
PAY_ELEMENT_TYPES_F Element definitions.
PAY_ELEMENT_TYPE_USAGES_F Used to store elements included or excluded from a defined run type.
PAY_ORG_PAYMENT_METHODS_F Payment methods used by a Business Group.
PAY_PAYMENT_TYPES Types of payment that can be processed by the system.
PAY_PAYROLL_ACTIONS Holds information about a payroll process.
PAY_PEOPLE_GROUPS People group flexfield information.
PAY_PERSONAL_PAYMENT_METHODS_F Personal payment method details for an employee.
PAY_RUN_RESULTS Result of processing a single element entry.
PAY_RUN_RESULT_VALUES Result values from processing a single element entry.
PAY_SECURITY_PAYROLLS List of payrolls and security profile access rules.
PAY_INPUT_VALUES_F Input value definitions for specific elements.

BOM – Bills Of Material
Table Name Description
BOM_DEPARTMENTS Departments
BOM_DEPARTMENT_CLASSES Department classes
BOM_DEPARTMENT_RESOURCES Resources associated with departments
BOM_OPERATIONAL_ROUTINGS Routings
BOM_OPERATION_NETWORKS Routing operation networks
BOM_OPERATION_RESOURCES Resources on operations
BOM_OPERATION_SEQUENCES Routing operations
BOM_OPERATION_SKILLS
BOM_RESOURCES Resources, overheads, material cost codes, and material overheads
BOM_STANDARD_OPERATIONS Standard operations
BOM_ALTERNATE_DESIGNATORS Alternate designators
BOM_COMPONENTS_B Bill of material components
BOM_STRUCTURES_B Bills of material
BOM_STRUCTURE_TYPES_B Structure Type master table

WIP – Work in Process
Table Name Description
WIP_DISCRETE_JOBS Discrete jobs
WIP_ENTITIES Information common to jobs and schedules
WIP_LINES Production lines
WIP_MOVE_TRANSACTIONS Shop floor move transactions
WIP_MOVE_TXN_ALLOCATIONS Move transaction allocations for repetitive schedules
WIP_OPERATIONS Operations necessary for jobs and schedules
WIP_OPERATION_NETWORKS Operation dependency
WIP_OPERATION_OVERHEADS Overheads for operations in an average costing organization
WIP_OPERATION_RESOURCES Resources necessary for operations
WIP_OPERATION_YIELDS This table keeps all costing information for operation yield costing.
WIP_TRANSACTIONS WIP resource transactions
WIP_TRANSACTION_ACCOUNTS Debits and credits due to resource transactions

FND – Appication Object Library
Table Name Description
FND_APPLICATION Applications registered with Oracle Application Object Library
FND_CONCURRENT_PROGRAMS Concurrent programs
FND_CONCURRENT_REQUESTS Concurrent requests information
FND_CURRENCIES Currencies enabled for use at your site
FND_DATA_GROUPS Data groups registered with Oracle Application Object Library
FND_FLEX_VALUES Valid values for flexfield segments
FND_FLEX_VALUE_HIERARCHIES Child value ranges for key flexfield segment values
FND_FLEX_VALUE_SETS Value sets used by both key and descriptive flexfields
FND_FORM Application forms registered with Oracle Application Object Library
FND_FORM_FUNCTIONS Functionality groupings
FND_ID_FLEXS Registration information about key flexfields
FND_ID_FLEX_SEGMENTS Key flexfield segments setup information and correspondences between table columns and key flexfield segments
FND_ID_FLEX_STRUCTURES Key flexfield structure information
FND_LOOKUP_TYPES Oracle Application Object Library QuickCodes
FND_LOOKUP_VALUES QuickCode values
FND_MENUS New menu tabl for Release 10SC
FND_PROFILE_OPTIONS User profile options
FND_PROFILE_OPTION_VALUES Values of user profile options defined at different profile levels
FND_REQUEST_SETS Reports sets
FND_REQUEST_SET_PROGRAMS Reports within report sets
FND_REQUEST_SET_STAGES Stores request set stages
FND_RESPONSIBILITY Responsibilities
FND_RESP_FUNCTIONS Function Security
FND_USER Application users

JA - Asia/Pacific Localizations
Table Name Description
JAI_CMN_BOE_HDRS Stores BOE header info when a BOE Invoice is created through IL
JAI_CMN_BOE_DTLS Detail table for BOE Invoices
JAI_CMN_TAXES_ALL Master table for Localization Taxes
JAI_CMN_TAX_CTGS_ALL Stores tax categories and their link to excise ITEM classes.
JAI_CMN_TAX_CTG_LINES Stores the tax lines for defined tax categories
JAI_CMN_VENDOR_SITES Stores excise account related information about vendors.
JAI_RGM_DEFINITIONS Stores regime information.
JAI_RGM_TAXES This table stores tax details for transactions having TCS tax type.
JAI_CMN_RG_23AC_I_TRXS Stores Information of RG23A/C records and known as Quantity Register.
JAI_CMN_RG_23AC_II_TRXS Stores Information of RG23A/C Part II Details. Also known as Amount Register
JAI_CMN_RG_23D_TRXS Quantity register for Trading Organizations
JAI_CMN_RG_BALANCES Store the current balances of RG23A, RG23C and PLA Registers
JAI_CMN_RG_PLA_TRXS Stores the Transaction Information of PLA Register.
JAI_CMN_RG_PLA_HDRS Stores PLA header Infomation when a PLA invoice is created in AP module
JAI_CMN_RG_PLA_DTLS Stores PLA Detail Information when a PLA Invoice is created in AP Module

QP – Advanced Pricing
Table Name Description
QP_LIST_HEADERS_B QP_LIST_HEADERS_B stores the header information for all lists. List types can be, for example, Price Lists, Discount Lists or Promotions.
QP_LIST_LINES QP_LIST_LINES stores all list lines for lists in QP_LIST_HEADERS_B.
QP_PRICE_FORMULAS_B QP_PRICE_FORMULAS_B stores the pricing formula header information.
QP_PRICE_FORMULA_LINES QP_PRICE_FORMULA_LINES stores each component that makes up the formula.
QP_PRICING_ATTRIBUTES QP_PRICING_ATTRIBUTES stores product information and pricing attributes.
QP_QUALIFIERS QP_QUALIFIERS stores qualifier attribute information.

XLA - Subledger Accounting
Table Name Description
XLA_EVENTS The XLA_EVENTS table record all information related to a specific event. This table is created as a type XLA_ARRAY_EVENT_TYPE.
XLA_TRANSACTION_ENTITIES The table XLA_ENTITIES contains information about sub-ledger document or transactions.
XLA_AE_HEADERS The XLA_AE_HEADERS table stores subledger journal entries. There is a one-to-many relationship between accounting events and journal entry headers.
XLA_AE_LINES The XLA_AE_LINES table stores the subledger journal entry lines. There is a one-to-many relationship between subledger journal entry headers and subledger journal entry lines.
XLA_DISTRIBUTION_LINKS The XLA_DISTRIBUTION_LINKS table stores the link between transactions and subledger journal entry lines.
XLA_ACCOUNTING_ERRORS The XLA_ACCOUNTING_ERRORS table stores the errors encountered during execution of the Accounting Program.
XLA_ACCTG_METHODS_B The XLA_ACCTG_METHODS_B table stores Subledger Accounting Methods (SLAM) across products. SLAMs provided by development are not chart of accounts specific. Enabled SLAMs are assigned to ledgers.
XLA_EVENT_TYPES_B The XLA_EVENT_TYPES_B table stores all event types that belong to an event class.
XLA_GL_LEDGERS This table contains ledger information used by subledger accounting.


xle_entity_profiles
xle_registrations

Saturday, March 2, 2019

Register Custom New Form In Oracle EBS


     1.  Prepare your own custom form. Make sure no bugs and error.

      
   












2. Put your custom form (e.g. XXX_NEW_FORM.fmb) in oracle ebs server using ftp tools. Upload this file to $AU_TOP/12.0.0/forms/US/
      






  3. Compile your fmb file using this script:
frmcmp_batch module=XXX_NEW_FORM.fmb userid=apps/apps output_file=$<custom_directory>_TOP/forms/US/XXX_NEW_FORM.fmx module_type=FORM compile_all=YES

4.  Register your custom form (file fmx) in oracle ebs
Navigation : Application Developer  -> Application  ->  Form
For example, please see image below.










5. Register your form to form function.
Navigation : Application Developer  ->  Application  ->  Function.
For example, please see image below.

   
   












      
6. Register your form function to oracle application menu.  In this case, I put this custom form in responsibility “Receivables Manager”
Navigation : Application Developer  ->  Application  ->  Menu.















7.     Please go to form responsibility (Receivables Manager) to run your custom form.

Wednesday, February 6, 2019

OPM create recipe api validations and Code

PROCEDURE validate_recipe_data (p_validate_recipe IN VARCHAR2)

   IS
      --Local Variables
      lc_formula_num      VARCHAR2(25);
      lc_routing_num      VARCHAR2(25);
     
      ln_routing_id       NUMBER;
      ln_routstep_id      NUMBER;
      ln_formula_id       NUMBER;     
      ln_formulaline_id   NUMBER;
      ln_recipe_type      NUMBER;
      ln_valrec_cnt       NUMBER (10);
      ln_trnsfrec_cnt     NUMBER (10);
      ln_recipe_no        VARCHAR2 (30);
      ln_routing_vers     NUMBER (10);
      ln_org_id           NUMBER (10);
      ln_bulk_error_cnt   NUMBER (20);
      ln_formula_vers     NUMBER (10);
      ln_rout_max_vers    NUMBER (10);
      ln_ffm_max_vers     NUMBER (10);
      ln_max_vers         NUMBER (10);
      lv_record_status_recipe     VARCHAR2 (2);
      lv_error_code_recipe        VARCHAR2 (30);
      lv_error_message_recipe     VARCHAR2 (500);
--===============================
--Cursor to get Recipe Data
--===============================
      CURSOR lcu_recipe_data
      IS
         SELECT  transaction_id
               , sr_no
               , new_recipe_no recipe_no
               , recipe_version
               , recipe_description
               , new_formula_no formula_no
               , formula_version
               , new_routing_no routing_no
               , routing_version
               , owner_org_code
               , recipe_validity_date
               , recipe_type
               , formula_id
               , routing_id
               , organization_id
               , process_flag
               , error_code
               , record_status
               , error_message
               , last_updated_by
               , created_by
               , last_update_date
               , creation_date
               , last_update_login
           FROM xxblr_opm_recipe_stg
          WHERE 1=1
            AND (   NVL(record_status, 'N') = gc_newrecord_flag
                 OR NVL(record_status, 'N') = gc_validation_error_flag)  
       ORDER BY new_recipe_no;  

--===============================
--Cursor to get Recipe Number
--===============================
 /* cursor lcu_recipe_no(cp_recipe_no VARCHAR2)
 is
 select recipe_no
FROM apps.gmd_recipes
where recipe_no =cp_recipe_no; */

      --=====================================
--Cursor to get Recipe Num With Version
--=====================================
      CURSOR lcu_recipe_no (cp_recipe_no VARCHAR2, cp_recipe_vers NUMBER)
      IS
         SELECT recipe_no
           FROM apps.gmd_recipes
          WHERE 1=1
            AND recipe_no      = cp_recipe_no
            AND recipe_version = cp_recipe_vers;

--===============================
--Cursor to get Formula Number
--===============================
      CURSOR lcu_formula_no (cp_formula_no VARCHAR2)
      IS
         SELECT formula_no
           FROM apps.fm_form_mst
          WHERE 1=1
            AND formula_no = cp_formula_no;
         
--===============================
--Cursor to get Formula Line Id
--===============================
         
      CURSOR lcu_formulaline_id (p_formula_no VARCHAR2, p_formula_vers NUMBER)
      IS           
           SELECT fmd.formulaline_id
             FROM apps.fm_form_mst_b ffb,
                  apps.fm_matl_dtl fmd
            WHERE 1=1
              AND ffb.formula_id     = fmd.formula_id
              AND ffb.formula_no     = p_formula_no
              AND ffb.formula_vers   = p_formula_vers
         ORDER BY fmd.formulaline_id;

--=====================================
--Cursor to get Formula Num with Version
--======================================
      CURSOR lcu_formula_num (
                                 cp_formula_no        VARCHAR2,
                                 cp_formula_version   NUMBER
                             )
      IS                 
         SELECT formula_no,formula_id
           FROM apps.fm_form_mst
          WHERE 1=1
            AND formula_no   =  cp_formula_no
            AND formula_vers =  cp_formula_version;

--===============================
--Cursor to get Routing Number
--===============================
      CURSOR lcu_routing_no (cp_routing_no VARCHAR2)
      IS
         SELECT routing_no
           FROM apps.fm_rout_hdr
          WHERE 1=1
            AND routing_no = cp_routing_no;

--===================================
--Cursor to get Routing Num with Vers
--===================================
      CURSOR lcu_routing_num (cp_routing_no VARCHAR2, cp_routing_vers NUMBER)
      IS           
         SELECT routing_no,
                routing_id
           FROM apps.fm_rout_hdr
          WHERE 1=1
            AND routing_no   =  cp_routing_no
            AND routing_vers =  cp_routing_vers;

--===================================
--Cursor to get Routing Num with Vers
--===================================
      CURSOR lcu_routstep_id (p_routing_no VARCHAR2,p_routing_vers NUMBER)
      IS                                   
         SELECT  frd.routingstep_id
           FROM apps.fm_rout_hdr frh,
                apps.fm_rout_dtl frd                              
          WHERE 1=1
            AND frh.routing_id        =     frd.routing_id                   
            AND frh.routing_no        =     p_routing_no                         
            AND frh.routing_vers      =     p_routing_vers;
           
--===============================
--Cursor to get Org ID
--===============================
      CURSOR lcu_org_id (cp_owner_org_code VARCHAR2)
      IS
         SELECT organization_id
           FROM apps.org_organization_definitions
          WHERE 1=1
            AND UPPER(organization_code) = UPPER(cp_owner_org_code);

      -- Cursor to get Recipe Validity date

      --===============================
--Cursor to get Recipe Type
--===============================
     
    CURSOR lcu_recipe_type(p_recipe_type varchar2)
    IS
    SELECT lookup_code
      FROM apps.fnd_lookup_values
     WHERE 1=1
       AND UPPER(lookup_type)     = 'GMD_RECIPE_TYPE'                                     
       AND (   UPPER(meaning)     = UPPER (p_recipe_type)
            OR UPPER(lookup_code) = p_recipe_type );
   
--================================
--Cursor to get Max Recipe Version
--================================
      CURSOR lcu_max_vers
      IS
         SELECT MAX (recipe_version)
           FROM apps.gmd_recipes;

--===============================
--Cursor to get Formula Version
--===============================
      CURSOR lcu_ffm_max_vers
      IS
         SELECT MAX (formula_vers)
           FROM apps.fm_form_mst;

 --=================================
--Cursor to get Max Routing Version
--=================================
      CURSOR lcu_rout_max_vers
      IS
         SELECT MAX (routing_vers)
           FROM apps.fm_rout_hdr;

--===============================
--Cursor to get Valid Records
--===============================
      CURSOR lcu_valrec_cnt (cp_record_status VARCHAR2)
      IS
         SELECT COUNT (1)
           FROM xxblr_opm_recipe_stg
          WHERE 1=1
            AND record_status = cp_record_status;
           
----------
--=========================================================================
--Cursor to Update formula line id and routing id in formula staging table
--==========================================================================            
   
    CURSOR lcu_updt_form_rout_id(p_formula_id number,p_routing_id  number)
     IS  
        SELECT fmd.formulaline_id
             , frd.routingstep_id
--             , xrof.new_item_no
--             , xrof.issue_to_step
             , xrof.transaction_id  
          FROM xxblr_opm_formula_stg xrof
             , apps.fm_form_mst ffm
             , apps.fm_matl_dtl fmd
             , apps.mtl_system_items_b msi
             , apps.fm_rout_dtl frd
         WHERE 1=1
           AND xrof.new_formula_no        =  ffm.formula_no
           AND xrof.formula_vers          =  ffm.formula_vers
           AND ffm.formula_id             =  p_formula_id
           AND fmd.formula_id             =  ffm.formula_id
           AND (    fmd.inventory_item_id =  msi.inventory_item_id
                and msi.organization_id   =  g_master_org 
                and msi.segment1          =  xrof.new_item_no
               )
           AND fmd.qty                    =  xrof.required_qty
           AND frd.routing_id             =  p_routing_id
           AND frd.routingstep_no         =  xrof.issue_to_step
      ORDER BY xrof.transaction_id;
--------------- 

      TYPE per_tbl_type IS TABLE OF lcu_recipe_data%ROWTYPE INDEX BY BINARY_INTEGER;
      lt_per              per_tbl_type;

   BEGIN
      apps.fnd_file.put_line (apps.fnd_file.LOG, RPAD ('*', 80, '*'));
      apps.fnd_file.put_line(apps.fnd_file.LOG,'   --------- Executing VALIDATE_RECIPE_DATA ---------');
      apps.fnd_file.put_line (apps.fnd_file.LOG, RPAD (' ', 80, ' '));
      apps.fnd_file.put_line (apps.fnd_file.output, RPAD ('*', 80, '*'));
      apps.fnd_file.put_line(apps.fnd_file.output,'   --------- Executing VALIDATE_RECIPE_DATA ---------');
      apps.fnd_file.put_line (apps.fnd_file.output, RPAD (' ', 80, ' '));

      OPEN lcu_recipe_data;

      LOOP
         lt_per.DELETE;

         FETCH lcu_recipe_data BULK COLLECT INTO lt_per LIMIT 50000;

         FOR i IN lt_per.FIRST .. lt_per.LAST
         LOOP
            apps.fnd_file.put_line (apps.fnd_file.LOG,'Transaction ID:-'|| lt_per (i).transaction_id);
            --===============================
            -- Applying Transformation rules
            --===============================
            apps.fnd_file.put_line (apps.fnd_file.LOG,'Validation for recipe Number');

            IF lt_per (i).recipe_no IS NULL
            THEN
               lt_per (i).record_status     := gc_error_flag;
               gc_error_code                := '-PAT04';
               gc_error_message             := ',RECIPE  NUM IS NULL ';
               lt_per (i).error_code        := gc_error_code;
               lt_per (i).error_message     := gc_error_message;
            END IF;
           apps.fnd_file.put_line (apps.fnd_file.LOG,'Validation for recipe Version');
           
            IF lt_per (i).recipe_version IS NULL
            THEN
               lt_per (i).recipe_version := 1;
            END IF;
            ln_recipe_no :=NULL;
           
            apps.fnd_file.put_line (apps.fnd_file.LOG,'Validation for recipe Number Valid');
           
             OPEN lcu_recipe_no (lt_per (i).recipe_no,lt_per (i).recipe_version);
             FETCH lcu_recipe_no
             INTO ln_recipe_no;
             CLOSE lcu_recipe_no;
           
            apps.fnd_file.put_line (apps.fnd_file.LOG,'Validation for recipe Number Valid_1.0');
           
            IF ln_recipe_no IS NOT NULL
            THEN
               lt_per (i).record_status     := gc_error_flag;
               gc_error_code                := '-PAT04';
               gc_error_message             := ',RECIPE NUMBER ALREADY EXISTED';
               lt_per (i).error_code        := gc_error_code;
               lt_per (i).error_message     := gc_error_message;
            END IF;
           
            apps.fnd_file.put_line (apps.fnd_file.LOG,'Validation for recipe Number descrp');
           
            IF lt_per (i).recipe_description IS NULL
            THEN
               lt_per (i).record_status     := gc_error_flag;
               gc_error_code                := '-PAT04';
               gc_error_message             := ',RECIPE DESCRIPTION IS NULL';
               lt_per (i).error_code        := gc_error_code;
               lt_per (i).error_message     := gc_error_message;
            END IF;

            apps.fnd_file.put_line (apps.fnd_file.LOG,'Validation for formula_no');
           
            IF lt_per (i).formula_no IS NULL
            THEN
               lt_per (i).record_status     := gc_error_flag;
               gc_error_code                := '-PAT04';
               gc_error_message             := ',FORMULA NUMBER IS NULL';
               lt_per (i).error_code        := gc_error_code;
               lt_per (i).error_message     := gc_error_message;
            END IF;

            apps.fnd_file.put_line (apps.fnd_file.LOG,'Validation for formula Version');
           
            IF lt_per (i).formula_version IS NULL
            THEN
               lt_per (i).record_status     := gc_error_flag;
               gc_error_code                := '-PAT04';
               gc_error_message             := ',FORMULA VERSION IS NULL';
               lt_per (i).error_code        := gc_error_code;
               lt_per (i).error_message     := gc_error_message;              
            ELSE
               apps.fnd_file.put_line (apps.fnd_file.LOG,'Formula version :'|| lt_per (i).formula_version);

               OPEN lcu_formula_num (lt_per (i).formula_no,
                                     lt_per (i).formula_version
                                    );
               FETCH lcu_formula_num
                INTO lc_formula_num,ln_formula_id;
               CLOSE lcu_formula_num;

               IF lc_formula_num IS  NULL THEN
                  lt_per (i).record_status  := gc_error_flag;
                  gc_error_code             := '-PAT04';
                  gc_error_message          := ',FORMULA NO IS INVALID';
                  lt_per (i).error_code     := gc_error_code;
                  lt_per (i).error_message  := gc_error_message;
               ELSE
                  lt_per(i).formula_no      := lc_formula_num;
                  lt_per(i).formula_id      := ln_formula_id;
               END IF;
            END IF;                       

           apps.fnd_file.put_line (apps.fnd_file.LOG,'Validation for recipe Number Valid');
            IF lt_per (i).routing_no IS NULL
            THEN
               lt_per (i).record_status      := gc_error_flag;
               gc_error_code                 := '-PAT04';
               gc_error_message              := ',ROUTING NUMBER IS NULL';
               lt_per (i).error_code         := gc_error_code;
               lt_per (i).error_message      := gc_error_message;
            END IF;

            IF lt_per (i).routing_version IS NULL
            THEN
               lt_per (i).record_status     := gc_error_flag;
               gc_error_code                := '-PAT04';
               gc_error_message             := ',ROUTING VERSION IS NULL';
               lt_per (i).error_code        := gc_error_code;
               lt_per (i).error_message     := gc_error_message;
            ELSE
               lc_routing_num  :=NULL;
               ln_routing_id   :=NULL;
               
                OPEN lcu_routing_num (lt_per (i).routing_no,lt_per (i).routing_version);
               FETCH lcu_routing_num
                INTO lc_routing_num,ln_routing_id;
               CLOSE lcu_routing_num;

               IF lc_routing_num IS NULL THEN
                   lt_per (i).record_status     := gc_error_flag;
                   gc_error_code                := '-PAT04';
                   gc_error_message             := ',ROUTING NUMBER DOESNOT EXIST';
                   lt_per (i).error_code        := gc_error_code;
                   lt_per (i).error_message     := gc_error_message;
               ELSE
                lt_per(i).routing_no         :=     lc_routing_num;
                lt_per(i).routing_id         :=     ln_routing_id;            
               END IF;
            END IF;
         
            IF lt_per (i).recipe_validity_date IS NULL
            THEN
               lt_per (i).recipe_validity_date := '01-JAN-2011';
             /* 
               lt_per (i).record_status     := gc_error_flag;
               gc_error_code                := '-PAT04';
               gc_error_message             := ' ,RECIPE VALIDITY DATE IS NULL';
               lt_per (i).error_code        := gc_error_code;
               lt_per (i).error_message     := gc_error_message;             */
            END IF;
                                                               
            IF lt_per (i).owner_org_code IS NULL
            THEN
               lt_per (i).record_status     := gc_error_flag;
               gc_error_code                := '-PAT04';
               gc_error_message             := ' ,OWNER ORG CODE IS NULL';
               lt_per (i).error_code        := gc_error_code;
               lt_per (i).error_message     := gc_error_message;
            ELSE
               ln_org_id :=NULL;
               OPEN lcu_org_id (lt_per (i).owner_org_code);
               FETCH lcu_org_id INTO ln_org_id;
               CLOSE lcu_org_id;

               IF ln_org_id IS NULL
               THEN
                  lt_per (i).record_status  := gc_error_flag;
                  gc_error_code             := '-PAT04';
                  gc_error_message          := ' ,OWNER ORG CODE IS INVALID';
                  lt_per (i).error_code     := gc_error_code;
                  lt_per (i).error_message  := gc_error_message;
                  ELSE
                  lt_per (i).organization_id := ln_org_id;
               END IF;
            END IF;

            IF lt_per (i).recipe_type IS NULL
            THEN
               lt_per (i).record_status     := gc_error_flag;
               gc_error_code                := '-PAT04';
               gc_error_message             := ' ,RECIPE TYPE IS NULL';
               lt_per (i).error_code        := gc_error_code;
               lt_per (i).error_message     := gc_error_message;
            ELSE
               ln_recipe_type    :=NULL;
               OPEN lcu_recipe_type(lt_per (i).recipe_type);
               FETCH lcu_recipe_type INTO ln_recipe_type;
               CLOSE lcu_recipe_type;
              
               IF ln_recipe_type IS NULL THEN
                  lt_per (i).record_status     := gc_error_flag;
                  gc_error_code                := '-PAT04';
                  gc_error_message             := ' ,RECIPE TYPE IS INVALID';
                  lt_per (i).error_code        := gc_error_code;
                  lt_per (i).error_message     := gc_error_message;
               ELSE
                  lt_per(i).recipe_type          := ln_recipe_type;
               END IF;
            END IF;
           
            --============VALIDATIONS FOR RECIPE VALIDATITY RULES==============--
            ln_formulaline_id :=NULL;
           
             OPEN lcu_formulaline_id(lt_per (i).formula_no,lt_per (i).formula_version);
            FETCH lcu_formulaline_id
             INTO ln_formulaline_id;
            CLOSE lcu_formulaline_id;
           
            IF ln_formulaline_id IS NULL THEN
               lt_per (i).record_status  := gc_error_flag;
               gc_error_code             := '-PAT04';
               gc_error_message          := ',FORMULA LINE ID IS NOT FOUND';
               lt_per (i).error_code     := gc_error_code;
               lt_per (i).error_message  := gc_error_message;
            --    ELSE
            --    lt_per (i).formulaline_id  := ln_formulaline_id;        -- commented for a while
            END IF;
           
            ln_routstep_id := NULL;
            OPEN lcu_routstep_id (lt_per (i).routing_no,lt_per (i).routing_version);           
            FETCH lcu_routstep_id INTO ln_routstep_id;
            CLOSE lcu_routstep_id;
           
            IF ln_routstep_id Is null then
               lt_per (i).record_status  := gc_error_flag;
               gc_error_code             := '-PAT04';
               gc_error_message          := ',ROUTING STEP ID IS NOT FOUND';
               lt_per (i).error_code     := gc_error_code;
               lt_per (i).error_message  := gc_error_message;
            --    ELSE
            --      lt_per (i).routstep_id      := ln_routstep_id;   
            END IF;

                --=================================
                -- Identifying the success records
                --=================================
            IF lt_per (i).record_status <> gc_error_flag
            THEN
               lt_per (i).record_status := gc_validation_flag;
               lt_per (i).error_message := 'All Validations Passed';
            ELSE
               lt_per (i).record_status := gc_validation_error_flag;
            END IF;
        
            BEGIN
                 FOR c_rec IN lcu_updt_form_rout_id(lt_per (i).formula_id,lt_per (i).routing_id)
                 LOOP        
   
                         UPDATE  xxblr_opm_formula_stg
                            SET  formulaline_id        =   c_rec.formulaline_id
                               , routingstep_id        =   c_rec.routingstep_id
                           --    , record_status_recipe  =   lv_record_status_recipe
                           --    , error_message_recipe  =   lv_error_message_recipe
                           --    , error_code_recipe     =   lv_error_code_recipe
                          WHERE  1=1
                            AND  transaction_id         = c_rec.transaction_id;
                 
                   EXIT WHEN   lcu_updt_form_rout_id%NOTFOUND;     
                 END LOOP;
           
            EXCEPTION
            WHEN OTHERS THEN
               apps.fnd_file.put_line (apps.fnd_file.LOG,'Formulaline id  Step id Update Error Message :-> '|| SQLERRM);
        
            END;

         END LOOP;

        --===================================================================
        --Bulk Update the records with status flag, validation error message
        --===================================================================
         ln_bulk_error_cnt := 0;
         apps.fnd_file.put_line (apps.fnd_file.LOG, 'TRACK 11:');

         BEGIN
           
            FORALL i IN lt_per.FIRST .. lt_per.LAST SAVE EXCEPTIONS
              
               UPDATE xxblr_opm_recipe_stg
                  SET record_status         =   lt_per (i).record_status,
                      error_message         =   lt_per (i).error_message,
                      error_code            =   lt_per (i).error_code,
                      recipe_type           =   lt_per (i).recipe_type,
                      new_formula_no        =   lt_per (i).formula_no,
                      formula_version       =   lt_per (i).formula_version,
                      formula_id            =   lt_per (i).formula_id,
                      organization_id       =   lt_per (i).organization_id,
                      recipe_validity_date  =   lt_per (i).recipe_validity_date,
                      new_routing_no        =   lt_per (i).routing_no,
                      routing_id            =   lt_per (i).routing_id,
                      recipe_version        =   lt_per (i).recipe_version,
                      last_update_date      =   gd_current_date,
                      last_updated_by       =   gn_user_id,
                      last_update_login     =   gn_login_id
                WHERE transaction_id        =   lt_per (i).transaction_id;
           
      --    COMMIT;
         EXCEPTION
            WHEN OTHERS THEN
               apps.fnd_file.put_line (apps.fnd_file.LOG,'Bulk Update Error Message :-> '|| SQLERRM);
               ln_bulk_error_cnt := SQL%BULK_EXCEPTIONS.COUNT;

             FOR i IN 1 .. ln_bulk_error_cnt
             LOOP
                apps.fnd_file.put_line(apps.fnd_file.LOG,'Error# '|| i|| ' at iteration# '|| SQL%BULK_EXCEPTIONS (i).ERROR_INDEX);
                apps.fnd_file.put_line(apps.fnd_file.LOG,'Error Message is '|| SQLERRM(-SQL%BULK_EXCEPTIONS (i).ERROR_CODE));
             END LOOP;
         END;
  
         EXIT WHEN lcu_recipe_data%NOTFOUND;
      END LOOP;

      CLOSE lcu_recipe_data;

      COMMIT;

      OPEN lcu_valrec_cnt ('V');                        --gc_validation_flag);
      FETCH lcu_valrec_cnt
       INTO ln_valrec_cnt;
      CLOSE lcu_valrec_cnt;

      apps.fnd_file.put_line (apps.fnd_file.LOG,'   Number Of Records Validated       :-> '|| ln_valrec_cnt);
      apps.fnd_file.put_line (apps.fnd_file.LOG,'   Number Of Records Failured        :-> '|| (ln_trnsfrec_cnt - ln_valrec_cnt));
      apps.fnd_file.put_line (apps.fnd_file.LOG,'   ------ Procedure VALIDATE_DATA Exit------');
   EXCEPTION
      WHEN OTHERS THEN
         apps.fnd_file.put_line (apps.fnd_file.LOG,'MAIN-ERR-VLD-RECP-DATA :> ' || SQLERRM || ', ' || SQLCODE);
         apps.fnd_file.put_line(apps.fnd_file.LOG,'   --------- Procedure VALIDATE_RECIPE_DATA Exit ---------');
         apps.fnd_file.put_line (apps.fnd_file.LOG, RPAD (' ', 80, ' '));
         apps.fnd_file.put_line (apps.fnd_file.LOG, RPAD ('*', 80, '*'));
   END validate_recipe_data;

Accounts Receivable-AR setups in Oracle EBS Functional Financials - Apps R12

   1. Oracle Receivables -> Setup -> System ->System Options     a. Receivable GL related setup    b. Transaction and Customer rela...