Skip to content

Compose local US Bank user identifier

This is a small, standalone utility operation: it concatenates a policy number and a business-online user ID into a single composite string, enforces US Bank's 16-character identifier limit, and returns an object exposing that ID alongside a fixed password. It has no BOF persistence and no SOAP call of its own — it exists purely to produce an identifier value another caller can supply to US Bank-facing operations.

Field Value
Operation ID OP-EPAY-09
Trigger Caller invokes User.GetUser(inPolicyNumber, inBusinessOnlineUserId)
Inputs Policy number (String), business-online user ID (String)
Outputs A User instance exposing the composite UserId and a fixed Password
Primary components User.GetUser, User.New (private constructor)
Entry point Business\SAIF.Business.EPay.USBank\User.vb

Steps

  1. Concatenate the inputs. GetUser forms the candidate identifier by concatenating inPolicyNumber and inBusinessOnlineUserId with no separator.
  2. Enforce the length limit. If the concatenated string is 16 characters or fewer, construct and return a new User with that value as its UserId (BR-017).
  3. If longer than 16 characters: throw Exception("Combination of inPolicyNumber and inBusinessOnlineUserId are too long for US Bank."). A source comment notes a possible future improvement — generating and storing a short surrogate ID instead of throwing — that is not implemented.*
  4. Expose the fixed password. The returned User.Password always returns the literal string "9999aaaa", the same hardcoded value used elsewhere in this library for US Bank user passwords.

Process flow

The following diagram visualizes this operation's control flow.

flowchart TD
    Start([GetUser policyNumber, businessOnlineUserId]) --> Concat[Concatenate policy number<br>and business-online user ID]
    Concat --> Len{Length <= 16?}
    Len -->|Yes| Ok([Return new User<br>with composite UserId])
    Len -->|No| Err([Throw: combination too long])

Failure and edge-case behavior

  • There is no separator between the policy number and business-online user ID, so different policy/user pairs could theoretically concatenate to the same composite string if one pair's boundary characters happen to match another's — for example policy "12" with user "34" versus policy "1" with user "234".*
  • The 16-character limit throws a plain System.Exception rather than a more specific or application-level exception type, unlike most other failure paths in this library which use ApplicationException.*
  • The class provides no way to reconstruct a User from an already-known composite ID — the constructor is private, so GetUser is the only entry point.

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.EPay.USBank\User.vb