Vous êtes sur la page 1sur 14

1/22/2018 Document 752532.

Copyright (c) 2018, Oracle. All rights reserved.

R12/CE: Bank Statement Format Masking for Mapping BAI2, SWIFT940:


BANK_ACCOUNT_NUM, BANK_TRX_NUMBER, BANK_ACCOUNT_TEXT, Agent Bank account
number And Others (Doc ID 752532.1)

In this Document

Goal
Solution
References

APPLIES TO:

Oracle Cash Management - Version 11.5.10.0 to 12.2.5 [Release 11.5 to 12.2]


Information in this document applies to any platform.

GOAL

(1). BAI2 BANK STATEMENT MAPPING:

Q1: Why following BAI2 datafile needs bank statement mapping as:

BANK_TRX_NUMBER 16 -3 and not -2?

16,164,10674584,Z,902354001896874,000000000000/
88,DFAS CHARLESTON DES:VENDOR PMT ID:HU00010710006
88,INDN:HENRY M JACKSON CO ID:3041036004 CTX
88,ADDITIONAL INFORMATION IS AVAILABLE FOR THIS PMT.
88,CONTACT A TREASURY SALES OFFICER FOR ASSISTANCE.

Q2: Why following BAI2 datafile needs bank statement mapping as:

BANK_TRX_NUMBER 16 -2 and not -1?

16,581,156500,Z,813009392186700,000000002004/

Q3. You have BAI2 Bank Statement where BANK_TRX_NUMBERis of 15 digits andfirst 8 digits are always constant but not
same hence following was tested:

Bank Transaction number: 16 -3 ~(nnnnnnn) or nnnnnnn(nnnnnnn) .. Doesn't work


Bank Transaction number: 16 -3 90235400(nnnnnnn).. this works. always same.

What characters and how format masking to be used to insure correct mapping?
While we tried the constant: 90235400 as>>90235400(nnnnnnn).This works, however why the ~(nnnnnnn) or
nnnnnnn(nnnnnnn) doesn't work. Since preceding constant can be different and mapping can not be constrained of this.

How do we insure that only last seven digits only populated and first eight digits are truncated.?

Q4: You have following Bank account Number data for the SWEEP IN SWEEP OUT statement line and this needs to
populate the AGENT column:
ZXC0000006835538
ZBD1000056392029
To populate the correct BANK_ACCOUNT_TEXT (AGENT) with values as:

0006835538 and 1000056392029

Q5: When you have scenario where BANK_TRX_NUMBER field in the bank statement may have: Seven or six leading zeros
for the Number : Example:

Payment Number: 0000000123456 or 000000012345

What format masking to be used in bank statement mapping?

https://support.oracle.com/epmos/faces/DocumentDisplay?_adf.ctrl-state=orkcv14fn_4&id=752532.1 1/14
1/22/2018 Document 752532.1

Q6: What Setups you need to load:

1). Bank Account as: 009427729336>> 9427729336

2). Number as: 00942772932 >> 942772932

03,009427729336,USD/
..
16,275,000000000003789,Z,081304012000000,009427729328/
88,ZBA TRANSFER FROM 009427729328
16,475,000000000003789,Z,813006292539777,000000100221,/
..

Q7: How to insure You load appropriate values for:


CURRENCY_CODE
EXCHANGE_RATE
TRX_TEXT
INVOICE_TEXT
ORIGINAL_AMOUNT
CHARGES_AMOUNT
CUSTOMER_TEXT
BANK_ACCOUNT_TEXT

From the following BAI2 data file:

01,CITIDIRECT,4873012,110428,0600,06005100,,,2/
02,4873012,CITIGB22,1,110427,1410,SEK,2/
03,123-123-123,USD,010,612340866,,,015,612337783,,,030,612337783,,,/
88,040,612361291,,,045,612361291,,,060,612361291,,,072,000,,,/
88,074,000,,,100,000,0,,400,3083,1,,470,000,0,/
16,495,3083,V,110428,,3118285563,1161000828064397/
88,FR:ISSUE CCY TT
88,ENDT:20110427
88,TRID:1161000828064397
88,PY:JAN-MAR 11 ROYALTY
88,BI:IE23BOFI90139437309002
88,BN:RUGBY WORLD CUP
88,AB:BANK OF IRELAND INTERNATIONAL BANKI COLVILL HOUSE:TALBOT S/
88,TREET/
88,OA:GBP3083
88,BO:ELECTRONICS ARTS INC 1450 FASHION ISLAND BLVD
49,3674109554,15/
98,3674109554,1,17/
99,3674109554,1,19/

Q8: Agent Bank account number:


For Bank Statement Loader BAI2 bank file how to remove a space within the bank account number in record 16 for the
Agent Bank account number?
Release 12.1.1.
Bank file is from the bank is Bank of America and they will not change their format. The bank sends the account number
in the following format: "9999 9999999". We stored the account number as "999999999999". Unfortunately we cannot
change the configuration of the bank accounts, since the bank also sends transactions with the reference
"999999999999". It is only the sweep in/out transactions that have the embedded space.

BAI2 file:
16,275,000000001528530692,V,110426,0000,6019XBS0001382500,6008 48471015 /
88,CROSS BRANCH SWEEP TO LONDON BRANC
The bank file has Agent Bank Account number in the following format:
xxxx nnnnnnnn ex: 6008 48471015
where x=branch number and n=bank account number
However, the bank accounts themselves are configured in the following format:
xxxxnnnnnnnn ex: 600848471015

