Tuesday, January 29, 2013

Script to Validate AP Converted Invoices


 Script to Validate AP Invoices
PROCEDURE validate_converted_invoices (errorbuf VARCHAR2, retcode NUMBER)
IS
   CURSOR val_inv_cur
   IS
      SELECT DISTINCT aba.batch_name, stg.ls_op_unit, stg.ls_org_id,
                      aba.batch_id
                 FROM apps.ap_invoices_all aia,
                      apps.ap_batches_all aba,
                      xxx.xxx_ap_invoices_conv_stg stg
                WHERE aia.batch_id = aba.batch_id
                  AND aia.invoice_num = stg.ls_sup_inv_num
                  AND invoice_num IN (SELECT ls_sup_inv_num
                                        FROM xxx.xxx_ap_invoices_conv_stg
                                       WHERE status_stg IN ('L', 'S'));

   CURSOR update_loaded_inv
   IS
      SELECT DISTINCT aia.invoice_num, aia.invoice_id, aba.batch_name,
                      stg.ls_op_unit op_unit, aia.vendor_id
                 FROM apps.ap_invoices_all aia,
                      xxx.xxx_ap_invoices_conv_stg stg,
                      apps.ap_batches_all aba
                WHERE 1 = 1
                  AND aia.invoice_num = stg.ls_sup_inv_num
                  AND aia.vendor_id = stg.new_vendor_id
                  AND aia.batch_id = aba.batch_id
                  AND aia.invoice_num IN (SELECT ls_sup_inv_num
                                            FROM xxx.xxx_ap_invoices_conv_stg
                                           WHERE status_stg IN ('L', 'S'));

   l_sub_request_id      NUMBER         := NULL;
   l_resp_id             NUMBER         := NULL;
   l_app_id              NUMBER         := NULL;
   v_request_completed   BOOLEAN;
   v_request_id          NUMBER;
   v_phase               VARCHAR2 (80)  := NULL;
   v_status              VARCHAR2 (80)  := NULL;
   v_dev_phase           VARCHAR2 (30)  := NULL;
   v_dev_status          VARCHAR2 (30)  := NULL;
   v_message             VARCHAR2 (240);
BEGIN
   FOR upd_inv_rec IN update_loaded_inv
   LOOP
      BEGIN
         UPDATE xxx.xxx_ap_invoices_conv_stg stg
            SET invoice_id = upd_inv_rec.invoice_id,
                batch_name = upd_inv_rec.batch_name
          WHERE ls_sup_inv_num = upd_inv_rec.invoice_num
            AND new_vendor_id = upd_inv_rec.vendor_id;

         COMMIT;
      END;
   END LOOP;

   FOR val_inv_rec IN val_inv_cur
   LOOP
      BEGIN
         SELECT DISTINCT fr.responsibility_id, frx.application_id
                    INTO l_resp_id, l_app_id
                    FROM apps.fnd_responsibility frx,
                         apps.fnd_responsibility_tl fr
                   WHERE fr.responsibility_id = frx.responsibility_id
                     AND UPPER (fr.responsibility_name) LIKE
                            UPPER (DECODE (val_inv_rec.ls_op_unit,
                                           'Payables Manager'
                                          )
                                  );

         IF     l_user_id IS NOT NULL
            AND l_resp_id IS NOT NULL
            AND l_app_id IS NOT NULL
         THEN
            DBMS_OUTPUT.put_line ('aa');
            apps.fnd_global.apps_initialize (l_user_id, l_resp_id, l_app_id);
            DBMS_OUTPUT.put_line (l_user_id);
            DBMS_OUTPUT.put_line (l_resp_id);
            DBMS_OUTPUT.put_line (l_app_id);
            l_sub_request_id :=
               apps.fnd_request.submit_request ('SQLAP',
                                                'APPRVL',
                                                'Invoice Validation',
                                                NULL,
                                                FALSE,
                                                val_inv_rec.ls_org_id,
                                                'All',
                                                val_inv_rec.batch_id,
                                                NULL,
                                                NULL,
                                                NULL,
                                                NULL,
                                                NULL,
                                                NULL,
                                                NULL
                                               --'N',
                                               --1000
                                               );
            COMMIT;

            LOOP
               v_request_completed :=
                  apps.fnd_concurrent.wait_for_request
                              (l_sub_request_id                  -- Request ID
                                               ,
                               20                             -- Time Interval
                                 ,
                               0                         -- Total Time to wait
                                ,
                               v_phase
                                      -- Phase displyed on screen
                  ,
                               v_status          -- Status displayed on screen
                                       ,
                               v_dev_phase    -- Phase available for developer
                                          ,
                               v_dev_status  -- Status available for developer
                                           ,
                               v_message
                              -- Execution Message
                              );

               IF v_request_completed
               THEN
                  UPDATE xxx.xxx_ap_invoices_conv_stg
                     SET status_stg = 'VAL'
                   WHERE status_stg IN ('L', 'S')
                     AND ls_sup_inv_num IN (
                                         SELECT invoice_num
                                           FROM apps.ap_invoices_all
                                          WHERE batch_id =
                                                          val_inv_rec.batch_id);

                  COMMIT;
               END IF;

               EXIT WHEN v_request_completed;
            END LOOP;
         END IF;

         DBMS_OUTPUT.put_line (l_sub_request_id);
      EXCEPTION
         WHEN OTHERS
         THEN
            DBMS_OUTPUT.put_line (   'Failed in submiting the Program: '
                                  || SQLERRM
                                 );
      END;
   END LOOP;
