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...
 

Hiding the PF keys

THIS IS AN ARCHIVE FORUM: CLICK HERE TO GO TO THE ORIGINAL TOPIC

 
       IBMMAINFRAMES.com - IBM Mainframe Support Forums Index -> CICS
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  
 
       IBMMAINFRAMES.com - IBM Mainframe Support Forums Index -> CICS
Page 1 of 1
THIS IS AN ARCIVE FORUM IN READ ONLY MODE. IF YOU WANT TO ASK YOUR DOUBTS USE THE ACTUAL FORUM