You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Engine: extract the CICS transaction map (CSD DEFINE TRANSACTION + START/RETURN/XCTL TRANSID) — the app's entry points #3247
Found while auditing what the #3211 differential covers. The engine builds the internal control-flow graph (COBOL CALL, CICS LINK/XCTL, JCL EXEC PGM= — #3200) and dataset lineage (#3201), but it does not capture the CICS transaction map: which transaction IDs exist and which program each one entry-points into.
The gap
No CSD/RDO parser — there is no .csd language handler under gitgalaxy/standards/language_standards/languages/, so the resource definitions are never read.
The corpora ship the definitions, unparsed: app/csd/CARDDEMO.CSD, app/app-vsam-mq/csd/CRDDEMOM.csd (carddemo), etc/install/base/installjcl/BANK.csd (CBSA) — all full of DEFINE TRANSACTION(xxxx) PROGRAM(yyyy) ....
The COBOL routes control by transaction too: EXEC CICS RETURN TRANSID('OCCS'), START TRANSID, XCTL ... , RUN TRANSID. Today those are only counted as arch_concurrency / arch_ipcsignals, not turned into edges.
Why it matters
In a CICS application the transaction is the front door: a terminal/user submits a 4-character transaction ID and CICS routes it to a program. Without the transaction map we have the internal call graph but not the external entry points — we can see how programs call each other, but not what a user can actually invoke, nor which flow each screen/transaction starts. For "we understand the structure of a CICS repo" this is the missing top layer, and it's what a modernizer needs to define service/API boundaries (each transaction ≈ a candidate endpoint).
Scope sketch
Parse the CSD (.csd, and DEFINE TRANSACTION/DEFINE PROGRAM in DFHCSDUP JCL input): a csd language handler that yields transaction → program (and PROFILE/GROUP) resources into the master DB.
refraction_differential.py --corpus reports transactions as a compared datum, and the refraction pipeline can name each program's entry transaction(s) — the basis for service/endpoint boundaries in the generated tree.
Sibling of #3246 (data-division items); part of epic #3122.
Activity