END validate_converted_invoices;

Script to Convert AP Invoices to Approved Status


Script to Convert AP Invoices in Approved Status
PROCEDURE approve_converted_invoices (
   errorbuf     VARCHAR2,
   retcode      NUMBER,
   ip_op_unit   VARCHAR2
)
IS
   CURSOR app_inv_cur
   IS
      SELECT DISTINCT aia.invoice_num inv_number, stg.ls_op_unit op_unit
                 FROM ap_invoices_all aia, xxx.xxx_ap_invoices_conv_stg stg
                WHERE 1 = 1
                  AND aia.invoice_num = stg.ls_sup_inv_num
                  AND aia.invoice_num IN (SELECT ls_sup_inv_num
                                            FROM xxx.xxx_ap_invoices_conv_stg
                                           WHERE status_stg = 'VAL')
                  AND aia.wfapproval_status = 'REQUIRED'
                  AND stg.ls_op_unit = ip_op_unit;

   --'VLAIDATED');
   l_sub_request_id      NUMBER         := NULL;
   -- l_user_id         NUMBER         := 1581;
    --apps.fnd_global.user_id; --
   l_resp_id             NUMBER         := NULL;
   l_app_id              NUMBER         := NULL;
   v_request_completed   BOOLEAN;
   v_request_id          NUMBER;
   v_phase               VARCHAR2 (80)  := NULL;
   v_status              VARCHAR2 (80)  := NULL;
   v_dev_phase           VARCHAR2 (30)  := NULL;
   v_dev_status          VARCHAR2 (30)  := NULL;
   v_message             VARCHAR2 (240);
BEGIN
   FOR app_inv_rec IN app_inv_cur
   LOOP
      BEGIN
         SELECT DISTINCT fr.responsibility_id, frx.application_id
                    INTO l_resp_id, l_app_id
                    FROM apps.fnd_responsibility frx,
                         apps.fnd_responsibility_tl fr
                   WHERE fr.responsibility_id = frx.responsibility_id
                     AND UPPER (fr.responsibility_name) LIKE
                            UPPER (DECODE (app_inv_rec.op_unit,
                                           'Payables Manager'
                                          )
                                  );

         -- fnd_client_info.set_org_context (85);
         IF     l_user_id IS NOT NULL
            AND l_resp_id IS NOT NULL
            AND l_app_id IS NOT NULL
         THEN
            DBMS_OUTPUT.put_line ('aa');
            apps.fnd_global.apps_initialize (l_user_id, l_resp_id, l_app_id);
            l_sub_request_id :=
               apps.fnd_request.submit_request ('SQLAP',
                                                'APXIAWRE',
                                                'Invoice Approval Workflow',
                                                NULL,
                                                FALSE,
                                                NULL,
                                                app_inv_rec.inv_number,
                                                NULL,
                                                NULL
                                               );
            COMMIT;

            LOOP
               v_request_completed :=
                  apps.fnd_concurrent.wait_for_request
                              (l_sub_request_id                  -- Request ID
                                               ,
                               20
                                 -- Time Interval
                  ,
                               0
                                -- Total Time to wait
                  ,
                               v_phase
                                      -- Phase displyed on screen
                  ,
                               v_status          -- Status displayed on screen
                                       ,
                               v_dev_phase
                                          -- Phase available for developer
                  ,
                               v_dev_status  -- Status available for developer
                                           ,
                               v_message
                              -- Execution Message
                              );
               EXIT WHEN v_request_completed;
            END LOOP;
         END IF;

         DBMS_OUTPUT.put_line (l_sub_request_id);
      EXCEPTION
         WHEN OTHERS
         THEN
            DBMS_OUTPUT.put_line (   'Failed in submiting the Program: '
                                  || SQLERRM
                                 );
      END;
   END LOOP;