How can you remove the space in “xxxx nnnnnnnn” with the Bank account mapping or with other solution?
All the following Bank Account Mappings do not work:
• (nnnn),(nnnnnnnn) Concatenated Format = Yes
https://support.oracle.com/epmos/faces/DocumentDisplay?_adf.ctrl-state=orkcv14fn_4&id=752532.1 2/14
1/22/2018 Document 752532.1

• 6008(nnnnnnnn) Include Indicator=Yes


• (xxxx),(xxxxxxxx) Concatenated Format = Yes
• 6008 (nnnnnnnn) Include Indicator=Yes

Q9: Bank Statement Load and Import, Format Masking Fails:

BANK STATEMENT LODER: AP check and AR receipt numbers that are 000010000030 is removing the leading as well as
Other zeros and 1.
Bank Statement Mapping Used:
BANK_TRX_NUMBER 16 -2 00000000000(~),00000000(~),000000(~),00000(~),0000(~)

DATAFILE DATA:

16,165,000000000002500,Z,902526004998724,000001000029,/
16,165,000000000002731,Z,902526004998724,000010000030,/
16,165,000000000002500,Z,902526004998724,000000100058,/
16,165,000000000002500,Z,902526004998724,000010000066,/
16,165,000000000002500,Z,902526004998724,000010000069,/

When Loaded and seen in Interface Form:

BANK STATEMENT LOADER: AP check and AR receipt numbers that are 000010000030 is removing the leading as well as
Other zeros and 1. Bank Statement Mapping:
BANK_TRX_NUMBER 16 -2 00000000000(~),00000000(~),000000(~),00000(~),0000(~)

Line Number Code Number

17 165 1000029
18 165 30 >>>> Instead of:10000030
19 165 100058
20 165 66 >>>> Instead of:10000066
21 165 69 >>>> Instead of:10000069

Bug: 14072265 - BANK_TRX_NUMBER MASKING FAILS TO MASK CORRECTLY

Application is working as expected. Please find below justification.

The bank statement mapping by customer is,Bank Statement Mapping:


BANK_TRX_NUMBER 16 -2 00000000000(~),00000000(~),000000(~),00000(~),0000(~)

Considering two lines from problem statement.


1=> 16,165,000000000002500,Z,902526004998724,000000100058,/
2=> 16,165,000000000002500,Z,902526004998724,000010000066,/

Line 1=>

the Bank Trx Number value is 000000100058. Please note that user has provided multiple formats. Hence program takes
each
format one by one and will search for the match.

Format 1:00000000000(~)
This format do not match as there are no continuous 11 zero's in
"000000100058".

Format 2:00000000(~)
This format do not match as there are no continuous 8 zero's in
"000000100058".

Format 3:000000(~)
The format 000000(~) will match in this case, as the string "000000100058".
holds continuous 6 zero's, and bank trx number populates as 100058.

Line 2=>

https://support.oracle.com/epmos/faces/DocumentDisplay?_adf.ctrl-state=orkcv14fn_4&id=752532.1 3/14
1/22/2018 Document 752532.1

the Bank Trx Number value is "000010000066". Please note that user has provided multiple formats. hence program takes
each format one by one and will search for the match.

Format 1:00000000000(~)
This format do not match as there are no continuous 11 zero's in
"000010000066"

Format 2:00000000(~)
This format do not match as there are no continuous 8 zero's in
"000010000066"

Format 3:000000(~)
This format do not match as there are no continuous 6 zero's in
"000010000066"

Format 3:00000(~)
The format 000000(~) will match in this case, as the string "000010000066"
holds continuous 5 zero's, and bank trx number populates as 66.

Hence the bank trx number populates as 66. Please note that once applications finds a successful match, it will not search
further.

Guide lines while defining format for the bank trx number:

The bank trx number is most likely to be numeric value. Hence proving numeric formats to extract numeric values may not
be accurate there are high chances of matching the format with value. Please refer the
line=> 2 case explained above, Bank trx number extracted as 66 instead of 10000066. This happened because the format
"00000" found in actual value "10000066".
The formats are meant for clear instructions to program by user to extract certain value from bank file. So user must
ensure that the format is unique in the file.

Q10: EXCHANGE_RATE 16 -1 ER:(~)

CEBSLDR module: Load Bank Statement Data program ends in error


Errors:
Cause: FDPSTP failed due to ORA-06502: PL/SQL: numeric or value error:
character to number conversion error
ORA-06512: at "APPS.CE_BANK_STATEMENT_LOADER", line 3355
ORA-06512: at line 1

(2). SWIFT BANK STATEMENT MAPPING:


Q1: How to map BANK_TRX_NUMBER for the following data file?

:20:9400124557581854
:25:123-123-123
:28:134/1
:60F:C110715ZAR80562552,13
:61:1107150715DR1223,00NTRF19610ECDT5T//1196022090
/CTC/076/OUTGOING CLEARING TRANSFE
:86:/PT/FT/BN/SM NAIDOO/AB/632005 ABSA ELECTRONIC ,ABS/AB3/11 TRU
MP STREET SELBY/AB4/AC4060321464
:61:1107150715DR7019,65NTRF19610ECDT5V//1196022117
/CTC/076/OUTGOING CLEARING TRANSFE
:86:/PT/FT/PY/ATC SA/BN/NEIL SEARLS/AB/632005 ABSA ELECTRONIC ,AB
S/AB3/11 TRUMP STREET SELBY/AB4/AC4077758052
:61:1107150715DR1671402,03NTRF19210EAPBT7//1196022084
/CTC/076/OUTGOING CLEARING TRANSFE
:86:/PT/FT/PY/ATC ST03/2011/BN/FREEFALL TRADING/AB/250655 CUSTOME
R COMPUTE,FNB/AB3/2 ND FLOOR 26 TRUMP STREET SELBY/AB4/AC62045612
969
:62F:C110715ZAR78882907,45
:64:C110715ZAR78882907,45

https://support.oracle.com/epmos/faces/DocumentDisplay?_adf.ctrl-state=orkcv14fn_4&id=752532.1 4/14
1/22/2018 Document 752532.1

Q2: SWIFT BANK STATEMENT MAPPING WITH IBAN CODE AT RECORD/TAG :25: IBAN code:
IT45X0558401631000000015894and when try to Upload it errors as:

Error The loading program was not able to locate BANK_ACCOUNT_NUM information which is required in the Bank
Statement Interface.

Error Bank account IT45X0558401631000000015894 is not defined. Set up the bank account first.

SOLUTION

BAI2: allowable values of fund type:

0 = immediate availability (zero)


1 = one-day availability
2 = two-or-more days availability
S = distributed availability
V = value dated
D = distributed availability
Z = unknown (default)

How Format Masking works: Review; <Bug: 16479749> - PN: BANK STATEMENT LOADING NOT WORKING
WITH ERROR MESSAGE-BANK ACCOUNT NOT DEFIN

a). Bank Statement Header: CE:Format masking behavior in specific toBank Account Extraction for BAI2:

03,0041000850,USD,010,74536638,,,015,74139333,,,040,74139333,,,045,74139333,,/
88,050,212138147,,,055,758232616,,,072,0,,,074,0,,,075,0,,,100,0,0,/
88,400,397305,2,,490,397305,2,/

The format can be any where in the given string; String here refers to value extracted using record id and position value
at mapping template as mentioned by user.

Example:

Column_name record_id position format

BANK_ACCOUNT_NUMBER 03 1 00000000(~),0000000(~),000000(~),00000(~),0000(~),000(~),00(~),0

This results in Bank Account: 0041000850 extracted as: 41850. Basically all zeros preceeding and in
between are removed. Hence for such a case -- Record Exceptions --

Rec No Type Message


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

3 Error Bank account 0041000850 is not defined. Set up the bank account first.

Though the Bank account is defined as: 41000850.

b). Bank Statement Header Currency is mapped as:

Example:

Column_name record_id position format

CURRENCY_CODE 03 2

c) Bank Statement lines: Usually many banks send the Format:Value pairs as part of transaction description or as part of
some other field. It means from a single column of temporary table(CE_STMT_INT_TMP), multiple columns for interface
(Interface Lines or headers)table can be extracted.

https://support.oracle.com/epmos/faces/DocumentDisplay?_adf.ctrl-state=orkcv14fn_4&id=752532.1 5/14
1/22/2018 Document 752532.1

Example:

Column Name record id position format

Bank_Trx_number 16 -1 CHQ(~)

Exchange_rate 16 -1 EUR(~),USD(~),GBP(~)

Bank_account_text 16 -1 AGENT(~)

d). Bank Statement Line currency: Multiple formats can be provided. Application first checks for format 00000000(~),
if not present in the given string it will search for 0000000(~) and so on.
Examples.
00000000(~),0000000(~),000000(~),00000(~),0000(~),000(~),00(~),0(~)
and
EUR(~),USD(~),INR(~),GBP(~)

e) CE:Format masking behavior is common for all standard formats supported by oracle i.e BAI2,
SWIFT940, EDIFACT.

(1). BAI2 BANK STATEMENT MAPPING:


A1:

All records 16 in the uploaded data file are followed by continuation records 88. The position of a field in the bank
statement mapping is taken as the combination of the record 16 and all its continuation
records.

For example consider the following lines in the uploaded data file:

16,164,10674584,Z,902354001896874,000000000000/
88,DFAS CHARLESTON DES:VENDOR PMT ID:HU00010710006
88,INDN:HENRY M JACKSON CO ID:3041036004 CTX
88,ADDITIONAL INFORMATION IS AVAILABLE FOR THIS PMT.
88,CONTACT A TREASURY SALES OFFICER FOR ASSISTANCE.

In this case the field at position -1 ('DFAS CHARLESTON ...') is spread across the 4 continuation records (88).Therefore,
the bank transaction number (902354001896874) is at position -3 not at -2.

As has been noted when the proper position for the bank transaction number is given, the data file is uploading correctly.
This is not a bug, the code is working perfectly and as per design.

2. What is the Intended Functionality / Behavior.


A single line does not always constitute a complete record in BAI2 - any of the main records 02(group header), 03(account
identifier and summary) and 16(transaction detail) have to be considered in
conjunction with any continuation records(88) that follow them.

Also, a proper BAI2 format requires the following comma separated values in the transaction detail (16) record:
1. Record
2. Type Code
3. Amount
4. Funds Type
5. Bank Reference Number
6. Customer Reference Number
7. Text

Apart from these there might be a couple of additional fields on the basis of Funds Type field ('S','V','D','Z') but these
immediately follow the Funds Type field. So, the Bank Reference Number is always at position -3 not -2.

