User can able to delete the AR transaction in below cases are met:

  • The invoice in the incomplete status.
  • The invoice doesn’t posted.
  • This is no receipt applied to the invoice.

Note:

  • You might miss your invoice document sequence.
  • Based on company policy, whether you can keep the document or remove from system.

If the Invoice in ‘complete‘ status, create a Credit Memo against this invoice and nullify the transaction.

AR invoice transaction using this package ‘ar_invoice_api_pub.delete_transaction’ in R12

Step 1: Incomplete the invoice.
— For R12 ——
–AR_TRANSACTION_GRP.INCOMPLETE_TRANSACTION

SET SERVEROUTPUT ON;
DECLARE 
   l_return_status    VARCHAR2 (100);
   l_message_count    NUMBER;
   l_message_data     VARCHAR2 (1000);
   lv_error_message   VARCHAR2 (800);
BEGIN
   mo_global.set_policy_context ('S', 800);
   
   fnd_global.apps_initialize(0,51234,222);
   
   ar_transaction_grp.incomplete_transaction
                           (p_api_version           => '1.0',
                            p_init_msg_list         => fnd_api.g_true,
                            p_commit                => fnd_api.g_false,
                            p_validation_level      => fnd_api.g_valid_level_none,
                            p_customer_trx_id       => 198364532,
                            x_return_status         => l_return_status,
                            x_msg_count             => l_message_count,
                            x_msg_data              => l_message_data
                           );
   COMMIT;

   IF l_return_status IN ('E', 'U')
   THEN
      FOR i IN 1 .. l_message_count
      LOOP
         lv_error_message :=
                         lv_error_message || '--' || fnd_msg_pub.get (i, 'F');
         DBMS_OUTPUT.put_line ('l_return_status- ' || l_return_status);
      END LOOP;

      DBMS_OUTPUT.put_line (   'API Failed. Error:'
                            || SUBSTR (lv_error_message, 1, 800)
                           );
   ELSE
      DBMS_OUTPUT.put_line ('AR Invoice Incompleted successfully');
      DBMS_OUTPUT.put_line ('lv_return_status-' || l_return_status);
   END IF;
END ;

Step 2: Check the following Prerequisites:

  1. Check if ‘Allow Transaction Deletion’ flag is Yes, If “No”, check the flag for respective operating unit.
    Navigation : Receivables -> Setup -> System -> System Options
    >> Query for respective operating unit
    >> Click on ‘Trans and Customers’ Tab > Check for ‘Allow Transaction Deletion’ flag.
  2. Transaction Should be incomplete.
  3. There should be no activity against the transaction like it must neither be applied, printed or posted to GL etc.

Step 3: Sample script for invoice deletion

------------------- Create Custom Table ---- For your Deleting Data Set --------------
CREATE TABLE OEAG.XXERP_AR_DELETE_TRANS
AS
   SELECT CUSTOMER_TRX_ID,
          TRX_DATE,
          TRX_NUMBER,
          BILL_TO_CUSTOMER_ID,
          BILL_TO_SITE_USE_ID,
          ORG_ID,
          CREATION_DATE,
          CREATED_BY,
          'N' V_RET_STATUS,
          'N' V_MSG_COUNT,
          'N' V_MSG_DATA,
          'N' V_MESSAGE_TBL
     FROM RA_CUSTOMER_TRX_ALL     
    WHERE ORG_ID = 800 
      AND CUST_TRX_TYPE_ID = 1265      
      AND TRX_DATE = '20-MAR-2019';   

---------------- START --- AR INVOICE DATA DELETE PROGRAM ---------------------
SET SERVEROUTPUT ON;
DECLARE
   CURSOR cur_all_trx
   IS
     
    SELECT ROWID,
             NULL PARTY_NUMBER,
             RCT.ORG_ID,
             RCT.CUSTOMER_TRX_ID,
             RCT.TRX_NUMBER
        FROM OEAG.XXERP_AR_DELETE_TRANS RCT
       WHERE NVL (V_RET_STATUS, 0) <> 'S'
         AND TRX_NUMBER = '900918263';
       

   xv_msg_data     VARCHAR2 (4000) := NULL;
   xv_msg_count    NUMBER := 0;
   v_msg_index     NUMBER := 0;
   xv_ret_status   VARCHAR2 (1) := NULL;
   v_message_tbl   arp_trx_validate.message_tbl_type;
   v_res           VARCHAR2 (4000) := NULL;
   v_res_name      VARCHAR2 (4000) := NULL;
   v_app           VARCHAR2 (4000) := NULL;
   v_user          NUMBER := 1110;
