IBM Mainframe Forum Index
 
Log In
 
IBM Mainframe Forum Index Mainframe: Search IBM Mainframe Forum: FAQ Register
 

ISPF Tables Creation


IBM Mainframe Forums -> TSO/ISPF
Post new topic   Reply to topic
View previous topic :: View next topic  
Author Message
newsysprg

New User


Joined: 12 Jul 2016
Posts: 5
Location: India

PostPosted: Wed Jul 13, 2016 2:21 pm
Reply with quote

1) Panel defined- xxx.rfa.panel
2) Rexx to invoke the panel and create the ISPF Table. - xxx.rfa.panel.pgm

however my ispf table is not getting created.
Back to top
View user's profile Send private message
expat

Global Moderator


Joined: 14 Mar 2007
Posts: 8797
Location: Welsh Wales

PostPosted: Wed Jul 13, 2016 2:23 pm
Reply with quote

DO NOT post attachments, because I for one refuse to open them.

Please post whatever it is using the code tabs.
Back to top
View user's profile Send private message
enrico-sorichetti

Superior Member


Joined: 14 Mar 2007
Posts: 10872
Location: italy

PostPosted: Wed Jul 13, 2016 3:00 pm
Reply with quote

Learn to use the proper terminology...
YOU DO NOT DEFINE PANELS IN REXX ,
You define using the syntax described in the ISPF manuals

Panel definition inlined here

