BMS TYPE Controls Whether You Build a Map, a DSECT, or Both
In Enterprise Developer 12.0 on Windows, BMS TYPE=MAP creates the runtime load module, TYPE=DSECT creates program data definitions, and TYPE=&&SYSPARM delegates artifact selection to build settings. Conflicting source and build choices trigger BMSCM1013W. [1] [2] [4]
Read the full briefing
BMS TYPE Decides Whether the Build Produces Runtime Code, Program Data, or Both
Scope: Rocket Enterprise Developer 12.0 for Eclipse on Windows, BMS Painter and BMS compilation.
A BMS mapset has two different consumers. The CICS runtime needs a load module containing screen-handling code, while the application program needs data definitions that match the screen fields. Rocket’s build separates those artifacts: TYPE=MAP generates the load-module mapset (.mod, also called a CSECT), and TYPE=DSECT generates a copybook. Generating Output from the BMS Painter also notes that Enterprise Developer maintains a .bmsx file alongside the load modules to track generated files and locations.
The useful design choice is where output selection lives. A literal TYPE=MAP or TYPE=DSECT in the DFHMSD macro fixes the artifact choice in the mapset source. By contrast, TYPE=&&SYSPARM delegates that choice to the BMS file’s build settings. The SYSPARM directive accepts MAP, DSECT, or both. Without SYSPARM, no files are generated unless the source already contains a TYPE= setting.
That makes TYPE=&&SYSPARM valuable when the same source should support different build targets. In the BMS file properties, select:
- Map to generate the runtime load module.
- DSECT to generate the program-facing data definitions.
- Both when a normal application build needs the complete pair.
The generated language is controlled separately by the LANG operand: COBOL produces a .cpy copybook and ASM produces a .mac copybook. The load module goes to the project’s loadlib folder; the copybook goes to copylib. Rocket explicitly states that C DSECT/include generation is not supported. The complete workflow and locations are documented in Copybooks and Load Modules.
There is a practical precedence trap. If the source says TYPE=DSECT but the build settings request a map, Rocket emits BMSCM1013W: the source and requested SYSPARM do not match. The documented resolution is to correct the source or the build settings; if build settings are meant to control output, change the macro to TYPE=&&SYSPARM.
Finally, Enterprise Developer cannot compile the BMS file while it remains open in BMS Painter. Save it, close it in the painter, and then compile it.
Takeaway: Use TYPE=&&SYSPARM when build configuration should generate MAP, DSECT, or both; reserve literal TYPE= values for source-controlled output and keep source and build settings aligned.