https://support.oracle.com/epmos/faces/DocumentDisplay?_adf.ctrl-state=orkcv14fn_4&id=752532.1 6/14
1/22/2018 Document 752532.1

A2:

The bank statement mapping you give to populate depends on where the BANK_TRX_NUMBER is in the data file:
Example:
Rec 16 structure is as follows:
16,<transaction code>,<amount>,<funds type>,<bank ref #>,<customer ref #>,<text>/

In the rec:16,581,156500,Z,813009392186700,000000002004/

while the NUMBER appears to be -1 position however the text is assumed missing here and hence the

BANK_TRX_NUMBER 16 -2 will work.

A3:

The user guide clearly documents all supported scenarios for the format masking. The wild-card characters ('n' or 'x' or
'~') are only valid for the actual transaction number value. Nowhere is it mentioned that these can be used in the indicator
token. The indicator has to be a constant value.

Therefore, while 90235400(nnnnnnn) will work, ~(nnnnnnn) or nnnnnnn(nnnnnnn) do not work as the indicators given
here are variables. This is not a supported scenario.

Please note: This Bug:7572389 is now treated as a documentation bug.

A4:

To create a bank statement mapping for sweep transactions by defining the


BANK_ACCOUNT_TEXT field to match the free text field on your bank statement
lines.

a. In the BAI2 bank file example below, a bank account sweep in transaction
is identified by the text ZBA TRANSFER FROM: and a bank account sweep out
transaction is identified by the text ZBA TRANSFER TO:.

b. create a bank statement mapping in the Lines tab of the Bank Statement
Mappings window, defining the BANK_ACCOUNT_TEXT field to match the free
text field (Rec ID: 16, Position: -1). In this example, the format will be ZBA
TRANSFER FROM: (~), ZBA TRANSFER TO: (~). The (~) designates the characters
to pick up following the ZBA TRANSFER FROM: or ZBA TRANSFER TO: and store
in the BANK_ACCOUNT_TEXT field.

c. Some bank give data in Rec ID: 16, Position: -3

d. This may some time some constant values:

ZXC0000006835538
ZBD1000056392029
To populate the correct BANK_ACCOUNT_TEXT (AGENT) with values as:
0006835538 and 1000056392029

use: BANK_ACCOUNT_TEXT Rec ID: 16, Position: -3 Format values as:

Format column update: ZXC000(~), ZBD(~)

Initial values are constant which needs to be truncated.

A5:
Since the leading zeros are Variable and also the real Payment number is variable then use:
0000000(~), 000000(~) in the Format of the bank statement mapping.
This will insure that leading zeros seven or Six will be truncated before the data is populated in the Number column of the
bank statement lines during bank statement load process.

A6:
1). BANK_ACCOUNT_NUM as: 009427729336>> 9427729336, use following mapping
REC_ID_NO POSITION FORMAT
03 1 00(~),0(~), (~)
This is provided to insure that if preceding zeros are 00 or 0 or none.
https://support.oracle.com/epmos/faces/DocumentDisplay?_adf.ctrl-state=orkcv14fn_4&id=752532.1 7/14
1/22/2018 Document 752532.1

2). BANK_TRX_NUMBER as: 00942772932 >> 942772932


REC_ID_NO POSITION FORMAT
16 -1 00(~), 0(~), (~)

This is provided to insure that if preceding zeros are 00 or 0 or none

3). For EDIFACT.ctl for France where bank account has preceeding zeros:

Bug: 5532752 ONDEMAND:OHS:ACT:BANK ACCT GETTING TRUNC IN STATEMENT LOADER PROGRAM FOR

The incoming data (flat) file has the value 00010412850 in the account field. However, after load to the interface table,
this becomes 10412850; i.e., the leading zeroes are dropped.
The cause is clear: in the CTL fil, you have this statement: column7 POSITION(22:32) CHAR "ltrim(:column7, '0')",
The ltrim function is expressly eliminating the leading zeros (0).

If the client has defined the account as 00010412850 rather than 10412850, then the account will not be found.
You can try changing the CTL statement to this instead: column7 POSITION(22:32) CHAR "ltrim(:column7)",
This would just remove leading spaces instead, leaving the zeros.
If this works, you have both the cause and a workaround. However, please note that although we provide CTL files for
SQL Loaders, it is still the client's responsibility to alter these to meet their specific needs. Such may be the case here.

A7:
Use following Bank statement mapping:
Column Name Rec Id Position Format
CURRENCY_CODE 16 -1 OA:(aaa)
EXCHANGE_RATE 16 -1 ER:(~)
INVOICE_TEXT 16 -1 PY:(~)
ORIGINAL_AMOUNT 16 -1 OA:EUR(~),OA:USD(~),OA:GBP(~)
CHARGES_AMOUNT 16 -1 CM:EUR(~), CM:USD(~),CM:GBP(~)
CUSTOMER_TEXT 16 -1 BN:(~),RM(~)
BANK_ACCOUNT_TEXT 16 -1 OK:(~),BC:(~),BI:(~), CA:(~)

A8:
Currently the system does not perform any processing logic on the agent bank account number and simply copies the
number into the respective column. We are not clear why the bank is sending the agent bank account number differently
for sweep transactions.
If the sweep transactions are not too many, then customer can manually remove the spaces for those statement lines.
Else the customer can check with bank on sending the bank account number without spaces for the sweep transaction
lines also.
Finally the customer can customize the bank statement loader program to remove the space for the sweep transaction
statement lines if the above alternatives do not work out.