BEGIN
   DBMS_OUTPUT.put_line ('Detele Transaction...');

   FOR c_rec IN cur_all_trx
   LOOP
      DBMS_OUTPUT.put_line ('   Transaction No.: ' || c_rec.trx_number);
      DBMS_OUTPUT.put_line ('   Transaction ID : ' || c_rec.customer_trx_id);
      DBMS_OUTPUT.put_line ('   Org ID         : ' || c_rec.org_id);
      ----------------------------------------------------------------------------
      ---- Setting the org context for the particular session
      apps.mo_global.set_policy_context ('S', c_rec.org_id);

      -- apps.mo_global.init('AR');

      SELECT application_id, responsibility_id
        INTO v_app, v_res
        FROM fnd_responsibility_tl        
       WHERE responsibility_id = 51234;

      ---- Setting the oracle applications context for the particular session
      apps.fnd_global.apps_initialize (v_user, v_res, v_app);
      ----------------------------------------------------------------------------
      xv_ret_status := NULL;
      xv_msg_count := NULL;
      xv_msg_data := NULL;

      --update the Allow Transaction Deletion to Yes to Delete (As mentioned above, better to do it from application)
      UPDATE ar_system_parameters_all
         SET invoice_deletion_flag = 'Y'
       WHERE org_id = c_rec.org_id;

      ar_invoice_api_pub.delete_transaction (
         p_api_name           => 'Delete_Transaction',
         p_api_version        => 1.0,
         p_init_msg_list      => fnd_api.g_true,
         p_commit             => fnd_api.g_true,
         p_validation_level   => fnd_api.g_valid_level_full,
         p_customer_trx_id    => c_rec.customer_trx_id,
         p_return_status      => xv_ret_status,
         p_msg_count          => xv_msg_count,
         p_msg_data           => xv_msg_data,
         p_errors             => v_message_tbl);

      UPDATE OEAG.XXERP_AR_DELETE_TRANS
         SET v_ret_status = xv_ret_status
       WHERE ROWID = c_rec.ROWID;

      UPDATE OEAG.XXERP_AR_DELETE_TRANS
         SET v_msg_count = xv_msg_count
       WHERE ROWID = c_rec.ROWID;



      IF xv_ret_status <> 'S'
      THEN
         DBMS_OUTPUT.put_line ('   Status: ' || xv_ret_status);

         UPDATE OEAG.XXERP_AR_DELETE_TRANS
            SET v_msg_data = v_ret_status
          WHERE ROWID = c_rec.ROWID;

         FOR i IN 1 .. xv_msg_count
         LOOP
            apps.fnd_msg_pub.get (i,
                                  apps.fnd_api.g_false,
                                  xv_msg_data,
                                  v_msg_index);
            DBMS_OUTPUT.put_line ('   Error : ' || xv_msg_data);
         END LOOP;

         DBMS_OUTPUT.put_line ('   ' || xv_msg_data);
      ELSE
         DBMS_OUTPUT.put_line ('   Deleted.');

         -- Revert back to the original value for the deletion flag
         UPDATE ar_system_parameters_all
            SET invoice_deletion_flag = 'N'
          WHERE org_id = c_rec.org_id;
      END IF;

      DBMS_OUTPUT.put_line ('--------------------');
      COMMIT;
   END LOOP;
EXCEPTION
   WHEN OTHERS
   THEN
      DBMS_OUTPUT.put_line ('Error : ' || SQLERRM);
END;
/

Note: User can able to delete the transaction front end also, after completing Step 2.

AutoLockbox Is A Service That Commercial Banks Offer Corporate Customers To Enable Them To Outsource Their Accounts Receivable Payment Processing. It eliminates Manual Data Entry By Automatically Processing Receipts That Are Sent Directly To Your Bank. You Can Also Use AutoLockbox for Historical Data Conversion.
For Example, You Can Use AutoLockbox To Transfer Receipts From Your Previous Accounting System Into Receivables.
AutoLockbox Ensures That The Receipts Are Accurate And Valid Before Transferring Them Into Receivables.

AutoLockbox Is A Three Step Process:

  1. Import: During this step, Lockbox reads and formats the data from your bank file into interface table AR_PAYMENTS_INTERFACE_ALL using a SQL *Loader script.
  2. Validation: The validation program checks data in this interface table for compatibility with Receivables. Once validated, the data is transferred into QuickCash tables (AR_INTERIM_CASH_RECEIPTS_ALL and AR_INTERIM_CASH_RCPT_LINES_ALL) . At this point, you can optionally query your receipts in the QuickCash window and change how they will be applied before submitting the final step, Post QuickCash.
  3. Post QuickCash: This step applies the receipts and updates your customers balances.

These steps can be submitted individually or at the same time from the submit Lockbox Processing window.

Responsibility: Receivables Manager
Navigation: Interfaces > Lockbox

After you run Post QuickCash, Receivables treats the receipts like any other receipts, you can reverse and reapply them and apply any unapplied, unidentified, or on-account amounts.

Importing Data From The Data File Provided By Bank:

Setups:

Define Bank And Bank Branches

Define Internal Remittance Bank And Bank Branch Where Checks From Customer Are Deposited. This Is The Bank Which Sends The Data File For Lockbox Transmission.
Responsibility: Cash Management Manager
Navigation: Setup > Banks > Banks.

Remittance Bank Account

Define Internal Bank Account.
Responsibility: Cash Management Manager
Navigation: Setup > Banks > Bank Accounts

  1. Enter the Account Owner (the legal entity that owns the account.) and Use (the types of functions that this bank account is going to be used for: Payables, Payroll, Receivables, or Treasury or all).

2.Enter the Bank Account Information

3. Enter Account Controls. A Cash Account is required

4.Enter Account Access and Contacts as required 

Define Receipt Classes

Define Receipt classes to determine the required processing steps for receipts to which you assign payment methods with this class.
Enter the Payment Method to assign to this receipt class.

Responsibility: Receivables Manager
Navigation: Setup > Receipts > Receipt Classes

 

Assign Bank Account To Payment Method

Receivables uses payment methods to account for the receipt entries. One can assign multiple banks to each payment method, but only one bank account can be primary account for each currency.
Assign the payment method to the customer against whose invoice the receipt is going to be applied to.

Responsibility: Receivables Manager
Navigation: Setup > Receipts > Receipt Classes




Define Receipt Source

Define receipt batch sources and assign the receipt class, payment method, and remittance bank account fields to this source.

  • Receipt batch source type should be Manual.
  • Receipt batch sources can use either automatic or manual batch numbering. (Should be Automatic Batch numbering if to be used for Lockbox process).

Responsibility: Receivables Manager
Navigation: Setup > Receipts > Receipt Sources

 

Define Lockbox

Bank Tab

Responsibility: Receivables Manager
Navigation: Setup > Receipts > Lockboxes > Lockboxes > Bank Tab
Define Lockboxes to use the Receivables Autolockbox program

  • Select an operating unit.
  • Enter the lockbox Number provided by your bank.
  • Enter the receipt Batch Source for this lockbox. You must enter a batch source that uses automatic numbering. Receivables enters the bank name and account, address,
    contact person, and accounting flexfield information associated with this batch source.
  • Enter the Bank Origination Number provided by your bank. This number uniquely identifies the bank branch that sends you lockbox information.

Receipts Tab

