Transaction
pentaho.type.action 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/action/Transaction"], function(Transaction) { /* code goes here */ });
Extends
Implements
Constructor
Name | Description |
---|---|
new Transaction() | Creates a |
Members
Name | Description |
---|---|
current : Static | Gets the ambient transaction, if any, or |
__isInside : | Indicates if currently calling any of the methods: |
action : | Gets the action of the action execution. |
base : Protected | If a method has been overridden, then the base method provides access to the overridden method. |
error : | Gets the reason for a rejected action execution, or |
isCanceled : | Gets a value that indicates if the action execution has been canceled. |
isCurrent : | Gets a value that indicates if this transaction is the |
isDone : | Gets a value that indicates if the action execution completed successfully. |
isExecuting : | Gets a value that indicates if the action execution is executing. |
isFailed : | Gets a value that indicates if the action execution has failed. |
isFinished : | Gets a value that indicates if the action execution has finished. |
isReadOnly : | Gets a value that indicates if the transaction is in a read-only state. |
isRejected : | Gets a value that indicates if the action execution has been rejected. |
isSettled : | Gets a value that indicates if the action execution has been settled. |
isSync : | Gets a value that indicates if the execution is synchronous. |
isUnstarted : | Gets a value that indicates if the action execution is in the |
promise : | Gets a promise for the result (or error) of this action execution. |
result : | Gets the result of a successful action execution, if any. |
state : | Gets the current action execution state. |
target : | Gets the target of the action execution. |
version : | Gets the current transaction version. |
Methods
Name | Description |
---|---|
enter() : pentaho.type.action.TransactionScope Static | Enters a scope of change. |
enterCommitted() : pentaho.type.action.CommittedScope Static | Enters a read-committed scope. |
getChangesetsPending(container) : Array.< Static | Gets any changesets still being delivered through notifications in the commit phase of transactions. |
_doDefault() : Promise Protected | Performs the default "execution" for the associated action. |
_lockAction() Protected | Locks the action. |
_onPhaseDo() : Promise Protected | Called during the action's do phase. |
_onPhaseFinally() Protected | Called during the action's finally phase. |
_onPhaseInit() Protected | Called during the action execution's initialize phase. |
_onPhaseWill() Protected | Called during the action execution's will phase. |
_validate() : Array.< Protected | Validates that the action execution is valid for entering the |
done(result) : pentaho.type.action.Execution | Called from an action observer to settle the action execution as being done, optionally giving a result value. |
ensureChangeset(target) : pentaho.type.action.Changeset | Called to obtain a changeset for a given container in this transaction. |
enter() : pentaho.type.action.TransactionScope | Enters the transaction and returns a new transaction scope to control the transaction. |
execute() : pentaho.type.action.Execution | Executes the action. |
executeWill() : pentaho.type.action.Execution | Executes up to the 'will' phase of the action. |
extend(source, keyArgs) : object | Extend an object with the properties of another. |
getAmbientReferences(container) : pentaho.type.ReferenceList | Gets the ambient references of a given container, if any. |
getChangeset(uid) : pentaho.type.action.Changeset | Gets the changeset of an instance, given its unique identifier. |
reject(reason) : pentaho.type.action.Execution | Called to settle the action execution as rejected. |
Constructor Details
new Transaction() |
---|
Creates a Source: javascript/web/pentaho/type/action/Transaction.js, line 87 |
Members Details
current: Static |
---|
Gets the ambient transaction, if any, or Source: javascript/web/pentaho/type/action/Transaction.js, line 835 |
__isInside: |
---|
Indicates if currently calling any of the methods: Source: javascript/web/pentaho/action/Execution.js, line 202 Inherited From: pentaho.action.Execution#__isInside Default Value: false See also: pentaho.action.Execution#__callInside |
action: |
---|
Gets the action of the action execution. Once the action execution enters the Source: javascript/web/pentaho/action/Execution.js, line 229 Overrides: pentaho.action.Execution#action |
base: Protected |
---|
If a method has been overridden, then the base method provides access to the overridden method. Can also be called from within a constructor function. Source: javascript/web/pentaho/lang/Base.js, line 299 Inherited From: pentaho.lang.Base#base |
error: |
---|
Gets the reason for a rejected action execution, or This property only returns a non-null value if Source: javascript/web/pentaho/action/Execution.js, line 323 Inherited From: pentaho.action.Execution#error |
isCanceled: |
---|
Gets a value that indicates if the action execution has been canceled. An action execution is considered canceled if its state has the Source: javascript/web/pentaho/action/Execution.js, line 391 Inherited From: pentaho.action.Execution#isCanceled See also: pentaho.type.action.Execution#isRejected |
isCurrent: |
---|
Gets a value that indicates if this transaction is the Source: javascript/web/pentaho/type/action/Transaction.js, line 379 |
isDone: |
---|
Gets a value that indicates if the action execution completed successfully. An action execution is considered done if its state has the Source: javascript/web/pentaho/action/Execution.js, line 440 Inherited From: pentaho.action.Execution#isDone See also: pentaho.type.action.Execution#isSettled , pentaho.type.action.Execution#result |
isExecuting: |
---|
Gets a value that indicates if the action execution is executing. An action execution is considered executing if it has started but not yet finished, i.e., if its state is not the Source: javascript/web/pentaho/action/Execution.js, line 424 Inherited From: pentaho.action.Execution#isExecuting See also: pentaho.type.action.Execution#isUnstarted , pentaho.type.action.Execution#isFinished |
isFailed: |
---|
Gets a value that indicates if the action execution has failed. An action execution is considered failed if its state has the Source: javascript/web/pentaho/action/Execution.js, line 406 Inherited From: pentaho.action.Execution#isFailed See also: pentaho.type.action.Execution#isRejected |
isFinished: |
---|
Gets a value that indicates if the action execution has finished. An action execution is considered finished if its state has the When finished, one of the bits Source: javascript/web/pentaho/action/Execution.js, line 462 Inherited From: pentaho.action.Execution#isFinished See also: pentaho.type.action.Execution#isSettled |
isReadOnly: |
---|
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/action/Transaction.js, line 204 |
isRejected: |
---|
Gets a value that indicates if the action execution has been rejected. An action execution is considered rejected if its state has one of the following bits on: Source: javascript/web/pentaho/action/Execution.js, line 376 Inherited From: pentaho.action.Execution#isRejected See also: pentaho.type.action.Execution#isCanceled , pentaho.type.action.Execution#isFailed , pentaho.type.action.Execution#isDone , pentaho.type.action.Execution#isSettled , pentaho.type.action.Execution#error |
isSettled: |
---|
Gets a value that indicates if the action execution has been settled. An action execution is considered settled if its state has one of the following bits on: When an execution is settled it may not yet be [finished]{@see pentaho.type.action.Execution#isFinished}. Source: javascript/web/pentaho/action/Execution.js, line 356 Inherited From: pentaho.action.Execution#isSettled See also: pentaho.type.action.Execution#isCanceled , pentaho.type.action.Execution#isFailed , pentaho.type.action.Execution#isDone |
isSync: |
---|
Gets a value that indicates if the execution is synchronous. Source: javascript/web/pentaho/action/Execution.js, line 248 Overrides: pentaho.action.Execution#isSync |
isUnstarted: |
---|
Gets a value that indicates if the action execution is in the Source: javascript/web/pentaho/action/Execution.js, line 334 Inherited From: pentaho.action.Execution#isUnstarted |
promise: |
---|
Gets a promise for the result (or error) of this action execution. This promise can be requested anytime, before the execution has started, during execution, or after execution has finished. It can also be requested whether or not the associated action is The promise is fulfilled with the action execution's Source: javascript/web/pentaho/action/Execution.js, line 485 Inherited From: pentaho.action.Execution#promise |
result: |
---|
Gets the result of a successful action execution, if any. This property only returns a non-undefined value if Source: javascript/web/pentaho/action/Execution.js, line 310 Inherited From: pentaho.action.Execution#result |
state: |
---|
Gets the current action execution state. Source: javascript/web/pentaho/action/Execution.js, line 279 Inherited From: pentaho.action.Execution#state See also: pentaho.type.action.Execution#isUnstarted , pentaho.type.action.Execution#isExecuting , pentaho.type.action.Execution#isSettled , pentaho.type.action.Execution#isDone , pentaho.type.action.Execution#isRejected , pentaho.type.action.Execution#isCanceled , pentaho.type.action.Execution#isFailed , pentaho.type.action.Execution#isFinished |
target: |
---|
Gets the target of the action execution. Source: javascript/web/pentaho/type/action/Transaction.js, line 232 Overrides: pentaho.action.Execution#target |
version: |
---|
Gets the current transaction version. Beware, this version number is not the same as that of Initially, a transaction has version Source: javascript/web/pentaho/type/action/Transaction.js, line 191 |
Methods Details
enter() : pentaho.type.action.TransactionScope Static | ||||
---|---|---|---|---|
Enters a scope of change. To mark the changes in the scope as error, call its To end the scope of change successfully, dispose the returned transaction scope, by calling its 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 Source: javascript/web/pentaho/type/action/Transaction.js, line 860
|
enterCommitted() : pentaho.type.action.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/action/Transaction.js, line 873
|
getChangesetsPending(container) : Array.< 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 Source: javascript/web/pentaho/type/action/Transaction.js, line 889
|
_doDefault() : Promise Protected | ||||
---|---|---|---|---|
Performs the default "execution" for the associated action. When the associated action is Source: javascript/web/pentaho/action/Execution.js, line 615 Inherited From: pentaho.action.Execution#_doDefault
|
_lockAction() Protected |
---|
Locks the action. The default implementation locks the action by using the Source: javascript/web/pentaho/action/Execution.js, line 891 Overrides: pentaho.action.Execution#_lockAction |
_onPhaseDo() : Promise Protected | ||||
---|---|---|---|---|
Called during the action's do phase. The default implementation does nothing. Source: javascript/web/pentaho/action/Execution.js, line 1052 Overrides: pentaho.action.Execution#_onPhaseDo
|
_onPhaseFinally() Protected |
---|
Called during the action's finally phase. The default implementation does nothing. Source: javascript/web/pentaho/action/Execution.js, line 1063 Overrides: pentaho.action.Execution#_onPhaseFinally |
_onPhaseInit() Protected |
---|
Called during the action execution's initialize phase. The default implementation does nothing. Source: javascript/web/pentaho/action/Execution.js, line 1029 Overrides: pentaho.action.Execution#_onPhaseInit |
_onPhaseWill() Protected |
---|
Called during the action execution's will phase. The default implementation does nothing. Source: javascript/web/pentaho/action/Execution.js, line 1039 Overrides: pentaho.action.Execution#_onPhaseWill |
_validate() : Array.< Protected | ||||
---|---|---|---|---|
Validates that the action execution is valid for entering the The default implementation validates the action. Source: javascript/web/pentaho/action/Execution.js, line 903 Overrides: pentaho.action.Execution#_validate
|
done(result) : pentaho.type.action.Execution | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Called from an action observer to settle the action execution as being done, optionally giving a result value. Source: javascript/web/pentaho/action/Execution.js, line 631 Inherited From: pentaho.action.Execution#done
|
ensureChangeset(target) : pentaho.type.action.Changeset | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Called to obtain a changeset for a given container in this transaction. Source: javascript/web/pentaho/type/action/Transaction.js, line 309
See also: pentaho.type.action.Changeset#__onChildChangesetCreated |
enter() : pentaho.type.action.TransactionScope | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
Enters the transaction and returns a new transaction scope to control the transaction. Source: javascript/web/pentaho/type/action/Transaction.js, line 393
|
execute() : pentaho.type.action.Execution | ||||
---|---|---|---|---|
Executes the action. When the associated action is Source: javascript/web/pentaho/action/Execution.js, line 540 Inherited From: pentaho.action.Execution#execute
|
executeWill() : pentaho.type.action.Execution | ||||
---|---|---|---|---|
Executes up to the 'will' phase of the action. Source: javascript/web/pentaho/action/Execution.js, line 562 Inherited From: pentaho.action.Execution#executeWill
|
extend(source, keyArgs) : object | |||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Extend an object with the properties of another. Methods that are overridden are accessible through This object is extended, but its class doesn't change. Source: javascript/web/pentaho/lang/Base.js, line 1040 Inherited From: pentaho.lang.Base#extend
|
getAmbientReferences(container) : pentaho.type.ReferenceList | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
Gets the ambient references of a given container, if any. Source: javascript/web/pentaho/type/action/Transaction.js, line 292
|
getChangeset(uid) : pentaho.type.action.Changeset | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
Gets the changeset of an instance, given its unique identifier. If no changeset has been added for the specified instance, Source: javascript/web/pentaho/type/action/Transaction.js, line 247
|
reject(reason) : pentaho.type.action.Execution | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Called to settle the action execution as rejected. The execution is considered failed if Otherwise, the execution is considered canceled if When unstarted, the execution's 'finally' phase is run. Otherwise, it is run later, when the execution reaches that phase. Source: javascript/web/pentaho/action/Execution.js, line 704 Inherited From: pentaho.action.Execution#reject
See also: pentaho.type.action.Execution#isRejected , pentaho.type.action.Execution#isCanceled , pentaho.type.action.Execution#isFailed , pentaho.type.action.Execution#error Example define([ "pentaho/lang/UserError", "pentaho/lang/RuntimeError" ], function(UserError, RuntimeError) { // ... target.on("fly", { will: function(event) { // Canceling the action execution // - Method 1 event.reject("Cannot do this action now."); // - Method 2 event.reject(new UserError("Cannot do this action now.")); // Failing the action execution // - Method 1 (message is not adequate to be shown to the user): event.reject(new Error("Null Pointer Exception.")); // - Method 2 (message is adequate to be shown to the user): event.reject(new RuntimeError("The server is currently unreachable.")); } }); // ... }); |