if you add the (e) extender, you still can trap the error with the monitorOops, sorry, the (e) extender should not be there on the READE. I originally thought of just using (e), but then I realized that would catch all errors, which would be a larger change than just handing the lock-error. But when I changed to use MONITOR, I forgot to remove the (e).
reade(e) key file;
ok = *on;
on-error 1218: // record lock
// try again
I thought you need to check the %Status if the E-Extender is set.
ReadE(e) Key File;
If %Status = '1218'; // Record Lock
//Error lock - Do something