Implementation of AUTO LOCKBOX With Steps Involved and The Details of The Technology Been Used in Simple Language
Implementation of AUTO LOCKBOX With Steps Involved and The Details of The Technology Been Used in Simple Language
By
- Suryakanth Gunti
With this article would give you an overall view as to how Auto Lockbox is implemented along with the
background technical details.
Before going forward with the implementation let us know about the setups that are required, here we
would be concentrating few of the important and mandatory setups required
Here we 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.
In this screen we enter the Bank Account Information against which the payment would be
made.
Define a Receipt class to determine the required processing steps for receipts to which you assign
payment methods with this class
• Define Lockbox
Navigation: Setup > Receipts > Lockboxes > Lockboxes > Receipts Tab
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
o Constant Date: Receivables uses the date you enter in the GL Date field of
the Submit Lockbox Processing window.
o Deposit Date: Receivables uses the date that your bank deposits your
receipts.
o Import Date: Receivables uses the date on which you import your receipts.
Enter the Receipt Method to assign to this lockbox that you have defined when
defining the Receipt Class
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.
Transactions Tab
Check the AutoAssociate check box with this by default, the Lockbox Validation
program uses an invoice or debit memo number to determine the customer with
which the receipt should be associated
Choose how Lockbox will handle Invalid Transaction Number: If the receipt record is
associated with multiple invoices, but one of the invoices is invalid
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).
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.
Select a record type , click on Transmission Fields from the above screen and define the transmission
fields.
Overflow Payment: 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.
This completes the setups that are required for the Auto Lockbox Implementation.
Now we shall go ahead with the implementation of Lockbox and the various step by step approach.With
this implementation of lockbox we are going to process two sets of payment format one is the Check
Format and the other is the Wire and ACH format
For this reason we need to define two lockbox number and Transmission format one for each format.
We now need to define a path which would be accessible to the bank to place the file (Data File) and for
you to access this file and move it to our custom path for processing.
Once the setups are completed we shall now define and design a program that would automate this
process and run once every day and process the files. To achieve this we design a Shell Script and a
PLSQL Package.
We now use the SFTP utility to get the file from the path which is accessible to the bank and move this
data file to our custom path using SFTP utility so that the data file is processed further. Once the data
file is completely processed it is then moved to the Archive folder defined by us to track them later. If
there is any error in loading the data file into the interface table, even then the data file is move to the
archive folder with .bad as extension. This .bad file is then sent to the team for rectification using mailx
utility.
Moving further we shall know how this processing done in detail in the coming steps as below:
The PLSQL Package is designed to call the standard lockbox interface program ARPLB to read the Data
file load the data in the interface table using SQL* LOADER Control file. This program is invoked in the
Shell Script using CONCSUB utility. The package is been invoked based on the parameter set just to read
the data file and load the data in the interface table. Before calling the Package using the name of the
Data file which is always unique we generate the transmission name and pass it as a parameter to the
called CONCSUB utility.
Before performing the validations and to let the program wait till the data is completely loaded we
exclusively call FND_CONCURRENT.WAIT_FOR_REQUEST API and wait till the above CONCSUB utility
completes.
Now at this stage we have the data in the interface table, in shell script code we perform some custom
validation to check if the Lockbox number is defined, if we are running the program in the right
responsibility and then we update the Customer Number field in the Interface table
(AR_PAYMENTS_INTERFACE_ALL) against the customer number that we have populated in Attribute1
column of the interface table by fetching the value from the table HZ_CUST_ACCOUNTS_ALL based on
the customer name that is provided in the data file.
Once the custom validation is done based on the transmission name that we generated which will be a
parameter when we calling the package for the second time using the CONCSUB utility. The
Transmission Name can we checked from the table AR_TRANSMISSIONS_ALL.
Based on different parameter that is passed to the package which in-turn calls the ARPLB program the
Data is just loaded in the Interface table and then we do our validation and then again based on the
parameter, this time the parameter list (transmission id used to populate the data and other
parameters) that would validate and post quick cash as we already we have records in interface table.
A notification is sent with the statistics of the number of records been processed and if any errors then
the number of error records as well. Now if there are any errors based on the transmission name the
data is spooled into a excel file and attached to the mail notification along with the statistics.
For this complete process of Auto Lockbox the tables that come into effect are:
Base Tables:
AR_CASH_RECEIPTS_ALL
AR_CASH_RECEIPTS_HISTORY_ALL
AR_RECEIVABLE_APPLICATIONS_ALL
AR_TRANSMISSIONS_ALL
FND_NEW_MESSAGES
Suryakanth Gunti 10 | P a g e