END approve_converted_invoices;

Tuesday, January 22, 2013

Query to check Duplicates in iby_external_payees_all table

SELECT
 A.EXT_PAYEE_ID ,
A.PAYEE_PARTY_ID ,
A.PAYMENT_FUNCTION ,
A.EXCLUSIVE_PAYMENT_FLAG ,
 A.PARTY_SITE_ID ,
 A.SUPPLIER_SITE_ID ,
 A.ORG_ID ,
 A.ORG_TYPE ,
 A.DEFAULT_PAYMENT_METHOD_CODE ,
 A.ECE_TP_LOCATION_CODE ,
 A.BANK_CHARGE_BEARER ,
 A.BANK_INSTRUCTION1_CODE ,
 A.BANK_INSTRUCTION2_CODE ,
 A.BANK_INSTRUCTION_DETAILS ,
 A.PAYMENT_REASON_CODE ,
 A.PAYMENT_REASON_COMMENTS ,
 A.INACTIVE_DATE ,
 A.PAYMENT_TEXT_MESSAGE1 ,
 A.PAYMENT_TEXT_MESSAGE2 ,
 A.PAYMENT_TEXT_MESSAGE3 ,
 A.DELIVERY_CHANNEL_CODE ,
 A.PAYMENT_FORMAT_CODE ,
 A.SETTLEMENT_PRIORITY ,
 A.REMIT_ADVICE_DELIVERY_METHOD ,
 A.REMIT_ADVICE_EMAIL ,
 A.REMIT_ADVICE_FAX
FROM iby_external_payees_all a
 WHERE EXISTS (SELECT 'duplicates'
FROM iby_external_payees_all b
WHERE a.payee_party_id = b.payee_party_id
AND a.payment_function = b.payment_function
AND NVL(a.party_site_id, '0') = NVL(b.party_site_id, '0')
AND NVL(a.supplier_site_id, '0') = NVL(b.supplier_site_id, '0')
AND NVL(a.org_id, '0') = NVL(b.org_id, '0')
AND NVL(a.org_type, '0') = NVL(b.org_type, '0')
AND a.ext_payee_id <> b.ext_payee_id
 )
 ORDER BY a.PAYEE_PARTY_ID, a.last_update_date DESC;

Thursday, January 10, 2013

How to find invalid invoice distributions for a ‘DIST ACCT INVALID’ hold

How to find invalid invoice distributions for a ‘DIST ACCT INVALID’ hold


select INVOICE_DISTRIBUTION_ID,DISTRIBUTION_LINE_NUMBER, d.*
FROM apps.ap_invoice_distributions_all D
where D.INVOICE_ID = 261319
AND D.posted_flag in ('N', 'P')
AND ((EXISTS (select 'x'
from gl_code_combinations C
where D.dist_code_combination_id = C.code_combination_id (+)
and (C.code_combination_id is null
or C.detail_posting_allowed_flag = 'N'
or C.start_date_active > D.accounting_date
or C.end_date_active < D.accounting_date
or C.template_id is not null
or C.enabled_flag <> 'Y'
or C.summary_flag <> 'N'
)))
or
(D.dist_code_combination_id = -1));

select * from  GL_CODE_COMBINATIONS_KFV
where 1=1
and code_combination_id in (select distinct DIST_CODE_COMBINATION_ID
FROM apps.ap_invoice_distributions_all D
where D.INVOICE_ID = 261319)


