1
我們使用功能單一的.p文件,如以下功能:交易和
myTest.p
BLOCK-LEVEL ON ERROR UNDO, THROW.
FUNCTION secondFunc RETURNS LOG():
UNDO, THROW NEW Progress.Lang.AppError("ERROR HAPPENED, UNDO ALL!").
END FUNCTION.
FUNCTION firstFunc RETURNS LOG():
secondFunc().
END FUNCTION.
FUNCTION starter RETURNS LOG():
/* start transaction */
DO TRANSACTION:
firstFunc().
END.
END FUNCTION.
/* start execution of the function tree */
starter().
CATCH err AS Progress.Lang.Error:
RUN WRITE_log(err:GetMessage(1)).
MESSAGE err:GetMessage(1) VIEW-AS ALERT-BOX.
UNDO, RETURN ERROR.
END.
根據這個代碼,並在Transaction
撤消所有改變DONE裏面它在starter()
-功能?或者我們是否需要將某種句柄傳遞給Transaction
中的所有函數,以便它可以「撤消」?