A9: Bank Statement Load and Import, Format Masking Fails:

Explanation and Resolution:


Bug: 14072265 - BANK_TRX_NUMBER MASKING FAILS TO MASK CORRECTLY

Application is working as expected. Please find below justification.

The bank statement mapping by customer is,Bank Statement Mapping:


BANK_TRX_NUMBER 16 -2 00000000000(~),00000000(~),000000(~),00000(~),0000(~)

Considering two lines from problem statement.


1=> 16,165,000000000002500,Z,902526004998724,000000100058,/
2=> 16,165,000000000002500,Z,902526004998724,000010000066,/

Line 1=>

the Bank Trx Number value is 000000100058. Please note that user has provided multiple formats. Hence program takes
each
format one by one and will search for the match.

Format 1:00000000000(~)
https://support.oracle.com/epmos/faces/DocumentDisplay?_adf.ctrl-state=orkcv14fn_4&id=752532.1 8/14
1/22/2018 Document 752532.1

This format do not match as there are no continuous 11 zero's in


"000000100058".

Format 2:00000000(~)
This format do not match as there are no continuous 8 zero's in
"000000100058".

Format 3:000000(~)
The format 000000(~) will match in this case, as the string "000000100058".
holds continuous 6 zero's, and bank trx number populates as 100058.

Line 2=>

the Bank Trx Number value is "000010000066". Please note that user has provided multiple formats. hence program takes
each
format one by one and will search for the match.

Format 1:00000000000(~)
This format do not match as there are no continuous 11 zero's in
"000010000066"

Format 2:00000000(~)
This format do not match as there are no continuous 8 zero's in
"000010000066"

Format 3:000000(~)
This format do not match as there are no continuous 6 zero's in
"000010000066"

Format 3:00000(~)
The format 000000(~) will match in this case, as the string "000010000066"
holds continuous 5 zero's, and bank trx number populates as 66.

Hence the bank trx number populates as 66.


Please note that once applications finds a successful match, it will not
search further.

Guide lines while defining format for the bank trx number:

The bank trx number is most likely to be numeric value. Hence proving numeric formats to extract numeric values may not
be accurate there are high chances of matching the format with value. Please refer the

line=> 2 case explained above, Bank trx number extracted as 66 instead of 10000066. This happened because the format
"00000" found in actual value "10000066".

The formats are meant for clear instructions to program by user to extract certain value from bank file. So user must
ensure that the format is unique in the file.

A10: EXCHANGE_RATE 16 -1 ER:(~)

CEBSLDR module: Load Bank Statement Data program ends in error


Errors:
Cause: FDPSTP failed due to ORA-06502: PL/SQL: numeric or value error:
character to number conversion error
ORA-06512: at "APPS.CE_BANK_STATEMENT_LOADER", line 3355
ORA-06512: at line 1

Citibank has specified the format for the currency field to be ER: followed by the conversion rate which is variable (e.g.
0.0345, 1.465677). Therefore you can only map it using ER:(~). Further, in the same field you are seeing other
description text matching this format which is causing the error due to invalid characters.
Since there is no way for you to avoid this error by mapping or changing the file, the loader should not error out but leave
the currency field blank when the value is picks up is not numeric.Also, this column is an optional field so there should
never be an error holding up the entire file forthis reason.

https://support.oracle.com/epmos/faces/DocumentDisplay?_adf.ctrl-state=orkcv14fn_4&id=752532.1 9/14
1/22/2018 Document 752532.1

Bug: 13744817 - LOAD BANK STATEMENT PROGRAM ENDS IN ERROR ORA-06502: PL/SQL: NUMERIC OR V Please advise
Bug: 13947921 - 1OFF:13744817:12.1.3:12.1.3:LOAD BANK STATEMENT PROGRAM ENDS IN ERROR ORA-06502:

Apply:

Patch: 13947921:R12.CE.B 1OFF:13744817:12.1.3:12.1.3:LOAD BANK STATEMENT PROGRAM ENDS IN ERROR ORA-


06502:
ce patch/115/sql cebsldrb.pls 120.34.12010000.29

Old Behavior: When Non Numeric exchange rate value found at Bank file, the program is ending in error.
New Behavior: The Non Numeric exchange rate value at Bank file is skipped from loading.

A11: When ever fund type 'S' appears at the end of record '88', the followed by fields (in followed by '88' record ) are not
read correctly. The values are considered as Type codes like 100 (represents Credit total) for this bank file. and Fund type
'Z' is considered as Credit total hence the value is converted to "to-number" by the application and hence the exception.
Warning Error -6502 was generated during the loading process.

Apply: Patch: 14323415:R12.CE.B Fixes the issue, where the fund type 'S' is the last value of record 88 the following
values are read incorrectly.
ce patch/115/sql cebsldrb.pls 120.34.12010000.30

A12: Bank Statement Loader (Swift940) does not handle more than 2x 86 records per 61 record

Patch: 14578532:R12.CE.B SWIFT940 STATEMENT CANNOT PROCESS MORE THAN 2 CONTINUATION RECORDS.
ce patch/115/sql cebsldrb.pls 120.34.12010000.31

