SET is a short, convenient field name—SET-FLAG, DEFINE SET 1 A, IF SET EQ 'Y'—that compiled cleanly for years until Broadcom activated it as a reserved word in Easytrieve Report Generator 11.x function mode. Migration weekends suddenly produce compile errors on hundreds of members where SET meant settings indicator or setup complete switch, not a language keyword. Understanding SET today means understanding reserved-word enforcement, the New Reserved Words migration list, search-and-rename procedures, and naming standards that prevent the next collision when EXECUTE or GRAPH already claimed other favorite names. This page documents when SET became reserved, what breaks at compile time, safe rename patterns, relationship to assignment syntax using equals sign, cross-check against SQL environments where SET has different meaning, testing after rename, and how SET fits beside SYSUSERID and EXECUTE on the same migration checklist auditors expect completed before production cutover.
Broadcom documents that words previously classified as future reserved became enforced in release 11.x. SET appears on the New Reserved Words page alongside EXECUTE, LOGICAL-RECORD, INITIATION, BREAK-LEVEL, SYSUSERID, HIGH-VALUES, LOW-VALUES, SUMMARY-INDEX, DRAW, GRAPH, END-REPEAT, ELEMENT-RECORD, and NOTITLE. Knowledge article 55109 confirms SET among keywords now active under 11.x. Legacy compatibility mode may defer errors—production function mode does not.
| Topic | Detail |
|---|---|
| Introduced enforcement | Easytrieve Report Generator 11.x function mode |
| Cannot use as | Field name, file name, procedure label |
| Typical legacy use | Setup flag, settings indicator, generic switch |
| Fix | Rename identifier; recompile and regression test |
| Related keywords | EXECUTE, SET-like verbs on same migration list |
Compiler encounters DEFINE SET or reference to field SET and reports symbol conflict with reserved word SET. Error text varies by release but clearly points to reserved identifier. Do not attempt to bypass with quotes or odd delimiters—reserved words are lexical, not contextual. Rename resolves definitively.
1234567891011* Legacy—fails in 11.6 function mode DEFINE SET 1 A IF SET EQ 'Y' PERFORM PROCESS-SETUP END-IF * Migrated DEFINE SETUP-IND 1 A IF SETUP-IND EQ 'Y' PERFORM PROCESS-SETUP END-IF
Automated renames must preserve semantics: SET meaning error-set flag should become ERR-SET-IND not generic FLAG1. Future maintainers read names during incidents.
Easytrieve assignment uses equals in many statements—COUNT = COUNT + 1—distinct from the reserved word SET as identifier. Beginners misread migration notes thinking SET becomes mandatory assignment verb. Reserved SET blocks naming; assignment syntax unchanged on your release. Consult Assignment operator page for expression rules.
Programs with SQL INCLUDE may encounter SQL SET semantics in embedded statements—separate from Easytrieve field name SET. SQL parser contexts differ; still rename Easytrieve DEFINE SET to avoid preprocessed source conflicts on some installations. Test SQL programs individually.
Broadcom best practices recommend lowercase or mixed-case uncommon words for identifiers because uppercase English keywords expand each release. Prefix work fields WS-, indicators -IND, flags -FLG. Avoid TOTAL, COUNT, SET, DRAW, GRAPH as bare names. Architecture review board publishes approved stems reducing repeat migrations.
Treat migration holistically—programs with SET collision may also define EXECUTE or LOGICAL-RECORD. Single pass global rename spreadsheet tracks member, old name, new name, tester sign-off. Parallel run old and new compile until cutover complete.
Regression tests prove renamed SETUP-IND still gates setup path. Compare output files before and after migration byte-for-byte on golden tests. SCREEN programs verify indicator still toggles on PF keys. Batch jobs check SYSPRINT for unexpected branches.
SET was your nickname for a box in the classroom. The teacher now uses the word SET for something official in the rule book, so you cannot label a box SET anymore—you pick a new label like SETUP-BOX. The things inside the box stay the same; only the name on the outside changes so the teacher does not get confused.
1. SET in Easytrieve 11.6 function mode is:
2. Before 11.x SET was often:
3. If legacy code has DEFINE SET ... you should:
4. SET appears alongside these 11.6 new reserved words:
5. Best practice to avoid future collisions: