- s seleccionar un cliente
- s seleccionar producctos para confeccionar un formulario de venta
- s persistir el formulario
- s calcular el presupuesto de venta
- s persistir el presupuesto y el formulario para su aprobaciòn
- s Aceptar o cancelar.
Todo esto esta hecho en java y al hacer rollback se rollbackea todo. Por motivos que no vienen al caso ahora el cálculo del presupuesto no se hace en java sino que se llama a un PL/Sql que realiza el càlculo, para hacer esto tengo que persistir el formulario para que el PL/SQL sepa que sumar (los productos del formulario de venta) y commitearlo para que lo vea (recordemos que toda la operatoria estaba en una transaccion), ahora bien vemos que el cancelar que tenia al principio ahora tendrìa que borrar (delete) en lugar de solo hacer un simple rollback dado que toda la operaciòn deberia estar dentro de una trasacciòn.
Existe forma de compartir la transaccion entre ambos procesos (java y el PL/SQL)? El PL/SQL se llama desde java mediante la base de datos con un store procedure.
Pd: no es importante el ejemplo, lo que importa es el problema que tengo al tener que persistir datos para que los vea el PL/SQL y luego tener que hacer un rollback, situacion de la que no me puedo escapar en el caso real.
Gracias.