Responsibility: Receivables Manager
Navigation: Setup > Receipts > Lockboxes > Lockboxes > Receipts Tab

  • Enter the Batch Size you want the Lockbox Validation program to assign to each receipt batch.
  • Enter your GL Date Source. This can be
    • Constant Date: Receivables uses the date you enter in the GL Date field of the Submit Lockbox Processing window. If you do not enter a date when you
      choose Constant Date, Receivables does not validate your data. If you choose this source and the lockbox transmission’s deposit date is not
      defined, Receivables displays an error message indicating that you must define
      a deposit date to submit the lockbox.
    • Deposit Date: Receivables uses the date that your bank deposits your receipts.
    • Import Date: Receivables uses the date on which you import your receipts.
  • If you are using this lockbox to transfer foreign currency receipts and you did not specify exchange rate type in the bank file, enter an Exchange Rate Type.
  • Enter the Receipt Method to assign to this lockbox. The default is the receipt method associated with the receipt batch source you entered.
  • If you want AutoLockbox to be able to transfer receipts without billing locations into Receivables, uncheck the Require Billing Location check box. If this box is checked, AutoLockbox will only validate the receipt if the billing location is provided.

Choose a Match Receipts By method. (If Autoassociate is set to Yes)

  • Transaction Number: Match receipts with transaction numbers.
  • Balance Forward Billing Number: Match receipts with balance forward billing numbers. To use this method, the customer must be enabled for balance forward billing.
    Lockbox uses the balance forward billing number to identify the customer. Post QuickCash then uses this customer’s AutoCash Rule Set to determine how to apply the receipt to each invoice.
  • Sales Order: Lockbox uses this number to determine the corresponding invoice number.
  • Purchase Order: Lockbox uses this number to determine the corresponding invoice number.
  • Hook: Match receipts to any other type of matching number that is passed with this transmission.
    This is a custom matching method that you define. Lockbox uses this number to determine the corresponding invoice number.

Choose whether to Match on Corresponding Date for transactions in this Lockbox transmission.

  1. Always: Always verify that the date for the transaction or other matched item is the same as the date specified in this transmission.
  2. Duplicates Only: Only verify that the matching date and the specified date are the same if duplicate matching number were found and Lockbox needs to determine which is correct.
  3. Never: Ignore the specified date. This is the default value.

Transactions Tab

Responsibility: Receivables Manager
Navigation: Setup > Receipts > Lockboxes > Lockboxes > Transactions Tab

  • If you do not want the Lockbox Validation program to use the debit item number to determine a customer, open the Transactions tabbed region, uncheck the AutoAssociate box. By default, the Lockbox Validation program uses an invoice or debit memo number to determine the customer with which the receipt should be associated (if there is no customer information or MICR number in your Lockbox transmission).
  • Auto Associate: Check the AutoAssociate check box.
    Note: Ensure that all invoices to which any single receipt will be applied belong to the same customer. And also ensure that the matching numbers within the transmission are unique
  • If using Oracle Trade Management, then select the Evaluate for Claim Eligibility check box if you want Lockbox to automatically create claims for eligible remittance
    lines.
    A remittance line’s eligibility for claim creation depends on your system options setup.
    If you select this box but the remittance line is not eligible for claim creation, then Lockbox handles receipts according to the selection that you make in the next step.
  • Choose how Lockbox will handle Invalid Transaction Number: If the receipt record is associated with multiple invoices, but one of the invoices is invalid. Depending on how you set this option, Lockbox will:
    1. Post Partial Amount as Unapplied: Apply the receipt to the valid transactions, then import the remaining receipt amount with a status of Unapplied.
    2. Reject Entire Receipt: Do not import the receipt (it will remain in theAR_PAYMENTS_INTERFACE table).
      You need to edit the invalid record(s) in the Lockbox Transmission Data window, then resubmit the Validation step for the receipt before Lockbox can import it into Receivables interim tables.
  • Select the appropriate line level cash application option:
    1. None: Receivables does not perform line level cash application for the Lockbox run.
      None is the default line level cash application option for new setups and migrated data.
    2. Oracle Lease Management: Receivables calls Oracle Lease Management to resolve the matching numbers and populate the invoice, invoice lines, and actual amounts to be applied to the invoice lines.
    3. Custom: Receivables calls a seeded custom program to resolve the matching numbers and populate the invoice, invoice lines, and the actual amounts to be applied to the invoice lines.

Define Transmission Format

Define the Transmission Format which Auto Lockbox uses when importing data into Receivables.

Responsibility: Receivables Manager
Navigation: Setup > Receipts > Lockboxes > Transmission Formats

Following are valid record types:

  1. Batch Header: A Batch Header marks the beginning of a specific batch.
    Batch Headers usually contain information such as batch number, deposit date, and lockbox number.
  2. Batch Trailer: A Batch Trailer marks the end of a specific batch.
    Batch Trailers usually contain information such as batch number, lockbox number, batch record count, and batch amount.
  3. Lockbox Header: A Lockbox Header marks the beginning of a specific lockbox.
    Lockbox Headers usually contain information such as destination account and origination number.
  4. Lockbox Trailer: A Lockbox Trailer marks the end of a specific lockbox.
    Lockbox Trailers usually contain information such as lockbox number, deposit date, lockbox amount, and lockbox record count.
  5. Overflow Receipt: An Overflow Payment usually contains invoice information for a specific payment such as batch number, item number, sequence number, overflow indicator, invoice number, debit memo number, or chargeback number, and debit item amounts.
    Receivables combines the overflow and payment records to create a logical record to submit payment applications.
  6. Receipt: A Payment usually contains information such as MICR number, batch number, item number, check number, and remittance amount.
  7. Service Header: Service Header records contain general information about your transmission.
  8. Transmission Header: A Transmission Header marks the beginning of a specific data file.
    Transmission Headers usually contain information such as destination account, origination number, deposit date, and deposit time.
  9. Transmission Trailer: A Transmission Trailer marks the end of a specific data file.
    Transmission Trailers usually contain information such as total record count.

Define Transmission Fields

Setting Up Transmission Fields