select START_DATE_ACTIVE,CONCATENATED_SEGMENTS,CODE_COMBINATION_ID from  GL_CODE_COMBINATIONS_KFV
where 1=1
and code_combination_id in (select distinct DIST_CODE_COMBINATION_ID
FROM apps.ap_invoice_distributions_all D
where D.INVOICE_ID = 261319)

Purchase Order Matching Troubleshooting

Purchase Order Matching Troubleshooting
1. Scripts: Diagnostic Scripts
Solution:
In order to speed and simplify your troubleshooting process, Payables Support has created diagnostic scripts that can be used to quickly identify common problems and issues. Please click on the following links to download the scripts. The link will also provide access to readme files detailing how the script is to be run.

Note 148388.1 . The script provides detailed data information on an invoice or payment.

Note 203567.1 . The script checks the basic setup (as outlined in 'Setting Up' Chapter in the User's Guide) of Accounts Payable.
When setup information is missing or when the setup is invalid, the test will output error/warning messages, the action to be taken, and the impact of the missing setup.

2. Problem: Automatic Debit Memo Creation Failed When Creating a RTS Transaction.
Solution:

 For an Automatic Debit Memo to be created in AP, the following must be true:

The supplier site has to be marked to allow RTS transactions.
There must be an original invoice already in AP for the item being returned.
The PO and the original Invoice must be to the same Supplier Site.
The Supplier Site must be marked as both a Pay Site and a Purchasing Site.
The return quantity cannot cause the quantity invoiced to go negative.
The return quantity must be equal to or less than the quantity invoiced.
The Create Debit Memo checkbox must also be turned on in the Receipt form.
The return must be to the Supplier, and not to Receiving.
If the debit memo is not created automatically, you should create the debit memo manually in the Payables application.

3. Problem: Create Debit Memo From RTS Transaction is Not Created when the RCV: Processing Mode Profile Option is Set to Online
Solution:
When the system profile option, RCV: Processing Mode is set to Online, no Debit Memo is created in Payables.  Set the option to Immediate so the debit memo will be generated in Payables.  Check with Oracle Purchasing Support for more details about this profile option.

4. Problem: Debit Memo Created for a RTS Transaction Has Terms From the Supplier Site
Solution:
The payment terms for a supplier site default to the invoices you enter for the site except in the following circumstances:

You enter a PO Default or QuickMatch invoice in the Invoice Workbench, in which case the terms default from the purchase order.
You import an invoice record that has payment terms specified on the record, or the import process can derive terms from purchase order matching. You can override the default payment terms on any invoice.
So, the debit memo is correctly picking up payment term from the supplier site.

5. Problem: Price Hold Not Released When Entering Credit Memo
Solution:
Use one of the following methods to resolve this issue:

Match the credit memo to the PO with price correction enabled and the related invoice selected.
Match the credit memo to the invoice which is matched to the PO in question and validate both the invoice and the credit memo.


6.  Problem: Invoice Terms Being Set to PO Terms Instead of Supplier Site Terms
Solution:
As of Financials Family Pack D, your payment terms will default from the PO during a PO Default type of match. If you decide that you do not want to use the payment terms that you have entered on the PO, you can then change them on the invoice.


7. Problem: Unable to Match to a Specific Distribution on a Release
Solution:
Enable the Allow Distribution Level Matching Payables Option, if you want to allow matching to purchase order distributions. If you enable this option, you can match an invoice to one or more purchase order distributions.  If you do not enable this option, Payables only allows you to match an invoice to a purchase order shipment.

8. Problem:  Po Match Required For Credit Memos If Hold Unmatched Invoices Flag Checked
Solution:
If the Hold Unmatched Invoices option is enabled for a supplier site, and you want to match a Credit Memo or Debit Memo to an invoice without receiving the Matching Required hold during validation, use the procedure outlined in the Matching Credit and Debit Memos to Purchase Orders and Receipts section of the 11i Oracle Payables User Guide Release .

9. Problem: Attachment TO PAYABLES Entered in Purchasing is not Viewable in Payables
Solution:
Please see Note: 200900.1.

10. Problem: Reversing PO Matched Invoice Distribution Line Does Not Open The PO Line For Further Matching
Solution:
Please see Note: 201332.1.

11. Problem: Purchasing encumbrances are not reversed by invoice matching
Solution:
If PO Encumbrance Type and Invoice Encumbrance Type are the same, AP will  encumber only for variances. Only
when the Accounting Entries have been created  for AP,  would the encumbrance be relieved. Once the  'Create
Accounting Entries' process is run, encumbrance is relieved. This is the standard functionality and as per design.

12. Problem: How do I Release Final Matching Hold on an Invoice
Solution:
A Final Matching Hold is placed by the approval process when an invoice is matched to a already finally closed PO Shipment.  This hold is not manually releasable.  To release this hold in versions below 11.5.10, the distribution created by  matching  to the finally closed PO line must be reversed.  If there are many lines on the invoice and many are matched to different PO's, it becomes difficult to determine the correct distribution to reverse.  And, if there are distributions in the same invoice that were created by final matching to a PO, these distributions cannot be reversed.  To find the invoice distribution causing the hold, run the following SQL:

Select distribution_line_number LINE,  dist_code_combination_id  ACCOUNT,  match_status_flag APP, amount ,
final_match_flag  FINAL,  Quantity_invoiced  QTY,  reversal_flag  REV from ap_invoice_distributions_all
where invoice_id = ;

If an invoice distribution displays a final_match_flag = D this invoice distribution cannot be reversed.
If an invoice distribution  displays a  match_status_flag  not equal to 'A' and final_match_flag is null or 'Y', then this is most likely the cause.
Reverse this distribution and revalidate the invoice. The final matching should be released.
In 11.5.10 and above, you cannot reverse distributions or cancel the invoice.


13. Error: Create Debit Memo From RTS Errors AP_CANNOT_ASSIGN_DOC_SEQ
Solution:
Ensure that the seeded Document Category is the one assigned to the set of books for successful creation of automatic / RTS Debit memos

14. Error: APP-SQLAP-10655 Error When Matching an Invoice to a PO
Solution:
The invoice has one line with the Invoice Match Option set to Receipt.  Change the option from purchase order to receipt before clicking on the match button.

15. Error: Matching an Invoice to a Receipt Receives ORA-00904 Invalid Column Name
Solution:
To find out what column is missing, please run the select which is generating this error in SQLPLUS.  An Asterisk '*' will appear under the column  which is missing.

select receipt_number, rcv_shipment_line_number, rcv_transaction_date, po_number,
po_release_num,po_line_number, po_line_location_number, closed_code, closed_reason,
inventory_organization_code, item_description, supplier_item_number,
ship_to_location, buyer,bill_of_lading, packing_slip, container_num,
waybill_airbill_num, shipped_date, freight_carrier_code, receipt_uom_lookup_code,
po_freight_terms, po_payment_terms, taxable_flag, tax_name, rcv_transaction_id,
rcv_shipment_header_id, rcv_transaction_quantity, rcv_shipment_line_id,
po_header_id, po_line_id, po_line_location_id, po_release_id, item_id, category_id,
ship_to_location_id, buyer_id, vendor_id, vendor_site_id, inventory_organization_id,
accrue_on_receipt_flag, org_id, po_unit_price, po_uom_lookup_code, po_approved_flag,
po_approved_date, vendor_name, vendor_site_name, currency_code, po_match_option,
order_type_lookup_code, type_1099, ussgl_transaction_code, pay_on_code,
interface_transaction_id, receipt_required_flag, inspection_required_flag
from po_ap_receipt_match_v
where shipment_type='standard';

The results should produce an output similar to the following:
Error encountered: ORA-00904
Column RECEIPT_REQUIRED_FLAG was missing from view  PO_AP_RECEIPT_MATCH_V.


16. References: What articles, white papers, or manuals should I read for more information on PO Matching?
Solution:
Please see the Payables PO Match Setup and Usage Instructions for a complete list of available documents.


17. Keywords: What are the MetaLink keywords I should use when searching for PO Matching on MetaLink?
Solution:
APXPMTCH;  APXRMTCH; match; invoice match; PO match

18. Patches: List of one-off patches available for Payables PO Matching
Solution:
Please see Note 213163.1 .

Invoice Matching functionality

To answer some common questions surrounding Invoice Matching functionality.
Questions and Answers

I Am Very Confused By Invoice Matching And Don't Really Understand It. Where Can I Find An Overview Of The Process To Help Me Get Started?

A: Please review Doc ID 1441364.1 - which is a white paper on Invoice Matching that includes screenshots and helps you understand the basics. The Payables User Guide also contains a lot of more detailed specific information on this topic.

How Can I Find Out Which Invoices Are Matched To A Purchase Order?
A: In Payables, run the Matching Detail Report from Other > Request > Run.
This report will show you detail of how an invoice, purchase order, or receipt was matched. This report is especially helpful when an invoice is on hold and you are trying determine why the hold was placed.


What Reports Are Available To Check If A Credit Memo Is Matched To An Invoice?
A: In Payables, run the Credit Memo Matching Report from Other > Request > Run


Why Can An Invoice Be Matched To A PO Without A Receipt Being Needed?
A: If the match option on PO shipment is set to Purchase Order then the invoice can be matched directly to the PO. However, if the PO is setup with 3-way matching, then after invoice validation, if a tolerance is defined then a QTY REC hold will be placed on the invoice which will need a receipt to be entered in order for the hold to be released. See Doc ID 433545.1 for more information.

Why Does The PO Number Disappear From The Invoice Header After Matching To A PO?
A: When you are using the match button you never know how many times to how many PO's or receipts users are going to match the invoice to, hence, we do not store the PO number at the header level. See Doc ID 738788.1 for more information.


When Entering An Invoice, The Match Button Becomes Disabled When The Line Item Is Selected. Users Are Unable To Match An Invoice To A Purchase Order Or Receipt Without This Option Enabled. Is This correct?
A: This is standard functionality but once users are done adding/updating in the Lines tab, if the General Tab is selected again, the Match button will be available.

When Matching A PO To An Invoice, The Match Basis Is Not As Expected. How Does This Field Relate To The PO Line Type?
A: Match Basis will be either Quantity or Amount. The value of this field is based on the value basis of the purchase order line's type. See Doc ID 428303.1 for more information.

How Do You Match An Invoice To A PO With Two Lines, One With Match Level Receipt (3-Way), And One With Match Level PO (2-Way)?
A: First match the invoice to the PO setup with match level receipt. Then requery the invoice and match the second line to the PO. See Doc ID 181736.1 for more information.
Why Can Users Not Drilldown To A PO From The Invoice During Matching Without Encountering A 'Function Not Available For This Responsibility' Message?
A: This is due to incorrect menu setup. The submenu AP_PO_VIEW_PURCHASE_ORDERS_GUI needs to be added to the menu for the responsibility used to perform the match. See Doc ID 1350427.1 for more information.

Does The Purchase Order Number Get Populated On Freight, Miscellaneous And Tax Lines When Using The Allocations Window?
A: The purchase order number will not get populated on freight, miscellaneous and nonrecoverable tax lines. PO information is populated for recoverable tax lines.

Why Does Matching An Invoice To PO Default The Accrual Account To The Invoice Distributions?
A: If Accrue on Receipt is selected (checked) on the shipment line to which the invoice is matched, then the functionality is to default the PO accrual account on the invoice distributions. The PO Charge Account will default to the invoice distributions only if Accrue on Receipt is not checked. This is intended functionality.

After Matching An Invoice To A PO, The Distribution Shows As The PO Charge Account But We Were Expecting To See The Accrual Account Displayed. What Happened?
A: If the Accrue on Receipt option is set to Yes for the shipment, then the Accrual Account will be used on the Invoice Distribution. Shipments for inventory items will always be set to Accrue on Receipt. There is no way to change that. In other words the PO matched distributions for inventory items will always have the PO Accrual account as the Distribution account. Shipments for Expense items can be set to Accrue at Period End. In that case the Charge account defined on the PO distribution will be used as the distribution account. The system works as designed.

How Do I Remove A Final Matching Hold, So I Can Pay The Invoice?
A: This hold is in effect because the invoice was matched to a PO shipment that has a status of Final Closed. In 11.5.10 and above, there is no way to manually remove the hold, reverse distributions or cancel the invoice.

What Do The Codes For The Final Match Flag Mean?
A: After you match an invoice to a purchase order, you can look at the AP_INVOICE_DISTRIBUTIONS_ALL table and observe different codes in the FINAL_MATCH_FLAG column. The FINAL_MATCH_FLAG has the following quickcodes:

1. N - No. The PO shipment line has not been matched.
2. Y - Yes. The PO shipment line has been matched, and one of the invoices for this PO has been final matched. When a PO is final matched to an invoice, all other invoices matched to that PO are updated, too. So, you cannot tell from this flag, which invoice was final matched.
3. D - Done. The PO shipment line is closed. You cannot invoice this distribution line.

What Does Final Match Do?
A: When you final match an invoice to a PO, you can never match another invoice to that PO. The PO lines that have been final matched are permanently closed. In 11.5.10 and above, invoices matched to a Finally Closed PO cannot be updated or canceled.


How Does Descriptive Flexfield Information From The PO Line Get To AP During Invoice Matching?
A: Enable the Transfer PO Descriptive Flexfield Information Payables Option. With this enabled, descriptive flexfield information will automatically transfer from the purchase order distribution to the invoice distribution when match an invoice to a purchase order is done. The flexfield structure for purchase order distributions and invoice distributions should be same. Note, for ERS invoices, PO will always populate the flexfield information in the AP Invoice Interface tables, so AP will always import these value irrespective of this setup.

How Does The RCV_TRANSACTION_ID Column Get Populated In The AP_INVOICE_DISTRIBUTIONS_ALL Table?
A: The RCV_TRANSACTION_ID column is only populated when the Invoice Match Option is set to Receipt on the PO Shipment line.

It Is Possible To Match A Purchase Order To An Invoice Even If Receiving Date Is Earlier Than Invoicing Date. In Practice, It Is Illogical That You Pay Before Receiving. Does Oracle Allow Us To HOLD Invoices In Which 'INVOICING DATE' Is Earlier Than 'RECEIVING DATE'?
A: There is no such Standard seeded hold for this. If you want to make a hold on this case, you have to create and apply manual holds. See Doc ID 1427975.1 for more information.

Why Do I Get An Invoice Price Variance (IPV) Line When I Match An Invoice To A PO With Nonrecoverable Tax?
A: Nonrecoverable taxes are considered part of the "landed" cost of the items purchased
when the non recoverable tax is not already included in the purchase order. See Doc ID 281505.1 for more information.

Unable To Match To A Specific Distribution On A Release. How Can This Be Fixed?
A: Enable the Allow Distribution Level Matching Payables Option, if you want to allow matching to purchase order distributions. If you enable this option, you can match an invoice to one or more purchase order distributions. If you do not enable this option, Payables only allows you to match an invoice to a purchase order shipment.

Purchasing Encumbrances Are Not Reversed By Invoice Matching. Why Is This?
A: If PO Encumbrance Type and Invoice Encumbrance Type are the same, AP will encumber only for variances. Only when the Accounting Entries have been created for AP, would the encumbrance be relieved. Once the 'Create Accounting Entries' process is run, encumbrance is relieved. This is the standard functionality and as per design.

There Are Differences Between The PO And Invoice Billed/Received/Invoiced Quantities. They Should
Have The Same Values If Viewed In Payables Or Purchasing. What Could Be The Problem?
A: This is a classic data corruption issue. Run the MasterGDF diagnostic Doc ID 1360390.1 for your invoice to determine if you are experiencing any corruption for that invoice and find the solution for your specific situation.




User Discards Invoice Lines On PO Matched Invoice And Cancels The Invoice, However, The PO Still Shows An Amount Billed. This Means The PO Cannot Be Cancelled Due To Mismatch Between The AP And PO Tables. Why Is This Happening?
A: This is a data corruption issue. Run the MasterGDF diagnostic Doc ID 1360390.1 for your invoice to determine if you are experiencing any corruption for that invoice and find the solution for your specific situation.

Unable To Validate Matched Invoice And Unable To Cancel Invoice. How Can This Invoice Be Processed?
A: The chances are very high that this specific invoice has some data corruption. Run the MasterGDF diagnostic Doc ID 1360390.1 for your invoice to determine if you are experiencing any corruption for that invoice and find the solution for your specific situation.

Invoice That Was Matched To Receipt, Discarded And Rematched Has Doubled Matching Amounts. Unable To Cancel The Invoice And Line Cannot Be Discarded As This Would Result In Negative Quantities On The PO. What Is The Problem?
A: This is a data corruption issue. Run the MasterGDF diagnostic Doc ID 1360390.1 for your invoice to determine if you are experiencing any corruption for that invoice and find the solution for your specific situation.


Attempting To Match To A PO That Was Previously Matched And Unmatched, Incorrectly Shows Negative Value For Billed Quantity. What Is The Problem?
A: This is a data corruption issue. Run the MasterGDF diagnostic Doc ID 1360390.1 for your invoice to determine if you are experiencing any corruption for that invoice and find the solution for your specific situation.

Create Adjusting Documents (APXCADIP) Program Is Not Creating PPA Invoices When The PO# Parameter Is Not Provided. There Are Four Parameters: PO#, Supplier, Supplier Site And Resubmit Interface Import And None Of These Are Mandatory Yet The Program Does Not Create The Invoice For The Standard PO That References The Global Blanket Purchase Agreements (GBPA) That Got Updated If The PO# Is Not Entered. Why Is This?
A: The Purchase Order for which the price is to be adjusted must be specified so that the application knows which PO should be adjusted. An ER was logged to allow a global Blanket PO agreement number to be entered as a parameter so that all POs linked to this would be updated. See Doc ID 1378388.1 for more information.

Is It Possible To Enter A Different Tax Classification Code For The Return Tax Code During A Price Correction?
A: No different taxes in the original transaction and price correction is not feasible because a price correction will alter the item price on the original invoice, without changing the total quantity billed. Accordingly, the matching portion of tax (either positive or negative) needs to be the same tax as on the original invoice. If you want to rematch the item with different price and tax, you will need to discard the originally matched item line, so its tax will be reversed, and rematch the shipment, this time with the correct price and tax.

How Does The Create Debit Memo From RTS Functionality Work?
A: Review the instructions found in Doc ID 185867.1 for more information.

Automatic Debit Memo Creation Failed When Creating a RTS Transaction.  What Could Be Wrong?
A: For an Automatic Debit Memo to be created in AP, the following must be true:

The supplier site has to be marked to allow RTS transactions.
There must be an original invoice already in AP for the item being returned.
The PO and the original Invoice must be to the same Supplier Site.
The Supplier Site must be marked as both a Pay Site and a Purchasing Site.
The return quantity cannot cause the quantity invoiced to go negative.
The return quantity must be equal to or less than the quantity invoiced.
The Create Debit Memo checkbox must also be turned on in the Receipt form.
The return must be to the Supplier, and not to Receiving.

If the debit memo is not created automatically, you should create the debit memo manually in the Payables application.

Debit Memo Created For A RTS Transaction Has Terms From The Supplier Site.  Is This Correct?
A: The payment terms for a supplier site default to the invoices you enter for the site except in the following circumstances:

You enter a PO Default or QuickMatch invoice in the Invoice Workbench, in which case the terms default from the purchase order.
You import an invoice record that has payment terms specified on the record, or the import process can derive terms from purchase order matching. You can override the default payment terms on any invoice.So, the debit memo is correctly picking up payment term from the supplier site.

Create Debit Memo From RTS Transaction Is Not Created When The RCV: Processing Mode Profile Option Is Set To Online.  Why?
A: When the system profile option, RCV: Processing Mode is set to Online, no Debit Memo is created in Payables. Set the option to Immediate so the debit memo will be generated in Payables.

Create Debit Memo From RTS Errors AP_CANNOT_ASSIGN_DOC_SEQ.  What Is The Problem?
A: Ensure that the seeded Document Category is the one assigned to the set of books for successful creation of automatic / RTS Debit memos

Price Hold Not Released When Entering Credit Memo.  How Can This Be Released?
A: Use one of the following methods to resolve this issue:

Match the credit memo to the PO with price correction enabled and the related invoice selected.
Match the credit memo to the invoice which is matched to the PO in question and validate both the invoice and the credit memo.