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
 

 

Not able to execute rexx macro in bckground for ISPEXEC VIEW

 
Post new topic   Reply to topic    IBMMAINFRAMES.com Support Forums -> CLIST & REXX
View previous topic :: :: View next topic  
Author Message
Jaffer Sadiq

New User


Joined: 05 Mar 2013
Posts: 2
Location: India

PostPosted: Wed Mar 06, 2013 1:06 pm    Post subject: Not able to execute rexx macro in bckground for ISPEXEC VIEW
Reply with quote

Hi, I am a beginner learning REXX. I am developing a tool for counting LOC of a member for a given PDS. So far I am good with the total count which I getting, but now I need to expand the copybook and then count the LOC. For doing this I used ISPEXEC VIEW command after the allocation of the PDS member is done, but its not executing in the background. For that I need to press enter manually then ony I will be able to get out of the loop... Can anyone help me with this... icon_smile.gif
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 Mar 06, 2013 1:10 pm    Post subject:
Reply with quote

Not without seeing the code, but usually an "ISREDIT END" statement missing from the macro
Back to top
View user's profile Send private message
Stefan

Active User


Joined: 12 Jan 2006
Posts: 110
Location: Germany

PostPosted: Wed Mar 06, 2013 1:38 pm    Post subject: Re: Not able to execute rexx macro in bckground for ISPEXEC
Reply with quote

What also often causes the need for an additional ENTER is that you queued data to the stack without terminating with a null string as last stack entry, and then used EXECIO DISKR with an asterix (*). In this case the EXECIO function reads all queued lines, does not find any EOF indicator, and thus waits for additional lines from the default input queue SYSTSIN (terminal).
This could easily avoided by either queueing a null string as the last line to the stack, or replace the asterix used for the EXECIO function by a variable containing the number of lines queued.
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 Mar 06, 2013 1:58 pm    Post subject:
Reply with quote

Just reading back over this

Background .......... suggests a BATCH operation, yet you say that you need to press ENTER

is this a background (BATCH) operations or a foreground (TERMINAL) operation.

You really do need to be accurate when describing a problem
Back to top
View user's profile Send private message
enrico-sorichetti

Global Moderator


Joined: 14 Mar 2007
Posts: 10202
Location: italy

PostPosted: Wed Mar 06, 2013 2:19 pm    Post subject: Reply to: Not able to execute rexx macro in bckground for IS
Reply with quote

why reinvent the wheel when there are ready to run tools that just do it

see for example

Quote:
Report

High Level Assembler for z/OS & z/VM & z/VSE V1R6 (HLASM V1R6) Toolkit Feature User's Guide
GC26-8710-09


You can abbreviate REPORT to R.

Specifies the format of the reports you require. ASMXREF requires at least one REPORT statement in the control file. Specify the following parameter with this control statement:

REPORT
The name of the required report. Valid reports are:
CF
Control Flow Report
LOC
Lines of Control Report
<== that really lines of code
LOOC
Lines of OO Code Report
MWU
Macro Where Used Report
SOR
Spreadsheet Oriented Report
SWU
Symbol Where Used Report
TWU
Token Where Used Report
You can specify only one report on each REPORT statement. For details on the reports available see Understanding the reports. To specify more than one report create a REPORT control statement for each desired report.


which when run will give

Code:
********************************* TOP OF DATA **********************************
Date: 03/06/2013           ASMXREF V1.6.0 Lines of Code Report     Page      1
Time: 11:29:49                           by Module

Product    = NO INPUT
Release    = ALL
Programmer = ALL

                                                            (ADD+CHG)
     Module            Language Records Comments      SSI      CSI    ADDED  CHA

   1 COBJRX            COBOL         66       19       25
   2 COBXRX            COBOL        216       25      126
   3 DATES             COBOL         47        0       31
   4 HELLO             COBOL          9        0        6
   5 NUMBERS           COBOL         34        0       30
   6 PARMS             COBOL         15        0       11
   7 PICS              COBOL         23        0       19
   8 RETCODE           COBOL          9        0        6
   9 RETCOD2           COBOL         17        0       12
  10 UNSTRING          COBOL         25        0       18

PRODUCT TOTALS:                     461       44      284


REPORT TOTALS:                      461       44      284
Date: 03/06/2013           ASMXREF V1.6.0 Lines of Code Report     Page      2
Time: 11:29:49                   Programmer Summary Report
Back to top
View user's profile Send private message
Jaffer Sadiq

New User


Joined: 05 Mar 2013
Posts: 2
Location: India

PostPosted: Wed Mar 06, 2013 2:52 pm    Post subject: Reply to: Not able to execute rexx macro in bckground for IS
Reply with quote

