There is a nice sample in the help file with the topic "Using Transactional Processing"Public Sub SaveAllOnTransaction()
'-- Add a try around the transaction processing
' This enables the process to call TransactionRollback()
' if anything bad happens during the transaction process.
Try
'-- Start the transaction
BusinessLayer.TransactionBegin("", Data.IsolationLevel.ReadCommitted)
'-- Save the business objects on the transaction
Me.Customers.Save(True)
Me.Orders.Save(True)
Me.OrderItems.Save(True)
'-- When business objects are saved on the transaction, the
' pending changes to their internal DataTables are NOT saved
' until TransactionEnd() is called...
'-- Call transaction end to commit the transaction queries and
' accept the pending changes on all of the business objects
' that participated in the transaction.
BusinessLayer.TransactionCommitt("")
Catch ex As Exception
'-- If an exception occurs during the saving of the records, then
' abort the transaction.
BusinessLayer.TransactionRollback("")
End Try
End Sub