Professional Documents
Culture Documents
MD070 Wells Fargo ACH 1.0
MD070 Wells Fargo ACH 1.0
Author:
Last Updated:
Document Ref:
Version:
Approvals:
1.0
Document Control
Change Record
1
Date
Author
Versio
n
Change Reference
Reviewers
Name
Role
Tina Pegg
ABC Functional
Distribution
Copy
No.
Name
Location
1
2
3
4
Library Master
Project Library
Project Manager
Note To Holders:
If you receive an electronic copy of this document and print it out, please
write your name on the equivalent of the cover page, for document control
purposes.
If you receive a hard copy of this document, please write your name on the
front cover, for document control purposes.
12 of -1998
Contents
Document Control.......................................................................................ii
Technical Overview.....................................................................................1
Approach...............................................................................................1
Assumptions..........................................................................................2
Module List............................................................................................ 3
XXAR: WF ACH Remittance File - Concurrent Program Logic.......................4
Calling Arguments.................................................................................4
Log Output............................................................................................4
Table and View Usage...........................................................................4
Program Logic (pseudo code)................................................................4
SQL Statements.....................................................................................6
Validation Logic...................................................................................10
Incompatibility....................................................................................10
Performance Considerations...............................................................10
Other Considerations..........................................................................10
Integration Issues.....................................................................................12
Changes Required...............................................................................12
Shared Components............................................................................12
Alert conditions...................................................................................12
Incompatibilities..................................................................................12
Performance Issues.............................................................................12
Database Design.......................................................................................13
Desired Table Changes........................................................................13
New/Updated Seed Data.....................................................................13
Descriptive Flexfields..........................................................................13
Value Sets........................................................................................... 13
Grants/Synonyms................................................................................13
Archiving............................................................................................. 13
Database Diagram..............................................................................13
Tables, Indexes, Sequences.................................................................13
Unit Test Plan............................................................................................ 14
Installation Requirements.........................................................................15
Implementation Notes..............................................................................16
Design Summary.................................................................................16
Coding Summary.................................................................................16
Testing Summary.................................................................................17
Installation.......................................................................................... 17
Open and Closed Issues for this Deliverable.............................................18
File Ref: MD070_CU279_Wells Fargo_ACH_1.0
Last Updated: 9th June 2009
Oracle and ABC Confidential - For internal use only
12 of -1998
Open Issues......................................................................................... 18
Closed Issues.......................................................................................18
12 of -1998
Technical Overview
This document defines the technical components required to implement
customization CU279 Wells Fargo ACH program. This Application Extension
Technical Design document complements the Application Extension
Functional Design document for CU279 Wells Fargo ACH program and you
should consider the set to be the complete detailed design.
Wells Frago ACH program is the Remittance file that is a result of the
Automatc Receipt function that we are sending to Wells Fargo bank to collect
funds from ACH customers
User runs the Automatic Receipt program in Oracle from a Receipt batch
This concurrent program is developed only for INC Operating Unit (INC).
Approach
A host program (XXARWFACH) registered as concurrent program is mapped to
the Custom remittance program XXAR: WF ACH Remittance File .
A PL/SQL package (XXAR_WFACH_PKG) is created which performs the
following:
1. Extracts receipt information information for the batch number .
2. Constructs File header record, Batch header record, Entry detail record,
Special Addenda record, Batch control record and File control record
according to the required format.
3. Above records are written into a text file using UTL_FILE utility.
4. The output is emailed to I_INC_WF_ACH@SMOKESTACK.ABC.COM and a
backup is placed in the directory XXACH_WFACH_RECEIPTS.
5. The out file is written to the directory XXACH_WFACH_RECEIPTS in the
path /var/opt/utl/EBIZ/outbound/XXACH_WFACH_RECEIPTS
Assumptions
This design assumes that the following statements are true:
1. The file format is as provided by Wells Fargo
2. The program will be attached only on INC operating unit.
12 of -1998
Module List
Forms
Wells Fargo ACH program includes the following forms:
None
Reports
Wells Fargo ACH program includes the following reports:
None
Concurrent Programs
Wells Fargo ACH program includes the following concurrent programs:
XXAR: WF ACH Remittance File - This will call the host program which will
execute the PL/SQL package, which is responsible
for extracting the remittance information, and
generating the text output in the required format
and will email the test file to the email id defined
in the profile XXAR_WFACH_EMAIL_ID
Database Triggers
Wells Fargo ACH program includes the following database triggers:
None
12 of -1998
Calling Arguments
None
Log Output
.........1.........2.........3.........4.........5.........6.........7.........8
________________________________________________________________________________
Same as in 10.7
________________________________________________________________________________
Select
AR_BATCHES_ALL
AR_CASH_RECEIPT_HISTORY_ALL
AR_CASH_RECEIPTS_ALL
HZ_CUST_ACCOUNTS
HZ_PARTIES
AP_BANK_ACCOUNTS_ALL
AP_BANK_BRANCHES
Insert
Update
Delete
-- Refer SQL
3 a. OUT_PATH=$XXVFI_TOP/bin
File Ref: MD070_CU279_Wells Fargo_ACH_1.0
Last Updated: 9th June 2009
Oracle and ABC Confidential - For internal use only
12 of -1998
b. OUT_FILE=ACH$DATE.txt
SQL Statements
1 - Data Selection: Cursor for creating detail records
SELECT '6' ||
Record Type -'27'||
-- Transaction Code -rpad(nvl(substr(ABB.bank_number,1,8),' '),8,' ')||
-- Receiving DFI R/T NUMBER -rpad(Get_Check_Digit_Fnc(ABB.bank_number),1,' ')||
-- R/T Number check digit -rpad(nvl(substr(ABC.bank_account_num,1,17),' '),17,' ')||
-- Recvg DFI Account Number (Vendor A/c#) -lpad(nvl(substr((ACH.AMOUNT * 100),1,10),'0'),10,'0')||
-- Amount -rpad(nvl(substr(HCA.ACCOUNT_NUMBER,1,15),' '),15,' ')||
-- Individual ID -rpad(nvl(substr(HZ.PARTY_NAME,1,22),' '),22,' ')||
-- Individual Name -' '||
'1'||
-- Addenda Records indicator 0 for NO and 1 for YES-'091000010000001'
entry_detail_rec
-- Trace Number *** Well Fargo# AND BATCH NUMBER as in Batch Header Rec-,ABB.bank_number
bank_number
,ACH.AMOUNT
RECEIPT_AMOUNT
,ACH.TRX_DATE
RECEIPT_DATE
,ACR.RECEIPT_NUMBER
RECEIPT_NUMBER
,ABA.BATCH_ID
BATCH_ID
,ach.status
receipt_status
FROM AR_BATCHES_ALL
ABA
,AR_CASH_RECEIPT_HISTORY_ALL
ACH
,AR_CASH_RECEIPTS_ALL
ACR
File Ref: MD070_CU279_Wells Fargo_ACH_1.0
Last Updated: 9th June 2009
Oracle and ABC Confidential - For internal use only
--
12 of -1998
,HZ_CUST_ACCOUNTS
HCA
,HZ_PARTIES
HZ
,AP_BANK_ACCOUNTS_ALL
ABC
,AP_BANK_BRANCHES
ABB
WHERE ABA.BATCH_ID = ACH.BATCH_ID
AND
ACH.CASH_RECEIPT_ID = ACR.CASH_RECEIPT_ID
AND
ACH.ORG_ID = ABA.ORG_ID
and
ACR.ORG_ID = ACH.ORG_ID
AND
ACR.PAY_FROM_CUSTOMER = HCA.CUST_ACCOUNT_ID (+)
AND
HCA.PARTY_ID = HZ.PARTY_ID
and
ABC.BANK_ACCOUNT_ID ( + ) =ACR.CUSTOMER_BANK_ACCOUNT_ID
and
ABC.BANK_BRANCH_ID = ABB.BANK_BRANCH_ID ( + )
AND
ACH.CURRENT_RECORD_FLAG ='Y'
AND
ABA.TYPE = 'REMITTANCE'
AND
ABA.NAME = p_batch_name
AND
ABA.ORG_ID = g_org_id
UNION
SELECT '6' ||
-- Record Type -'27'||
-- Transaction Code -rpad(nvl(substr(ABB.bank_number,1,8),' '),8,' ')|| -- Receiving DFI R/T
NUMBER -rpad(Get_Check_Digit_Fnc(ABB.bank_number),1,' ')||
-R/T Number check digit -rpad(nvl(substr(ABC.bank_account_num,1,17),' '),17,' ')||
-Recvg DFI Account Number (Vendor A/c#) -lpad(nvl(substr((ACH.AMOUNT * 100),1,10),'0'),10,'0')||
-- Amount -rpad(nvl(substr(HCA.ACCOUNT_NUMBER,1,15),' '),15,' ')||
-Individual ID -rpad(nvl(substr(HZ.PARTY_NAME,1,22),' '),22,' ')||
-Individual Name -' '||
'1'||
-Addenda Records indicator 0 for NO and 1 for YES-'091000010000001'
entry_detail_rec
-Trace Number *** Well Fargo# AND BATCH NUMBER as in Batch Header Rec-,ABB.bank_number
bank_number
,ACH.AMOUNT
RECEIPT_AMOUNT
,ACH.TRX_DATE
RECEIPT_DATE
,ACR.RECEIPT_NUMBER
RECEIPT_NUMBER
,ABA.BATCH_ID
BATCH_ID
,ach.status
receipt_status
FROM AR_BATCHES_ALL
ABA
,AR_CASH_RECEIPT_HISTORY_ALL
ACH
,AR_CASH_RECEIPTS_ALL
ACR
,HZ_CUST_ACCOUNTS
HCA
,HZ_PARTIES
HZ
,ap_bank_accounts_all
ABC
,ap_bank_branches
ABB
,AR_BATCH_SOURCES_ALL
ABSA
WHERE ABA.BATCH_ID = ACH.BATCH_ID
AND
ACH.CASH_RECEIPT_ID = ACR.CASH_RECEIPT_ID
AND
ACH.ORG_ID = ABA.ORG_ID
and
ACR.ORG_ID = ACH.ORG_ID
AND
ACR.PAY_FROM_CUSTOMER = HCA.CUST_ACCOUNT_ID (+)
AND
HCA.PARTY_ID = HZ.PARTY_ID
and
ABC.BANK_ACCOUNT_ID ( + ) =ACR.CUSTOMER_BANK_ACCOUNT_ID
and
ABC.BANK_BRANCH_ID = ABB.BANK_BRANCH_ID ( + )
AND
ACH.CURRENT_RECORD_FLAG ='Y'
AND
ABA.BATCH_SOURCE_ID = ABSA.BATCH_SOURCE_ID
File Ref: MD070_CU279_Wells Fargo_ACH_1.0
Last Updated: 9th June 2009
Oracle and ABC Confidential - For internal use only
12 of -1998
AND
AND
AND
AND
ABSA.TYPE = 'AUTOMATIC'
ABSA.ORG_ID = ABA.ORG_ID
ABA.NAME = p_batch_name
ABA.ORG_ID = g_org_id;
is then
*
*
*
*
*
*
*
*
3 -7 -1 -3 -7 -1-3 -7 --
3 - Data Selection:
SELECT directory_path
FROM dba_directories
WHERE directory_name LIKE XXACH_WFACH_RECEIPTS ';
4 - Data Selection:
Email List:
SELECT ltrim(profile_option_value)
FROM fnd_profile_option_values
WHERE level_id=10001
-- Site level
AND profile_option_id=
(SELECT profile_option_id
FROM fnd_profile_options
WHERE profile_option_name LIKE XXAR_WFACH_EMAIL_ID);
Addendum
Replaced the customer name with invoice number in the record type 6 for the
field Individual Name (Position 55 76)
CURSORcur_detail_recIS
SELECT'6'||
RecordType
'27'||
TransactionCode
File Ref: MD070_CU279_Wells Fargo_ACH_1.0
Last Updated: 9th June 2009
Oracle and ABC Confidential - For internal use only
12 of -1998
rpad(nvl(substr(ABB.bank_number,1,8),''),8,'')||
ReceivingDFIR/TNUMBER
rpad(Get_Check_Digit_Fnc(ABB.bank_number),1,'')||
R/TNumbercheckdigit
rpad(nvl(substr(ABC.bank_account_num,1,17),''),17,'')||
RecvgDFIAccountNumber(VendorA/c#)
lpad(nvl(substr((ACH.AMOUNT*100),1,10),'0'),10,'0')||
Amount
rpad(nvl(substr(HCA.ACCOUNT_NUMBER,1,15),''),15,'')||
IndividualID
rpad(nvl(substr(HZ.PARTY_NAME,1,22),''),22,'')||
IndividualName(ModifiedbyUdayon22Jan12)
(SELECTrpad(nvl(substr(RA.TRX_NUMBER,1,22),''),22,'')
FROMra_customer_trx_allra,
ar_cash_receipts_allac,
ar_receivable_applications_allaaa
WHEREaaa.application_type='CASH'
ANDaaa.cash_receipt_id=ac.cash_receipt_id
ANDaaa.applied_customer_trx_id=ra.customer_trx_id
ANDac.cash_Receipt_id=acr.cash_receipt_idgroupbyra.trx_number)
||
''||
'1'||
AddendaRecordsindicator0forNOand1forYES
'091000010000001'entry_detail_rec
TraceNumber***WellFargo#ANDBATCHNUMBERasinBatchHeaderRec
,ABB.bank_numberbank_number
,ACH.AMOUNTRECEIPT_AMOUNT
,ACH.TRX_DATERECEIPT_DATE
,ACR.RECEIPT_NUMBERRECEIPT_NUMBER
,ABA.BATCH_IDBATCH_ID
,ach.statusreceipt_status
FROMAR_BATCHES_ALLABA
,AR_CASH_RECEIPT_HISTORY_ALLACH
,AR_CASH_RECEIPTS_ALLACR
,HZ_CUST_ACCOUNTSHCA
,HZ_PARTIESHZ
,ap_bank_accounts_allABC
,ap_bank_branchesABB
WHEREABA.BATCH_ID=ACH.BATCH_ID
ANDACH.CASH_RECEIPT_ID=ACR.CASH_RECEIPT_ID
ANDACH.ORG_ID=ABA.ORG_ID
andACR.ORG_ID=ACH.ORG_ID
ANDACR.PAY_FROM_CUSTOMER=HCA.CUST_ACCOUNT_ID(+)
ANDHCA.PARTY_ID=HZ.PARTY_ID
andABC.BANK_ACCOUNT_ID(+)=ACR.CUSTOMER_BANK_ACCOUNT_ID
andABC.BANK_BRANCH_ID=ABB.BANK_BRANCH_ID(+)
ANDACH.CURRENT_RECORD_FLAG='Y'
ANDABA.TYPE='REMITTANCE'
ANDABA.NAME=p_batch_name
ANDABA.ORG_ID=g_org_id
UNION
SELECT'6'||
RecordType
'27'||
TransactionCode
rpad(nvl(substr(ABB.bank_number,1,8),''),8,'')||
ReceivingDFIR/TNUMBER
rpad(Get_Check_Digit_Fnc(ABB.bank_number),1,'')||
R/TNumbercheckdigit
rpad(nvl(substr(ABC.bank_account_num,1,17),''),17,'')||
RecvgDFIAccountNumber(VendorA/c#)
lpad(nvl(substr((ACH.AMOUNT*100),1,10),'0'),10,'0')||
Amount
File Ref: MD070_CU279_Wells Fargo_ACH_1.0
Last Updated: 9th June 2009
Oracle and ABC Confidential - For internal use only
12 of -1998
rpad(nvl(substr(HCA.ACCOUNT_NUMBER,1,15),''),15,'')||
IndividualID
rpad(nvl(substr(HZ.PARTY_NAME,1,22),''),22,'')||
IndividualName(ModifiedbyUdayon22Jan12)
(SELECTrpad(nvl(substr(RA.TRX_NUMBER,1,22),''),22,'')
FROMra_customer_trx_allra,
ar_cash_receipts_allac,
ar_receivable_applications_allaaa
WHEREaaa.application_type='CASH'
ANDaaa.cash_receipt_id=ac.cash_receipt_id
ANDaaa.applied_customer_trx_id=ra.customer_trx_id
ANDac.cash_Receipt_id=acr.cash_receipt_idgroupbyra.trx_number)||
''||
'1'||
AddendaRecordsindicator0forNOand1forYES
'091000010000001'entry_detail_rec
TraceNumber***WellFargo#ANDBATCHNUMBERasinBatchHeaderRec
,ABB.bank_numberbank_number
,ACH.AMOUNTRECEIPT_AMOUNT
,ACH.TRX_DATERECEIPT_DATE
,ACR.RECEIPT_NUMBERRECEIPT_NUMBER
,ABA.BATCH_IDBATCH_ID
,ach.statusreceipt_status
FROMAR_BATCHES_ALLABA
,AR_CASH_RECEIPT_HISTORY_ALLACH
,AR_CASH_RECEIPTS_ALLACR
,HZ_CUST_ACCOUNTSHCA
,HZ_PARTIESHZ
,ap_bank_accounts_allABC
,ap_bank_branchesABB
,AR_BATCH_SOURCES_ALLABSA
WHEREABA.BATCH_ID=ACH.BATCH_ID
ANDACH.CASH_RECEIPT_ID=ACR.CASH_RECEIPT_ID
ANDACH.ORG_ID=ABA.ORG_ID
andACR.ORG_ID=ACH.ORG_ID
ANDACR.PAY_FROM_CUSTOMER=HCA.CUST_ACCOUNT_ID(+)
ANDHCA.PARTY_ID=HZ.PARTY_ID
andABC.BANK_ACCOUNT_ID(+)=ACR.CUSTOMER_BANK_ACCOUNT_ID
andABC.BANK_BRANCH_ID=ABB.BANK_BRANCH_ID(+)
ANDACH.CURRENT_RECORD_FLAG='Y'
ANDABA.BATCH_SOURCE_ID=ABSA.BATCH_SOURCE_ID
ANDABSA.TYPE='AUTOMATIC'
ANDABSA.ORG_ID=ABA.ORG_ID
ANDABA.NAME=p_batch_name
ANDABA.ORG_ID=g_org_id;
Validation Logic
Error Conditions:
None
12 of -1998
Warning Conditions:
None
Incompatibility
None
Performance Considerations
None
Other Considerations
Restart Strategy
Resubmit the program
Crash Recovery
Resubmit the program
12 of -1998
Integration Issues
Changes Required
Within Product
None
Other Products
None
Shared Components
INV
None
BOM
None
ENG
None
MPS/MRP
None
WIP
None
Alert conditions
None.
Incompatibilities
To itself
Performance Issues
None.
12 of -1998
Database Design
This section summarizes new and changed database objects and data
required to support CU279 Wells Fargo ACH Program. However, the complete
database design is documented in the Database Extensions Design
document.
Descriptive Flexfields
Value Sets
None
Grants/Synonyms
None
Archiving
Archiving will be done after the creation of output file at location
/var/opt/utl/<INSTANCE NAME>/outbound/ XXACH_WFACH_RECEIPTS
-- Refer to SQL Statements: Data Selection 3
Database Diagram
None
12 of -1998
12 of -1998
Installation Requirements
Installation scripts must be prepared to perform the following actions in an
automated way:
1.
Create the host program XXARWFACH.prog and create a soft link for
it.Create the package XXAR_WFACH_PKG
2.
Register the concurrent XXAR: WF ACH Remittance File for the host
program XXARWFACH with Receipt Batch Name as parameter.
3.
12 of -1998
Implementation Notes
This document describes exactly how CU279 Wells Fargo ACH was developed
and implemented at ABC Corporation.
Design Summary
Functional Design
Technical Design
Design Review
Final Acceptance
Coding Summary
Development was done on ABCs Development Instance, to work with Release
11.5.10 of Oracle Applications. All coding follows the standards defined in
the Build Standards document for ABC.
Program Files
The files required for this customization are as follows:
File
Description
XXARWFACH.prog
XXAR_WFACH_PKG.sql
Coded By
Testing Summary
The customizations were tested in ABCs test environment before being
moved to production. See the Link Test scripts for more information.
12 of -1998
Installation
All modules are installed as if part of a separate product. A UNIX directory
structure is created under $APPL_TOP as shown in the following example:
$APPL_TOP
|
XXVFI
|
1.0.0
___________________________|___________________________________
|
|
|
|
|
|
|
|
|
forms
bin
src
sql
log
out
srw
install
sql
The directories contain the components of the enhancement as shown below
(directories not listed are empty). All future customizations will also be
stored in these directories.
forms/
bin/ XXAPWFEFT.prog
src/
sql/
srw/
install/sql/
The forms and concurrent programs are registered in Application Object
Library under the XXVFI application.
12 of -1998
ID
Issue
Resolution
Responsibility
Target Date
Impact
Date
Responsibility
Target Date
Impact
Date
Closed Issues
ID
Issue
Resolution
12 of -1998