MAP and MAPSET in CICS
What is a MAP?
It is a screen representation of a functionality from where users can access(to perform different functionalities) it. In other words it is nothing but the front end for the mainframe applications.
Example -> A Bank Customer Inquiry Screen from where the bank employees/Users access customer details by entering the Customer number as the input.
What is MAPSET?
Collection of MAPs is called a MAPSET where it can contain one or more MAPS in it. All these are link edited together to form a single MAPSET.
What is the usage of having multiple maps in to a single mapset?
– If all the maps that represent a single functionality can be put into one MAPSET, it becomes easy to compile them at one go. For example if in a Bank Customer maintenance screen, few lines like Name, Address etc of the Screen would always remain same and remaining part would change as per the functionality(Pf2–>Customer Balance, PF2–> Recent Transaction, PF3–>Loan Eligibility). Then it is a good idea to have the first few lines in One MAP and remaining functionalities in separate ones and send the first one along with others.
MAPS are divided into Two parts
- Represents the variable portion of the MAP i.e area which a user can enter the data.
- It is stored as a copy book and program uses this copybook fields to send/receive data to/from the MAP.
- It is the Non editable portion which decides how the MAP should look like.
- It contains the details like Field Attributes, Positions of the fields etc.
- It is an assembly language code that is assembled and linked into a system library.
Example: In the below map CUST ID is the input field, with which the users can extract the name and Address details of a Customer.
Below Map without any values is considered as a Physical Map.
Here symbolic map is the combination of fields that are declared to display the Cust ID, Cust name and all other address details.
CUSTOMER MAINTENANCE CUST010 CUST ID : ------- CUST NAME : ADDRESS: ADDRESS LINE 1 : ADDRESS LINE 2 : ADDRESS LINE 3 : CITY : STATE : LAST UPD DATE: BY ENTER=INQUIRE PF1=HELP PF3=EXIT PF4=UPDATE
Once the input is given, all the symbolic map variables gets populated on to screen to give the customer details as below.
CUSTOMER MAINTENANCE CUST010 CUST ID : 990123 CUST NAME : REDDY ADDRESS: ADDRESS LINE 1 : FLAT NO 990 ADDRESS LINE 2 : RD NO 46 ADDRESS LINE 3 : AREA 1 CITY : HYDERABAD STATE : TELANGANA LAST UPD DATE: 28/06/19 BY MAHY ENTER=INQUIRE PF1=HELP PF3=EXIT PF4=UPDATE
Defining MAPSet Example –>
MAPS01 DFHMSD TYPE=MAP,LANG=COBOL,MODE=INOUT,STORAGE=AUTO,SUFFIX= TITLE ' MAM001 '
Defining MAP example–>
MAP001 DFHMDI SIZE=(32,80),CTRL=(HONEOM,FREEKB),MAPATTS=(COLOR,PS,HIL* IGHT,VALIDN),DSATTS=(COLOR,PS,HILIGHT,VALIDN),COLUMN=1, * LINE=1,DATA=FIELD,TIOAPFX=YES,JUSTIFY=(LEFT),OBFMT=NO
How to SEND and RECEIVE a MAP in a program?
Using send AND receive commands data can be transferred from terminal to Program and vice versa.