| IBM MAINFRAME HELP & SUPPORT FORUMS Technical Forums for IBM Mainframe Applications like COBOL, JCL, CICS, DB2, FileAid, DFSORT, Endevor, Xpediter, CoolGen, CA-7&11, AbendAid, IMS, IDMS, PL/I, MqSeries, SyncSort, Assembler, ChangeMan, Easytrieve, InterTest, REXX, CLIST etc...
|
| View previous topic :: View next topic |
| Author |
Message |
Arunkumar R S R
Joined: 06 Aug 2008
Posts: 14
Location: US
|
| Posted: Wed Aug 06, 2008 9:13 pm Post subject: Hiding the PF keys |
|
|
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. |
|
| Back to top |
|
rpuhlman
Joined: 11 Jun 2007
Posts: 75
Location: Columbus, Ohio
|
| Posted: Wed Aug 06, 2008 10:27 pm Post subject: |
|
|
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 ...
Ex:
Code: PFKEY07 DFHMDF POS=(23,50),
LENGTH=15,
ATTRB=(NORM,PROT),
INITIAL=' '
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.
Rick |
|
| Back to top |
|
Bill O'Boyle
Joined: 14 Jan 2008
Posts: 345
Location: Orlando, FL, USA
|
| Posted: Thu Aug 07, 2008 12:53 am Post subject: Re: Hiding the PF keys |
|
|
Although this suggestion might be over the top, you can invoke/enable the CICS "TRUE" 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. :!:
Regards,
Bill |
|
| Back to top |
|
Mickeydusaor
Joined: 24 May 2006
Posts: 126
|
| Posted: Thu Aug 07, 2008 2:16 am Post subject: |
|
|
| 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. |
|
| Back to top |
|
| |
THIS IS AN ARCIVE FORUM IN READ ONLY MODE. IF YOU WANT TO ASK YOUR DOUBTS USE THE ACTUAL FORUM
|