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

Reply via email to