Wednesday, 10 April 2013

How to set up and use Bank Statement Loader in Cash Management


How to set up and use Bank Statement Loader 
 

PURPOSE

-------

 

This document will assist you in setting up and using the Bank Statement Loader

functionality in Release 11i and Release 12.  It will even take you through the process

of creating your own data file for testing purposes.

 

SCOPE & APPLICATION

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

 

If the user is already in possession of a valid data file, then these steps

can be followed by a casual user.  However, the creation of a new test data

file should only be attempted only by an accomplished user.  These procedures

only apply to Release 11i and Release 12.

 

 

Set Up and Use Bank Statement Loader

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

 

There are several different formats which can be used when utilizing the Bank

Statement Loader.  For purposes of example, this document uses the BAI2 format.

There are several areas which must be setup before you will be able to use the

Bank Statement Loader successfully:

 

Step 1 - Bank Account Setup

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

 

Create your bank and bank account in Accounts Payable.  Note your bank account

number and branch name.  In our example, we will use the following:

 

Bank:  Bank of America

Branch:  New York

Account number:  10271-17621-619

 

Step 2 - Bank Transaction Codes

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

 

Setup your Bank Transaction Codes in Cash Management.  Find the bank account

number that you are using, and enter the transaction codes provided by your

bank.  These differ from bank to bank, and thus are client specific.  In our

example, we will use the following:

 

Type      Code      Description                  Transaction Source

 

Payment               100         Regular Payment         AP Payments

Payment               130         EFT/Wire Payment            AP Payments

 

Note:  If the customer has Accounts Receivable, they may also have Receipt

Type Bank Transaction Codes to define the same way.

 

Step 3 - Bank Statement Mapping

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

 

Set up your Bank Statement Mapping in Cash Management.  It is a good idea to

copy the seeded mappings to your own so that you can modify it freely.  When

you enter the form, it will prompt you to find a mapping.  Cancel that dialog.

When the find window disappears, give your new format a name and description.

Use the existing control file and supply the desired date format.  Define the

precision and choose the appropriate format type.  Then click on Populate and

save.

 

This will copy the default mapping to your new name.  You are then free to

modify it as you wish.  For our example, no changes were made to the default

mapping.

 

Step 4 - Creating the BAI2 Data File

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

 

If you already have a valid format data file from your bank, you can skip this

step completely.  However, if you want to create a sample BAI2 data file for

testing purposes, follow the instructions in this step.

 

This is perhaps the most difficult step in the setup.  A wrongly placed comma

or incorrectly placed data value can wreak havoc on the Bank Statement Loader

and cause a failure.

 

You will want to use a text editor like vi or notepad.  If you use Microsoft

Word or another word processor, you will have to Save As Plain Text.  If you

create the file on your PC, remember to FTP it as ASCII when you move it to the

server.

 

There are some mandatory header and footer records in a BAI2 data file, between

which are your actual detail (or line level) records.  Each record is described

in as much detail as is needed to get the program to work.

 

Record 01 - Mandatory

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

 

This should be your first record in the file.  It should be of the following

format:

 

01,<bank originator ID>,<bank customer ID>,<file creation date>,

<file creation time>,<file identification number>,<physical record length>,

<block size>,<version number>/

 

For example, our file will use the following:

 

01,121345678,7777777,011031,1431,1431,80,1,2/

 

This means the file is from Bank 121345678 for its customer 7777777, and was

created on 31-OCT-2001 at 2:31 PM.  It has 80 characters per record, 1 record

per block and is BAI2 format (as denoted by the version number 2).

 

Record 02 - Mandatory

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

 

This should be the second record in the file.  It should be of the following

format:

 

02,<bank customer ID>,<bank originator ID>,<group status>,<as of date>,

<as of time>,<currency code>,<as of date modifier>/

 

The group status can be 1 for "update", 2 for "deletion", 3 for "correction",

or 4 for "test only".

 

For example, our file will use the following values:

 

02,7777777,121345678,1,011022,0000,USD,/

 

This means we have received an update type file with USD transactions through

22-OCT-01 at midnight.

 

Record 03 - Mandatory

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

 

This should be the third record in the file.  It should be of the following

format:

 

03,<bank account number>,<currency code>,<type code>,<sign><amount>,

<item count>,<funds type>/

 

With the last 5 fields being repeated as many times as needed for each

type code.  Note that there is no delimiter between the sign and amount fields.

 

For example, our file will use the following values:

 

03,10271-17621-619,USD,400,1153083,4,/

 

This denotes that for our USD bank account number 10271-17621-619, we have 4

transactions that total $11530.83.

 

Record 16 - Mandatory, multiple occurrences

Record 88 - Optional, multiple occurrences

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

 

The record type 16 will likely have many records, which should be the

fourth and subsequent records.  Each will be of the following format:

 

16,<transaction code>,<amount>,<funds type>,<bank ref #>,<customer ref #>,

<text>/

 

In our example below, this is a regular payment (transaction code 100) for

$769.95 (because precision is 2), which has a value date of 20-OCT-2001 (as

per fields 3 and 4).  Once imported, we will see "Bank Reference Text" in the

Agent field, "26446" in the Invoice field, and "Office supplies" in the

Description field. 

 

16,100,76995,V,011020,,Bank Reference Text,26446,Office Supplies/

 

You will have one record for each payment.  Sometimes, the text for a record

type 16 will get really long.  That is when you use an 88 record, or overflow

record.  For example:

 

16,100,1574543,V,011020,,A long amount of Text, Also a long amount of Text,

