Easytrieve constants look timeless because ZERO and SPACE behaved the same on CA mainframes decades ago. Release upgrades still matter. Broadcom Easytrieve Report Generator 11.6 documents field-class conditions, figurative MOVE sources, file-presence EOF, record-relational DUPLICATE, SQL NULL indicators, and report keywords such as BREAK and HIGHEST-BREAK. Older CA-Easytrieve Plus manuals and IBM MU documentation add names like FIRST-DETAIL, POST-BREAK, and BEFORE-DETAIL that may not appear identically in every modern reserved-word table. Migration teams must compare release notes, recompile macros, and run regression reports. This page maps constant families across product eras, highlights stable versus evolving keywords, and gives practical verification steps for beginners maintaining mixed-era shops.
| Era | Typical reference | Constant notes |
|---|---|---|
| CA-Easytrieve Plus | CA Application and Language Reference PDFs | Core figurative constants; extensive report PROC vocabulary |
| CA Easytrieve Report Generator | CA/Broadcom transition manuals | SQL NULL and expanded reserved words |
| Broadcom 11.6 | techdocs.broadcom.com 11.6 Language Reference | Authoritative for new development; XML report options |
| IBM MU Easytrieve | IBM MU 4.x keyword lists | FIRST-DETAIL, POST-BREAK, BEFORE-DETAIL naming |
These constants appear across CA and Broadcom documentation with consistent byte-level meaning on z/OS EBCDIC single-byte fields. Verify DBCS and MIXED rules on multilingual files because Broadcom 11.6 documents per-byte tests differently for DBCS subjects.
Shops migrating from very old source rarely need to change these spellings. Problems appear when programmers hard-code hexadecimal literals instead of figurative constants and then port between ASCII test environments and EBCDIC production.
NULL as a field-class condition and MOVE NULL target is a database-era addition tied to SQL INCLUDE NULLABLE, manual 2 B 0 indicators, and nullable assignment rules in Broadcom 11.6. Legacy batch-only payroll programs without SQL may never reference NULL. When converting DB2 extracts to Easytrieve SQL jobs, add NULL tests before arithmetic. Moving spaces to nullable fields sets NOT NULL per Broadcom MOVE rules—a behavior that surprises teams expecting SQL semantics from other languages.
123456789* Broadcom 11.6 SQL nullable pattern SQL INCLUDE EMP-TABLE NULLABLE JOB INPUT SQL NAME(READ-EMP) IF EMPPHONE NULL DISPLAY 'PHONE UNKNOWN' ELSE DISPLAY EMPPHONE END-IF
EOF as file-presence condition is documented across CA and Broadcom conditional expression chapters. DUPLICATE, FIRST-DUP, and LAST-DUP record-relational conditions require sorted or synchronized input and stable keys—behavior unchanged in concept though JOB syntax examples grew clearer in 11.6 synchronized file processing guides. FILE-STATUS numeric field semantics remain essential beside EOF tests.
| Name | Broadcom 11.6 | Legacy / IBM notes |
|---|---|---|
| DTLCTL FIRST | REPORT parameter documented | Compile-time default in options table |
| BREAK / HIGHEST-BREAK | Field-class conditions for CONTROL fields | LEVEL numeric alternative |
| FIRST-DETAIL | Verify compiler support; not in main reserved table | IBM BEFORE-DETAIL conditional |
| POST-BREAK | Verify compiler support | IBM break-only first detail |
| BEFORE-LINE / BEFORE-BREAK | Documented report procedures | CA report PROC standard |
Broadcom migration notes list reserved words that became keywords in newer releases. Examples cited in shop migration material include BREAK-LEVEL, ELEMENT-RECORD, EXECUTE, GRAPH, HIGH-VALUES, LOGICAL-RECORD, LOW-VALUES, SET, SUMMARY-INDEX, and SYSUSERID. If legacy programs used those strings as field names, compilation fails after upgrade until names are renamed. This is not a constant semantic change but a naming collision that blocks deployment of constant tutorials in old source.
1234567891011121314* Constant smoke test — adapt field types to your shop DEFINE TEST-A W 4 A DEFINE TEST-N W 4 N MOVE SPACES TO TEST-A MOVE ZERO TO TEST-N MOVE HIGH-VALUES TO TEST-A IF TEST-A HIGH-VALUES DISPLAY 'HIGH-VALUES OK' END-IF MOVE LOW-VALUES TO TEST-A IF TEST-A LOW-VALUES DISPLAY 'LOW-VALUES OK' END-IF
Some report behaviors are compile-time defaults overridable at REPORT statement. DTLCTL in the install options table sets default detail control printing; REPORT DTLCTL FIRST overrides per report. This split existed in CA products and remains in 11.6 Report Options documentation. Runtime constants like EOF and DUPLICATE depend on data and file state during execution—same program binary can hit EOF on one run and not another.
Broadcom documents mainframe z/OS as primary but includes non-mainframe FILE statement notes in some chapters. Figurative constant byte values assume host encoding. Cross-platform ports must validate SPACE and HIGH-VALUES behavior on the actual platform rather than assuming EBCDIC X'40' and X'FF' on every environment.
Constants are magic words the Easytrieve teacher knows. Most magic words stayed the same for years—blank, zero, all-ones, all-off bits. New textbooks added more magic words for databases and fancier reports. When your school gets new textbooks, you check whether your old homework still uses the same magic words and whether any of your labels accidentally became forbidden words.
1. HIGH-VALUES and LOW-VALUES in Broadcom 11.6 are:
2. NULL support in modern Easytrieve primarily relates to:
3. When migrating macros from CA-Easytrieve Plus, you should:
4. FIRST-DETAIL appears prominently in:
5. DTLCTL FIRST default behavior prints control fields: