diff --git a/src/org/openbravo/dal/core/SessionHandler.java b/src/org/openbravo/dal/core/SessionHandler.java
--- a/src/org/openbravo/dal/core/SessionHandler.java
+++ b/src/org/openbravo/dal/core/SessionHandler.java
@@ -162,6 +162,18 @@
     }
   }
 
+  /**
+   * Begins a new Transaction on the current HibernateSession. If the current transaction is still
+   * active a warning is logged and a new transaction is not created.
+   */
+  public void beginNewTransaction() {
+    if (tx != null && tx.isActive()) {
+      log.warn("Tx is active cannot create a new one");
+    } else {
+      tx = getSession().beginTransaction();
+    }
+  }
+
   /** Gets a new {@code Connection} from the connection pool. */
   public Connection getNewConnection() throws SQLException {
     Connection newConnection;