A13: BANK STATEMENT LOADING NOT WORKING WITH ERROR MESSAGE-BANK ACCOUNT NOT DEFIN

1). Describe how the current product is insufficient.


Customer: Current product expects the Bank account number to not contain zeros in between. Instead of leading zeros, it
truncates the zeros appearing in the middle based on the values defined in the format field for Bank Account number field
in Bank Statement Mapping.

The format can be any where in the string. The program is not designed to search for format only at the beginning of the
string. Also the purpose of CE:Format masking is used to identify values based on given format, not designed to remove
some unwanted data by providing unwanted data as format.
2). Provide a detailed description of the Enhancement Request.
Customer: We do not seek any enhancement. We are requesting the above mentioned BUG to be fixed.

This is neither a bug nor a limitation from application, if we understood the usage of the CE:Format masking. If we fix the
code to remove some unwanted zero's/unwanted string this will have huge impact on other customers who would like to
search the entire string to extract multiple values from single column.
Example of such mappings are,
Column Name record id position format
Bank_Trx_number 16 -1 CHQ(~)
Exchange_rate 16 -1 EUR(~),USD(~),GBP(~)
Bank_account_text 16 -1 AGENT(~)

From the above mapping it is clear that in a single string (i.e Transaction Description in this case) bank is sending 3 values
BANK_TRX_NUMBER, EXCHANGE_RATE, BANK_ACCOUNT_TEXT using different formats.

3). If possible, identify how the product can be changed to achieve the desired result.
Customer: If Format field specifies value 000(~) then it should only be applicable to bank account numbers having 3
leading zeros. Not the zeros appearing in the middle of the bank account number.

This works as customer expects, if customer has only one format 000(~). But customer has multiple formats. If one
format not found in the given string, application tries to find next format and tries to get value associated with it. This is
intended behavior for multiple formats and this alone is causing problem for customer.

4). Explain why Oracle Development should consider the Enhancement Request.
Customer: As answered earlier, this is more like a coding flaw(bug) then an enhancement.

5). Describe how this Enhancement will benefit the Customer's business.
Customer: We will not have to defined multiple bank statement mapping for separate bank accounts have different
number of leading zeros.

https://support.oracle.com/epmos/faces/DocumentDisplay?_adf.ctrl-state=orkcv14fn_4&id=752532.1 10/14
1/22/2018 Document 752532.1

For 4) and 5)
If user expects the format to be always starting of the string and user wants the application to search for format only at
the beginning, the application should take the same input from user. If we want to fix this issue we need to change the
application to take input accordingly. This change needs complete impact analysis and may requires changes to data
model and multiple files. This should be an ER.

6). Is this Enhancement affecting an implementation milestone?


Customer: Yes. We are wanting to start multiple new bank accounts but product is incapable of handling them due to this
bug.

7). Please provide and describe the business flow that is affected by this Enhancement.
Customer: Bank Statement Load, Import and Reconciliation.

For 6) and 7)
User can use a work around, by altering a single line code at CE_BANK_STATEMENT_LOADER. or can define a trigger on
Interface table to remove the leading zero's or customer can get this issue fixed from bank by getting the bank account
numbers with out any left padded zero's

Bug: 16479749 - PN: BANK STATEMENT LOADING NOT WORKING WITH ERROR MESSAGE-BANK ACCOUNT NOT DEFIN

Format is user given instruction to extract data from a given string after format.
Example of multiple formats.
1)Assume user has defined below format for BANK TRX NUM.

BANK TRX NUM


record id 16
position 2
format CHQ(~),TRX(~),NUM(xxxxx)

2)Assume bank Statement has below 3 lines

Line-a) 16,100,CHQ12446234,2386324362,Debited Transaction


Line-b) 16,200,TRX98786,2386324362,Credited Transaction
Line-c) 16,300,NUM12345,2386324362,Miscellaneous Transaction

3)
The Bank transaction numbers extracted in the 3 cases will be
line-a) 12446234
line-b) 98786
line-c) 12345

4) Assume that the line-c) case if user has below format


format CHQ(~),TRX(~),123(~)
instead of
format CHQ(~),TRX(~),NUM(xxxxx)

Then bank trx number for line-c) will be '45'.

Please understand that,this can not be a limitation of the application. This is inappropriate use of format mapping. Let us
repeat, zero is possible number in bank account number hence can not be used as format by itself. This will lead to
inconsistent data extraction. It is always user and bank's responsibility to choose a format which is unique and can identify
the data consistently.

Please understand that, Format masking is to extract data after matching some formatted string. This can not be used to
remove padded zero's.

A14: How to Map Bank statement line for EFT NACHA BATCH:FileID/Companyid To AUTORECONCILE
To extract in number column as: 7777788888/1205559931
so that PAYROLL EFT NACHA BATCH Can be autoreconciled?
16,469,25041725,,,/
88,OTHER REFERENCE: IA000014045768/
88,ACH PREP ORIGINTN - RAC LLC - FILE 7777788888 COID 1205559931/

From the bank file the value "FILE 7777788888 COID 1770459094" can not be extracted as 7777788888/1770459094
even using format mappings. You may need to customize to get the value.

https://support.oracle.com/epmos/faces/DocumentDisplay?_adf.ctrl-state=orkcv14fn_4&id=752532.1 11/14
1/22/2018 Document 752532.1