Even still more Text/

 

could be broken up into 2 separate records such as:

 

16,100,1574543,V,011020,,A long amount of Text, Also a long amount of Text

88, Even still more Text/

 

Record 49 - Mandatory

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

 

This record should follow the last 16 record for the given bank account. It

should be of the following format:

 

49,<account control total>,<number of records for account>/

 

The account control total sums all the amounts in records 03, 16 and 88 and

includes an amount sign.  The record count for the account is for all records

up to and including the 49 record itself.

 

For our example, the record would look like:

 

49,2306166,8/

 

Record 98 - Mandatory

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

 

This record follows the last 49 record. It should be of the following format:

 

98,<group control total>,<number of accounts>,<number of records in group>/

 

Group control total is the sum of all control totals in 49 records for this

group.  The number of accounts will be the same as the number of 03 records

in the file.

 

For our example, the record would look like:

 

98,2306166,1/

 

Record 99 - Mandatory

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

 

This will be the last record in your file. It should be of the following

format:

 

99,<file control total>,<number of groups>,<number of records>/

 

File control total is the sum of all group control totals in 98 records.

The number of groups should match the number of 02 records.

 

For our example, the record would look like:

 

99,2306166,1,10/

 

Here is resulting data file in entirety:

 

01,121345678,7777777,011031,1431,1431,80,1,2/

02,7777777,121345678,1,011022,0000,USD,/

03,10271-17621-619,USD,400,1153083,4,/

16,100,76995,V,011020,,Bank Reference Text,26446,Office Supplies/

16,100,812213,V,011015,,323532,A39599,Travel expenses/

16,100,242500,V,011017,,5434634N,46400-333,Rent expense/

16,100,21375,V,011019,,264,83832,Team Building Event/

49,2306166,8/

98,2306166,1/

99,2306166,1,10/

 

 

Concurrent programs to Run

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

 

You have the option of running the concurrent programs in a variety of ways.

When testing, it is recommended to run each program one at a time, so that you

can see where in the process you are in case an error occurs.  Once you have

the setup completed, you can run all of the programs in one step.

 

1. Bank Statement Loader

 

The required parameters to this job are the following:

 

Process Option – Choose "Load".

 

Mapping Name - Pick the one you created in the Bank Statement Mapping section,

or if you used a standard one, pick that.

 

Data File Name - This is whatever you named your data file.  Typical convention

is to use the .dat extension.  Example:  bofa123101.dat

 

Directory Path - If you placed your data file in the $CE_TOP/bin directory,

leave this parameter blank.  Otherwise, you must provide the entire directory

path to your data file.  Do NOT use any environment variables in your pathname.

 

Bad example:  $CE_TOP/out/bofa123101.dat

Good example:  /amer/oracle/crmus01/crmus01appl/ce/11.5.0/out/ bofa123101.dat

 

Display Debug - Defaults to "N", but it is recommended to set it to "Y" to aid

in debugging issues.

 

This job will kick off three additional concurrent programs:

 

Run SQL*Loader- <format name> - This program takes the data from your data file

and loads it into the CE_STMT_INT_TMP table.  This program has no output, but

you can see on the last page of the log file how many records got loaded and

how many got rejected.

 

Load Bank Statement Data - This program takes the data from the

CE_STMT_INT_TMP table and loads it into the CE_STATEMENT_HEADERS_INTERFACE and

CE_STATEMENT_LINES_INTERFACE tables.  There is no output for this program, and

the log file is useless in debugging.

 

Bank Statement Loader Execution Report - This program provides some information

about what the previous programs did.  It has an output report, which has

minimal value.  Occasionally, you will get a good error message or warning,

but typically it reports everything is fine even if there was an issue.  The

log file is not helpful in debugging issues.

 

2. Bank Statement Import

 

The required parameters to this job are the following:

 

Bank Branch Name - Provide the bank branch name that you setup in the Bank

Account Setup section.

 

GL Date - Although this parameter is not marked as required, the import will

often fail if you do not provide a value for this parameter.  The date must in

an open period in both AP and AR.

 

Note:  If you have multiple files loaded, but only want to import one of them,

use the Statement Date or Statement Number range parameters to limit the import

job.

 

If successful, this program moves records from the

CE_STATEMENT_HEADERS_INTERFACE and CE_STATEMENT_LINES_INTERFACE tables into

the CE_STATEMENT_HEADERS and CE_STATEMENT_LINES tables.

 

This concurrent program will launch one other concurrent program:

 

AutoReconciliation Execution Report - Although misleadingly named, this report

is useful.  It will show exceptions which may have occurred during the import.

 

3. AutoReconciliation

 

The required parameters to this job are the following:

 

Bank Branch Name - Provide the bank branch name that you set up in the Bank

Account section.

 

GL Date - Although this parameter is not marked as required, the import will

often fail if you do not provide a value for this parameter.  The date must in

an open period in both AP and AR.

 

Note:  If you have multiple files loaded, but only want to import one of

them, use the Statement Date or Statement Number range parameters to limit

the import job.

 

If successful, this program will reconcile the imported bank statement lines

to outstanding AP and AR transactions.  If unsuccessful, it will mark the bank

statement line with an error and allow you to manually reconcile the

transaction.

 

This concurrent program will launch one other concurrent program:

 

AutoReconciliation Execution Report - This time this same report shows

exceptions in matching up the imported bank statement transactions with the

existing AP and AR transactions in the system.  It gives descriptive reasons

why the line was not able to be reconciled automatically.