public class BT
extends de.ipcon.db.core.BTBase
ATT_AusgeloestDurchAlarmausloesung, ATT_BPCount, ATT_BPs, ATT_ChangedOnlyBOs, ATT_CreatedBOs, ATT_CustomProperties, ATT_CustomPropertiesAsRelation, ATT_DeletedBOs, ATT_Description, ATT_Node, ATT_NodeBTId, ATT_Remarks, ATT_Time, ATT_User, ATT_VerboseDescription, ATT_VerboseDescriptionHTML, ENT_BTBLOB_KEY, CANCEL_RECALC_CALLED, D_0, D_1, D_10, D_100, D_1000, D_10000, D_5, D_MINUS_1, D_MINUS_ONE, D_ONE, D_ZERO, doExWriteLRMFunction, EMPTY_ARRAY, F_0, F_1, L_0, L10N_KEY_BO_INSTANTIATION, L10N_KEY_BO_WITH_PROTECTED_CONSTRUCTOR, NULL_AGGREGATE, NULL_ITERATORATT_Badge, ATT_Badge2, ATT_Badge3, ATT_Badge4, ATT_BLOBCreatedBy, ATT_BLOBCreatedOn, ATT_BLOBDeletedBy, ATT_BLOBDeletedOn, ATT_BLOBLastModifiedBy, ATT_BLOBLastModifiedOn, ATT_Bot, ATT_Crea, ATT_CreatedBy, ATT_CreatedModifiedText, ATT_Id, ATT_InvolvedInProcs, ATT_LastModifiedBy, ATT_Ldel, ATT_Lmod, ATT_Procs, ENT_BO| Constructor and Description |
|---|
BT() |
| Modifier and Type | Method and Description |
|---|---|
java.lang.String |
dump(boolean html) |
java.lang.String |
dump(boolean html,
int maximumBPsToShow) |
java.util.Map<java.lang.Long,BO> |
getAffectedBOs()
Returns a map with all
BO instances of the given class which were affected (created, changed or deleted)
by this BT. |
java.util.Map<java.lang.Long,BO> |
getAffectedBOs(java.lang.Class clazz) |
java.lang.Boolean |
getBooleanProperty(EntityI namespaceEntity,
java.lang.String name) |
java.lang.Integer |
getBPCount() |
java.util.Map<java.lang.Long,BP> |
getBPsByBOId(java.lang.Long boId) |
java.util.Map<java.lang.Long,BO> |
getChangedOnlyBOs() |
java.util.Map<java.lang.Long,BO> |
getChangedOnlyBOs(java.lang.Class clazz) |
java.util.Map<java.lang.Long,BO> |
getCreatedBOs() |
java.util.Map<java.lang.Long,BO> |
getCreatedBOs(java.lang.Class clazz) |
java.util.Map<java.lang.Long,CustomBTProperty> |
getCustomPropertiesAsRelation() |
java.math.BigDecimal |
getDecimalProperty(EntityI namespaceEntity,
java.lang.String name) |
java.util.Map<java.lang.Long,BO> |
getDeletedBOs() |
java.util.Map<java.lang.Long,BO> |
getDeletedBOs(java.lang.Class clazz) |
java.lang.Long |
getHighestBPId() |
java.lang.Long |
getLongProperty(EntityI namespaceEntity,
java.lang.String name) |
java.util.Optional<java.lang.Object> |
getOldValue(BOLoaderI bol,
java.lang.Long id,
AttributeI attr,
java.lang.Object explicitNullValue,
boolean allowIndirectChanges)
Fetches the old value of the given BO and Attribute from this BT for scalars and n-1 relations.
|
java.lang.String |
getStringProperty(EntityI namespaceEntity,
java.lang.String name) |
java.lang.String |
getVerboseDescription() |
java.lang.String |
getVerboseDescriptionHTML() |
boolean |
hasProperties() |
boolean |
hasProperty(EntityI namespaceEntity,
java.lang.String name) |
boolean |
isFromUs()
Returns true if this
BT resulted on the current node, false if on a different node. |
boolean |
isSync()
Returns true if this
BT resulted from a MyTISM node sync run (as
opposed to an "original" change done e.g. via the GUI or by some other
client). |
BO |
revertBOState(BO bo)
Unplay the changes made in this BT for the given BO.
|
void |
undo(TransactionProviderI tpi,
BOLoaderI bol)
Rolls back this transaction and optionally integrates subsequent changes.
|
void |
undo(TransactionProviderI tpi,
BOLoaderI bol,
boolean applyTimeTravel) |
addBP, copyFrom, copyFrom, equalPayload, getAusgeloestDurchAlarmausloesung, getBPCountNN, getBPCountNN, getBPs, getBPsIterator, getChangedOnlyBOsIterator, getCreatedBOsIterator, getCustomProperties, getCustomPropertiesAsRelationIterator, getCustomPropertiesNE, getCustomPropertiesNN, getCustomPropertiesNN, getDeletedBOsIterator, getDescription, getDescriptionNE, getDescriptionNN, getDescriptionNN, getNode, getNodeBTId, getNodeBTIdNN, getNodeBTIdNN, getNodeNN, getNodeNN, getRemarks, getRemarksNE, getRemarksNN, getRemarksNN, getTime, getUser, getVerboseDescriptionHTMLNE, getVerboseDescriptionHTMLNN, getVerboseDescriptionHTMLNN, getVerboseDescriptionNE, getVerboseDescriptionNN, getVerboseDescriptionNN, needAusgeloestDurchAlarmausloesung, needBPCount, needCustomProperties, needDescription, needNode, needNodeBTId, needPopulatedBPs, needPopulatedChangedOnlyBOs, needPopulatedCreatedBOs, needPopulatedCustomPropertiesAsRelation, needPopulatedDeletedBOs, needRemarks, needTime, needUser, needVerboseDescription, needVerboseDescriptionHTML, pgetBPsLazy, readExternal, removeBP, setAusgeloestDurchAlarmausloesung, setBOLoader, setBPs, setCustomProperties, setDescription, setNode, setNodeBTId, setRemarks, setTime, setUser, slim, slim, writeExternal_set, $, $, $, $$, $$bo, $$o, $$r, $$ri, $$ri, acquireTxWriteLock, add, afterSaveOnClient, afterSaveOnServer, afterVerifyOnClient, afterVerifyOnServer, aggregate, aggregate, aggregate, aggregate, badge, badge, beforeVerifyOnClient, beforeVerifyOnServer, bumpVersion, cacheLocally, cacheLocally, cacheLocallyAndThrowUnwrappedCause, cacheLocallyAndThrowUnwrappedCause, cacheLocallyAndThrowUnwrappedUncheckedCause, cacheLocallyAndThrowUnwrappedUncheckedCause, cancelCheckConstraints, cancelRecalc, cancelRecalcViaLoadingTransaction, clone, commitTransaction, computeTransientPropertyIfAbsent, conciseDesc, conciseDesc, conciseDesc, conciseDesc, conciseDesc, conciseDesc, conciseDesc, conciseDesc, consumeAndAssureTransientPropertyExists, copyBLOBFrom, createCopy, createCopy, deepClone, deepClone, delete, describe, describe, describe, describe, describe, describe, describe, describe, describe, describe, describeId, describeId, describeId, describeId, describeId, describeId, describeId, describeId, describeNE, describeNE, describeNE, describeNE, describeNE, destub, equalPayload, equalPayload, equalPayload, equalPayload, equals, equalsBO, equalsBO, equalsRegardingAttrs, exportBLOB, exReadString, exWriteString, forgetTransientBLOBHandle, frap, getAsBOInIssueReports, getAsBOInIssueReportsIterator, getAsString, getBackendBOLoaderWithPersistenceHandler, getBadge, getBadge, getBadge2, getBadge3, getBadge4, getBLOB, getBLOB, getBLOB, getBLOB, getBLOB, getBLOBAsDataInput, getBLOBAsEncodedString, getBLOBAsEncodedString, getBLOBAsInputStream, getBLOBAsUTF8EncodedString, getBLOBCreatedBy, getBLOBCreatedOn, getBLOBDeletedBy, getBLOBDeletedOn, getBLOBInfo, getBLOBLastModifiedBy, getBLOBLastModifiedOn, getBOLoader, getBot, getBOVersion, getBytes, getCache, getCache, getCache, getCache, getCache, getCache, getCache, getCache, getCache, getCacheNT, getCacheNT, getCacheNT, getCacheNT, getCacheNT, getCacheNT, getCacheNT, getCacheProvider, getCacheProvider, getClazz, getCreatedBy, getCreatedModifiedText, getDefaultScriptImportsList, getDefaultScriptImportsList, getDefaultScriptImportsList, getDescribingBOWrapper, getDescribingBOWrapper, getEventProvider, getEventProvider, getId, getInvolvedInProcs, getInvolvedInProcsIterator, getLastModifiedBy, getLazyData, getLoadingTransaction, getNullIterator, getOrCreate, getOrCreate, getOrCreate, getOrCreate, getOrCreate, getOrCreate, getOrCreate, getPermissionHandler, getProcs, getProcsIterator, getRootLoaderSchema, getSchema, getSizeFast, getTransaction, getTransientProperty, getTransientProperty, getWrappedTransientProperty, hasActiveTransaction, hasBLOB, hasBLOBOnServerSide, hasBOAssignedTempId, hashCode, hasRelationObjects, hasRelationObjects, hasSessionAssignedTempId, hasTempId, hasTempIdForNewBOs, hasTransientProperty, hasTransientPropertyUnfiltered, includeAllowed, includeInTransaction, invalidateBLOBCache, isBOAssignedTempId, isCompoundChangeInProgress, isCurrentTransactionUnderAdminControl, isIgnoreModificationConstraints, isMandatory, isNew, isReadOnly, isServerSideAndLoadedReadOnly, isSessionAssignedTempId, isStub, isTempId, isTempIdForNewInstance, isTemporary, isVisible, isWriteable, markCompoundChangeInProgress, markDelete, markUndelete, needLoadingTransaction, needsReload, needTransactionInclusion, newInstance, newInstance, newInstance, newInstance, newInstance, newInstance, nextTempId, notifyMessageBus, notifyMessageBus, notifyMessageBus, notifyMessageBus, notifyMessageBus, notifyMessageBus, notifyMessageBusOfAdd, notifyMessageBusOfRemove, nullSafeCompareTo, nullSafeCompareTo, nullSafeContainsBO, nullSafeContainsBO, nullSafeEquals, nullSafeEqualsBO, nullSafeEqualsBO, ofStub, propertyMissing, propertyMissing, releaseCompoundChangeInProgress, releaseTxWriteLock, remove, removeBLOB, requireNonEmptyRelation, requireNonNullAttribute, requireNonNullAttributes, requireNonNullAttributes, requireNonNullAttributes, requireNonNullAttributes, requireNonNullAttributes, requireNonNullAttributes, requireNonNullAttributes, setAsString, setBadge, setBadge, setBadge2, setBadge3, setBadge4, setBOLoaderNoCascade, setBOLoaderNoCascade, setBot, setId, setId, setIgnoreModificationConstraints, setLazyData, setTempId, setTransientProperty, setTransientProperty, setTransientProperty, setTransientProperty, setTransientProperty, setTransientProperty, slim, slim, storeBLOB, storeBLOB, storeBLOB, storeBLOB, storeBLOB, stub, toMap, toMap, toMap, toMap, toMap, toMap, toMap, toMap, toMap, toMap, toMap, toMap, toRelationMapRO, toRelationMapRO, toRelationMapRO, toRelationMapRO, toRelationMapRO, toRelationMapRO, toRelationMapRO, toRelationMapRO, toString, undelete, verifyOnClient, verifyOnServer, wrapIfGroovygetCrea, getLdel, getLmod, isDeleted, isLdel, setCrea, setLdel, setLdel, setLmodgetInstanceSpecificLocale, getInstanceSpecificPaths, l10n, l10n, l10n, l10n, l10n, l10n, l10ncontains, filterDeleted, filterDeleted, filterDeleted, filterDeleted, filterDeletedAndReturnMap, filterDeletedAndReturnMap, getAttribute, getAttribute, getCrea, getEntity, getEntity, isDeleted, isSubEntityOf, isSubEntityOf, toRelationMapROcollectIds, collectIds, getCommaSeparatedIdList, toMap, toMapcollectDescribe, collectDescribe, conciseDesc, conciseDesc, conciseDesc, conciseDesc, describe, describe, describeAndConciseDesc, describeAndConciseDesc, describeAndConciseDesc, describeAndConciseDesc, describeAndConciseDesc, describeNE, describeNE, join, join, join, notEmptyDescriptionpublic void undo(TransactionProviderI tpi, BOLoaderI bol)
This method undoes the changes made by this transaction. If `applyTimeTravel` is true, it analyzes subsequent business processes (BPs) and integrates their changes into the "anti-transaction", ensuring data consistency even after the rollback.
This approach is inspired by the `backToTheFuture` method in SyncService.
tpi - The `TransactionProviderI` used to create and save a new transaction for the rollback.bol - The `BOLoaderI` to be associated with the new transaction.applyTimeTravel - If `true`, subsequent BPs are analyzed and integrated; otherwise, they are ignored.public void undo(TransactionProviderI tpi, BOLoaderI bol, boolean applyTimeTravel)
public java.lang.Long getHighestBPId()
public java.lang.String dump(boolean html)
public java.lang.String dump(boolean html,
int maximumBPsToShow)
public java.lang.String getVerboseDescription()
getVerboseDescription in class de.ipcon.db.core.BTBasepublic java.lang.String getVerboseDescriptionHTML()
getVerboseDescriptionHTML in class de.ipcon.db.core.BTBasepublic java.lang.Integer getBPCount()
getBPCount in class de.ipcon.db.core.BTBasepublic java.util.Map<java.lang.Long,BP> getBPsByBOId(java.lang.Long boId)
public BO revertBOState(BO bo)
bo - the BO whose state should be reverted; no error is thrown if the BT does not actually
has any changes for the BO, the call is simply a no-op thenBT re-set to the values
they had before the BT. Attribute values not modified by this BT will simply remain at their
valuesjava.lang.NullPointerException - if bo is nullpublic java.util.Map<java.lang.Long,BO> getAffectedBOs()
BO instances of the given class which were affected (created, changed or deleted)
by this BT.public java.util.Map<java.lang.Long,BO> getAffectedBOs(java.lang.Class clazz)
public java.util.Map<java.lang.Long,BO> getCreatedBOs()
getCreatedBOs in class de.ipcon.db.core.BTBasepublic java.util.Map<java.lang.Long,BO> getCreatedBOs(java.lang.Class clazz)
public java.util.Map<java.lang.Long,BO> getDeletedBOs()
getDeletedBOs in class de.ipcon.db.core.BTBasepublic java.util.Map<java.lang.Long,BO> getDeletedBOs(java.lang.Class clazz)
public java.util.Map<java.lang.Long,BO> getChangedOnlyBOs()
getChangedOnlyBOs in class de.ipcon.db.core.BTBasepublic java.util.Map<java.lang.Long,BO> getChangedOnlyBOs(java.lang.Class clazz)
public boolean isFromUs()
BT resulted on the current node, false if on a different node.true if this BT originated on the current node; false if it originated on a
different nodepublic boolean isSync()
BT resulted from a MyTISM node sync run (as
opposed to an "original" change done e.g. via the GUI or by some other
client).BT was synced from another node; false if it
originated on the current nodepublic boolean hasProperties()
public boolean hasProperty(EntityI namespaceEntity, java.lang.String name)
public java.lang.String getStringProperty(EntityI namespaceEntity, java.lang.String name)
public java.lang.Long getLongProperty(EntityI namespaceEntity, java.lang.String name)
public java.math.BigDecimal getDecimalProperty(EntityI namespaceEntity, java.lang.String name)
public java.lang.Boolean getBooleanProperty(EntityI namespaceEntity, java.lang.String name)
public java.util.Map<java.lang.Long,CustomBTProperty> getCustomPropertiesAsRelation()
getCustomPropertiesAsRelation in class de.ipcon.db.core.BTBasepublic java.util.Optional<java.lang.Object> getOldValue(BOLoaderI bol, java.lang.Long id, AttributeI attr, java.lang.Object explicitNullValue, boolean allowIndirectChanges)
bol - the BOLoaderI to load any missing BOs with, nonnull.id - the id of the bo to check, nonnull.attr - the attribute to look up the oldValue for, nonnull.explicitNullValue - alternate value to use for null.
Allows detection if the attribute was modified and the previous value is null.
Only use null as value if you don't need to differentiate between
"attribute is unmodified" and "old value was null", because Optional#isPresent
will be false in both cases.
Suggestion: Use and compare against a type that normally can't be used.allowIndirectChanges - if true, then indirect changes to the given BO are checked as well.
Improves detection of whether the attribute has been changed at all for n-1 relations.
However, the return value may be incorrect in certain cases, such as triangular changes.
See tickets 173517882 and 128039417 for details.
If false, only direct changes are checked and their declared oldValue is returned, which should be correct.
Has no effect for non-relation attributes.Copyright © 2000-2026 OAshi S.à r.l. All Rights Reserved.