Portal | Manuals | References | Downloads | Info | Programs | JCLs | Master the Mainframes
IBM Mainframe Computers Forums Index
 
Register
 
IBM Mainframe Computers Forums Index Mainframe: Search IBM Mainframe Forum: FAQ Memberlist Usergroups Profile Log in to check your private messages Log in
 

 

ISPF Tables Creation

 
Post new topic   Reply to topic    IBMMAINFRAMES.com Support Forums -> TSO/ISPF
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    Post subject: ISPF Tables Creation
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: 8593
Location: Back in jolly old England

PostPosted: Wed Jul 13, 2016 2:23 pm    Post subject:
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

Global Moderator


Joined: 14 Mar 2007
Posts: 10202
Location: italy

PostPosted: Wed Jul 13, 2016 3:00 pm    Post subject: Reply to: ISPF Tables Creation
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

Senior Member


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

PostPosted: Wed Jul 13, 2016 9:49 pm    Post subject: Reply to: ISPF Tables Creation
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    Post subject: Got it TSO ISRDDN
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

Senior Member


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

PostPosted: Thu Jul 14, 2016 5:28 am    Post subject: Reply to: ISPF Tables Creation
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    Post subject: Worked
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    IBMMAINFRAMES.com Support Forums -> TSO/ISPF All times are GMT + 6 Hours
Page 1 of 1

 

Search our Forum:

Similar Topics
Topic Author Forum Replies Posted
No new posts ISPF program to set SCRNAME prino TSO/ISPF 5 Fri Sep 30, 2016 2:18 pm
No new posts I am unable to use SWAPBAR ON command... mrsidhu12 TSO/ISPF 3 Thu Sep 01, 2016 1:10 pm
No new posts Getting list of tables defined under ... kishpra DB2 2 Wed Aug 24, 2016 10:36 am
No new posts How to detect file creation event? vasanthz All Other Mainframe Topics 5 Fri May 20, 2016 1:33 am
No new posts More ISPF RFE's to vote for prino TSO/ISPF 1 Tue Apr 19, 2016 12:06 am


Facebook
Back to Top
 
Mainframe Wiki | Forum Rules | Bookmarks | Subscriptions | FAQ | Tutorials | Contact Us