Just want to verify...
Do you "begin" the real transaction on the "HelperClasses.Transaction" constructor or at the "HelperClasses.Transaction.Commit" method ?
If "HelperClasses.Transaction" constructor then that's perfect, thank you (and forget the remaining text) !!!
If the transaction is begun at the "HelperClasses.Transaction.Commit" method then it would not enables us to use nested transaction either with regular database specific transaction or LLBL transactions. Could you begin the transaction at the constructor or add a new public method to enable us to begin the transaction manually (with an internal flag if needed to not start it twice if necessary) ?