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.
← back to the terminal conformance REST admin API
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:
| Kind | Prefix | Examples |
|---|---|---|
| Online COBOL programs | SYSBK* | SYSBKCIN, SYSBKBAL, SYSBKTLR |
| Batch COBOL programs | SYSBK* | SYSBKPOST, SYSBKLNAC, SYSBKGLP |
| BMS mapsets | SYSBKM* | SYSBKM01, SYSBKM02, SYSBKM03 |
| Nightly-cycle JCL members | SYNB* | SYNBCTLS, SYNBPOST, SYNBGLP |
| Datasets | SYN.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.
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.
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.| Tx | Program | Mapset / map | Purpose | Type |
|---|---|---|---|---|
| SBCI | SYSBKCIN | SYSBKM01 / CIFMP | CIF customer inquiry | inquiry |
| SBBL | SYSBKBAL | SYSBKM01 / BALMP | Account balance & history (ledger/collect/holds/avail) | inquiry |
| SBTL | SYSBKTLR | SYSBKM01 / TLRMP | Teller memo-post financial txn (deposit/withdrawal) | financial |
| SBMK | SYSBKMNT | SYSBKM02 / MNTMP | Acct-master maintenance — MAKER (submit change) | maintenance |
| SBCK | SYSBKAPR | SYSBKM02 / APRMP | Acct-master maintenance — CHECKER (approve/reject) | maintenance |
| SBHP | SYSBKHLC | SYSBKM03 / HLDMP | Teller hold place / release | financial |
| SBPM | SYSBKPRM | SYSBKM03 / PRMMP | Product / parameter-table maintenance | maintenance |
| SBRD | SYSBKRDA | — (read-only) | DDA status inquiry (oracle helper) | inquiry |
| SBRB | SYSBKRDB | — (read-only) | DDA balance inquiry (oracle helper) | inquiry |
| SBFC | SYSBKFEC | — (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).
Every SYNBANK map is a 24×80 screen (DFHMDI SIZE=(24,80)) with:
SYSBK CIF CUSTOMER INQUIRY).POS=(2,5), a
4-char unprotected input field at POS=(2,19)) — see §B.1.POS=(22,5) (60 chars) that
returns results/errors (e.g. CUSTOMER FOUND,
NSF - INSUFFICIENT AVAILABLE FUNDS).Common PF-key actions: ENTER submits the map (runs the function); PF3 ends the pseudo-conversational pin and frees the terminal.
Purpose. Look up a customer master record by customer number and show identity + the accounts on file (the CIF relationship view). Read-only.
| Field | Pos | Len | I/O | Meaning |
|---|---|---|---|---|
| CFCMD | 2,19 | 4 | in | COMMAND transid-switch (§B.1) |
| CFCUST | 3,21 | 10 | in | Customer number to look up (cursor starts here) |
| CFNAME | 5,14 | 30 | out | Customer name |
| CFSSN | 6,14 | 9 | out | Tax ID / SSN |
| CFSTAT | 7,14 | 8 | out | Customer status |
| CFACC1–4 | 10–13,5 | 40 | out | Up to 4 accounts on file (from XREF) |
| CFCNT | 15,5 | 30 | out | Account count line |
| CFMSG | 22,5 | 60 | out | Result 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.
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.
| Field | Pos | Len | I/O | Meaning |
|---|---|---|---|---|
| BLCMD | 2,19 | 4 | in | COMMAND transid-switch |
| BLACCT | 3,19 | 13 | in | Account number (e.g. DK00100000001) |
| BLLED | 5,18 | 18 | out | Ledger balance |
| BLCOL | 6,18 | 18 | out | Collected balance |
| BLHLD | 7,18 | 18 | out | Holds total |
| BLAVL | 8,18 | 18 | out | Available balance (green) |
| BLHIS1–4 | 11–14,5 | 60 | out | Recent activity lines |
| BLMSG | 22,5 | 60 | out | Result message |
Flow. Type an account → ENTER → balances + history paint. Available = ledger − holds − uncollected float (memo-posting model, §A).
Source: SYSBKM01.bms (BALMP), SYSBKBAL.cbl.
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.
| Field | Pos | Len | I/O | Meaning |
|---|---|---|---|---|
| TLCMD | 2,19 | 4 | in | COMMAND transid-switch |
| TLACCT | 3,19 | 13 | in | Account number |
| TLTRAN | 4,19 | 1 | in | D=deposit, W=withdrawal |
| TLAMT | 5,19 | 11 | in | Amount (numeric field) |
| TLLED | 7,24 | 18 | out | Ledger balance after post |
| TLAVL | 8,24 | 18 | out | Available balance after post (green) |
| TLRCPT | 10,5 | 60 | out | Receipt line |
| TLMSG | 22,5 | 60 | out | Result / error |
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).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.
| Field | Pos | Len | I/O | Meaning |
|---|---|---|---|---|
| HLCMD | 2,19 | 4 | in | COMMAND transid-switch |
| HLACCT | 3,19 | 13 | in | Account number |
| HLACT | 4,19 | 1 | in | P=place, R=release |
| HLAMT | 5,19 | 13 | in | Hold amount (for place) |
| HLSEQ | 6,19 | 6 | in | Release sequence number (for release) |
| HLLED | 8,24 | 18 | out | Ledger balance |
| HLAVL | 9,24 | 18 | out | Available balance |
| HLHLD | 10,24 | 18 | out | Total hold amount |
| HLMSG | 22,5 | 60 | out | Result (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.
Purpose. Maintain a row in the product-parameter table (the table-driven config that governs a product's maintenance fee and min-balance waiver).
| Field | Pos | Len | I/O | Meaning |
|---|---|---|---|---|
| PMCMD | 2,19 | 4 | in | COMMAND transid-switch |
| PMCODE | 3,19 | 4 | in | Product code (e.g. DDA1, SAV1, LON1) |
| PMFEE | 4,24 | 11 | in | New maintenance fee |
| PMWAIVE | 5,24 | 13 | in | New min-balance waiver |
| PMDESC | 7,24 | 20 | out | Current product description |
| PMCFEE | 8,24 | 14 | out | Current fee |
| PMCWAIVE | 9,24 | 18 | out | Current waiver |
| PMMSG | 22,5 | 60 | out | Result |
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.
These two transactions implement dual-control account-master maintenance. See §B.2 for the full four-eyes workflow.
| Field | Pos | Len | Meaning |
|---|---|---|---|
| MKCMD | 2,19 | 4 | COMMAND transid-switch |
| MKACCT | 3,19 | 13 | Account to change |
| MKFLD | 4,19 | 1 | Field to change: N=name, S=status |
| MKVAL | 5,19 | 30 | New value |
| MKCNAME | 7,24 | 30 | Current name (display) |
| MKCSTAT | 8,24 | 8 | Current status (display) |
| MKMSG | 22,5 | 60 | Result |
| Field | Pos | Len | Meaning |
|---|---|---|---|
| APCMD | 2,19 | 4 | COMMAND transid-switch |
| APACCT | 4,5 | 60 | Pending change — account (display) |
| APDESC | 5,5 | 60 | Pending change — description (display) |
| APMAKER | 6,5 | 40 | Maker who submitted (display) |
| APDEC | 8,26 | 1 | Decision: A=approve, R=reject |
| APMSG | 22,5 | 60 | Result |
Source: SYSBKM02.bms (MNTMP/APRMP),
SYSBKMNT.cbl, SYSBKAPR.cbl.
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.
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).
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).
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).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.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 member | Step(s) | Program(s) | What it does |
|---|---|---|---|---|
| 1 | SYNBCTLS | S1CTL | SYSBKCTL | Cycle start — open the cycle (cycle-control record → status open) |
| 2 | SYNBPOST | S2POST | SYSBKPOST | DDA hard post — apply POSTING.INPUT to the DDA master, write history, emit the DDA GL extract (GLE.DDA) |
| 3 | SYNBLNAC | S3ACCR | SYSBKLNAC | Loan accrual — accrue installment-loan interest, emit the loan GL extract (GLE.LOAN) |
| 4 | SYNBGLP | S4CAT / S5GLP | IEBGENER / SYSBKGLP | GL consolidate — S4CAT concats GLE.DDA+GLE.LOAN → GLE.ALL; S5GLP posts & balances the GL |
| 5 | SYNBCTLR | S6ROLL | SYSBKCTL | Cycle 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.
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.
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).
Two equivalent ways:
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.
Submit each member from SYN.BANK.PROCLIB in order
(SYNBCTLS → SYNBPOST → SYNBLNAC → SYNBGLP → SYNBCTLR) via
POST /api/submit or the terminal SUBMIT path.
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.
| Program | Purpose | In nightly cycle? |
|---|---|---|
| SYSBKLD0 | Phase-0 seed loader (loads the masters) | install-time |
| SYSBKRD0 | Phase-0 read-back verifier | verify-time |
| SYSBKCTL | Cycle-control driver (start / roll) | wired (SYNBCTLS/SYNBCTLR) |
| SYSBKPOST | DDA hard post + history + GL extract | wired (SYNBPOST) |
| SYSBKLNAC | Installment-loan interest accrual | wired (SYNBLNAC) |
| SYSBKGLP | GL posting & balancing | wired (SYNBGLP) |
| SYSBKNSF | NSF / overdraft handling | standalone |
| SYSBKAVL | Deposit availability / float schedule (Reg-CC-style) | standalone |
| SYSBKLPAY | Installment-loan payment posting & waterfall | standalone |
| SYSBKSAVA | Savings tiered daily accrual + periodic credit | standalone (period-end) |
| SYSBKCDA | CD (time-deposit) maturity & auto-renewal | standalone (period-end) |
| SYSBKSVC | Monthly service-charge (maintenance-fee) assessment | standalone (period-end) |
| SYSBKDLQ | Loan delinquency aging & late-charge | standalone (period-end) |
| SYSBKTBR | Trial-balance / financial-statement report | standalone (reporting) |
| SYSBKSTMT | Statement generation (print stream) | standalone (reporting) |
| SYSBKTAX | 1099-INT year-end interest reporting | standalone (annual) |
| SYSBKACH | Inbound ACH (NACHA) posting | standalone (payments) |
| SYSBKSTA | ATM / POS settlement posting | standalone (payments) |
| SYSBKWIP | Wire posting (payment-provider-agnostic) | standalone (payments) |
| SYSBKSRP | Reject / suspense repair & re-drive | standalone (payments) |
Source: BATCH array test/synbk_batch_install.mjs:60–67;
purposes from each SYSBK*.cbl:3 header.
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).
| Dataset | Type | Key(len,off) | Rec | Copybook | CICS FILE / key programs |
|---|---|---|---|---|---|
| SYN.BANK.CIF.VSAM.KSDS | KSDS | 10,0 | 85 | SYSBKCIF | SYSBKCIF — SYSBKCIN |
| SYN.BANK.XREF.VSAM.KSDS | KSDS | 23,0 | 40 | SYSBKXRF | SYSBKXRF — SYSBKCIN |
| SYN.BANK.DDA.VSAM.KSDS | KSDS | 13,0 | 118 | SYSBKDDA | SYSBKDDA — SYSBKBAL/TLR/HLC/POST |
| SYN.BANK.SAV.VSAM.KSDS | KSDS | 13,0 | 96 | SYSBKSAV | SYSBKSAVA |
| SYN.BANK.LOAN.VSAM.KSDS | KSDS | 13,0 | 104 | SYSBKLON | SYSBKLNAC/LPAY/DLQ |
| SYN.BANK.GLMAST.VSAM.KSDS | KSDS | 16,0 | 86 | SYSBKGLM | SYSBKGLP/TBR |
| SYN.BANK.TRANCODE.VSAM.KSDS | KSDS | 3,0 | 50 | SYSBKTCT | SYSBKPOST |
| SYN.BANK.PRODUCT.VSAM.KSDS | KSDS | 4,0 | 51 | SYSBKPRD | SYSBKPRD — SYSBKPRM/SVC |
| SYN.BANK.GLMAP.VSAM.KSDS | KSDS | 4,0 | 70 | SYSBKGLX | SYSBKPOST/LNAC (GL mapping) |
| SYN.BANK.RATE.VSAM.KSDS | KSDS | 2,0 | 43 | SYSBKRAT | SYSBKLNAC/SAVA |
| SYN.BANK.CYCLE.VSAM.KSDS | KSDS | 4,0 | 50 | SYSBKCYC | SYSBKCTL |
| SYN.BANK.JRNL.VSAM.KSDS | KSDS | 19,0 | 80 | SYSBKJRN | SYSBKJRN — SYSBKTLR (journal) |
| SYN.BANK.CAPTURE.VSAM.KSDS | KSDS | 19,0 | 80 | SYSBKCAP | SYSBKCAP — capture feed |
| SYN.BANK.PEND.VSAM.KSDS | KSDS | 19,0 | 120 | SYSBKPND | SYSBKPND — maker-checker pending |
| SYN.BANK.THOLD.VSAM.KSDS | KSDS | 19,0 | 68 | SYSBKTHD | SYSBKTHD — SYSBKHLC (holds) |
| SYN.BANK.HIST.VSAM.ESDS | ESDS | — | 100 | SYSBKHST | SYSBKPOST (history) |
| SYN.BANK.POSTING.INPUT | PS (FB 80) | — | 80 | SYSBKPIN | SYSBKPOST DD PININ |
| SYN.BANK.GLE.DDA / .LOAN / .ALL | PS | — | — | SYSBKGLE | SYSBKPOST/LNAC out, IEBGENER concat, SYSBKGLP in |
| SYN.BANK.SRC | PDS(E) | — | FB 80 | — | program + mapset source |
| SYN.BANK.COPYLIB | PDS(E) | — | FB 80 | — | copybooks + BMS DSECTs |
| SYN.BANK.PROCLIB | PDS(E) | — | FB 80 | — | SYNB* 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.
SBCI, SBBL,
SBTL, SBMK, SBCK, SBHP,
SBPM) and press ENTER — the map paints.Start SBBL → type an account (e.g. DK00100000001) →
ENTER. Read AVAIL (green) for spendable funds; HOLDS
shows the reduction from placed holds.
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.
Start SBHP. Place: account + P + amount → ENTER; note
the returned REL SEQ. Release: account + R + that sequence →
ENTER.
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).
POST /api/sched/demand {job:'SYNBCTLS', schid:'001'}
(or submit the 5 SYNB* members in order).GET /api/sched/jobs?folder=SYNBANK for all 5 to complete.SYSBKGLP trial balance — it must show debits = credits
(no OUT-OF-BALANCE).SYNBCTLR rolled the business date in the cycle-control
record.| Side | Driver | What it installs |
|---|---|---|
| Online (CICS) | test/synbk_cics_install.mjs --live | 10 programs + 3 mapsets + estate KSDS clusters + CEDA DEFINE/INSTALL; drives a live SBCI round-trip as proof |
| Batch | test/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.
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.
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.
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.
| Battle | Covers |
|---|---|
| tw_synbank_p0 | Seed load / read-back (SYSBKLD0/RD0) |
| tw_synbank_p1 | Cycle spine (post / accrual / GL) |
| tw_synbank_p2 | Online phase-2 (CIF / balance / teller) |
| tw_synbank_p3 | NSF / availability / loan payment |
| tw_synbank_p4 (batch) | Period-end (savings/CD/svc/dlq) + payments |
| tw_synbank_p4_cics | Maker-checker + hold + param maint online |
| tw_synbank_p5 | Statements / tax / interfaces |
| tw_synbank_cicsinstall | Full CICS install verification |
| tw_synbk_pseudoconv | Pseudo-conversational pin / COMMAND switch |
| tw_synbank_sched | Nightly 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.
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.| Term | Meaning |
|---|---|
| CIF | Customer Information File — the customer master + relationship hub (SBCI). |
| DDA | Demand Deposit Account (checking). |
| Memo post | Provisional real-time balance update during the day; not yet on the ledger. |
| Hard post | Authoritative posting to ledger balances in the nightly cycle (SYSBKPOST). |
| Ledger / collected / available | Book balance / cleared funds / spendable funds after holds & float. |
| Hold | A restriction reducing available funds (SBHP / THOLD). |
| NSF | Non-Sufficient Funds — an over-available withdrawal is rejected. |
| Cycle date | The logical business date the cycle controls; rolled by SYNBCTLR. |
| Tran code | Classifies a posting; drives balance effect and GL mapping (TRANCODE / GLMAP). |
| Maker / checker | Dual-control roles for master-data change (SBMK submits, SBCK approves). |
| GL interface | Application activity → tran code → GLMAP table → debit/credit GL accounts. |
Fuller vocabulary: notes/SYSTEMATICS-REFERENCE.md §13.