Checked with payroll team, based on NACHA Rules the file and company id will be formatted to form batch name.
In customer case the batch name returned by CE_801_EFT_TRANSACTIONS_V is
7777788888/1770459094, This is as per the NACHA Rules defined by customer.
Please check with customer is it possible to alter their rules to get batch
name as "7777788888 COID 1770459094" , when queried CE_801_EFT_TRANSACTIONS_V.

Note: 1524286.1 R12: Master Note: How does one Integrate Payroll and Cash Management for Reeconciliation of Payroll
Payments?

A15: Scenario: Bank statement Load fails to populate bank_trx_number with Format masking given in Bank
Statement Mapping when the a string of number that enbedded in the middile of text.
However, if we move the string "ENTRY DESCR= EXT12345," to the beginning of record 88, the system does populate the
correct number.
for example:
1). Data : bank_stmt_data.txt

16,466,277626,0,1639935912TC,9082185001/
88,ORIG CO NAME=VONAGE,ORIG ID=9082185001,DESC DATE=OFFSET,ENTRY DESCR=EX12345,
88,ENTRY class="CCD",TRACE NO=021000029935912,ENTRY DATE=130612,IND ID NO=9082185
88,001,IND NAME=EFT FILE NAME: VOR5L0,COMPANY DATA=130611 VOR5L0,REMARK=EFT/ACH
88, CREATED OFFSET FOR ORIGIN#:1202758841 CO EFF DATE: 13/06/12
16,466,77230,0,1639935909TC,9082185001/
88,ORIG CO NAME=VONAGE,ORIG ID=9082185001,DESC DATE=OFFSET,ENTRY DESCR=EX12346,
88,ENTRY class="CCD",TRACE NO=021000029935909,ENTRY DATE=130612,IND ID NO=9082185
88,001,IND NAME=EFT FILE NAME: VOR6JR,COMPANY DATA=130611 VOR6JR,REMARK=EFT/ACH
88, CREATED OFFSET FOR ORIGIN#:1202758841 CO EFF DATE: 13/06/12

2). bank_stmt_mapping.xlsx.
BANK_TRX_NUMBER 16 -1 CHECK NO=(nnnnnnnnnnnnx),YOUR REF=(nnnnnnnnnnnnx),ENTRY DESCR=EX(~)

2. Is the DATA STRING SIZE MORE THE 255 CHRACTERS? Look below, my count shows: 255

ORIG CO NAME=VONAGE,ORIG ID=9082185001,DESC DATE=OFFSET,ENTRY DESCR=EX12345,


ENTRY class="CCD",TRACE NO=021000029935912,ENTRY DATE=130612,IND ID NO=9082185
001,IND NAME=EFT FILE NAME: VOR5L0,COMPANY DATA=130611 VOR5L0,REMARK=EFT/ACH
CREATED OFFSET
012345678901234567890123456789012345678901234567890123456789001234567890123456
789012345678901234567890123456789012345678900123456789012345678901234567890123
456789012345678901234567890012345678901234567890123456789012345678901234567890
12345678901234567
FOR ORIG
89012345

Answer: Record 88 is the continuous record to hold the transaction description. Can refer BAI2 documents. Ideally this
record will never have any comma's. The reason is in BAI2 format every field is separated by commas.
You can refer to any standard BAI2 file, there wont be any comma's as part of record 88.
Due to this program is reading data till first comma and user able to see the data extracted correctly when the format
value pair appears at the beginning of the field.
This is as expected and this is not a bug.

Enhancement:
Bug: 17244303 - BANK STATEMENT LOAD BANK_TRX_NUMBER WITH FORMAT MASKING NOT POPULATED

A16: Bank Loader not recognizing all setup bank accounts due to FORMAT MASKING used in Bank
statement mapping:

The issue you are seeing is mainly because your bank accounts are not defined as per the datafile.
The Bank statement mapping (Bank account number: FORMAT MASKING: 00(~), (nnnnnnnnnnn)) has its limitations and
in the same data file if you have bank account with preceding zero and zero in the middle of the bank account those gets
truncated, results in validation failure.

1). DATAFILE Bank Account is preceding zeros and mapping used to truncate precding zeros:

1. 03,003448277010,USD/
Bank Account Number: 3448277010

https://support.oracle.com/epmos/faces/DocumentDisplay?_adf.ctrl-state=orkcv14fn_4&id=752532.1 12/14
1/22/2018 Document 752532.1

2. 03,003448277395,USD/
Bank Account Number: 3448277395

3. 03,005483989235,USD/
Bank Account Number: 5483989235

2). Following bank accounts are not defined in the application and some reason it is truncating:'89800'
because two zeros are found in
the middle that FORMAT masking is removing:

4. 03,898006381391,USD/
108 Error Bank account 6381391 is not defined. Set up the bank account first.

5. 03,898006381883,USD/
119 Error Bank account 6381883 is not defined. Set up the bank account first.

6. 03,898006382882,USD/
128 Error Bank account 6382882 is not defined. Set up the bank account first.

Since data file has data for the bank account: 898006382882.. and Mapping used is: FORMAT MASKING: 00(~),
(nnnnnnnnnnn), hence it will remove the zeros and preceding values to validate the bank account as: 6382882, that is not
available and hence this fails. Unfortunatly it ignores the subsequent FORMAT MASK: (nnnnnnnnnnn).

3). Following bank accounts are not defined in the application and some reason it is truncating:'8980'
because one zero is found in
the middle that FORMAT masking is removing:

