Oracle DB Exception in A Function

Oracle DB Exception in A Function

  

hi there, 

I have a case where when the entity action cannot finish, the entity is locked. I use Oracle Db.

1. there is  a function (say it f1) that executes an entity action to delete a record in the entity

2. the function has no exception handling flow

3. the function is called from widget action (like save)

4. when the function fails to delete a record (as there is a child record), that record is 'locked' .. no rollback?

I am wondering, 

- whether the entity action (such as delete) raise a db exception internally in Outsystems? 

- if it does, and as it is not caught in the function, is it not automatically propagate to the calling function (save action - has exception handler to roll back) ?


Should i put the exception handling to rollback in a function?  thank you.

regards,

barong

 

Solution

Hello Barong,

By default, when an exception raises, the Transaction will be rolled back automatically, unless you catch the exception and change the "Abort Transaction" to 'False' (It is set to 'True' by default).

And in the end, if there are no exception flow in the Screen Action, the exception will be caught by the Exception Handler of the module, usually the OnException in the Common.

I never worked with Oracle in OutSystems, but the persons that I know that work with it, when there is an error, like this, they see the error message, so, I don't think this "hanging" is OutSystems related (at first), unless you are committing the transaction (the way I said).

Are you sure that you don't have a problem "Oracle side"? 

Did you tried to debug the application, like put a Exception Flow in the Screen Action and put a breakpoint there, to see if the exception is being raised at all?

Cheers,
Eduardo Jauch

Solution