R12 Supplier/Site/Banking Drilldown



Supplier level
PO_VENDORS.party_id = HZ_PARTIES.party_id
PO_VENDORS.employee_id = PER_EMPLOYEES_CURRENT_X.employee_id(+)
PO_VENDORS.employee_id = PER_ALL_PEOPLE_F.person_id(+)


Site level
AP_SUPPLIER_SITES_ALL.vendor_id = PO_VENDORS.vendor_id
AP_SUPPLIER_SITES_ALL.location_id = HZ_LOCATIONS.location_id(+)
AP_SUPPLIER_SITES_ALL.ship_to_location_id = HR_LOCATIONS.location_id(+)
AP_SUPPLIER_SITES_ALL.org_id = AP_SYSTEM_PARAMETERS_ALL.org_id
AP_SUPPLIER_SITES_ALL.org_id = HR_OPERATING_UNITS.org_id
AP_SUPPLIER.SITES_ALL.party_site_id=HZ_PARTY_SITES.party_site_id


Bank level
IBY_EXT_BANK_ACCOUNTS.ext_bank_account_id = IBY_PMT_INSTR_USES_ALL.instrument_id
IBY_PMT_INSTR_USES_ALL.instrument_type = ‘BANKACCOUNT’
IBY_PMT_INSTR_USES_ALL.ext_pmt_party_id = IBY_EXTERNAL_PAYEES_ALL.ext_payee_id
IBY_EXTERNAL_PAYEES_ALL.payee_party_id = PO_VENDORS.party_id
IBY_EXTERNAL_PAYEES_ALL.party_site_id = AP_SUPPLIER_SITES_ALL.party_site_id
IBY_EXTERNAL_PAYEES_ALL.payment_function =  ‘PAYABLES_DISB’
IBY_EXTERNAL_PAYEES.supplier_site_id = AP_SUPPLIER_SITES_ALL.vendor_site_id
--Bank as Party
IBY_EXT_BANK_ACCOUNTS.bank_id = HZ_PARTIES.party_id(+)
IBY_EXT_BANK_ACCOUNTS.bank_id = HZ_ORGANIZATION_PROFILES.party_id(+)
IBY_EXT_BANK_ACCOUNTS.branch_id = CE_BANK_BRANCHES_V.branch_party_id(+)


--------------------------------------------------------------------
Sample Vendor Name      - 'XXABC Company Inc.'
       Vendor Site Code – 'DIGITAL INC’


Steps to Drill down to Bank Account info in R12
--------------------------------------------------------------------


1. Get the Supplier Party Id
    select * from ap_suppliers where vendor_name = 'XXABC Company Inc.';

    party_id 3310541
   

2. Get the Supplier Site Info
     select * from apps.ap_supplier_sites_all where vendor_id = 654980
     and org_id = 484;
   
     vendor_site_id 1342690
     party_site_id 2339546
     vendor_site_code 'DIGITAL INC’

3. Get the External Payee Info

     select * from apps.iby_external_payees_all where party_site_id = 2339546 and org_id = 484;
   
     ext_payee_id 3005139
     payee_party_id 3310541
     supplier_site_id 1342690

4. Get the Payment Instrument Info

     select * from apps.iby_pmt_instr_uses_all where ext_pmt_party_id = 3005139 and sysdate between nvl(start_date, sysdate) and nvl(end_date, sysdate);
     
     instrument_id 743177

5. Get the External Bank Account Info

    select * from apps.iby_ext_bank_accounts  where ext_bank_account_id = 743177;





-----------------------------------------------------------------------------------------------------------


Query used to get the active bank account info for a given Supplier Name, Org Id and Site Code. – R12

    SELECT accts.ext_bank_account_id,
                 accts.bank_account_name,
                 accts.masked_iban AS iban,
                 accts.currency_code,
                 uses.order_of_preference,
                 uses.start_date,
                 uses.end_date,
                 fc.name AS currency_name,
                 bank.party_name AS bank_name,
                 accts.masked_bank_account_num AS bank_account_number,
                 branch.bank_branch_name,
                 branch.branch_number,
                 bankProfile.bank_or_branch_number AS bank_number,
                 branch.eft_swift_code,
                 accts.bank_account_type
            FROM apps.IBY_PMT_INSTR_USES_ALL uses,
                 apps.IBY_EXTERNAL_PAYEES_ALL payee,
                 apps.IBY_EXT_BANK_ACCOUNTS accts,
                 apps.FND_CURRENCIES_VL fc,
                 apps.HZ_PARTIES bank,
                 apps.HZ_ORGANIZATION_PROFILES bankProfile,
                 apps.CE_BANK_BRANCHES_V branch,
                 apps.po_vendors pv,
                 apps.ap_supplier_sites_all sites
           WHERE     pv.vendor_name = 'XXABC Company Inc.'
                 and pv.vendor_id = sites.vendor_id
                 and sites.vendor_site_code = ‘DIGITAL INC’
                 and sites.org_id = 484
                 and uses.instrument_type = 'BANKACCOUNT'
                 AND payee.ext_payee_id = uses.ext_pmt_party_id
                 AND payee.payee_party_id = pv.party_id
                 AND payee.payment_function = 'PAYABLES_DISB'
                 AND payee.party_site_id = sites.party_site_id
                 AND payee.org_id = sites.org_id
                 AND payee.supplier_site_id = sites.vendor_site_id
                 AND uses.instrument_id = accts.ext_bank_account_id
                 AND fc.currency_code(+) = accts.currency_code
                 AND SYSDATE BETWEEN NVL (accts.start_date, SYSDATE)
                                 AND NVL (accts.end_date, SYSDATE)
                 AND SYSDATE BETWEEN NVL (uses.start_date, SYSDATE)
                                 AND NVL (uses.end_date, SYSDATE)                                
                 AND accts.bank_id = bank.party_id(+)
                 AND accts.bank_id = bankProfile.party_id(+)
                 AND accts.branch_id = branch.branch_party_id(+)
                 AND SYSDATE BETWEEN TRUNC(bankProfile.effective_start_date(+))  AND NVL(TRUNC(bankProfile.effective_end_date(+)),SYSDATE + 1)
 ORDER BY ORDER_OF_PREFERENCE ASC