Code:

)Attr Default(%+_)                                                     
 /* % type(text  ) intens(high)              Defaults displayed for */ 
 /* + type(text  ) intens(low )                   information only  */ 
 /* _ type( input) intens(high) caps(on ) just(left )               */ 
    ! type( input) intens(high) caps(on ) just(left ) pad('''')         
    ¨ type( input) intens(low ) caps(off) just(asis ) pad('_')         
    # type(output) intens(high) caps(off) just(right) pad('0')         
 )Body  Expand(//)                                                     
 %-/-/- AVIS REquest Menu               -/-/-                           
 %Command ===>_zcmd                                 / /%Scroll ===>_amt +
 %                                                                     
 +This direction line tells the user how to use the panel:             
 +                                                                     
 %Action  IRNO IRDESC                           IRSTAT              IRSYS
 +                                                                     
 )Model clear(iractcd)                                                 
 !z +    #z    +¨z                           + ¨z               +¨z     
 )Init                                                                 
   .ZVARS = '(iractcd irno irdesc irstat irsys )'                       
   &amt = csr                                                           
 )Reinit                                                               
 )Proc                                                                 
                                   /* Process )BODY fields here      */
   If (&ztdsels ¨= 0000)           /* If user selected some rows ... */
       &v4 = mmmm                  /* ... process )MODEL fields here */
 )End                                                                   


the REXX script inlined here
Code:

/* REXX * coded in U000568.RFA.PANEL.PGM/                                                             
 ADDRESS ISPEXEC "CONTROL ERRORS RETURN"                               
 ADDRESS ISPEXEC "LIBDEF ISPTABL DATASET ID('U000568.ISPTLIB')"           
 ADDRESS ISPEXEC "TBOPEN IRTABLE"                                       
 IF RC = 8 THEN /* IF TABLE DOES NOT ALREADY EXIST, CREATE IT WITH ONE *
   DO           /* BLANK ROW */                                         
    ADDRESS ISPEXEC "TBCREATE IRTABLE KEYS(IRNO)",                     
        "NAMES(IRACTCD,  IRDESC, IRSTAT, IRSYS )"                       
    ADDRESS ISPEXEC "TBVCLEAR IRTABLE"                                 
    IRNO = 1                                                           
    NEWIRNO = IRNO + 1                                                 
    ADDRESS ISPEXEC "TBADD IRTABLE"                                     
   END                                                                 
 ELSE      /* GET LAST TABLE ROW TO INITIALIZE NEXT INCIDENT RECORD */ 
   DO                                                                   
    ADDRESS ISPEXEC "TBBOTTOM IRTABLE"                                 
    NEWIRNO = IRNO + 1                                                 
    ADDRESS ISPEXEC "TBTOP IRTABLE"                                     
   END                                                                 
 ZTDSELS = 0                                                           
 ZTDTOP = 1                                                             
 ZCMD = ""                                                             
 CURSOR_LOC = "CSRROW(1) CURSOR(IRACTCD)"                               
 DO FOREVER                                                             
  ADDRESS ISPEXEC "TBTOP IRTABLE"                                       
  ADDRESS ISPEXEC "TBSKIP IRTABLE NUMBER("ZTDTOP")"                     
  IF ZTDSELS = 0 THEN                                                   
       DO                                                               
       ADDRESS ISPEXEC "LIBDEF ISPPLIB DATASET ID('U000568.RFA.PANEL')"   
       ADDRESS ISPEXEC "TBDISPL IRTABLE PANEL(IRPANEL)",               
        "AUTOSEL(NO)",                                                 
        CURSOR_LOC                                                     
        CURSOR_LOC = ""                                                 
       END                                                             
    ELSE                                                               
       ADDRESS ISPEXEC "TBDISPL IRTABLE"                               
    DISPLAY_RC = RC                                                     
    IF DISPLAY_RC <= 4 THEN                                             
       DO                                                               
        IRACTCD = TRANSLATE(STRIP(IRACTCD))                             
        SELECT                                                         
         WHEN IRACTCD = "" THEN /* USER TYPED OVER DATA ON THE LINE */ 
            DO                                                         
             ADDRESS ISPEXEC "TBPUT IRTABLE"                           
             ADDRESS ISPEXEC "TBQUERY IRTABLE POSITION(CRPNAME)"       
             CURSOR_LOC = "CURSOR(IRACTCD) CSRROW("CRPNAME")"           
            END                                                         
         WHEN IRACTCD = "D" THEN /* DELETE THE LINE */                 
            DO                                                         
             IRACTCD = ""                                               
             ADDRESS ISPEXEC "TBDELETE IRTABLE"                         
             ADDRESS ISPEXEC "TBQUERY IRTABLE POSITION(CRPNAME)"       
             CRPNAME = CRPNAME + 1                                     
             CURSOR_LOC = "CURSOR(IRACTCD) CSRROW("CRPNAME")"           
            END                                                         
       WHEN IRACTCD = "I" THEN /* INSERT A BLANK LINE */               
          DO                                                           
           IRACTCD = ""                                                 
           ADDRESS ISPEXEC "TBPUT IRTABLE"                             
           ADDRESS ISPEXEC "TBVCLEAR IRTABLE"                           
           IRNO = NEWIRNO                                               
           NEWIRNO = NEWIRNO + 1                                       
           ADDRESS ISPEXEC "TBADD IRTABLE"                             
           ADDRESS ISPEXEC "TBQUERY IRTABLE POSITION(CRPNAME)"         
           CURSOR_LOC = "CURSOR( IRDESC) CSRROW("CRPNAME")"             
          END                                                           
       WHEN IRACTCD = "P" THEN /* DISPLAY A PANEL WITH MORE DETAIL */   
          DO                                                           
           IRACTCD = ""                                                 
           ADDRESS ISPEXEC "CONTROL DISPLAY SAVE"                       
           ADDRESS ISPEXEC "DISPLAY PANEL(IRDISPAN)"                   
           ADDRESS ISPEXEC "TBVCLEAR IRTABLE"                           
           ADDRESS ISPEXEC "CONTROL DISPLAY RESTORE"                   
           ADDRESS ISPEXEC "TBQUERY IRTABLE POSITION(CRPNAME)"         
           CURSOR_LOC = "CURSOR( IRDESC) CSRROW("CRPNAME")"             
         END                                                           
      OTHERWISE                                                       
          ADDRESS ISPEXEC "TBPUT IRTABLE"                             
          ZERRSM = "INVALID ACTION CODE"                               
          ZERRLM = "ACTION CODE '"IRACTCD"' IS NOT VALID."             
          ZERRALRM = "YES"                                             
          ADDRESS ISPEXEC "SETMSG MSG(ISRZ002)"                       
          ADDRESS ISPEXEC "TBQUERY IRTABLE POSITION(CRPNAME)"         
          CURSOR_LOC = "CURSOR(IRACTCD) CSRROW("CRPNAME")"             
     END                                                               
     ZTDSELS = ZTDSELS - 1                                             
    END                                                               
  IF DISPLAY_RC > 4 | ZTDSELS <= 0 THEN                               
       DO                                                             
        ZVERB = TRANSLATE(WORD(ZCMD,1))                               
        IF DISPLAY_RC = 8 THEN /* END, RETURN, =X, ETC. */,           
            ZVERB = "QUIT"                                             
        SELECT                                                         
        WHEN ZVERB = "QUIT" THEN                                       
           DO                                                         
            IF DISPLAY_RC = 8 THEN                                     
               ADDRESS ISPEXEC "TBCLOSE IRTABLE"                       
            ELSE                                                       
               ADDRESS ISPEXEC "TBEND IRTABLE"                         
            LEAVE                                                     
         END                                                           
        WHEN ZVERB = "SAVE" THEN                                       
           DO                                                         
            ADDRESS ISPEXEC "TBSAVE IRTABLE"                           
           END                                                         
        WHEN ZVERB = "" THEN                                           
           NOP                                                         
        OTHERWISE                                                     
           ZERRSM = "INVALID COMMAND"                                 
           ZERRLM = "ACTION CODE '"ZVERB"' IS NOT VALID."             
           ZERRALRM = "YES"                                           
           ADDRESS ISPEXEC "SETMSG MSG(ISRZ002)"                       
           CURSOR_LOC = "CURSOR(ZCMD)"                                 x
         END                                                           
     END                                                               
    END                                                                 
    ADDRESS ISPEXEC "LIBDEF ISPTABL"                                   


for readability learn to use lower and upper case
Back to top
View user's profile Send private message
Pedro

Global Moderator


Joined: 01 Sep 2006
Posts: 2546
Location: Silicon Valley

PostPosted: Wed Jul 13, 2016 9:49 pm
Reply with quote

Show us a rexx trace.
Back to top
View user's profile Send private message
newsysprg

New User


Joined: 12 Jul 2016
Posts: 5
Location: India

PostPosted: Wed Jul 13, 2016 9:54 pm
Reply with quote

Found my System ISPTLIB and Table Created.

I allocated ISPTLIB as per the manual and tried to create it there wasn't working.

However will try later
Back to top
View user's profile Send private message
Pedro

Global Moderator


Joined: 01 Sep 2006
Posts: 2546
Location: Silicon Valley

PostPosted: Thu Jul 14, 2016 5:28 am
Reply with quote

Quote:
I allocated ISPTLIB as per the manual

Can you elaborate?

It reads from ISPTLIB and writes to ISPTABL. I think you need an additional LIBDEF for ISPTLIB.

"wasn't working" is vague. Run a rexx trace and pay attention to the return codes.
Back to top
View user's profile Send private message
newsysprg

New User


Joined: 12 Jul 2016
Posts: 5
Location: India

PostPosted: Thu Jul 14, 2016 7:36 pm
Reply with quote

Worked. Thanks Pedro.
Back to top
View user's profile Send private message
View previous topic :: :: View next topic  
Post new topic   Reply to topic View Bookmarks
All times are GMT + 6 Hours
Forum Index -> TSO/ISPF

 


Similar Topics
Topic Forum Replies
No new posts Looking for a little history of ISPF ... TSO/ISPF 5
No new posts Adding QMF and SPUFI to the ISPF menu DB2 20
No new posts Issue after ISPF copy to Linklist Lib... TSO/ISPF 1
No new posts Need to fetch data from so many DB2 t... DB2 9
No new posts Is there a way to close VSAM files us... CICS 8
Search our Forums:

Back to Top