From: Steve Flynn <[EMAIL PROTECTED]>
We are running it in the background, as part of a batch job. BDISPMAX
is at the default of 100... I've not tried turning the BDISPMAX value
up, as I consistently errors when running the code. I'd like to fix it
before turning up BDISPMAX.
Steve,
Congratulations on not turning up BDISPMAX. That's almost always a bad
mistake that gets you nowhere. If a panel or message is displayed in batch
and no-one is there to answer it, ISPF redisplays it however many times are
indicated in BDISPMAX. If no-one answers after the set number of displays
(where the default is 100), it gives up and abends the program. Increasing
the number of times the same message or panel is displayed to a bazillion or
more does absolutely nothing to fix the error. Instead, it just takes that
much longer before the program finally abends and wastes that much more CPU.
Things are getting weird.
If I execute the following as a batch edit macro:
ISREDIT MACRO
/*
ISREDIT EXCLUDE 'IN FORCE' ALL
ISREDIT DELETE ALL NX
ISREDIT RESET
It fails with (excuse the reflow and wrapping if it screws up):
******************************************************************************
*
*
* Command in error . : EXCLUDE IN FORCE ALL
*
*
*
* Invalid parameter
*
* Check for misspelled keywords or too many bounds (numeric) parameters.
*
*
*
* Error message ID . : ISRE197
*
*
*
* Last return code . : 20
*
*
*
* Macro executing . : EM#MGMLA
*
*
*
* Press ENTER key to terminate the macro.
*
*
*
*
*
*
*
******************************************************************************
However, if I change the code to
ISREDIT MACRO
/*
ISREDIT EXCLUDE 'ABC123' ALL
ISREDIT DELETE ALL NX
ISREDIT RESET
i.e. No spaces inside the quoted exclude line.
It works perfectly!
Steve
I agree; it's extremely weird. And because it's weird, it calls for some
weird things to try. For one thing, I'd try removing the comment (/*) from
line 2. I know that sounds weird, but I once had a macro that stopped
working after I inserted a comment. I moved the comment one line up in the
macro, and it started working again. It wasn't in the middle of a DO loop or
anything like that; I looked at it VERY carefully for quite some time. It
made no sense at all; if I put the comment back where it was, it stopped
working again.
Next, I'd make sure the macro doesn't have any line numbers at the end of
the line or any other garbage characters (e.g. non-displayable characters)
anywhere in the macro that might somehow be mistaken as part of the code.
Next, I'd try adding BUILTIN in front of the EXCLUDE statement, just to make
sure you're not somehow picking up an in-house version of EXCLUDE. Next, I'd
try the macro on a different file, just to make sure it's not the file
itself that's somehow causing the problem. Next, I'd try adding additional
ISREDIT commands before the EXCLUDE command, such as ISREDIT BOUNDS, just to
make sure its the EXCLUDE that's failing and not the ISREDIT itself that's
failing. Next, I'd try a different string that does include spaces; e.g.
'ABC DEF' to see if it's actually the spaces or not that's causing the macro
to fail. Next, I'd try reversing the order of the parameters; e.g. ISREDIT
BUILTIN EXCLUDE ALL 'IN FORCE'. Last but not least, if none of those things
worked, I'd try kicking the computer. It won't fix anything, but it might
help you feel better. :-)
Dave Salt
SimpList(tm) - The easiest, most powerful way to surf a mainframe!
http://www.mackinney.com/products/SIM/simplist.htm
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [EMAIL PROTECTED] with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html