Code table lookups¶
This library defines a large set of small, mostly read-only code-table classes that back the coded fields used across Bank account management, EFT authorization / consent, Debit card enrollment, Output control tracking, and other operations. Each class wraps a single lookup/GCODE table and exposes an IsValid-style check plus a description property; nearly all of them throw on insert/update/delete, since the underlying values are maintained as reference data rather than through the application. This page documents them collectively rather than one-per-class, following the same "light-touch" treatment used for comparable reference/code-table groupings in the pilot library.
| Field | Value |
|---|---|
| Operation ID | OP-EFT-10 |
| Trigger | Another operation in this library needs to validate or describe a coded field |
| Inputs | A code value (e.g., BankAccountTypeCode, BankingNetworkCode, AuthorizationTypeCode) |
| Outputs | Boolean validity result and/or a description string; for clsBankingNetworkCode only, full CRUD against its table |
| Primary components | clsAchStandardEntryClassCode, clsAddendaTypeCode, clsAuthorizationTypeCode, clsBankAccountDataSourceCode, clsBankAccountStatusCode, clsBankAccountTypeCode, clsBankingNetworkCode, clsConsumerBusinessCode, clsCreditDebitCode, clsCustomerTypeCode, clsEnrollStatusCode, clsOnlinePaymentTypeCode, clsOutputDocumentCode, clsPaymentSourceSystemCode (each with a Collection counterpart) |
| Entry point | Individual cls*Code.vb files in Business\SAIF.Business.Payment.EFT\ |
Steps¶
- Retrieve the full code table. Each class's
Collectionvariant retrieves all rows from its backing*_GCODEtable, typically ordered by display sequence or code value, for use in populating dropdown lists and validating inbound values. - Validate a supplied code. Consuming operations (e.g.,
clsBankAccount.ValidAccountTypeCode,clsEFTAuthorization's type-code validation) retrieve the single matching row by code and treat a missing row as an invalid/broken rule. - Retrieve a description. Where the underlying GCODE table supports localization, the description is joined against the caller's culture, mirroring the pattern documented for
PAYMENT_RETURN_REASON_GCODEin Payment return handling (BR-EFT-07). - Attempt to mutate (most classes). Insert/Update/Delete on nearly every class in this group throws
ApplicationException, since these tables are reference data maintained outside the application (e.g., via direct data administration) rather than through business-object CRUD. - Exception:
clsBankingNetworkCodehas full CRUD. Unlike every other class in this group,clsBankingNetworkCodeimplements real Insert, Update, and Delete methods against its backing table rather than throwing — this is the only banking-network/account-attribute code table in the library that supports being maintained through the application itself. - This asymmetry was not explained in code comments; it may reflect a historical requirement to let application administrators manage banking-network entries directly, but this could not be confirmed.*
- Cascading defaults.
clsAuthorizationTypeCodeadditionally supplies default banking-network/account-type values thatclsEFTAuthorization.AuthorizationTypeCode's setter cascades onto the linked bank account (see BR-EFT-09 and EFT authorization / consent). - ACH standard entry class validity.
clsAchStandardEntryClassCodesupplies the valid entry-class values used by BR-EFT-10 in Payment detail, events, and allocation.
Process flow¶
flowchart TD
Start([Operation needs to validate<br>or describe a coded field]) --> Retrieve[Retrieve matching code-table row]
Retrieve --> Found{Row found?}
Found -->|No| Invalid([Broken rule / invalid code])
Found -->|Yes| Valid([Code accepted; description available])
Valid --> Mutate{Attempt Insert/Update/Delete?}
Mutate -->|Most classes| Throw([ApplicationException thrown])
Mutate -->|clsBankingNetworkCode only| CRUD[Full CRUD executed against table]
Failure and edge-case behavior¶
- Nearly all code-table classes in this group are read-only from the application's perspective; any attempt to call Insert/Update/Delete on them will throw rather than silently failing or no-op'ing.
clsBankingNetworkCodeis the sole exception with real CRUD support — a caller assuming uniform read-only behavior across this whole group would be surprised by this class specifically.*- If a code value used elsewhere in the library (e.g., a
BankAccountTypeCodeon an existingBANK_ACCOUNTrow) is later removed from its reference table, any subsequent validation against that now-missing code would fail, potentially blocking updates to otherwise-valid existing records.*
Related documentation¶
Note: Statements marked with
*were inferred from code structure, naming conventions, or contextual evidence where direct confirmation was not available in source artifacts.
Sources¶
Business\SAIF.Business.Payment.EFT\clsAchStandardEntryClassCode.vbBusiness\SAIF.Business.Payment.EFT\clsAddendaTypeCode.vbBusiness\SAIF.Business.Payment.EFT\clsAddendaTypeCodecollection.vbBusiness\SAIF.Business.Payment.EFT\clsAuthorizationTypeCode.vbBusiness\SAIF.Business.Payment.EFT\clsAuthorizationTypeCodeCollection.vbBusiness\SAIF.Business.Payment.EFT\clsBankAccountDataSourceCode.vbBusiness\SAIF.Business.Payment.EFT\clsBankAccountDataSourceCodeCollection.vbBusiness\SAIF.Business.Payment.EFT\clsBankAccountStatusCode.vbBusiness\SAIF.Business.Payment.EFT\clsBankAccountStatusCodeCollection.vbBusiness\SAIF.Business.Payment.EFT\clsBankAccountTypeCode.vbBusiness\SAIF.Business.Payment.EFT\clsBankAccountTypeCodeCollection.vbBusiness\SAIF.Business.Payment.EFT\clsBankingNetworkCode.vbBusiness\SAIF.Business.Payment.EFT\clsBankingNetworkCodeCollection.vbBusiness\SAIF.Business.Payment.EFT\clsConsumerBusinessCode.vbBusiness\SAIF.Business.Payment.EFT\clsConsumerBusinessCodeCollection.vbBusiness\SAIF.Business.Payment.EFT\clsCreditDebitCode.vbBusiness\SAIF.Business.Payment.EFT\clsCreditDebitCodeCollection.vbBusiness\SAIF.Business.Payment.EFT\clsCustomerTypeCode.vbBusiness\SAIF.Business.Payment.EFT\clsCustomerTypeCodeCollection.vbBusiness\SAIF.Business.Payment.EFT\clsEnrollStatusCode.vbBusiness\SAIF.Business.Payment.EFT\clsEnrollStatusCodeCollection.vbBusiness\SAIF.Business.Payment.EFT\clsOnlinePaymentTypeCode.vbBusiness\SAIF.Business.Payment.EFT\clsOnlinePaymentTypeCodeCollection.vbBusiness\SAIF.Business.Payment.EFT\clsOutputDocumentCode.vbBusiness\SAIF.Business.Payment.EFT\clsOutputDocumentCodeCollection.vbBusiness\SAIF.Business.Payment.EFT\clsPaymentSourceSystemCode.vbBusiness\SAIF.Business.Payment.EFT\clsPaymentSourceSystemCodeCollection.vb