SteelFrame SYNBANK — Operations Manual

A developer & operator manual for SYNBANK, the clean-room synthetic core-banking estate that runs on the SteelFrame z/OS emulator. Every transaction, job, screen field and dataset below is drawn from the shipped SYNBANK source; nothing here is invented.

Contents

A. Overview & architecture B. Online transactions & screens B.1 The COMMAND ==> line (transid switch) B.2 Maker–checker (four-eyes) workflow C. Batch jobs & the nightly cycle C.1 Full batch program set D. Data files (SYN.BANK.*) E. Operations runbook F. Developer reference G. Glossary

A. Overview & architecture

SYNBANK is a clean-room, synthetic core-banking estate modelled on the function of a Systematics-class mainframe bank core (system-of-record for customers, accounts, postings, interest, GL and reporting). It is single-tenant synthetic demo data — no proprietary source, screen text, record layouts or transaction codes are reproduced. The functional model is documented in notes/SYSTEMATICS-REFERENCE.md.

Naming convention across the estate:

KindPrefixExamples
Online COBOL programsSYSBK*SYSBKCIN, SYSBKBAL, SYSBKTLR
Batch COBOL programsSYSBK*SYSBKPOST, SYSBKLNAC, SYSBKGLP
BMS mapsetsSYSBKM*SYSBKM01, SYSBKM02, SYSBKM03
Nightly-cycle JCL membersSYNB*SYNBCTLS, SYNBPOST, SYNBGLP
DatasetsSYN.BANK.*SYN.BANK.DDA.VSAM.KSDS

The estate follows the classic core-banking split (see SYSTEMATICS-REFERENCE.md §5, §8, §9):

Sources: notes/SYSTEMATICS-REFERENCE.md, notes/SYNBANK-SIM-LOG.md, test/synbk_cics_install.mjs, test/synbk_batch_install.mjs.

B. Online transactions & screens

SYNBANK installs 10 CICS transactions into the SteelFrame CICS region (group SYSBK). Seven are the headline operator functions; three (SBRD/SBRB/SBFC) are read-only oracle helpers used by the test harness but installed as real transactions.

Source note. The RDO deck header (test/import/src/SYSBKCED.jcl lines 9–22) describes "the 7 headline transactions (+3 read-only inquiry txns)". The authoritative transid→program map is the TXPGM object in test/synbk_cics_install.mjs:152–153 and the CEDA DEFINE TRANSACTION list in SYSBKCED.jcl:124–133, which both list all 10. This manual documents all 10.
TxProgramMapset / mapPurposeType
SBCISYSBKCINSYSBKM01 / CIFMPCIF customer inquiryinquiry
SBBLSYSBKBALSYSBKM01 / BALMPAccount balance & history (ledger/collect/holds/avail)inquiry
SBTLSYSBKTLRSYSBKM01 / TLRMPTeller memo-post financial txn (deposit/withdrawal)financial
SBMKSYSBKMNTSYSBKM02 / MNTMPAcct-master maintenance — MAKER (submit change)maintenance
SBCKSYSBKAPRSYSBKM02 / APRMPAcct-master maintenance — CHECKER (approve/reject)maintenance
SBHPSYSBKHLCSYSBKM03 / HLDMPTeller hold place / releasefinancial
SBPMSYSBKPRMSYSBKM03 / PRMMPProduct / parameter-table maintenancemaintenance
SBRDSYSBKRDA— (read-only)DDA status inquiry (oracle helper)inquiry
SBRBSYSBKRDB— (read-only)DDA balance inquiry (oracle helper)inquiry
SBFCSYSBKFEC— (read-only)Fee-assessment consumer inquiry (oracle helper)inquiry

Sources: test/synbk_cics_install.mjs:150–153 (CICSPGMS + TXPGM), test/import/src/SYSBKCED.jcl:124–133, and each program's header comment (SYSBK*.cbl line 3).

All maps share a common layout