ADDRESS TSO "ALLOC DA('"DSN0"') DD(OUTDD) MOD REUSE"
"EXECIO 0 DISKW OUTDD (OPEN"
X = OUTTRAP('VAR.')
"LISTDS '"DSN_NAME"' MEMBERS"
G = 0
DO NUM = 7 TO VAR.0
MEM=DSN_NAME || '(' || STRIP(VAR.NUM) || ')'
DSE=SYSDSN("'"MEM"'")
IF (DSE = 'OK') THEN
"FREE DD(INDD)"
ADDRESS TSO "ALLOC DA('"MEM"') DD(INDD) SHR REUSE"
ADDRESS ISPEXEC "VIEW DATASET('"MEM"') MACRO(XPNDJF)"
IN_LCTR = 0
LINEDATA = ''
"EXECIO 0 DISKR INDD (OPEN"
"EXECIO * DISKR INDD (FINIS STEM COUNT."
IF RC = 0 THEN
DO I = 1 TO COUNT.0
POSITION = POS('*',COUNT.I)
LINEDATA = SUBSTR(COUNT.I,7,72)
IF (POSITION \= 7) THEN
DO
IF (LINEDATA \= SP) THEN
DO
IN_LCTR = IN_LCTR + 1
END
END
END
SAY IN_LCTR
G = G + 1
REPORT.G = MEM || ''LINES OF CODE'' IN_LCTR
"EXECIO 0 DISKR INDD (FINIS"
"FREE FI(INDD)"
END
X = OUTTRAP('OFF')


I used the bold line mentioned for expanding a copybook which has a macro "XPNDJF". My problem is without expanding I am able to get the total count of LOC for a given member in PDS. But I need to do that after expanding the copybook. For doing this, I used the ISPEXEC VIEW but not working so far. Is there any ways to implement or a way to invoke this macro and execute it further...
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 Mar 06, 2013 2:55 pm    Post subject:
Reply with quote

I do hope that some day I will understand this preoccupation with knowing how many lines of code there are.

Does it really matter how many there are if the program works, and work efficiently ???
Back to top
View user's profile Send private message
enrico-sorichetti

Global Moderator


Joined: 14 Mar 2007
Posts: 10202
Location: italy

PostPosted: Wed Mar 06, 2013 3:03 pm    Post subject: Reply to: Not able to execute rexx macro in bckground for IS
Reply with quote

and I still do not know why use some in-house tool when there are sound alternatives

icon_cool.gif
Back to top
View user's profile Send private message
prino

Active Member


Joined: 07 Feb 2009
Posts: 982
Location: Oostende, Belgium

PostPosted: Wed Mar 06, 2013 4:00 pm    Post subject:
Reply with quote

expat wrote:
I do hope that some day I will understand this preoccupation with knowing how many lines of code there are.

Indian outsourcers just need their bodies to do something billable...
Back to top
View user's profile Send private message
enrico-sorichetti

Global Moderator


Joined: 14 Mar 2007
Posts: 10202
Location: italy

PostPosted: Wed Mar 06, 2013 4:06 pm    Post subject: Reply to: Not able to execute rexx macro in bckground for IS
Reply with quote

Quote:
I used the bold line mentioned for expanding a copybook which has a macro "XPNDJF". My problem is without expanding I am able to get the total count of LOC for a given member in PDS. But I need to do that after expanding the copybook. For doing this, I used the ISPEXEC VIEW but not working so far. Is there any ways to implement or a way to invoke this macro and execute it further...


and most probably they will bill the poor fools by LOC

count umpteen times all the <included> copybooks
that' s a productivity boost icon_wink.gif

it reminds me of the joke about the <lawyer> at the pearly gates
with everybody congratulating him for his nice looks for a 132 years old guy

but I am only 62 ...
nope we summed up all the billed hours and according to that You are 132
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 -> CLIST & REXX All times are GMT + 6 Hours
Page 1 of 1

 

Search our Forum:

Similar Topics
Topic Author Forum Replies Posted
No new posts What is the command to check MODE of ... rohanthengal CLIST & REXX 6 Fri Nov 18, 2016 1:48 pm
This topic is locked: you cannot edit posts or make replies. Rexx to create GDG by scanning JJ result krish.deepu CLIST & REXX 5 Tue Oct 25, 2016 5:32 pm
No new posts Replace repeated JCL with looping REXX prino CLIST & REXX 3 Thu Oct 13, 2016 5:30 am
This topic is locked: you cannot edit posts or make replies. Need to code a Rexx PGM sundaram.naveen CLIST & REXX 18 Thu Oct 06, 2016 6:45 pm
No new posts Need Rexx Program to Load in to DB2 T... Hareesh Verma CLIST & REXX 22 Tue Sep 20, 2016 2:59 pm


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