After multiple attempts to post what I want, including retyping the whole thing, and still getting to the anti-spam page each time, I've had to take it up with talk2dw.
Yes, I would consider that bad practice. I have an aversion to doing something more than once when it would always produce the same result.
I think how it is deal with depends on the intended use. The SERVICE LABEL is positional. If the intention is just to continue as you were after normally non-resumable statement, then it has to be in the procedure. If the resume-point doesn't have to bear any relation to the procedure, then how you've suggested would be best.
Here's how I'd code it if it needed to be in the procedure:
* only get here if the whatever was successful, else jump.
set something-meaningful-for-what-was-done to true
if meaningful-condition-name
set meaningful-condition-name-off to true
call "cee3srp" using recovery-point-1
omitted
service label
* control will arrive here if the noabend handler got it.
end-if
It may seem strange to arrive in an IF statement, but it is unproblematic. The CALL and SERVICE LABEL only get done once, no matter how many times the procedure itself is used.
I was doing this to avoid the repeated CALLs, and didn't know of overhead for SERVICE LABEL, so thanks for that information.
Well, beat the spam-blocker.
BillWoodger