Responsibility: Receivables Manager
Navigation: Setup > Receipts > Lockboxes > Transmission Formats
Select a record type , click on Transmission Fields.

  1. Choose Transmission Fields. Identify the characteristics of your transmission formatrecords. You specify the size, order, and format of each transmission record. Receivables lockbox transmission program only validates fields that you define in your transmission format.
    The transmission format must be fully compatible with how you organize data in your lockbox file.
  2. Enter Start and End Position numbers for this record type.
    These positions determine how Receivables identifies the starting and ending position of your field type when you import data from your bank file.
  3. Enter the Field Type to assign to the start and end positions (see Valid Field Types below).
  4. Enter either Left or Right in the Justify field to indicate from which side Receivables will start reading data in the transmission field. For example, if you enter Left, Receivables starts reading data from left to right. The default is Left.
  5. Enter the type of character that your bank places in the extra spaces for this field type in the Fill Symbol field. Valid values are Blank or Zero.
  6. If the field type is related to a date, enter the Date format your bank uses, or select from the list of values.
    This field is required when Field Type is either Deposit Date or Receipt Date.
  7. If the field type is related to time, enter the Time format your bank uses. This field is required when your Field Type is Deposit Time.
  8. Enter either Yes or No in the Format Amount field to indicate whether you want Receivables to reformat the amount transmitted (optional).
    If you enter Yes, Receivables will round the amount to the same degree of precision and the same number of decimal places as your functional currency format.
    For example, if your functional currency is USD (precision = 2) and you set this option to Yes, a value of 50000 in the bank’s data file will be formatted as 500.00; otherwise, this value will not be formatted and will appear as 50000.
    This field is required when your Field Type is Amount Applied 1-8, Batch Amount, Lockbox Amount, Remittance Amount, or Transmission Amount.
  9. Enter a value that indicates that there are additional overflow records for your transmission record (optional). For example, in the Default format the overflow indicator is 0.
  10. Enter a Description for the field type you are defining (optional). Use field descriptions to help you recognize what information is contained in a particular field type.

Valid Field Types

When defining your transmission fields, you can choose from the following field types:

  • Account: Your customer’s bank account.
    The bank account number and the transit routing number make up your customer’s MICR number.
  • Alternate Name: The alternate name for this customer.
  • Amount Applied 1 to 8: The amount applied to each invoice, debit memo, or chargeback.
    Each payment or overflow payment record can accommodate up to eight debit item numbers. For cross currency applications, this is the amount to apply in the transaction currency and corresponds to the Amount Applied field in the Applications window.
  • Amount Applied From 1 to 8: Used for cross currency receipt applications, this is the amount applied to each transaction in the receipt currency.
    Each payment or overflow payment record can accommodate up to eight debit item numbers. This field corresponds to the Allocated Receipt Amount field in the Applications window.
  • Attribute 1 to 15: Use attributes to enter Descriptive Flexfield segments.
    Attributes can only be assigned to Payment records, and they become the Descriptive Flexfield data in the QuickCash, Receipts, and Applications windows.
  • Bank Transaction Code: A code defined for each account that is used by your bank to uniquely identify the kind of transaction in a bank statement (for example, debit, credit, void). This is also used by Oracle Cash Management to determine a receipt’s effective date.
  • Batch Amount: The total receipt batch amount for a specific bank batch.
  • Batch Name: The name of the batch for a specific bank batch.
  • Batch Record Count: The total number of payment records in a specific bank batch.
    The total number of all batch record counts equals the Lockbox Record Count. This does not include overflow payments, headers, or trailers.
  • Billing Location: Your bank will be able to transmit the billing location of the payment.
    You must only specify the field name and the field positions that the billing location occupies in the transmitted data file.
  • Comment: Any comments you want to associate with this transmission.
  • Currency Code: The currency of the payment. For cross currency payments, you can also enter the Invoice Currency Code (see below). If you do not enter a value in this field, AutoLockbox derives the currency code from the information that is provided in the Amount Applied and Amount Applied From fields.
  • Customer Bank Branch Name: The name of your customer’s bank branch.
  • Customer Bank Name: The name of your customer’s bank.
  • Customer Number: The identification number of the customer who submitted a payment.
  • Customer Reason 1 to 8: The customer’s reason why their payment shows a discrepancy (used by Oracle Trade Management).
  • Customer Reference 1 to 8: Customer comments about this payment.
  • Deposit Date: The date the bank receives and deposits your customer’s payment.
  • Deposit Time: The time at which the bank receives and deposits your customer’s payment.
  • Destination Account: Your business’s bank account. Your business may have more than one bank account.
  • Effective Date: The date on which the bank determines a customer’s balance to apply interest (used by Oracle Cash Management’s Cash Forecasting feature).
  • Exchange Rate: The exchange rate associated with this payment if you are using AutoLockbox to import foreign currency receipts.
  • Exchange Rate Type: The exchange rate type used to convert a foreign currency receipt to your functional currency. Values include Corporate, Spot, or User.
  • Invoice 1 to 8: The invoices, debit memos, and chargebacks to which you apply your payment.
    Each payment or overflow payment record can accommodate up to eight debit item numbers.
  • Invoice 1 to 8 Installment: The installment number for this invoice.
  • Invoice Currency Code 1 to 8: The currency of the transaction. This field is used for cross currency receipt applications. This field is optional.
  • Item Number: A sequence number that your bank assigns to a specific payment. This number associates an invoice with a receipt.
  • Lockbox Amount: The total payment amount in a specific lockbox.
  • Lockbox Batch Count: The total number of bank batches in a specific lockbox.
  • Lockbox Number: The identification number for a specific lockbox.
  • Lockbox Record Count: The number of payment records in a specific lockbox (this does not include overflow payments, headers, or trailers).
  • Matching Date 1-8: The dates to use to match receipts with transactions if you are using the Match on Corresponding Date option for this Lockbox.
  • Origination: The bank origination number provided by your bank. This number uniquely identifies the bank branch that sends you lockbox information.
  • Overflow Indicator: This type indicates whether there are any additional overflow records for this payment.
  • Overflow Sequence: A sequence number that your bank assigns to each overflow payment.
  • Receipt Method: The receipt method associated to this lockbox.
  • Payment Number: The identification number of a payment. For example, a check number.
  • Receipt Date: The date your customer made a payment.
  • Record Identifier: A number that identifies the kind of transmission record. You specify this number in the Identifier field in the Transmission Formats window.
  • Remittance Amount: The amount of a payment.
  • Remittance Bank Branch Name: The name of the bank branch from which this payment originated.
  • Remittance Bank Name: The name of the bank from which this payment originated.
  • Status: The status of this payment.
  • Total Record Count: The total number of transmission records in a bank file. This includes headers, trailers, payments, and overflow records.
  • Trans to Receipt Rate 1 to 8: The exchange rate used to convert the receipt amount from the receipt currency to the transaction currency.
    This field is used for cross currency receipt applications when the receipt and transaction currencies do not have a fixed exchange rate (the euro and all NCUs have fixed exchange rates with each other). If the currencies have a fixed rate, this field is optional (AutoLockbox derives the rate to use in this case).
  • Transit Routing Number: The number that uniquely identifies your customer’s bank.
    The transit routing number and the customer bank account number make up your customer’s MICR number.
  • Transmission Amount: The total amount of payments for a bank file.