Every SYNBANK map is a 24×80 screen (DFHMDI SIZE=(24,80)) with:

Common PF-key actions: ENTER submits the map (runs the function); PF3 ends the pseudo-conversational pin and frees the terminal.

SBCI — CIF customer inquiry SYSBKM01 / CIFMP

Purpose. Look up a customer master record by customer number and show identity + the accounts on file (the CIF relationship view). Read-only.

SYSBK CIF CUSTOMER INQUIRY COMMAND ==> ____ CUST NUMBER ==> __________ NAME : .............................. SSN : ......... STATUS: ........ ACCOUNTS ON FILE: ................ (up to 4 lines) ....... count ...
FieldPosLenI/OMeaning
CFCMD2,194inCOMMAND transid-switch (§B.1)
CFCUST3,2110inCustomer number to look up (cursor starts here)
CFNAME5,1430outCustomer name
CFSSN6,149outTax ID / SSN
CFSTAT7,148outCustomer status
CFACC1–410–13,540outUp to 4 accounts on file (from XREF)
CFCNT15,530outAccount count line
CFMSG22,560outResult message (e.g. CUSTOMER FOUND)

Flow. Type a customer number → ENTER → the map re-paints with the name, SSN, status and account list, and CFMSG shows CUSTOMER FOUND (or a not-found message). Seeded customers include 0000100001 AVERY N BLOOM, 0000100002 CORA D FENWICK, 0000100003 DELTA WORKS LLC, 0000100004 MIRA O SANDOVAL.

Source: SYSBKM01.bms (CIFMP), SYSBKCIN.cbl, seed in synbk_cics_install.mjs:74–79.

SBBL — account balance & history SYSBKM01 / BALMP

Purpose. Show the four balances for an account — ledger, collected, holds and available (avail printed in green) — plus up to four recent history lines. Read-only.

FieldPosLenI/OMeaning
BLCMD2,194inCOMMAND transid-switch
BLACCT3,1913inAccount number (e.g. DK00100000001)
BLLED5,1818outLedger balance
BLCOL6,1818outCollected balance
BLHLD7,1818outHolds total
BLAVL8,1818outAvailable balance (green)
BLHIS1–411–14,560outRecent activity lines
BLMSG22,560outResult message

Flow. Type an account → ENTER → balances + history paint. Available = ledger − holds − uncollected float (memo-posting model, §A).

Source: SYSBKM01.bms (BALMP), SYSBKBAL.cbl.

SBTL — teller memo posting SYSBKM01 / TLRMP

Purpose. Post a teller financial transaction (deposit or withdrawal) as a memo post — it updates the available balance, writes a journal item for the nightly hard post, and enforces an available-funds edit.

FieldPosLenI/OMeaning
TLCMD2,194inCOMMAND transid-switch
TLACCT3,1913inAccount number
TLTRAN4,191inD=deposit, W=withdrawal
TLAMT5,1911inAmount (numeric field)
TLLED7,2418outLedger balance after post
TLAVL8,2418outAvailable balance after post (green)
TLRCPT10,560outReceipt line
TLMSG22,560outResult / error
Tran-code convention. TLTRAN is D=DEPOSIT / W=WITHDRAWAL, not a debit/credit code. Any other value is rejected with TRAN MUST BE D OR W. A withdrawal exceeding available funds is rejected with NSF - INSUFFICIENT AVAILABLE FUNDS and the balance is untouched. Source: SYSBKTLR.cbl / notes/SYNBANK-SIM-LOG.md (Tick 2026-07-28).

SBHP — teller hold place / release SYSBKM03 / HLDMP

Purpose. Place or release a hold on a DDA account and see the effect on available funds. A hold reduces available balance without touching the ledger.

FieldPosLenI/OMeaning
HLCMD2,194inCOMMAND transid-switch
HLACCT3,1913inAccount number
HLACT4,191inP=place, R=release
HLAMT5,1913inHold amount (for place)
HLSEQ6,196inRelease sequence number (for release)
HLLED8,2418outLedger balance
HLAVL9,2418outAvailable balance
HLHLD10,2418outTotal hold amount
HLMSG22,560outResult (e.g. HOLD PLACED)

