Page 1 of 1

New stripped down ISPF panel

PostPosted: Sat Nov 12, 2011 12:28 am
by clrgq
ok guys so i apologize if this post isnt specific enough, having trouble adding images but here goes. i doing a challenge in my tn3270 emulator; heres the challenge........
Add an option to invoke the Data Set List Utility (usually accessed by option 3 from the main ISPF panel followed by option 4) from your slimmed-down ISPF panel. Your new panel must tell the user what option to enter to use this feature -- "D" or "DS" would be good options, though you can make it something different if you choose. The Data Set List Utility panel must open correctly from your panel when the appropriate command is entered. Place your new option after the existing options, just above the EXIT option.
so i've created the new stripped down ispf panel and it looks something like this;

% .******************
% .* .*
% .* $2 %Edit .*
% .* $3 %Utility .*
% .* $6 %Command .*
% .* $SD %SDSF .*
% * $DS %
% .* $X %eXit .*
% .* .*
% .******************
)PROC
&ZSEL = TRANS ( TRUNC (&ZCMD,'.')
2,'PGM(ISREDIT) PARM(P,ISREDM01) SCRNAME(EDIT)'
3,'PANEL(ISRUTIL) SCRNAME(UTIL)'
6,'PGM(ISRPTC) SCRNAME(CMD)'
SD,'PGM(ISFISP) NOCHECK NEWAPPL(ISF) SCRNAME(SDSF)'
X,'EXIT'
im not sure about how to go about adding this option so im looking for advice, i received criticism for my last post not being posted right but im new to all this so my apologies in advanced. if theres something im not posting right or info im leaving out ill gladly change this.

Re: ispf panel

PostPosted: Sat Nov 12, 2011 1:36 am
by Akatsukami
Without (very much ;) ) implied criticism, it would have been better to post this in the TSO & ISPF forum, and to use Code tags to ensure proper alignment of the panel code (particularly important because, unlike most languages, indentation is significant in DMS).

You're missing a right parenthesis and an )END statement at the end of your code. You also haven't defined a command field, so even if you successfully add a "DS" option, the user would have no place to enter it. I think that you omitted, intentionally or otherwise, several lines at both the beginning and the end of your panel.

A new option is added as an additional cause in the TRUNC statement. The general format is:
&ZSEL = TRUNC(command-field option,command[ option,command ...] *,command)

command-field is almost always zcmd (it could be something else, but I'd want to hear a good explanation why if one of my analysts did use something else). option is of course "1", "2", "BUCKLE", "MY", "SCHÜ", and the like. command, naturally, depends on what you're doing. The terminal splat (*) is "any input not otherwise defined".

Names of panels, execs, etc. may differ between our sites, so what works for me may not for you, and vice versa; but start with this:
)ATTR                                                                   
  @ type(input) hilite(uscore) caps(on)                                 
)BODY                                                                   
%Command ===>@ZCMD                                                    %
%                                                                       
% .******************                                                   
% .* .*                                                                 
% .* +2 %Edit .*                                                       
% .* +3 %Utility .*                                                     
% .* +6 %Command .*                                                     
% .* +SD %SDSF .*                                                       
% .* +DS %Dslist .*                                                     
% .* +X %eXit .*                                                       
% .* .*                                                                 
% .******************                                                   
)PROC                                                                   
&ZSEL = TRANS ( TRUNC (&ZCMD,'.')                                       
2,'PGM(ISREDIT) PARM(P,ISREDM01) SCRNAME(EDIT)'                         
3,'PANEL(ISRUTIL) SCRNAME(UTIL)'                                       
6,'PGM(ISRPTC) SCRNAME(CMD)'                                           
DS,'PGM(ISRUDL) PARM(ISRUDLP) SCRNAME(DSLIST)'                         
SD,'PGM(ISFISP) NOCHECK NEWAPPL(ISF) SCRNAME(SDSF)'                     
X,'EXIT')                                                               
)END                                                                   

Re: ispf panel

PostPosted: Sat Nov 12, 2011 3:00 am
by clrgq
thanks for the tactful criticism. yes i purposefully left off the beginning and end. this is my first experience with mainframe jcl but i do have the indentation down pretty solid and i just copied and pasted kind of in a rush. thanks for the advice!!

Re: ispf panel

PostPosted: Sat Nov 12, 2011 4:12 pm
by NicC
This has nothing to do with JCL - Job Control Language. That is used for running programs/utilities in batch (background).

Re: ispf panel

PostPosted: Tue Nov 15, 2011 9:56 pm
by Maxime B
You'd have better luck looking at :
http://www-03.ibm.com/systems/z/os/zos/ ... p99l13.scr
- z/OS V1R13.0 ISPF Dialog Developer's Guide and Reference
- z/OS V1R13.0 Dialog Tag Language Guide and Reference