Describes the processing that occurs when the STOP condition occurs during a block. This condition occurs when a user presses STOP, when a STOP statement is executed, or when certain internal conditions occur within the AVM. The STOP key is usually mapped to CTRL+BREAK (Windows) or CTRL+C (UNIX). By default, the STOP condition undoes active transactions, block by block, until it reaches the outermost block or a block that traps the STOP condition. Control then returns to the point where the outmost procedures was executed, be that the command line or a development tool such as Progress Developer Studio for OpenEdge or AppBuilder.
ON STOP UNDOlabel1, LEAVE label2, NEXT label2, RETRY label1, RETURN return-valueERROR return-value error-object-expressionNO-APPLYThe name of the block whose processing you want to undo. If you do not name a block with label1, ON STOP UNDO undoes the processing of the block started by the statement that contains the ON STOP phrase.LEAVE label2Indicates that after undoing the processing of a block, the AVM leaves the block labeled label2. If you do not name a block, the AVM leaves the block labeled with label1.NEXT label2Indicates that after undoing the processing of a block, the AVM executes the next iteration of the block you name with the label2 option. If you do not name a block with the NEXT option, the AVM executes the next iteration of the block labeled with label1.RETRY label1Indicates that after undoing the processing of a block, the AVM repeats the same iteration of the block you name with the label1 option.
return-value
ERROR ERROR return-value The AVM also creates an Progress.Lang.AppError object and stores the return-value in the ReturnValue property. ERROR error-object-expression The specified error object is created and populated according to your code. If this is an Progress.Lang.AppError object, the caller can use the RETURN-VALUE function to read the setting of the ReturnValue property. NO-APPLY This procedure lets you update the CreditLimit field for each Customer. If you enter a value greater than 100,000, the program raises the STOP condition. Since you specified an UNDO, RETRY for a STOP, the procedure starts the iteration over and allows you to enter another value.
FOR EACH Customer ON STOP UNDO, RETRY:DISPLAY Customer.CustNum Customer.Name Customer.CreditLimit.UPDATE Customer.CreditLimit.IF Customer.CreditLimit > 100000 THEN STOP.END.The ON STOP phrase is especially useful to trap the STOP condition that results when a user cancels out of a record lock conflict in an application. The r-ostop2.p procedure is a simple record navigation and update utility that finds Salesrep records with the SHARE-LOCK condition. The user can update the values of a Salesrep record in the frame and choose the Assign button to assign the new values to the database. If the user attempts to update a Salesrep record that another user already has in the SHARE-LOCK condition, the r-ostop2.p procedure freezes as a result of the record locking conflict. The AVM displays a message asking the user to wait for the other user to relinquish the lock on the record or to press the STOP key to abort the operation.By default, the STOP key aborts the procedure. The ON STOP phrase on the DO TRANSACTION block in the r-ostop2.p procedure captures the STOP condition and returns control to the procedure.
© 2013 Progress Software Corporation and/or its subsidiaries or affiliates. |