Managing transactions
- Last Updated: April 14, 2026
- 2 minute read
- OpenEdge
- Version 12.2
- Documentation
The Update*( ),
Create*( ), and Delete*( ) service methods
normally commit the changes for an object in a single transaction. As shown above, the
Create*( ) and Update*( ) methods support both a single entity and a collection of
entities. A collection passed to an Update*( ) service
method can include new entities, changes to entities, and entity deletions.
The transaction includes changes to entities in any of the child collections of the entities that are passed to the service method. However, the properties and child collections of an entity are not rolled back in the event of a transaction rollback.
TRANSACTION option on a block
and increase the transaction scope to span more than one service call. This, in
principle, is an unsupported mode of operation. Attempting to use the TRANSACTION option around one of the few methods that
require two transactions will prevent the second transaction from taking place (see
Table updates that require two transactions), but there is no known reason why it should not work for other
methods as long as the transaction does not span multiple
services. If the services are connected to different databases, the operation
would be a two-phase commit. However, the effect of a transaction that spans multiple
instances on the same database is quite unpredictable. The API is designed to run separately from the database in a future
release, and code that has functionality that relies on the TRANSACTION option will likely not be able to run separate from the
database in the future. Note that the API design is based on a common OpenEdge
application strategy, and the warning against using the TRANSACTION option is consistent with OpenEdge recommendations for
implementing a business logic layer in ABL; there are no current plans to support the
API in a distributed application environment.