SAIF.Services.CleanAddress operations and processes¶
This page is the operation catalog and cross-operation hub for SAIF.Services.CleanAddress. The library exposes five independent operations that each wrap a single CorrectAddress vendor SOAP call: a health check, a batch cleansing launcher, a proper-case string converter, a ZIP-based city/state/county lookup, and the primary single-address cleanse. Each operation calls the vendor independently and is not part of a shared CRUD rule set, so each is documented on its own page. Each operation's detailed, step-by-step logic lives in its own page under operations/.
Operation catalog¶
| Operation | Intent | Trigger | Inputs | Outputs | Rules | Tables | SQL |
|---|---|---|---|---|---|---|---|
| Health check | Confirm that the vendor service can respond | Caller invokes clsCleanAddress.HelloWorld() |
None | Service greeting string | None registered* | — | — |
| Batch address cleanse | Launch a server-side batch run and normalize its return code | Caller invokes clsCleanAddress.RunCleanAddressBatch(inPath) |
inPath |
clsBatchReturnInfo |
BR-004 | — | — |
| Proper-case conversion | Convert a string to proper case by using the vendor service | Caller invokes clsCleanAddress.ConvertToProperCase(inString) |
inString |
Trimmed String |
None registered* | — | — |
| City/state/county lookup by ZIP | Convert a ZIP code into one or more city/state/county rows | Caller invokes clsCleanAddress.FindCityStateInfoByZip(inZIP) |
inZIP |
List(Of clsCityStateCountyInfo) |
None registered* | — | — |
| Address cleanse | Clean and classify an address, then return normalized fields and flags | Caller invokes clsCleanAddress.CleanAddress(inLine1, inLine2, inCity, inState, inZip, inZip4, inMixedCase) |
inLine1, inLine2, inCity, inState, inZip, inZip4, inMixedCase |
clsCleanAddressInfo |
BR-001, BR-002, BR-003, BR-005 | — | — |
Process flow diagram¶
The following diagram visualizes the primary address-cleansing flow, which is the library's main operation; the other four operations are single-call vendor wrappers that do not branch into this flow.
flowchart TD
Start([Caller invokes CleanAddress]) --> Proxy[Create clsCAServices proxy]
Proxy --> Call[Call vendor CleanAddress]
Call --> Exception{Exception raised?}
Exception -->|Yes| Fallback[Set USPS return code to -999]
Exception -->|No| Parse[Parse returned USPS error codes]
Fallback --> Parse
Parse --> Classify[Apply cleaned or unmatched<br>or multiple-match rules]
Classify --> Barcode[Derive POSTNET barcode<br>when check digit is numeric]
Barcode --> Return([Return clsCleanAddressInfo])
Failure and edge-case behavior¶
- Address cleanse converts service-call exceptions into return code
-999and continues result classification rather than rethrowing to the caller, per BR-003. - City/state/county lookup by ZIP depends on the vendor returning rows in the expected fixed-width layout; a mismatched row width is not validated.**
- Address cleanse leaves
PostnetBarcodeempty when the returned check digit is not a single numeric character, per BR-005. - Batch address cleanse maps return codes outside the known cases to
BatchReturnTypes.Unknown, per BR-004. - Health check, Proper-case conversion, and City/state/county lookup by ZIP do not wrap their vendor calls in a
Try/Catch, unlike Address cleanse; a SOAP fault or transport error propagates to the caller unhandled for those three operations.*
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. Statements marked with**could not be confirmed; treat as unknown until verified.
Sources¶
Services\SAIF.Services.CleanAddress\clsCleanAddress.vbServices\SAIF.Services.CleanAddress\clsBatchReturnInfo.vbServices\SAIF.Services.CleanAddress\clsCityStateCountyInfo.vbServices\SAIF.Services.CleanAddress\clsCleanAddressInfo.vbServices\SAIF.Services.CleanAddress\mdlEnums.vbServices\SAIF.Services.CleanAddress\Web References\CleanAddressSvc\Reference.vb