Basic map support in CICS helps to create Physical and Symbolic maps. Once MAP definition is done, the next step is compile the MAP.
There are many tools available in the market for compiling Maps. After compilation of MAP, both Physical and Symbolic Maps are generated.
- Symbolic Map (Sample code here) is like a source language data structure that BMS runtime support uses to resolve source program references to fields in the map.
- The physical map can be used only at run time of CICS online programs. So, you no need to worry about physical maps during compilation of CICS programs.
When you give TYPE=MAP, it creates physical map. When you give TYPE=DSECT, it creates Symbolic map.
- The TYPE=MAP assembly, followed by a link-edit to produce a load module called the physical map set.
- The physical map set contains format information in encoded form. CICS® uses it at execution time for constant fields and to determine how to merge in the variable data from the program.
- The physical map set normally is stored in the same library as your application programs, and it requires a MAPSET resource definition within CICS, just as a program requires a PROGRAM resource definition.
- You can defer the TYPE=MAP assembly and link-edit until you are ready to test, because the physical map set is not used until execution time. You can also read how questions can be asked on MAPs
- The TYPE=DSECT assembly is used to produce a series of data structures, collectively called the symbolic map set.
- The output of a TYPE=DSECT assembly is a series of data structures, coded in the source language specified in the LANG option. There is a structure for each map used for input, called the symbolic input map, and one for each map used for output, called the symbolic output map.
- Symbolic map sets are used at compile (assembly) time. You copy them into your program, and they allow you to refer to the fields in the maps by name and to pass the variable data in the form dictated by the physical map set.
Example of Symbolic MAP:
01 QCKMAPO. 02 FILLER PIC X(12). 02 FILLER PICTURE X(2). 02 ACCTNOA PICTURE X. 02 ACCTNOO PIC X(7). 02 FILLER PICTURE X(2). 02 SURNAMEA PICTURE X. 02 SURNAMEO PIC X(15). 02 FILLER PICTURE X(2). 02 FNAMEA PICTURE X. 02 FNAMEO PIC X(10). 02 FILLER PICTURE X(2). 02 CHGA PICTURE X. 02 CHGO PIC $,$$0.00 02 FILLER PICTURE X(2). 02 MSGA PICTURE X. 02 MSGO PIC X(30).
Symbolic map sets are typically stored in the library your installation defines for source code that gets copied into programs.Member names are typically the same as the map set names, but they need not be.
You need the TYPE=DSECT assembly, before you compile or assemble your program.