Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

BOPF Transaction handling: Change object and COMMIT

thomas_scharf
Discoverer
0 Kudos

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.

2 REPLIES 2

0 Kudos

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

thomas_scharf
Discoverer
0 Kudos

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.