Even if the program ended that locked the item, the lock could still be maintained if the file variable was passed.
I know this is after the fact but, one option going forward would be to write a wrapper program for READU's and call it "LOCK.RECORD". I use this approach extensively. CALL *LOCK.RECORD( R.RECORD, KEY.TO.RECORD, FILE.VARIABLE ) 1. If it is a phantom, perform a READU 2. If it is a real user, use the LOCKED clause 2a. If it is locked, display whom has it locked followed by an INPUT ( if it is SB+, use a DISP ). 2b. If it is not locked, lock it. * This allows them to see who has them locked and contact the guilty party 3. NEW OPTION : Once locked, you could get the call stack and record to a file which program locked it ( excluding this sub - LOCK.RECORD ). Or you could add an additional parameter to this sub and pass in the program name. We already do 1 and 2, but 3 would be an interesting option. We also have a sub called LOCK.RECORD.ESCAPE that gives the user the option to escape if the record is locked and it also displays who has them locked. We only use this option when it is safe to escape and it sends back "ESCAPED" 1 or 0 so we can handle the escape properly. This e-mail and any files transmitted with it are confidential and intended solely for the use of the individual or company to whom they are addressed. If you have received this e-mail in error, please notify the sender immediately and delete this e-mail including all attachments from your system. Thank you _______________________________________________ U2-Users mailing list [email protected] http://listserver.u2ug.org/mailman/listinfo/u2-users