7. 03,898013201477,USD/
170 Error Bank account 898013201477 is not defined. Set up the bank account first.

4). Approach:

Option 1: You can create/ setups of the bank account in application exactly as what bank gives. And END DATE the
current Bank account which are not as per the bank. This will eliminate all such issue.
Option 2: If bank is not going to change the account number then can BANK at least separate the bank statement (data
files) into two sets: One with preceding zeros and other without preceding zeros. If this can happen then many operational
confusion can be eliminated.
Option 3: You can try some customization but that will be out of the scope for us.

You can use following FORMAT Masking AND CREATE two bank statement mapping:
a. Without FORMAT MASK for the bank account: blank in FORMAT MASK
b. With FORMAT MASK for the bank account: 00(nnnnnnnnn)

(2). SWIFT BANK STATEMENT MAPPING:


A1: Please setup BANK_TRX_NUMBER 61 8 in bank statement mapping template you will use for this data load.
Ref: SWIFT_MAP.xls uploaded to this note.

A2: SWIFT BANK STATEMENT MAPPING WITH IBAN CODE AT RECORD/TAG :25: IBAN code:
IT45X0558401631000000015894

:25:IT45X0558401631000000015894

When at record 25 the first two digits are Alpha: Example: IT (Italy), takes the bank account number as the last 12 digit
starting from the right, when it is NL, take the bank account number as the last 10 digit, and so on (As per country Rules).
Please use following mapping / Format: BANK_ACCOUNT_NUM: Rec id: 25 Position: 1
Format:IT45X0558401631(nnnnnnnnnnnn). Similarly such format masking to be provided in bank statement mapping.

Loading Using IBAN number at standard SWIFT940 record 25, is not supported through Oracle Application.
You need to customize the loader process in order to achieve this. The Bank Statement Loader Execution
report will show the Info, Bank Account setup missing, as customer file has IBAN number instead of bank
account number. There is no code fix required for this issue.

Bug: 12828793 - MT940 BANK UPLOAD STATEMENT PROGRAM IS FAILING DUE TO ISSUES

Enhancement Request: <Bug: 14257146> - UPLOAD BANK STATEMENT IN SWIFT 940 FORMAT WITH IBAN CODE AT
RECORD/TAG :25:
https://support.oracle.com/epmos/faces/DocumentDisplay?_adf.ctrl-state=orkcv14fn_4&id=752532.1 13/14
1/22/2018 Document 752532.1

---------------------------------------------
Please Note:
Variable formats use only the ~ notation, which stands for any number of alphanumeric and special characters. While
fixed length formats may come with or without an indicator, variable length formats must be accompanied by an indicator.

A3: SWIFT940/MT940 BANK_TRX_NUMBER Format:

Here is an example:

:61:1404020402D117,97NTRFAS03312014DE//37-B7-J1C58HP2
NESPRESSO DEUTSCHLAND GmbH
:86:/TYPE/089/VIR E SEPA//CODE/DE/000//REMI/29113187,2014 03 11,117.9
7,117.97//EREF/217//IREF/E000846180000008//BENM/NAME/DE4230070010
0351553301 NESPRESSO DEUTSCHLAND GmbH//INFO/DE4230070010035155330
1//NBTR/0000000014//PREF/AS03312014DE//ULTB/NAME/NESPRESSO DEUTSC
HLAND GmbH//PURP/SUPP/

Column Name record id position format


BANK_TRX_NUMBER ** 61 7 EREF(NNN)

A4: The BANK_TRX_NUMBER in record 86


if bank_trx_number is in record 86 and of variable length then format needs to be specified as below
(n),(nn),(nnn),(nnnn),(nnnnn),(nnnnnn),(nnnnnnn),(nnnnnnnn),(nnnnnnnnn),(nnaaannnnnnn),(nnnnnnnnnnn),
(nnnnnnnnnnnn),(nnnnnnnnnnnnn)

record will be 61A and not 86

REFERENCES

NOTE:563476.1 - R12/CE: How To Create New Bank Statement Mapping Template To Requirement, Latest Patch
BUG:17244303 - BANK STATEMENT LOAD BANK_TRX_NUMBER WITH FORMAT MASKING NOT POPULATED
BUG:14072265 - BANK_TRX_NUMBER MASKING FAILS TO MASK CORRECTLY
BUG:7572389 - BANK STATEMENT LOAD FORMAT MASKING FOR BANK_TRX_NUMBER DOES NOT WORK
BUG:13744817 - LOAD BANK STATEMENT PROGRAM ENDS IN ERROR ORA-06502: PL/SQL: NUMERIC OR V
BUG:12828793 - MT940 BANK UPLOAD STATEMENT PROGRAM IS FAILING DUE TO ISSUES
BUG:16479749 - PN: BANK STATEMENT LOADING NOT WORKING WITH ERROR MESSAGE-BANK ACCOUNT NOT DEFIN
BUG:16930596 - HOW TO MAP BANK STATEMENT LINE FOR EFT NACHA BATCH:FILEID/COMPANYID TO AUTORECON
BUG:16479749 - PN: BANK STATEMENT LOADING NOT WORKING WITH ERROR MESSAGE-BANK ACCOUNT NOT DEFIN

Didn't find what you are looking for?

https://support.oracle.com/epmos/faces/DocumentDisplay?_adf.ctrl-state=orkcv14fn_4&id=752532.1 14/14

Vous aimerez peut-être aussi