Flow. Place: account + P + amount → ENTER → HOLD PLACED, HLSEQ returns the assigned sequence; avail drops by the hold amount. Release: account + R + the sequence → ENTER → the hold is released. Holds live in SYN.BANK.THOLD.VSAM.KSDS.

Source: SYSBKM03.bms (HLDMP), SYSBKHLC.cbl.

SBPM — product / parameter maintenance SYSBKM03 / PRMMP

Purpose. Maintain a row in the product-parameter table (the table-driven config that governs a product's maintenance fee and min-balance waiver).

FieldPosLenI/OMeaning
PMCMD2,194inCOMMAND transid-switch
PMCODE3,194inProduct code (e.g. DDA1, SAV1, LON1)
PMFEE4,2411inNew maintenance fee
PMWAIVE5,2413inNew min-balance waiver
PMDESC7,2420outCurrent product description
PMCFEE8,2414outCurrent fee
PMCWAIVE9,2418outCurrent waiver
PMMSG22,560outResult

Flow. Type a product code → ENTER shows the current row; enter a new fee / waiver → ENTER updates SYN.BANK.PRODUCT.VSAM.KSDS. Seeded products: DDA1 REGULAR CHECKING, DDA2 BUSINESS CHECKING, SAV1 STATEMENT SAVINGS, LON1 INSTALLMENT LOAN.

Source: SYSBKM03.bms (PRMMP), SYSBKPRM.cbl, product seed synbk_cics_install.mjs:105–110.

SBMK / SBCK — account-master maintenance (maker–checker) SYSBKM02

These two transactions implement dual-control account-master maintenance. See §B.2 for the full four-eyes workflow.

SBMK — MAKER (map MNTMP)

FieldPosLenMeaning
MKCMD2,194COMMAND transid-switch
MKACCT3,1913Account to change
MKFLD4,191Field to change: N=name, S=status
MKVAL5,1930New value
MKCNAME7,2430Current name (display)
MKCSTAT8,248Current status (display)
MKMSG22,560Result

SBCK — CHECKER (map APRMP)

FieldPosLenMeaning
APCMD2,194COMMAND transid-switch
APACCT4,560Pending change — account (display)
APDESC5,560Pending change — description (display)
APMAKER6,540Maker who submitted (display)
APDEC8,261Decision: A=approve, R=reject
APMSG22,560Result

Source: SYSBKM02.bms (MNTMP/APRMP), SYSBKMNT.cbl, SYSBKAPR.cbl.

B.1 The COMMAND ==> line — operator navigation

Every SYNBANK map carries a COMMAND ==> field on row 2 (4 chars, unprotected, at POS=(2,19); reachable at client column 20). It is a real-shop "command line" that lets an operator jump between SYNBANK transactions without freeing the terminal first.

How it works. Each SYNBANK program pseudo-conversationally re-pins its own transid via EXEC CICS RETURN TRANSID('SBxx'). Immediately after its RECEIVE MAP, a CHECK-SWITCH paragraph reads the COMMAND field, upshifts it, and — if it names a known, different SYNBANK transid — issues EXEC CICS XCTL PROGRAM(target). The target cold-paints (ERASE) and re-pins itself. A blank / same-transid command falls straight through to normal processing, preserving all field entry.

Operator tip. On any SYNBANK screen, type a transid (e.g. SBTL) into COMMAND ==> and press ENTER to switch to it. To leave SYNBANK entirely and free the terminal, press PF3. Note: typing a transid into a data field (not COMMAND) does not switch — real CICS re-attaches the pinned transaction, which is correct behaviour.

Source: notes/RETEST-SYNBANK-O1-REDESIGN-2026-07-31.md; COMMAND field present in all three mapsets (SYSBKM01/02/03.bms, field IDs CFCMD/BLCMD/TLCMD/MKCMD/APCMD/HLCMD/PMCMD).

B.2 Maker–checker (four-eyes) workflow

Sensitive account-master changes (name / status) use dual control: the operator who submits a change (the maker) cannot be the one who approves it (the checker).

  1. Maker (SBMK). On MNTMP, enter the account, the field to change (Name or Status), and the new value → ENTER. The change is recorded as pending (it is not applied to the master yet).
  2. Checker (SBCK). A different user runs APRMP, which displays the pending change (account, description, maker) → enter A to approve or R to reject → ENTER. Only on approve is the change applied to the account master.
Four-eyes rule. The checker must be a different user from the maker. This separates request from authorization for master-data changes.

C. Batch jobs & the nightly cycle

The SYNBANK nightly cycle is a 5-member JCL chain in SYN.BANK.PROCLIB, run in step order. It opens the cycle, hard-posts DDA activity, accrues loan interest, consolidates and balances the GL, and rolls the business date.

#JCL memberStep(s)Program(s)What it does
1SYNBCTLSS1CTLSYSBKCTLCycle start — open the cycle (cycle-control record → status open)
2SYNBPOSTS2POSTSYSBKPOSTDDA hard post — apply POSTING.INPUT to the DDA master, write history, emit the DDA GL extract (GLE.DDA)
3SYNBLNACS3ACCRSYSBKLNACLoan accrual — accrue installment-loan interest, emit the loan GL extract (GLE.LOAN)
4SYNBGLPS4CAT / S5GLPIEBGENER / SYSBKGLPGL consolidate — S4CAT concats GLE.DDA+GLE.LOANGLE.ALL; S5GLP posts & balances the GL
5SYNBCTLRS6ROLLSYSBKCTLCycle roll — advance the business (cycle) date

Sources: test/synbk_batch_install.mjs:69 (PROCS) and the JCL members SYNB*.jcl; program headers SYSBK*.cbl:3.

Two guard rails you must know

GL dr=cr balancing gate (SYSBKGLP)

SYSBKGLP sums every debit leg and every credit leg and proves SUM(debits) = SUM(credits). It prints a trial balance (per-account period DR, period CR, balance) and a grand total, and flags OUT-OF-BALANCE if debits ≠ credits. This is the accounting safety net — an out-of-balance GL is a signal to halt and investigate, not to roll the date. Source: SYSBKGLP.cbl:3–10.

COND dependency (SYNBGLP)

Inside SYNBGLP, step S5GLP carries COND=(0,LT,S4CAT): SYSBKGLP runs only if S4CAT (the IEBGENER GL concatenation) returned RC 0. If the concat fails, the GL post is skipped rather than posting a half-consolidated GL. Source: SYNBGLP.jcl (S4CAT/S5GLP).

How an operator runs the cycle

Two equivalent ways:

1. Demand the schedule (recommended)

POST /api/sched/demand   { "job": "SYNBCTLS", "schid": "001" }

This kicks off the SYNBANK cycle through the ZWS scheduler; the folder SYNBANK then runs the 5 members in dependency order. Verify with GET /api/sched/jobs?folder=SYNBANK. Source: test/synbk_batch_install.mjs:155,158.

2. Submit the JCL directly

Submit each member from SYN.BANK.PROCLIB in order (SYNBCTLS → SYNBPOST → SYNBLNAC → SYNBGLP → SYNBCTLR) via POST /api/submit or the terminal SUBMIT path.

C.1 Full batch program set

Beyond the 5-member nightly spine, SYNBANK ships a broader batch program set (staged + compiled by test/synbk_batch_install.mjs:60–67). "Wired" means the program runs inside the current nightly cycle members; the rest are standalone (period-end, reporting, payments) — installed and runnable, but not in the current 5-member chain.

ProgramPurposeIn nightly cycle?
SYSBKLD0Phase-0 seed loader (loads the masters)install-time
SYSBKRD0Phase-0 read-back verifierverify-time
SYSBKCTLCycle-control driver (start / roll)wired (SYNBCTLS/SYNBCTLR)
SYSBKPOSTDDA hard post + history + GL extractwired (SYNBPOST)
SYSBKLNACInstallment-loan interest accrualwired (SYNBLNAC)
SYSBKGLPGL posting & balancingwired (SYNBGLP)
SYSBKNSFNSF / overdraft handlingstandalone
SYSBKAVLDeposit availability / float schedule (Reg-CC-style)standalone
SYSBKLPAYInstallment-loan payment posting & waterfallstandalone
SYSBKSAVASavings tiered daily accrual + periodic creditstandalone (period-end)
SYSBKCDACD (time-deposit) maturity & auto-renewalstandalone (period-end)
SYSBKSVCMonthly service-charge (maintenance-fee) assessmentstandalone (period-end)
SYSBKDLQLoan delinquency aging & late-chargestandalone (period-end)
SYSBKTBRTrial-balance / financial-statement reportstandalone (reporting)
SYSBKSTMTStatement generation (print stream)standalone (reporting)
SYSBKTAX1099-INT year-end interest reportingstandalone (annual)
SYSBKACHInbound ACH (NACHA) postingstandalone (payments)
SYSBKSTAATM / POS settlement postingstandalone (payments)
SYSBKWIPWire posting (payment-provider-agnostic)standalone (payments)
SYSBKSRPReject / suspense repair & re-drivestandalone (payments)

Source: BATCH array test/synbk_batch_install.mjs:60–67; purposes from each SYSBK*.cbl:3 header.

D. Data files (SYN.BANK.*)

The estate is defined by IDCAMS in SYSBKCED.jcl:65–94 and synbk_cics_install.mjs:206–220, and mapped to CICS FILE resources in synbk_cics_install.mjs:154–159. All KSDS clusters are on volume WORK01, SHAREOPTIONS(2 3).

DatasetTypeKey(len,off)RecCopybookCICS FILE / key programs
SYN.BANK.CIF.VSAM.KSDSKSDS10,085SYSBKCIFSYSBKCIF — SYSBKCIN
SYN.BANK.XREF.VSAM.KSDSKSDS23,040SYSBKXRFSYSBKXRF — SYSBKCIN
SYN.BANK.DDA.VSAM.KSDSKSDS13,0118SYSBKDDASYSBKDDA — SYSBKBAL/TLR/HLC/POST
SYN.BANK.SAV.VSAM.KSDSKSDS13,096SYSBKSAVSYSBKSAVA
SYN.BANK.LOAN.VSAM.KSDSKSDS13,0104SYSBKLONSYSBKLNAC/LPAY/DLQ
SYN.BANK.GLMAST.VSAM.KSDSKSDS16,086SYSBKGLMSYSBKGLP/TBR
SYN.BANK.TRANCODE.VSAM.KSDSKSDS3,050SYSBKTCTSYSBKPOST
SYN.BANK.PRODUCT.VSAM.KSDSKSDS4,051SYSBKPRDSYSBKPRD — SYSBKPRM/SVC
SYN.BANK.GLMAP.VSAM.KSDSKSDS4,070SYSBKGLXSYSBKPOST/LNAC (GL mapping)
SYN.BANK.RATE.VSAM.KSDSKSDS2,043SYSBKRATSYSBKLNAC/SAVA
SYN.BANK.CYCLE.VSAM.KSDSKSDS4,050SYSBKCYCSYSBKCTL
SYN.BANK.JRNL.VSAM.KSDSKSDS19,080SYSBKJRNSYSBKJRN — SYSBKTLR (journal)
SYN.BANK.CAPTURE.VSAM.KSDSKSDS19,080SYSBKCAPSYSBKCAP — capture feed
SYN.BANK.PEND.VSAM.KSDSKSDS19,0120SYSBKPNDSYSBKPND — maker-checker pending
SYN.BANK.THOLD.VSAM.KSDSKSDS19,068SYSBKTHDSYSBKTHD — SYSBKHLC (holds)
SYN.BANK.HIST.VSAM.ESDSESDS100SYSBKHSTSYSBKPOST (history)
SYN.BANK.POSTING.INPUTPS (FB 80)80SYSBKPINSYSBKPOST DD PININ
SYN.BANK.GLE.DDA / .LOAN / .ALLPSSYSBKGLESYSBKPOST/LNAC out, IEBGENER concat, SYSBKGLP in
SYN.BANK.SRCPDS(E)FB 80program + mapset source
SYN.BANK.COPYLIBPDS(E)FB 80copybooks + BMS DSECTs
SYN.BANK.PROCLIBPDS(E)FB 80SYNB* nightly JCL members

Sources: SYSBKCED.jcl:65–94, synbk_cics_install.mjs:146–159,206–220, synbk_batch_install.mjs:127–147 (HIST ESDS + POSTING.INPUT PS). The 8 CICS-defined FILE resources are exactly the FILES object in synbk_cics_install.mjs:154–159; the rest are batch-accessed by DD.

E. Operations runbook

Reaching a transaction (:3270 terminal)

  1. Open the SteelFrame terminal at http://localhost:3270/.
  2. Type a SYNBANK transid (SBCI, SBBL, SBTL, SBMK, SBCK, SBHP, SBPM) and press ENTER — the map paints.
  3. To switch to another SYNBANK transaction, type its transid into the COMMAND ==> field (row 2) and press ENTER (§B.1).
  4. Press PF3 to end and free the terminal.

Read a balance

Start SBBL → type an account (e.g. DK00100000001) → ENTER. Read AVAIL (green) for spendable funds; HOLDS shows the reduction from placed holds.

Post a teller transaction

Start SBTL → account, D or W, amount → ENTER. A withdrawal over available funds is rejected (NSF - INSUFFICIENT AVAILABLE FUNDS) and nothing changes. The post is a memo post — it will be hard-posted by the nightly cycle.

Place / release a hold

Start SBHP. Place: account + P + amount → ENTER; note the returned REL SEQ. Release: account + R + that sequence → ENTER.

Do a maker–checker change

Maker runs SBMK (account, N/S, new value → ENTER). A different user runs SBCK, reviews the pending change, and enters A (approve) or R (reject) → ENTER. Only approval applies the change (§B.2).

Run the nightly cycle

  1. Demand it: POST /api/sched/demand {job:'SYNBCTLS', schid:'001'} (or submit the 5 SYNB* members in order).
  2. Watch GET /api/sched/jobs?folder=SYNBANK for all 5 to complete.
  3. Check the SYSBKGLP trial balance — it must show debits = credits (no OUT-OF-BALANCE).
  4. Confirm SYNBCTLR rolled the business date in the cycle-control record.

What the guard rails protect against

F. Developer reference

Install path

SideDriverWhat it installs
Online (CICS)test/synbk_cics_install.mjs --live10 programs + 3 mapsets + estate KSDS clusters + CEDA DEFINE/INSTALL; drives a live SBCI round-trip as proof
Batchtest/synbk_batch_install.mjs --live~20 batch programs into LOADLIB + SYN.BANK.PROCLIB (5 SYNB* members) + HIST ESDS + POSTING.INPUT PS; demands the cycle to verify 5/5

Both drivers are idempotent (allocate / define / stage / compile / CEDA-define all tolerate "already present") and log on as IBMUSER/SYS1. Run without --live for a dry-run plan print.

The RDO / source-of-truth deck

test/import/src/SYSBKCED.jcl is the authoritative, human-readable statement of what is installed online: STEP 1 allocates SRC+COPYLIB, STEP 2 assembles the 3 BMS mapsets (DFHBMSCP PARM='SYSPARM(DSECT)'), STEP 3 IDCAMS-defines the clusters, STEP 4 compiles via IGYWCL, and STEP 5 reproduces the full CEDA DEFINE PROGRAM/MAPSET/TRANSACTION/FILE + INSTALL GROUP(SYSBK) list.

Copybook set

Online copybooks (staged by the CICS install, synbk_cics_install.mjs:146–148):

SYSBKCIF SYSBKXRF SYSBKACT SYSBKDDA SYSBKSAV SYSBKLON SYSBKGLM
SYSBKHST SYSBKTCT SYSBKPRD SYSBKGLX SYSBKRAT SYSBKCYC SYSBKPIN
SYSBKGLE SYSBKJRN SYSBKCAP SYSBKPND SYSBKTHD

The batch install stages additional copybooks discovered by COPY-scanning each batch program (synbk_batch_install.mjs:73–80,99–101) — e.g. fee / OD-link / routing / suspense copybooks that the online subset does not need. The BMS symbolic map DSECTs (SYSBKM01/02/03) are punched into COPYLIB by DFHBMSCP at assemble time, so adding a map field regenerates the DSECT — no copybook is hand-edited.

Compile / install on an ephemeral engine

To verify changes without touching the live region, spin up your own engine on a random port with a mkdtemp copy of web/, then point the driver at it:

STEELFRAME_PORT=0    # random port; read the chosen port from startup log
node test/synbk_cics_install.mjs  --live
node test/synbk_batch_install.mjs --live

The compile pipeline is the real IGYWCL cataloged procedure (COBOL.SYSLIB → SYN.BANK.COPYLIB, COBOL.SYSIN → SYN.BANK.SRC(pgm)); a maxcc > 4 aborts the install with the first IGY diagnostics.

Where the tests (battles) are

BattleCovers
tw_synbank_p0Seed load / read-back (SYSBKLD0/RD0)
tw_synbank_p1Cycle spine (post / accrual / GL)
tw_synbank_p2Online phase-2 (CIF / balance / teller)
tw_synbank_p3NSF / availability / loan payment
tw_synbank_p4 (batch)Period-end (savings/CD/svc/dlq) + payments
tw_synbank_p4_cicsMaker-checker + hold + param maint online
tw_synbank_p5Statements / tax / interfaces
tw_synbank_cicsinstallFull CICS install verification
tw_synbk_pseudoconvPseudo-conversational pin / COMMAND switch
tw_synbank_schedNightly schedule (SYNBANK folder)

Battle names as cited in notes/RETEST-SYNBANK-O1-REDESIGN-2026-07-31.md §"FULL SYNBANK REGRESSION". The SYNBANK suites are synbk_* / synbank_*; tw_syn_* is a different estate and does not apply here.

Source-of-truth caveat. The file test/import/SYNBANK.csd is an unrelated sample CSD (transactions SN00/SYNMENU) — do not use it as the SYNBANK inventory. The real inventory is SYSBKCED.jcl plus the two install drivers.

G. Glossary

TermMeaning
CIFCustomer Information File — the customer master + relationship hub (SBCI).
DDADemand Deposit Account (checking).
Memo postProvisional real-time balance update during the day; not yet on the ledger.
Hard postAuthoritative posting to ledger balances in the nightly cycle (SYSBKPOST).
Ledger / collected / availableBook balance / cleared funds / spendable funds after holds & float.
HoldA restriction reducing available funds (SBHP / THOLD).
NSFNon-Sufficient Funds — an over-available withdrawal is rejected.
Cycle dateThe logical business date the cycle controls; rolled by SYNBCTLR.
Tran codeClassifies a posting; drives balance effect and GL mapping (TRANCODE / GLMAP).
Maker / checkerDual-control roles for master-data change (SBMK submits, SBCK approves).
GL interfaceApplication activity → tran code → GLMAP table → debit/credit GL accounts.

Fuller vocabulary: notes/SYSTEMATICS-REFERENCE.md §13.