Internal transaction handling in Business Objects

Transaction handling for BODs and BDEs is done as a whole. It is uncommon to have an internal transaction. For example, a transaction with an own retry point and commit to commit a part of the Business Object handling to the database regardless if the complete Business Object action will succeed or fail. There can be reasons to have an internal transaction within a BOD or BDE.

This can be established by using a subprocess.

Note: Before starting the subprocess, system variable db.child.transaction (set within the Dispatcher) must be temporarily reset by db.set.child.transaction(0). This is to avoid suppressing the transactions that are performed within the subprocess. After starting the subprocess, db.child.transaction must be restored with db.set.child.transaction(1). To avoid creating a subprocess for every invocation, it is advisable to reuse the subprocess and use BMS commumication between main process and subprocess.