Try BusinessLayer.TransactionBegin("PENSOLUTIONOFFICE", Data.IsolationLevel.ReadCommitted) mmks_UpdateSFSUsers(loSFSUserBO) lSaveResult = loSFSUserBO.Save() If lSaveResult = MicroFour.StrataFrame.Data.SaveUndoResult.Success Then pmks_SFSUserId = loSFSUserBO.us_pk Dim loPSOClients As PSOClientsBO = New PSOClientsBO() Dim lcKey As String = loSFSUserBO.DataSourceKey loPSOClients.mmks_FillDataTableBySFSUserId(pmks_SFSUserId) mmks_UpdatePSOClients(loPSOClients, pmks_SFSUserId) Dim loSFSUsersXRoles As MicroFour.StrataFrame.Security.BusinessObjects.SFSUsersXRolesBO = New MicroFour.StrataFrame.Security.BusinessObjects.SFSUsersXRolesBO() loSFSUsersXRoles.FillAllByUser(pmks_SFSUserId) mmks_UpdateSFSUsersXRoles(loSFSUsersXRoles, pmks_SFSUserId) Dim loSFSUsersXPermissions As MicroFour.StrataFrame.Security.BusinessObjects.SFSUsersXPermissionsBO = New MicroFour.StrataFrame.Security.BusinessObjects.SFSUsersXPermissionsBO() loSFSUsersXPermissions.FillAllByUser(pmks_SFSUserId) mmks_UpdateSFSUsersXPermissions(loSFSUsersXPermissions, pmks_SFSUserId) Throw New Exception("Custom Error") If loPSOClients.Save(True) = MicroFour.StrataFrame.Data.SaveUndoResult.Success Then If loSFSUsersXRoles.Save(True) = MicroFour.StrataFrame.Data.SaveUndoResult.Success Then If loSFSUsersXPermissions.Count > 0 Then If Not loSFSUsersXPermissions.Save(True) = MicroFour.StrataFrame.Data.SaveUndoResult.Success Then Throw New Exception("An error happen during save SFSUsersXPermissions") End If End If Else Throw New Exception("An error happen during save SFSUsersXRoles") End If Else Throw New Exception("An error happen during save PSOClients") End If Else Throw New Exception("An error happen during save SFSUsers") End If BusinessLayer.TransactionCommit("PENSOLUTIONOFFICE") Catch ex As Exception lcErrorMessage = ex.Message BusinessLayer.TransactionRollback("PENSOLUTIONOFFICE") End Try