Skip to Content
0

BOPF Transaction handling: Change object and COMMIT

Jun 27, 2017 at 07:42 AM

204

avatar image

Hi,

in many cases the COMMIT of a transaction is only done if changes are there.

Does the Transaction Manager (Standalone or save) take this into account? Or can/should this be done via the change object (get_transactional_changes)?

Are there any issues or things to consider (Performance, Locking, ...)?

Thanks a lot in advance.

Regards, Thomas.

10 |10000 characters needed characters left characters exceeded
* Please Login or Register to Answer, Follow or Comment.

2 Answers

Suhas Sondur
Jul 03, 2017 at 05:27 AM
0

I think BOPF transaction manager handles this together with the service managers. This means that all changes there are performed get recorded with the corresponding service managers(in case multiple BOs are involved). The 'Save' triggers the transaction manager which checks with the involved service managers(in that session) about the changes done.

Regards,

Suhas

Share
10 |10000 characters needed characters left characters exceeded
Thomas Scharf
Jul 07, 2017 at 03:09 PM
0

Hi Suhas,

thanks for the reply, it would be fine, if the Framework takes care of it.

I would now like to extend my question to the following situation.

  1. We want to integrate into a process (transaction) which does not belong to our application.
  2. This process deals with classical BOs and BOPF BOs (which also do not belong to our application - in a technical sense).
  3. Within this process, we want to modify an instance of our own BO and, from a transactional point of view, all changes to BOs should be saved or none of them.
  4. This works fine - at least in most cases:

- We modify the BO instance an exit

- The central process calls the master slave transaction manager and all BOs (including ours) are saved

- Finally, the a COMMIT WORK persists the data.

Now, it can happen that the central process does not call the BOPF Transaction Manager and we have to ensure that changes to our BO will be saved. On the other hand, I do not get the information from the process, whether the TM is called or not.

Now, my extended question is:

Can the slave transaction manager be called twice? Or should I rather use the change object to find out whether there are still open changes?

Thanks a lot and best regards, Thomas.

Share
10 |10000 characters needed characters left characters exceeded