Skip to main content
Hitachi Vantara Lumada and Pentaho Documentation

Transaction

pentaho.type.changes. Transaction

A Transaction object stores information about changes performed to instances.

When a transaction is the ambient transaction, it stores the changes performed to any instances. All of the changes performed are temporary and no change events are emitted, until the transaction is committed.

The ambient transaction is accessible through Transaction.current.

All of the changes are immediately visible, through any read operations of the modified instances, while the transaction is the ambient transaction.

If a transaction ceases to be the ambient transaction, then all of the changes that it captured suddenly become inaccessible.

If a transaction is later committed, and is successful, every change becomes permanent. Otherwise, if the transaction is simply disposed of, all the changes it captured are lost.

Managing the ambient transaction is best handled implicitly, by delegating to a TransactionScope object.

AMD Module

require(["pentaho/type/Transaction"], function(Transaction) { /* code goes here */ });

Implements

Constructor

Name Description
new Transaction()

Creates a Transaction.

Members

Name Description
current : pentaho.type.changes.Transaction
Static

Gets the ambient transaction, if any, or null.

isCurrent : boolean

Gets a value that indicates if this transaction is the current transaction.

isProposed : boolean

Gets a value that indicates if the transaction is in a proposed state, that is, it has not been committed or rejected.

isReadOnly : boolean

Gets a value that indicates if the transaction is in a read-only state.

result : pentaho.lang.ActionResult

Gets an action result of the final state of the transaction; or null, if the transaction is still in a proposed state.

version : number

Gets the current transaction version.

Methods

Name Description
enter() : pentaho.type.changes.TransactionScope
Static

Enters a scope of change.

enterCommitted() : pentaho.type.changes.CommittedScope
Static

Enters a read-committed scope.

getChangesetsPending(container) : Array.<pentaho.type.changes.Changeset>
Static

Gets any changesets still being delivered through notifications in the commit phase of transactions.

ensureChangeset(owner) : pentaho.type.changes.Changeset

Called to obtain a changeset for a given container in this transaction.

enter() : pentaho.type.changes.TransactionScope

Enters the transaction and returns a new transaction scope to control the transaction.

getAmbientReferences(container) : pentaho.type.ReferenceList

Gets the ambient references of a given container, if any.

getChangeset(uid) : pentaho.type.changes.Changeset

Gets the changeset of an instance, given its unique identifier.

Constructor Details

new Transaction()

Creates a Transaction.

Source: javascript/web/pentaho/type/changes/Transaction.js, line 85

Members Details

current: pentaho.type.changes.Transaction
Static

Gets the ambient transaction, if any, or null.

Source: javascript/web/pentaho/type/changes/Transaction.js, line 955

isCurrent: boolean

Gets a value that indicates if this transaction is the current transaction.

Source: javascript/web/pentaho/type/changes/Transaction.js, line 368

isProposed: boolean

Gets a value that indicates if the transaction is in a proposed state, that is, it has not been committed or rejected.

Source: javascript/web/pentaho/type/changes/Transaction.js, line 196

See also: pentaho.type.changes.Transaction#result

isReadOnly: boolean

Gets a value that indicates if the transaction is in a read-only state.

A transaction becomes read-only when it is previewed, committed or rejected.

Source: javascript/web/pentaho/type/changes/Transaction.js, line 208

result: pentaho.lang.ActionResult

Gets an action result of the final state of the transaction; or null, if the transaction is still in a proposed state.

Source: javascript/web/pentaho/type/changes/Transaction.js, line 221

See also: pentaho.type.changes.Transaction#isProposed

version: number

Gets the current transaction version.

Beware, this version number is not the same as that of pentaho.type.mixins.Container#$version.

Initially, a transaction has version 0. This number is then incremented per each individual made change. Each change indicates the version it caused the transaction to assume: pentaho.type.changes.Change#transactionVersion.

Source: javascript/web/pentaho/type/changes/Transaction.js, line 182

Methods Details

enter() : pentaho.type.changes.TransactionScope
Static

Enters a scope of change.

To mark the changes in the scope as error, call its reject method.

To end the scope of change successfully, dispose the returned transaction scope, by calling its dispose method.

If the scope initiated a transaction, then that transaction is committed. Otherwise, if an ambient transaction already existed when the change scope was created, that transaction is left uncommitted.

To end the scope with an error, call its reject method.

Source: javascript/web/pentaho/type/changes/Transaction.js, line 980

Returns:
Name Description
pentaho.type.changes.TransactionScope

The new transaction scope.

enterCommitted() : pentaho.type.changes.CommittedScope
Static

Enters a read-committed scope.

Within this scope there is no current transaction and reading the properties of instances obtains their committed values.

Source: javascript/web/pentaho/type/changes/Transaction.js, line 993

Returns:
Name Description
pentaho.type.changes.CommittedScope

The read-committed scope.

getChangesetsPending(container) : Array.<pentaho.type.changes.Changeset>
Static

Gets any changesets still being delivered through notifications in the commit phase of transactions.

If a transaction is started and committed from within the did:change listener of another, then multiple changesets may be returned.

Source: javascript/web/pentaho/type/changes/Transaction.js, line 1009

Parameters:
Name Default Value Summary
container : pentaho.type.mixins.Container

The container.

Returns:
Name Description
Array.<pentaho.type.changes.Changeset>

An array of changesets, if any changeset exists; null otherwise.

ensureChangeset(owner) : pentaho.type.changes.Changeset

Called to obtain a changeset for a given container in this transaction.

Source: javascript/web/pentaho/type/changes/Transaction.js, line 298

Parameters:
Name Default Value Summary
owner : pentaho.type.mixins.Container

The changeset owner container.

Returns:
Name Description
pentaho.type.changes.Changeset

The existing or created changeset.

Throws:
Name Description
pentaho.lang.OperationInvalidError

When the transaction has already been previewed, committed or rejected, and thus can no longer be changed.

See also: pentaho.type.changes.Changeset#__onChildChangesetCreated

enter() : pentaho.type.changes.TransactionScope

Enters the transaction and returns a new transaction scope to control the transaction.

Source: javascript/web/pentaho/type/changes/Transaction.js, line 382

Returns:
Name Description
pentaho.type.changes.TransactionScope

The new transaction scope.

Throws:
Name Description
pentaho.lang.OperationInvalidError

When the transaction is resolved.

pentaho.type.changes.TransactionRejectedError

When entering the root scope of the transaction and the transaction is automatically rejected due to a concurrency error.

getAmbientReferences(container) : pentaho.type.ReferenceList

Gets the ambient references of a given container, if any.

Source: javascript/web/pentaho/type/changes/Transaction.js, line 281

Parameters:
Name Default Value Summary
container : pentaho.type.mixins.Container

The container.

Returns:
Name Description
pentaho.type.ReferenceList

The reference list, or null.

getChangeset(uid) : pentaho.type.changes.Changeset

Gets the changeset of an instance, given its unique identifier.

If no changeset has been added for the specified instance, null is returned.

Source: javascript/web/pentaho/type/changes/Transaction.js, line 236

Parameters:
Name Default Value Summary
uid : string

The unique identifier of the instance.

Returns:
Name Description
pentaho.type.changes.Changeset

The changeset, or null.