Holding execution of a panel



TSO Programming, ISPF, SDF, SDSF and PDF, FTP, TCP/IP Concepts, SNA & SNA/IP etc...

Holding execution of a panel

Postby nikesh_rai » Wed Feb 20, 2013 5:08 pm

Hi,

Is it possible to hold execution of a panel at some step. for example

  IF (&XSUBSYS NE ' ' AND &XCRTRID NE ' ' AND     
      &XTBLNME NE ' ' AND &XINPFLE NE ' ')       
                                                 
     IF (&SQLRTCD = 1 )                           
        .MSG = GNSQL005                           
     ELSE                                         
         IF (&SQLRTCD = 2 )                       
            .MSG = GNSQL006                       
         ELSE                                     
            .MSG = GNSQL007                       
            *REXX(*,(REXX3))                     
                                                 
            IF RETCD = 0                         
               .MSG = GNSQL008                   
            ELSE                                 
               .MSG = GNSQL009                   
                                                 


I want to hold the execution of panel till the execution of rexx is completed. Once the REXX3 has been completed, the next step needs to be executed. Since the value for the RETCD I will get from the REXX3, so I need to do this.. or if some better way to do it... I have googled it but didn't get much.
Thanks
Nikesh Rai
nikesh_rai
 
Posts: 205
Joined: Tue Oct 18, 2011 1:27 am
Has thanked: 17 times
Been thanked: 0 time

Re: Holding execution of a panel

Postby prino » Wed Feb 20, 2013 6:25 pm

And what makes you think the REXX runs asynchronously from the panel?
Robert AH Prins
robert.ah.prins @ the.17+Gb.Google thingy
User avatar
prino
 
Posts: 635
Joined: Wed Mar 11, 2009 12:22 am
Location: Vilnius, Lithuania
Has thanked: 3 times
Been thanked: 28 times

Re: Holding execution of a panel

Postby nikesh_rai » Wed Feb 20, 2013 7:27 pm

Is there any other reason the step after REXX3 is being called is not executing. Since the massage is getting displayed for GNSQL007 but not for GNSQL008 or GNSQL009. I thought panel is not able to retrieve the value of RETCD from REXX3 and hence not executing the step. However I checked with this code as well without any condition:

     IF (&SQLRTCD = 1 )               
        .MSG = GNSQL005               
     ELSE                             
         IF (&SQLRTCD = 2 )           
            .MSG = GNSQL006           
         ELSE                         
            .MSG = GNSQL007           
            *REXX(*,(REXX3))         
            .MSG = GNSQL008           
                                     
            VPUT (RETCD) PROFILE     
            IF (&RETCD = 0)           
               .MSG = GNSQL008       
            ELSE                     
               .MSG = GNSQL009     


and result is same. step .MSG = GNSQL008 was not executed..
Thanks
Nikesh Rai
nikesh_rai
 
Posts: 205
Joined: Tue Oct 18, 2011 1:27 am
Has thanked: 17 times
Been thanked: 0 time

Re: Holding execution of a panel

Postby enrico-sorichetti » Wed Feb 20, 2013 7:45 pm

You did not post the full scenario ...

for what are You using the *REXX construct ???

the *REXX functionality is not meant as a full <APPLICATION> flow controller
but to expand <FIELD/VARIABLE> processing beyond those provided by ISPF PANEL processor

the APPLICATION flow should be governed by the invoking rexx ....

...
Address ISPEXEC Display DRIVER_panel
DO WHILE ( RC = 0 )
    ... process the variables returned by the panel
    Address ISPEXEC Display DRIVER_panel
END
...


after a Display the script will wait until the luser tampers the keyboard
cheers
enrico
When I tell somebody to RTFM or STFW I usually have the page open in another tab/window of my browser,
so that I am sure that the information requested can be reached with a very small effort
enrico-sorichetti
Global moderator
 
Posts: 2994
Joined: Fri Apr 18, 2008 11:25 pm
Has thanked: 0 time
Been thanked: 164 times

Re: Holding execution of a panel

Postby Pedro » Wed Feb 20, 2013 9:57 pm

Learn to use ISPDPTRC. It is a command which starts the panel trace. Issue it before displaying your panel to capture the trace. Issue it again a second time to display the trace.

And use TRACE('R') within the rexx program to see its trace.
Pedro Vera
User avatar
Pedro
 
Posts: 684
Joined: Thu Jul 31, 2008 9:59 pm
Location: Silicon Valley
Has thanked: 0 time
Been thanked: 53 times


Return to TSO & ISPF

 


  • Related topics
    Replies
    Views
    Last post