Skip to main content

Oracle Purchasing Expense Charge Account Rules

Expense Charge Account Rules

When determining the default charge account, the account generator may reference the charge account defined on the employee record. Expense Charge Account Rules enable you to override one or multiple segments of that default account based on the item category. This ability to override does not interfere with the action of the account generator, but replaces those segments you configure after the account generator has created a charge account.
Setup Steps
  1. Log in to Oracle Applications and choose the Procure to Pay Administrator responsibility.
  2. Navigate to Purchasing Setup > Financials > Accounting > Expense Account Rules.
  3. Define the rules (for each item category) in the window. Duplicate rules for the same category or account segment are not permitted.
  4. Save your work.
Profile Options
  • Set POR: Apply Expense Account Rules to Favorite Charge Accounts to Yes


  1. How we can change Charge account while making PO Receipt?

  2. Hi Kaushik,

    Nice Question. I don't think we can change charge account on PO during Receipt Creation from both iProcurement Desktop Receiving and Standard Receiving from Purchasing Super User.

    As per standard functionality when the charge account on distribution of the PO is changed it will go for require reapproval even though the revision number will not changed.

    The alternatives are either buyer can change during the PO approval or after PO approval and before Receipt creation or the requester can change if it is returned by buyer for a change if the requester is having access to change the default account (Depends on Client's requirement).


  3. HI Sreekanth,

    Firstly, thanks for the article. i followed the steps as mentioned by you.

    my requirement is for an expense destination, non-inventory PO.

    So Default expense account on employee record is: XX-XXXXX-211017-XXX.

    i defined a category 'Miscellaneous.Miscellaneous' in the expense account rules HTML form with 3rd segment value - 411010.

    Now when i create a PO, the charge account on the distributions is not defaulted.

    Then i create 3 more records for category Miscellaneous.Miscellaneous' in the expense account rules HTML form with 1st, 2nd, 3rd and 4th segment values respectively as XX, XXXXX, 411010 and XXXX.

    Now when i create the PO, the charge account on the distributions is defaulted as XX-XXXXX-411040-XXXX.

    So my questions are:

    1. when i defined only one record in expense rules form for only one segment that i want to be overridden, why is the charge account not defaulting in the distributions window? i see that requester field is not defaulting either in the shipments/distributions form. is it an expected functionality?

    2. when defined a record for the same category per segment, the account was defaulted. why did this happen? is this expected? normally i would imagine that we only need to define categories in expense rules form for the segment that we want to change and not the whole CCID.

    3. Is there a way i can change this behaviour? requirement is to change the 3rd segment of our default PO charge account (which is on the buyer record) with the segment depending on the category used in the PO.

    any help will be highly appreciated.


    1. Hi Anshalu,

      Thanks for your feedback, sorry for delay in my response.

      Can you please confirm the below -

      1) Are you creating the PO directly without referring any Requisition or auto creating the PO from Requisition Created in iProcurement/Core Purchasing?

      If you are creating the PO based on Requisition, please check whether the requester is having Expense Account defined in HR and also check the iProcurement preferences for the same user.

      If you are directly creating PO without referring requisition, you won't see the requester field defaulted on PO and verify the Buyer's Employee record.

      The standard functionality should work in your case.
      I suggest you to try creating requisition from iProcurement with the buyer's login and check the charge account default login on requisition distribution and share the results.


    2. Below is the standard functionality -

      Based on the Account Generator workflow logic, the expense account rules are called
      - If the item is not having an expense account entered on the item in the item master (Not applicable for non-inventory item)

      - Partial replacement will occur from the expense account rule - if a complete account is found first - ex. from the requester, inventory organization parameters, etc..

      - If a complete account combination is not found - then expense account rules would have to exist for all the segments

      Expense account rules are designed to overlay already located segments - if a full account is found - or
      if all segments are defined in the expense account rules then it would build a complete combination using those rules.


Post a Comment

Popular posts from this blog

SQL Query to extract Oracle Purchase Order Information

SELECT   poh.po_header_id,    poh.type_lookup_code PO_TYPE,   poh.authorization_status PO_STATUS,   poh.segment1 PO_NUMBER,   pov.vendor_name SUPPLIER_NAME,   povs.vendor_site_code Location,   hrls.location_code Ship_To,   hrlb.location_code Bill_to,   pol.line_num ,   msib.segment1 Item,   pol.unit_price,   pol.quantity,   pod.amount_billed Amount,   pod.destination_subinventory,   ppf.full_name Buyer_Name,   poh.closed_Code  FROM   PO_HEADERS_ALL poh,   PO_LINES_ALL pol,   mtl_system_items_b msib,   PO_LINE_LOCATIONS_ALL poll,   PO_DISTRIBUTIONS_ALL pod,   po_vendors pov,   po_vendor_sites_All povs,   hr_locations_all hrls,   hr_locations_all hrlb,   per_all_people_f ppf,   po_line_types polt WHERE   1                         =1 AND polt.line_type_id    = pol.line_type_id AND povs.vendor_site_id     = poh.vendor_site_id AND pov.vendor_id           = poh.vendor_id AND pol.item_id             = msib.inventory_item_id AND msib.organization_id  

Query to find Operating Unit, Business Group and Legal Entity Information

SELECT   DISTINCT   hrl . country ,                  hroutl_bg . name              bg ,                  hroutl_bg . organization_id ,                  lep . legal_entity_id ,                  lep . name                    legal_entity ,                  hroutl_ou . name              ou_name ,                  hroutl_ou . organization_id   org_id ,                  hrl . location_id ,                  hrl . location_code ,                  glev . flex_segment_value FROM     apps . xle_entity_profiles   lep ,         apps . xle_registrations   reg ,         apps . hr_locations_all   hrl ,         apps . hz_parties   hzp ,         apps . fnd_territories_vl   ter ,         apps . hr_operating_units   hro ,         apps . hr_all_organization_units_tl   hroutl_bg ,         apps . hr_all_organization_units_tl   hroutl_ou ,         hr_organization_units   gloperatingunitseo ,         apps . gl_legal_entities_bsvs   glev WHERE    lep . transacting_entity_flag   =   'Y'         AND   l

List of iExpenses Tables

List of iExpenses Tables  Table Name Description AP_EXPENSE_REPORT_HEADERS_ALL Expense report header information AP_EXPENSE_REPORT_LINES_ALL Expense report lines information AP_EXP_REPORT_DISTS_ALL Expense report distribution information. It contains the accounts against each expense report line. AP_CREDIT_CARD_TRXNS_ALL Table to store the corporate credit card transactions that are sent by the banks. These lines are saved as expense lines when the user creates the expense lines for credit cards AP_NOTES Table to store the comments entered by approvers and auditors     Setup tables   AP_EXPENSE_REPORTS_ALL This table contains the header level information about the expense templates AP_EXPENSE_REPORT_PARAMS_ALL This table contains the detail level information about the expense templates AP_POL_CAT_OPTIONS_ALL Table to store the policy options AP_POL_CONTEXT Table to store the policy context     AP_POL_LOCATIONS_TL Table