Show TOC

Transaction ModelLocate this document in the navigation structure

You can divide information processing into indivisible units called transactions. All changes that are made during a transaction must either be cleaned up or saved as a complete unit. A process usually consists of multiple transactions executed in succession. The Business Object Processing Framework (BOPF) transaction model divides the executed transactions into several phases. The figure below illustrates the phases that are explained below:



  1. Interaction Phase

    Using a set of core services the consumer can access any business object or business object enhancement at the beginning of the transaction. For example, the consumer can query a specific instance of the CUSTOMER_INVOICE business object and afterwards execute the RELEASE action.

  2. Save Phase

    As soon as the consumer saves the current transaction, the interaction phase is over and the save phase begins. During this phase, the consumer cannot call core services. The save phase itself is divided into the following phases:

    1. Finalization Phase

      During the finalization phase, each business object that is part of the current transaction is prepared for saving. If at least one business object rejects the finalization, the save phase is aborted and the transaction returns to the interaction phase. During the finalization phase, the determinations configured in the pattern Derive dependent data before saving are executed. For more information, see Pattern: Derive Dependent Data Before Saving.

    2. Check Before Save Phase

      During this phase, each business object that is part of the current transaction is checked to see whether it can be saved. If at least one business object fails, the save phase is aborted and the interaction phase starts again. During this phase, all consistency validations with impact on the determinations configured in the pattern Derive dependent data before saving are executed.

  3. Save

    During this phase, the system saves all changes of business object instances in the database.

In addition, the consumer can clean up the current transaction. In this case, the system discards all changes made to date in the current transaction.