I developed the screen thru macros and designed as enter, PF3, PF7 and PF8 keys. While sending the map it should display only enter and PF3 keys at the first time. After getting the input and while populating the output it should display all the four keys.
In simple terms sending the map first time should hide the PF7 and PF8 keys.
Anyone let me know how to design a map and how to do the logic to handle it in code.
Joined: 11 Jun 2007 Posts: 80 Location: Columbus, Ohio
Arun,
I'm assuming you know how to code a BMS map and have general knowledge of CICS. You would just define a BMS DFHMDF macro, in your map, for each PF Key you want to optionally (or all) display ...
before you send the map, populate the symbolic map (ex. MOVE 'PF7 = PAGE UP' TO PFKEY07O) with the PF Keys you want displayed. Remember, just because the PF Keys are not displayed doesn't mean a user will not press that key so you will have to code process and error logic accordingly.
Joined: 14 Jan 2008 Posts: 2501 Location: Atlanta, Georgia, USA
Although this suggestion might be over the top, you can invoke/enable the CICS "GLUE" named "XZCATT" via a user-written Exit program.
In this Exit program, you can test for the target transid and then validate the keys which were pressed and alter them if you'd like.
For example, if the user had pressed <PF7> and based upon the transid, you don't allow this, then you can move <Enter> to this AID field, as if they had pressed <Enter> in the first place.
TRUE Exit program's must be written in Assembler, must have a PPT entry which defines them to execute in CICSKEY and must use (when necessary and most of the time) CICS "XPI" commands as opposed to "API" commands.
The XZCATT Exit program can establish addressability to the TCTTE DSECT, whose address is passed as part of the User Parmlist in R1 (DSECT DFHUEPAR, label/field UEPTCTTE), where you can gain addressability to the labels/fields which contain the Transid and the AID byte (TCTTETC and TCTTEAID, respectively), amongst others.
Optionally, if you don't have TCTTE addressability passed in the user parmlist, you can issue an "XPI" function/command named "INQ_APPLICATION_DATA" which can return (amongst others) the address of the EIB and from there, you can check EIBTRNID and alter EIBAID if you'd like.
Again, Exit Programs are not for the faint of heart.
Joined: 24 May 2006 Posts: 258 Location: Salem, Oregon
The simplest way is to defined your pf keys in the map and for pf7 and pf8 set the attr to (prot, norm, drk), then after the first send or the map move (prot, norm) to the attribute byte for pf7 and pf8.