*-- Insert record to sales table *-- Insert lineitems records to lineitem table *-- Replace stock_status.qty with stock_Status - qtysold for each items *-- Increase auto number BEGIN TRANSACTION IF NOT llRollBack AND NOT TABLEUPDATE(.T., .F., "Sales") llRollBack = .T. ENDIF IF NOT llRollBack AND NOT TABLEUPDATE(.T., .F., "lineitems") llRollBack = .T. ENDIF IF NOT llRollBack AND NOT TABLEUPDATE(.T., .F., "Stock_status") llRollBack = .T. ENDIF IF NOT llRollBack AND NOT TABLEUPDATE(.T., .F., "AutoNo") llRollBack = .T. ENDIF IF llRollBack AERROR(laError) ROLLBACK TABLEREVERT(.T., "sales") TABLEREVERT(.T., "lineitems") TABLEREVERT(.T., "stock_status") TABLEREVERT(.T., "autono") RETURN laError[2] ELSE END TRANSACTION RETURN "OK-" ENDIFI faced problem that, if there are any unexpected disaster occured such as power failure and system hang the "TRANSACTION" is not work correctly.