Define AutoCash Rule Sets

Define AutoCash Rule Sets to determine the sequence of rules that Post QuickCash uses to update Customers account balances.

Responsibility: Receivables Manager
Navigation: Setup > Receipts > AutoCash Rule Sets

Open Balance Calculation

  1. Enter the type of Discount you want to automatically give to your customer for this AutoCash Rule Set. Choose one of the following Discount options:
    • Earned Only: Your customer can take earned discounts according to the receipt terms of sale.
      You negotiate earned discount percentages when you define specific receipt terms. You can enter this option if Allow Unearned Discounts is set to Yes in the System Options window. In this case, Receivables only allows earned discounts for this AutoCash Rule Set.
    • Earned and Unearned: Your customer can take both earned and unearned discounts. An unearned discount is one taken after the discount period passes.
      You cannot choose this option if the system option Unearned Discounts is set to No.
    • None: Your customer cannot take discounts (this is the default).
  2. Check the Items in Dispute check box if you want to include transactions in dispute when calculating your customer’s open balance.
  3. Check the Finance Charges if you wish to include late charges when calculating your customer’s open balance.

Automatic Matching Rule

Define the Automatic Matching Rule for this AutoCash Rule set.

  1. If this rule set will include the Apply to the Oldest Invoice First rule, choose how you want to apply any Remaining Remittance Amount. Receivables uses this value to determine how to enter the remaining amount of the receipt if none of the AutoCash Rules within this rule set apply.
    • Choose ‘Unapplied’ to mark remaining receipt amounts as Unapplied.
    • Choose ‘On-Account’ to place remaining receipt amounts On-Account.
  2. To automatically apply partial receipts when using the Apply to the Oldest Invoice First rule, check the Apply Partial Receipts check box.
    A partial receipt is one in which the receipt minus the applicable discount does not close the debit item to which this receipt is applied.
    The applicable discount that Receivables uses for this rule depends upon the value you entered in the Discounts field for this AutoCash Rule Set. If you exclude late charges (by setting Finance Charges to No) and the amount of your receipt is equal to the amount of the debit item to which you are applying this receipt minus the late charges, Receivables defines this receipt as a partial receipt.  In this case, Receivables does not close the debit item because the late charges for this debit item are still outstanding.
    If Apply Partial Receipts is set to No, this AutoCash Rule Set will not apply partial receipts and will either mark the remaining receipt amount ‘Unapplied’ or place it on-account, depending on the value you entered in the Remaining Remittance Amount field.

AutoCash Rules

  1. Enter a Sequence number to specify the order of each rule in this AutoCash Rule Set (optional). Receivables uses the rule assigned to sequence 1, then sequence 2, and so on when applying receipts using this AutoCash Rule Set.
  2. Enter one or more AutoCash Rules for this AutoCash rule set. Choose from the following AutoCash rules:
    • Apply to the Oldest Invoice First: This rule matches receipts to debit and credit items starting with the oldest item first.
      This rule uses the transaction due date when determining which transaction to apply to first. This rule uses the values you specified for this AutoCash Rule Set’s open balance calculation to determine your customer’s oldest outstanding debit item. Post QuickCash uses the next rule in the set if any of the following are true:

      • all of your debit and credit items are closed.
      • the entire receipt amount is applied.
      • it encounters a partial receipt application and Allow Partial Receipts is set to No for this AutoCash Rule Set.
      • the next oldest debit item includes late charges and Finance Charges is set to No for this AutoCash Rule Set

      This rule marks any remaining receipt amount ‘Unapplied’ or places it on-account, depending on the value you entered in the Remaining Remittance Amount field for
      this AutoCash Rule set .

    • Clear the Account: Post QuickCash uses this rule only if your customer’s account balance exactly matches the amount of the receipt. If the receipt amount does not
      exactly match this customer’s account balance, Post QuickCash uses the next rule in the set. This rule calculates your customer’s account balance by using the values
      you specified for this AutoCash Rule Set’s open balance calculation and the number of Discount Grace Days in this customer’s profile class. This rule also includes all of this customer’s debit and credit items when calculating their account balance. This rule ignores the value of the Apply Partial Receipts option.
      This AutoCash Rule uses the following equation to calculate the open balance for each debit item:Open Balance = Original Balance + Late Charges – Discount

      Receivables then adds the balance for each debit item to determine the customer’s total account balance. The ‘Clear the Account’ rule uses this equation for each invoice, chargeback, debit memo, credit memo, and application of an Unapplied or On-Account receipt to a debit item.

      Note: The discount amount for each item depends upon the payment terms of the item and the value of the Discounts field for this AutoCash Rule Set. The number of Discount Grace Days in this customer’s credit profile, along with the payment terms assigned to their outstanding invoices, determine the actual due dates of each debit item.
    • Clear Past Due Invoices: This rule is similar to the Clear the Account rule because it applies the receipt to your customer’s debit and credit items only if the total of these items exactly matches the amount of this receipt. However, this rule only applies the receipt to items that are currently past due.
      A debit item is considered past due if its due date is earlier than the receipt deposit date. This rule considers credit items (i.e. any pre-existing, unapplied receipt or credit memo) to be past due if the deposit date of the receipt is either the same as or later than the deposit date of this pre-existing receipt or credit memo. In this case, this rule uses a pre-existing receipt or credit memo before the current receipt for your AutoCash receipt applications.
      If this AutoCash Rule Set’s open balance calculation does not include late charges or disputed items, and this customer has past due items that are in dispute or items with balances that include late charges, this rule will not close these items. This rule ignores the value of the Apply Partial Receipts option.
    • Clear Past Due Invoices Grouped by Payment Term: This rule is similar to the Clear Past Due Invoices rule, but it first groups past due invoices by their payment term, and then uses the oldest transaction due date within the group as the group due date. When using this rule, Receivables can only apply the receipt if the receipt amount exactly matches the sum of your customer’s credit memos and past due invoices.
      A debit item is considered past due if the invoice due date is earlier than the deposit date of the receipt you are applying. For credit memos, Receivables uses the credit memo date to determine whether to include these amounts in the customer’s account balance.
      Credit memos do not have payment terms, so they are included in each group.
    • Match Payment with Invoice: This rule applies the receipt to a single invoice, debit memo, or chargeback that has a remaining amount due exactly equal to the receipt
      amount. This rule uses the values that you enter for this AutoCash Rule Set’s open balance calculation to determine the remaining amount due of this customer’s debit items. For example, if Finance Charges is No for this rule set and the amount of this receipt is equal to the amount due for a debit item minus its late charges, this rule applies the receipt to that debit item.
      If this rule cannot find a debit item that matches the receipt amount, Post QuickCash looks at the next rule in the set. This rule ignores the value of the Apply Partial Receipts option.

