Module 15: CICS Real-World Projects and Interview Preparation
BMS Interview Questions
BMS (Basic Mapping Support) questions test whether you can build and debug CICS screens. Interviewers focus on mapsets, field attributes and the MDT.
Every answer below maps to something you actually code in the DFHMSD/DFHMDI/DFHMDF macros.
Mapset basics
- Q: What is a mapset? A: A group of screen maps defined with BMS macros, assembled into a physical map (screen layout) and a symbolic map (COBOL copybook).
- Q: Name the BMS macros in order. A: DFHMSD TYPE=MAP starts the mapset, DFHMDI defines one map, DFHMDF defines each field, DFHMSD TYPE=FINAL ends it. A DSECT assembly creates the symbolic map.
- Q: Physical map vs symbolic map? A: The physical map is the load module CICS uses to paint the screen; the symbolic map is the COBOL copybook the program moves data through.
- Q: How is a mapset installed? A: Assemble and link-edit it, define the MAPSET in the CSD, and NEWCOPY it after any change.
- Q: What happens if the symbolic map does not match the physical map? A: Garbage on screen or wrong field positions. Reassemble both from the same source and recompile the program.
Fields and attributes
- Q: What is the MDT and why does it matter? A: The Modified Data Tag marks fields the user changed. Only fields with MDT on are sent back on RECEIVE, which is why DATAONLY works.
- Q: Common field attributes? A: PROT (protected, display only), UNPROT (input allowed), ASKIP (skip, for constants), BRT (bright), NORM, DRK (dark/non-display), FSET (set MDT on).
- Q: FSET vs FRSET? A: FSET sets the MDT on for a field; FRSET on the SEND resets all MDTs off so the next RECEIVE gets a clean state.
- Q: How do you highlight an error field? A: Move the bright attribute value to the field's attribute byte in the symbolic map (for example the 'A' field) before the SEND.
- Q: How do you make a field non-display, like a password? A: Define it with the DRK attribute so nothing shows on screen.
Map operations
- Q: SEND MAP vs RECEIVE MAP? A: SEND MAP paints the screen from the symbolic map; RECEIVE MAP reads the user's input back into the symbolic map.
- Q: ERASE, ERASEAUP, ALARM, CURSOR options? A: ERASE clears the whole screen; ERASEAUP clears only unprotected fields; ALARM sounds the terminal beep; CURSOR positions the cursor.
- Q: How do you place the cursor in a specific field? A: Use the CURSOR option with a displacement, or move -1 to the length field (the 'L' field) of the target field in the symbolic map.
- Q: How do you detect which PF key was pressed? A: Test EIBAID after RECEIVE: DFHENTER, DFHPF1...DFHPF24, DFHCLEAR, DFHPA1...PA3.
- Q: Minimum function: what does MAPFAIL mean? A: MAPFAIL on RECEIVE means the user pressed Enter without entering data in any unprotected field - handle it instead of abending.