Sample Control File

LOAD DATA
APPEND

— Type 4 – Lockbox Header

INTO TABLE AR_PAYMENTS_INTERFACE
WHEN RECORD_TYPE = ‘1’
(STATUS CONSTANT ‘AR_PLB_NEW_RECORD’,
RECORD_TYPE POSITION(01:01) CHAR,
LOCKBOX_NUMBER POSITION(02:09) CHAR,
DEPOSIT_DATE POSITION(11:21) DATE ‘DD-MON-YYYY’
NULLIF DEPOSIT_DATE=BLANKS,
DESTINATION_ACCOUNT POSITION(23:47) CHAR,
ORIGINATION POSITION(49:58) CHAR )— Type 2 – Receipt

INTO TABLE AR_PAYMENTS_INTERFACE
WHEN RECORD_TYPE = ‘2’
(STATUS CONSTANT ‘AR_PLB_NEW_RECORD’,
RECORD_TYPE POSITION(01:01) CHAR,
ITEM_NUMBER POSITION(03:06) CHAR,
REMITTANCE_AMOUNT POSITION(08:17) CHAR,
TRANSIT_ROUTING_NUMBER POSITION(18:26) CHAR,
ACCOUNT POSITION(28:37) CHAR,
CHECK_NUMBER POSITION(39:46) CHAR,
CURRENCY_CODE POSITION(48:50) CHAR,
EXCHANGE_RATE POSITION(53:61) CHAR,
CUSTOMER_NUMBER POSITION(63:76) CHAR,
RECEIPT_DATE POSITION(78:88) DATE ‘DD-MON-YYYY’
NULLIF RECEIPT_DATE=BLANKS,
INVOICE1 POSITION(90:109) CHAR,
MATCHING1_DATE POSITION(111:121) DATE ‘DD-MON-YYYY’
NULLIF MATCHING1_DATE=BLANKS,
AMOUNT_APPLIED1 POSITION(123:138) CHAR,
INVOICE2 POSITION(140:159) CHAR,
MATCHING2_DATE POSITION(161:171) DATE ‘DD-MON-YYYY’
NULLIF MATCHING2_DATE=BLANKS,
AMOUNT_APPLIED2 POSITION(173:188) CHAR,
LOCKBOX_NUMBER POSITION(190:196) CHAR
)

— Type 3 – Overflow Receipt

INTO TABLE AR_PAYMENTS_INTERFACE
WHEN RECORD_TYPE = ‘3’
(STATUS CONSTANT ‘AR_PLB_NEW_RECORD’,
RECORD_TYPE POSITION(01:01) CHAR,
ITEM_NUMBER POSITION(03:05) CHAR,
OVERFLOW_SEQUENCE POSITION(07:08) CHAR,
OVERFLOW_INDICATOR POSITION(10:10) CHAR,
INVOICE3 POSITION(12:31) CHAR,
MATCHING3_DATE POSITION(33:43) DATE ‘DD-MON-YYYY’
NULLIF MATCHING3_DATE=BLANKS,
AMOUNT_APPLIED3 POSITION(45:59) CHAR,
INVOICE4 POSITION(61:80) CHAR,
MATCHING4_DATE POSITION(82:92) DATE ‘DD-MON-YYYY’
NULLIF MATCHING4_DATE=BLANKS,
AMOUNT_APPLIED4 POSITION(94:108) CHAR,
LOCKBOX_NUMBER POSITION(110:117) CHAR
)

Sample Data File

1JMARTINE 08-NOV-2011 1632811897361982730000000 0000000287
20001 0000001000736198273 0000000000 PAYMENT1 USD 000000000 00000000001007 08-NOV-2011
3 0001 01 9                   123 08-NOV-2011                                                                  JMARTINE

Running Lockbox

Responsibility: Receivables Manager
Navigation: Interfaces > Lockbox

 

Import

  • If you are importing a new bank file, check the New Transmission check box, then enter a new Transmission Name.
    If you are resubmitting an existing lockbox transmission, you can select a name from the list of values.
  • Enter the name of the datafile along with path and extension.
  • Enter the name of the control file with out extension. Make sure that the control file is in $AR_TOP/bin directory.
  • Select the transmission Format from list of values.
  • In the Alternate Name Search field, select Manual or Automatic if you are importing a bank file with a Japanese Zengin character set. Otherwise, select None.
    The default value is None.

Validation

  • Check the Submit Validation Check box.
  • Enter the Lockbox Number to validate. If this is not a new transmission, the default lockbox number is the number used for the original step of this transmission. If you specified Lockbox Number as a value to be imported from the bank file when you defined your transmission format, or if the transmission format shows that a number already exists, Receivables skips this field.
    You must enter a lockbox number if Submit Validation is Yes and the lockbox number is not specified in your bank file.
  • To apply receipts to transactions belonging to unrelated customers, check the Allow Payment of Unrelated Invoices check box.
  • If you defined your GL Date as Constant Date in the Lockboxes window, you must enter a GL Date; if you specified a GL Date of Deposit Date or Import Date, Receivables uses this as the GL date.
  • Enter a Report Format. Enter All to include all records processed in this transmission.
    Enter Rejects Only to include only records that failed validation.
  • To transfer only the lockbox batches in which all records pass the validation step to the QuickCash tables, check the Complete Batches Only check box.
    If you do not check this check box, Receivables will transfer any receipts within a batch that pass validation, even if others are rejected.
  • If the Post Partial Amount as Unapplied box is checked, Lockbox will import a receipt that is listed to be applied to several invoices, even if one or more of the invoices are invalid and Lockbox could not apply to them. In this case, Lockbox transfers the receipt into QuickCash with an unapplied amount, and you can then manually apply payment to a valid invoice(s) using the Applications window.
    Note: When AutoLockbox imports a receipt with an unapplied amount into QuickCash, Receivables retains the invalid matching numbers in the Application Notes field in the Receipt History window. You can also display the Application Notes field in the Receipts Summary or QuickCash windows by choosing Show Field from the Folder menu.

    If the Reject Entire Receipt box is checked and AutoLockbox encounters an invalid transaction number, the receipt that Lockbox cannot fully apply will remain in the
    AR_PAYMENTS_INTERFACE_ALL table. In this case, you need to edit the invalid record(s) in the Lockbox Transmission Data window, then submit the Validation step again for the receipt.

Post Quick Cash:

  • To apply the receipts and update your Customers balances, check Submit post QuickCash check box.

Save your work. Receivables displays the Request ID of your concurrent process and generates the Lockbox Execution report.

Maintain Transmission Data

Responsibility: Receivables Manager
Navigation: Receipts > Lockbox > Maintain Transmission Data

Use the Lockbox Transmission Data window to delete and edit transmission data imported into Receivables from your bank using Lockbox.
You can correct your lockbox data in this window for receipts that fail validation, then resubmit the validation step to import these receipts.
Use the Lockbox Execution report to help you determine which transmission records you need to correct to ensure that your validation processes succeed.
If you are updating information, be sure to update only those fields that have data corresponding to the transmission format used to submit the import process.

Note: The Lockbox Transmission Data window is a Folder window.
You can customize the appearance of this window by selecting options from the Folder menu. For example, you may choose to add the Alternate Name and Customer Name fields to your default folder.
  1. Enter or query the lockbox transmission. Within each transmission, Receivables displays the lockbox and batch records first, followed by the receipts and overflow records. The lockbox import program assigns a date to transmission records that you import into Receivables and displays transmissions by date when you query them in this window.
  2. To review error messages, place the cursor in the Status field, then choose Edit Field from the Edit menu. This field is set by the validation process.
  3. Enter Comments about this transmission (optional). Receivables transfers comments for batch header records to the Receipt Batch after you run Post QuickCash. Receivables transfers batch header comments if the batch header does not include comments. You can review and update comments about a batch in the Receipt Batches window.
  4. If the error is contained in the control, receipt, or application information, you can make changes to the invalid records by selecting the record, then choosing one of the following:
    • Receipt: Choose this button to review and edit specific receipt information. You can change the values of fields that are included in your transmission format.
    • Receipt Attributes: Choose this button to review and maintain receipt descriptive flexfield information imported with your lockbox transmission.
      You can change the values of fields that are included in your transmission format.
    • Applications: Choose this button to review and maintain application information for each receipt within this transmission. You can apply a receipt to debit or credit items. When applying to credit items, Receivables increases the amount of the receipt that can be applied to debit items by the amount of the credit. You can apply up to eight transactions to each receipt record. To apply more than eight transactions, use overflow records for your receipt. Each overflow record can be used to apply an additional eight transactions to the receipt. Use the Status field to review errors for specific receipt applications.
      Select the Cross Currency Data region to review information about cross
      currency receipts
    • Control: Choose this button to review the lockbox transmission control information that corresponds to this transmission record. You can change the values for fields that are included in your transmission format.
      Important: Lockbox formats receipt amounts during the validation step. Therefore, values in the Lockbox Control window do not contain decimals.
  5. Save your work and Resubmit the transmission for validation.

 

How to use Oracle Message Dictionary in Oracle Apps – FND MESSAGES?

Oracle Message Dictionary provides flexibility to store pre-formatted text as part of its catalog to display them as error/warning/note messages in Forms, Log Files, OAF Pages, Reports, etc.,

These messages mainly provide information about business rule errors, such as missing or incorrect data, and how to resolve them, warn about the consequences of intended actions, inform about the status of an application, pages, or business objects, and indicate that processes and actions are performing or are completed.

Advantages of Message Dictionary:

  1. Change or translate the message text to different languages without regenerating or recompiling the code.
  2. It provides consistent look and feel of the message text, since it is pre-formatted.

Steps to Create a Message from Oracle Forms:

Navigate to Application Developer responsibility –> Application –> Messages

Create a Message from Oracle Forms

Steps to Create a Message from OAF Page:

Navigate to Functional Administrator responsibility –> Core Services –> Messages

Create a Message from OAF Page

Purpose of different fields on Messages form

COMPONENT NAME DESCRIPTION
Name Every message must have a unique name. You should include a unique prefix that makes it easier to find your custom messages and that helps to avoid name conflicts with non-custom messages.
Language Select the language that your message is written in.
Application Select the application that the message belongs, this will usually be the custom application.
Current Message Text Message text is required. This is a brief statement of the operation attempted and the problem that occurred as a result, or information that the user needs to know. The maximum field size for messages stored in the Message Dictionary is 240 characters.
Number A unique and persistent message number can be included with each message. When displayed, the number takes the format of (Application ShortnameNumber). If the message does not have a message number, the formatted number is not displayed.
Type The message type indicates which message components are applicable, determines whether implicit logging and incident creation occurs, and determines the logging level if the message is logged.
Maximum Length Maximum number of display characters the translators can use to translate the message.
Description Description of the Message.
Alert Category This will allow user interfaces and other programs to filter exception messages based on category. The types are Product, System, Security and User.
Alert Severity This will allow user interfaces and other programs to filter exception messages based on severity. The types can be: Critical, Error or Warning.
Log Severity This group indicates the Log severity levels like: Unexpected, Error, Exception, Event, Procedure, Statement or Off.

How to use Message Dictionary in PL/SQL Procedures

Oracle has provided FND_MESSAGE API to Set, Retrieve, Clear the messages in Message Stack.

Below is a small example to get the message text:

DECLARE
  msg VARCHAR2(2000);
BEGIN
  fnd_message.set_name ('FND', 'XX_TEST_ORACLE_ERP_APPS_GUIDE');
  msg := fnd_message.get;
  dbms_output.put_line(msg);
END;
/

where ‘FND’ is the application short name in which the message is defined and ‘XX_TEST_ORACLE_ERP_APPS_GUIDE’ the name of the message.

FND_MESSAGE.SET_NAME : this Sets a message name in the global area without actually retrieving the message from Message Dictionary.

FND_MESSAGE.GET : Retrieves a translated and token-substituted message from the message stack and then clears that message from the message stack. GET returns up to 2000 bytes of message.

Learn More about FND Message Functions, Click Here

Tokens to change Message content dynamically

Tokens are identified in the message text by their use of ampersand (&) or curly brackets ({}) and all uppercase letters. The token values are supplied at run time by the code that raises the message. For example, the following token &USER is replaced by a user name when the user receives this message on their screen:

New User Creation

DECLARE
  l_user_name VARCHAR2(200);
  msg         VARCHAR2(2000);
BEGIN
  --
  SELECT user_name
  INTO l_user_name
  FROM fnd_user
  WHERE user_id = '84857';
  --
  fnd_message.set_name ('FND', 'XX_TEST_CREATE_USER');
  fnd_message.set_token('USER', l_user_name);
  msg := fnd_message.get;
  dbms_output.put_line(msg);
END;
/

Using Fnd Message on OAF page

Below line can be used to show FND_MESSAGE from oaf page  which is created using Application Developer responsibility.
import oracle.apps.fnd.common.MessageToken;
public class xxcusHelloWorldMainCO extends HelloWorldMainCO {
 
    public void processFormRequest(OAPageContext pageContext,
                                   OAWebBean webBean) {
 
     if (pageContext.getParameter("Go") != null) {
String getUserName = String.valueOf(pageContext.getUserName());
     MessageToken[] msgtoken = {new MessageToken("USER",getUserName) };
throw new OAException("FND", "XX_TEST_CREATE_USER", msgtoken, OAException.ERROR, null);
    }
}
How to create RMA in Oracle Order Management:

I am taking the case of creation of Return Sales Order with Receipt and Credit Memo.

1.Create New Sales Order with Order Type = “Return Only . ( we can take Mixed or any other that allow return line)

2.Since Header Order Type is “Return Only”, based on the transaction Type Setup ,  System will default Line Type .In transaction type set the Default RMA = “Return (Receipt)” , with this Setup system will populate the Line Type = “Return (Receipt)”  , enter other details like
Item #
Qty etc.

3.Go to Return tab ( Lines) and Enter Return Reason (There is LOV for Return Reason select any relevent value from LOV ).
4.Book the RMA.

5.Requery the RMA , check the Line Status , It should be “Awaiting Return”.

6.Select Receipt (Purchasing Responsibility) 

7.Goto Customer Tab and Enter the RMA Num .

8.Press Find Button.

9.Ignore the receipt Header , and go to Receipts form 

10.Select the line

11.Press Save,System will ask for the Sub Inventory.Best bet is enter “Stores” ( Here I am taking the case Routing = Direct Delivery)

12.Press Save Button. Save action will automatically submit the “Receiving Transaction Processor (RTP) concurrent Program.

13.Check Order line status , it should be “Returned”.

14.Go to View > request . Submit Concurrent Program “Workflow background Process”
              with Item Type = OM Order Line
              Process Deferred = Yes
              Process Timeout = No.

Query Order line again , Status Should be “Closed”

15.Step # 14 also submit “Autoinvoice” concurrent Program.
16.Goto Transaction (Receivable Responsibility)

            Go to Find Window
             Enter Sales Order # in Sales Order Number Field
             Press Find
System should display your Invoice (Credit memo)

Examine the Invoice and you are good to go.
This Post is about Oracle applications RFQ to Receipt Cycle.In this Post I will explain the Cycle from RFQ to PO Receipt with screen shots.

High -Lights of this Cycle is  to Create:

  • RFQ
  • Quote
  • Purchase Order
  • Receive against PO.

Once RFQ is created , Submit concurrent job “Request to Print the RFQ” for a supplier. On completion this job will increment print count for that supplier as shown below.

In below  Oracle Apps UIs we can see
  1. RFQ # 308,
  2. Supplier Info from Supplier List and
  3. Price Breaks.
 
Print RFQ for all the Suppliers by means of Concurrent Program available in Oracle Apps


Once we print the RFQ , status of RFQ become Printed , and print count will increment for all suppliers .Since we got response from the Office Supplier , Inc Site – OFFICESUPPLIER , Responded field populated for this supplier only . 

  
 
From the RFQ , Select Tools &amp;gt; Copy Doc .It will Create Quotations as shown below.
  1. Enter the Supplier Name for whom you want to create Quote.
  2. Press OK and it will Create Quotation.
  1.  Query for Quotation # 502.
  2. Create Purchase Order Agreement from Quotation by selected Tools &amp;gt; Copy Doc
  3. Press Ok and it will Create Purchase Order Agreement. 
 Query for PO Agreement and Approve it
Once Oracle Purchase agreement got approved , creates the releases for Blanket PO Agreement .In our example PO Agreement Release we have item Test001 , BUT Item Test001 has restricted to be ordered from supplier from “Approval Supplier list”, and as  our Supplier is not part of any Approve Supplier list , system will throw Error.
 
For my test , I just remove the Item Test001 and Approve the Oracle Purchase Order Release and finally did the receipt against PO.