Skip to main content

Core Actions Reference - Details

Full write-up for every action listed in the Core Actions Reference index, grouped under the same categories. Each entry follows the same shape: class/module/category/keywords, a description, its inputs/outputs/outcomes, and (where useful) a note on reusing it as-is instead of writing a new action.

Entity & list building

AddListFilterAction

Classcom.enactor.commonUI.list.processes.AddListFilterAction
ModuleCommonUI
Categorydatabase, entity
Keywordsload, entity, database, list
note

This is the single most heavily-used action documented in this reference. It's only discoverable by knowing the class name or searching the Resource Library.

Description

Adds a list filter to a list query. There are various inputs, including ListFilters and ListFiltersMap (the map is preferred for quick scanning). If a filter is found on the map but missing from the criteria, it's added to the outputted criteria. Returns Success if loaded, otherwise throws exceptions (e.g. if the list fails to load). Outputs the list filter details and the associated list criteria.

Inputs (selected - this action has 35 inputs total, most optional; all are now documented in the source Javadoc, but only the commonly-used ones are broken out here)

NameTypeRequiredDescription
FilterIdStringYesID of the filter, defined in the entity's server definition file.
FilterTypeStringNoType of filter (e.g. text, date) - must implement IListFilter.
FilterClassnameStringNoAlternative to FilterType for a user-defined filter with no factory entry.
ListFilters / ListFiltersMapList / MapNoExisting filters to merge into; the map form is preferred for speed.
CompoundListFiltersListNoA list of filters combined into a single compound filter, used instead of the usual FilterId/criteria lookup.
ListCriteriaIListCriteriaNoExisting criteria to add the filter to.
EntityName / EntityNamespaceStringNoUsed to validate the filter's metadata exists on the server.
ComparisonOperatorString/ComparisonOperatorsNoe.g. EQUALS, GREATER_THAN, CONTAINS, IN.
CaseInsensitive, DefaultToFirstValue, DefaultValue, FuzzyLevel, ReplaceExistingFilter, ForceApplicable, OrNull, ReadOnlyvariousNoFilter behaviour tuning.
ListAllowBlank, BlankValue, UseKeyForValue, FilterKeyProperty, HideDeviceDefaultValuevariousNoSelection-list-filter-specific configuration (blank handling, key-vs-value, device default).
PersistenceGroupId, IgnorePersistenceGroupValuesString / BooleanNoControls whether/where the filter's value is persisted across views.

Outputs

NameTypeDescription
ListCriteriaIListCriteriaThe inputted criteria merged with the new filter.
ListFiltersListThe updated list of filters.
ListFiltersMapMapThe updated filters keyed by ID.
ListFilterIListFilterThe filter that was found or created.

Outcomes

OutcomeMeaning
SuccessList filter has loaded correctly.

Use this as a base

Whenever a process needs to filter a list before loading it (with LoadListAction/LoadPagedListAction), use this action rather than building filter objects by hand - it already handles factory-based filters, user-defined filter classes, persistence across views, and merging with existing criteria. Only write a new filter-adding action if you need a fundamentally different filter-combination strategy; more likely you just need a new IListFilter implementation and can keep using this action to attach it.

AddOrderByPropertyAction

Classcom.enactor.commonUI.list.processes.AddOrderByPropertyAction
ModuleCommonUI
Categorydatabase, entity
Keywordsentity, database, list, order, property

Description

Adds one or more order-by definitions to a list's IListCriteria (creating a new criteria object if one isn't supplied). The resulting criteria is then used with LoadListAction/LoadEntityListAction to sort a list of entities. Accepts a comma-separated list of column/property names so multiple order-by clauses can be added in one call. Always returns Success.

Inputs

NameTypeRequiredDescription
ListOrderByColumnNameStringYesOne or more property names to order by, comma-separated, e.g. description, productKey.productId.
ListOrderBySortDirectionSortDirectionNoASCENDING (default), DESCENDING, or NONE.
ListCriteriaIListCriteriaNoExisting criteria to add the ordering to; a new one is created if omitted.

Outputs

NameTypeDescription
ListCriteriaIListCriteriaThe criteria with the order-by definitions added.

Outcomes

OutcomeMeaning
SuccessOrder-by definitions added to the list criteria.

Use this as a base

Use whenever a list needs a specific sort order before being loaded via LoadListAction/LoadEntityListAction/LoadPagedListAction - chain it with AddListFilterAction on the same ListCriteria object rather than constructing IListCriteria/OrderByProperty objects by hand.

LoadPagedListAction

Classcom.enactor.commonUI.list.processes.LoadPagedListAction
ModuleCommonUI
Categorydatabase, entity
Keywordsload, lock, entity, database, list

Description

Loads a page of a list using reflection, given an entity name/namespace and a list method name on the entity's DB server (e.g. listAll, listByLocation). Does not lock the items being loaded. Computes a default page size via GetPageSizeAction if none is supplied, manages the row offset (never negative), and can target a remote server via EndpointReference/EntityServerName. Returns Success with the page of results and the (possibly-merged) list criteria, or throws a localized exception if the load fails.

Inputs (selected - 10 total)

NameTypeRequiredDescription
EntityName / EntityNamespaceStringYesIdentify the entity's server via its QName.
ListNameStringNoList method to invoke, defaults to listAll.
ListCriteriaIListCriteriaNoFilter/order criteria - merge in output from AddListFilterAction/AddOrderByPropertyAction.
PageSizeIntegerNoRows per page; defaults via GetPageSizeAction if unset/zero.
RowOffsetIntegerNoRow offset for the page; clamped to 0 minimum.
EndpointReferenceIEndpointReferenceNoTarget a remote server instead of the local one.
EntityServerNameQNameNoExplicit server QName, if it differs from the entity's own QName.
DisableListCacheBooleanNoOverrides the criteria's cache setting.
LockTypeLockTypeNoOverrides the criteria's read-lock setting.

Outputs

NameTypeDescription
ListListThe page of list elements (key, description, and other server-defined properties).
ListCriteriaIListCriteriaThe criteria actually used, including the page info added.

Outcomes

OutcomeMeaning
SuccessList loaded correctly.

Use this as a base

The standard action for paginated list screens - build filters/ordering with AddListFilterAction/AddOrderByPropertyAction first, then load a page with this action rather than LoadListAction (which loads the whole list) when the UI needs paging. Only write a new action if a list needs a loading strategy this reflection-based, criteria-driven approach can't express.

CreateAndSetEntityAction

Classcom.enactor.commonUI.entities.processes.CreateAndSetEntityAction
ModuleCommonUI
Categorydatabase, entity
Keywordsload, lock, entity, database, create, set

Description

Creates an entity (given either an EntityQname, or an EntityName/EntityNamespace pair) and immediately sets its properties from DynamicParameterNames - a comma-separated list of input names, each in the form <fieldName> or <Classname>.<fieldName> (the class-qualifier prefix is stripped and the field is set via a setter, falling back to reflection). Returns Success with the created entity, or InvalidType if the input parameters weren't recognised (e.g. neither a QName nor a name/namespace pair was resolvable), or throws an exception if setting a property fails validation.

Inputs

NameTypeRequiredDescription
EntityNamespaceStringNoNamespace of the entity, e.g. http://www.enactor.com/core.
EntityNameStringNoEntity name (lower-case first letter), e.g. product.
EntityQnameQNameNoCombined name+namespace, as an alternative to the pair above.
DynamicParameterNamesStringNoComma-separated property names to set from matching input data.

Outputs

NameTypeDescription
EntityIEntityThe created and populated entity.

Outcomes

OutcomeMeaning
SuccessEntity created and set correctly.
InvalidTypeInput parameters were not recognised (couldn't determine which entity to create).

Use this as a base

Use this when a process needs to build a new in-memory entity and populate several of its fields from process inputs in one step - via DynamicParameterNames - rather than a CreateEntityAction followed by several individual assign/property-set steps. Only write a new action if the entity's properties need transformation beyond a direct input-to-field copy.

CreateDynamicMapAction

Classcom.enactor.commonUI.list.processes.CreateDynamicMapAction
ModuleCommonUI
Categorydatabase, entity
Keywordsmap, add, dynamic

Description

Creates a DynamicMap, a lazy lookup structure used to extract specific information (a whole entity, or one named property) given an entity key or key-property values, without eagerly loading everything up front. Either KeyAdapter (for complex keys) or KeyName (with KeyIdProperty) must be supplied to tell it how to build an entity key from a lookup value. Returns Success, or throws an exception for invalid input combinations (e.g. supplying both KeyAdapter and KeyName).

Inputs

NameTypeRequiredDescription
UserLocaleILocaleNoLocale for the dynamic map's lookups.
PropertyNameStringNoThe entity property to extract; if omitted, the whole entity is returned.
DefaultKeyPropertyStringNoFallback property resolved against the key itself when the main property can't be resolved.
KeyAdapterDynamicMap.IKeyAdapterNoConverts an arbitrary lookup value into an entity key (for complex keys).
KeyName / KeyNamespaceStringNoEntity name/namespace of the key, used with KeyIdProperty for simple keys.
KeyIdPropertyStringNoThe property on the key supplied to the map (required if KeyName is set).
IgnoreMissingEntitiesBooleanNoSuppress errors when a requested entity is missing.

Outputs

NameTypeDescription
DynamicMapcom.enactor.core.utilities.DynamicMapThe created dynamic map.

Outcomes

OutcomeMeaning
SuccessDynamic map created.

Use this as a base

Use this whenever a process needs a map-like view over entities that should be resolved lazily by key (e.g. for display formatting) rather than pre-loading every entity into a plain Map. Only write a new action if you need eager loading (use LoadEntityListAction instead) or a lookup structure that isn't keyed by entity.

CreateEntityFromXMLAction

Classcom.enactor.commonUI.entities.processes.CreateEntityFromXMLAction
ModuleCommonUI
Categorydatabase, entity
Keywordsentity, database, create, xml

Description

Creates an entity and populates it by deserializing the supplied XML. Returns Success if created, otherwise throws exceptions - for example if the XML isn't supplied as an input.

Inputs

NameTypeRequiredDescription
XMLStringYesXML from which the entity is to be created.

Outputs

NameTypeDescription
EntityIEntityThe entity created from the inputted XML.

Outcomes

OutcomeMeaning
SuccessEntity created from the XML.

Use this as a base

Use whenever a process already has entity data as an XML string (e.g. from an external system or a stored snapshot) and needs it turned into a live entity object, rather than building the entity field-by-field with CreateAndSetEntityAction.

ResetFiltersAction

Classcom.enactor.commonUI.list.processes.ResetFiltersAction
ModuleCommonUI
Categoryui
Keywordslist, reset

Description

Resets every filter in the supplied list of list filters (calling each filter's own reset()), then outputs the same (now-reset) list. Returns Success, or throws an exception if the list isn't supplied.

Inputs

NameTypeRequiredDescription
ListFiltersListYesList of list filters to reset.

Outputs

NameTypeDescription
ListFiltersListThe same list, with every filter reset.

Outcomes

OutcomeMeaning
SuccessAll list filters have been reset.

Use this as a base

Pairs with AddListFilterAction - use this to clear a screen's filter state (e.g. a "Clear Filters" button) rather than rebuilding the filter list from scratch.

CreateListAction

Classcom.enactor.coreUI.actions.CreateListAction
ModuleCoreUIBase-impl
Categorydatabase, entity
Keywordsentity, database, list, create, array

Description

Instantiates an empty (or pre-sized) list, array, set, or map. Defaults to java.util.ArrayList if no class is given, and can optionally pre-populate it to a given size (with new instances of a given object class, or nulls) and/or wrap the result in a thread-safe Collections.synchronized* wrapper. Returns Success, or throws an exception if construction fails.

Inputs

NameTypeRequiredDescription
ListClassnameStringNoClass to instantiate, e.g. java.util.ArrayList, java.util.HashSet, or a [] array suffix. Defaults to ArrayList.
ObjectClassnameStringNoIf set, pre-fills the list with new instances of this class up to InitialSize.
InitialSizeIntegerNoInitial size to pre-fill to, defaults to 0.
MakeThreadSafeBooleanNoWraps the result in the matching Collections.synchronized* wrapper.

Outputs

NameTypeDescription
ObjectObjectThe created list/array/set/map.

Outcomes

OutcomeMeaning
SuccessList created.

Use this as a base

The standard way to create an empty collection variable for later AddToListAction/AddToCollectionAction calls to populate, rather than relying on a process step that happens to return one. Reach for MakeThreadSafe only if the collection will genuinely be accessed from more than one thread.

Collections & iteration

AddToListAction

Classcom.enactor.commonUI.list.processes.AddToListAction
ModuleCommonUI
Categoryentity, ui
Keywordsui, entity, list, add

Description

Adds an item (or all items of a supplied Collection) to a list. If no list is supplied, creates a new one - either ArrayList (default) or whatever type is named in ListType (supports ArrayList, AttributeList, CopyOnWriteArrayList, LinkedList, Stack, Vector explicitly, plus reflection for any other List implementation). Returns Success, or throws an exception if a required input is missing.

Inputs

NameTypeRequiredDescription
ListListNoList to add to; a new one is created if omitted.
ValueObjectYesValue to add - if it's itself a Collection, all its elements are added.
ListTypeStringNoType of list to create if List isn't supplied, e.g. ArrayList, LinkedList.

Outputs

NameTypeDescription
ListListThe list with the value added.

Outcomes

OutcomeMeaning
SuccessItem added to the list correctly.

Use this as a base

The standard way to build up a List incrementally inside a process (e.g. across an iteration loop) without writing custom collection-manipulation code. Combine with IterateAction/GetIteratorAction to accumulate a filtered/transformed list. Only write a new action if you need list-manipulation semantics beyond simple append (e.g. insert-at-index, dedupe) - for those, RemoveFromCollectionAction covers the removal side.

AddToMapAction

Classcom.enactor.commonUI.list.processes.AddToMapAction
ModuleCommonUI
Categorydatabase, entity
Keywordsmap, add, key, value

Description

Adds a key/value pair to a Map, or merges another map's entries in (via MergeMap). Creates a map if one isn't supplied and a MapType is given - supports HashMap, LinkedHashMap/LinkedMap, ConcurrentHashMap, ConcurrentSkipListMap, TreeMap, WeakHashMap, and Enactor's CachedMap (with a configurable TimeoutMS) explicitly, plus reflection for any other Map implementation. Returns Success, or throws an exception if Key is missing when not merging.

Inputs

NameTypeRequiredDescription
MapMapNoMap to add to; a new hashed map is created if omitted.
KeyObjectNo (required unless merging)Key of the item to add.
ValueObjectYesValue to add - or, if MergeMap is true, a Map to merge in.
MapTypeStringNoType of map to create if none supplied, e.g. CachedMap, TreeMap.
TimeoutMSIntegerNoTimeout for a CachedMap, defaults to 60000.
MergeMapBooleanNoIf true, treats Value as a map to merge rather than a single value.

Outputs

NameTypeDescription
MapMapThe map with the entry added (or merged).

Outcomes

OutcomeMeaning
SuccessItem added to the map.

Use this as a base

Reuse this for any process-level map building - including caching a value with CachedMap/TimeoutMS rather than writing custom cache-management code. Only write a new action if you need a map type this one can't create via reflection, or a merge strategy other than "overwrite existing keys."

RemoveFromCollectionAction

Classcom.enactor.coreUI.actions.RemoveFromCollectionAction
ModuleCoreUIBase-impl
Categorydatabase
Keywordsdatabase, list, collection, map
note

The counterpart to AddToListAction/AddToMapAction.

Description

Removes an entry from a Collection or Map. Exactly one of Key (an entry for sets/lists, or a key for a map), Index (list position, list-only), or RemoveCollection (a batch of keys/items to remove) should be specified. Returns the removed item(s) as output. Returns Success, or throws an exception if the required combination of inputs isn't supplied or doesn't match the collection type.

Inputs

NameTypeRequiredDescription
CollectionObjectYesThe collection or map to modify.
KeyObjectNoEntry (collection) or key (map) to remove.
IndexIntegerNoList position to remove - only valid when Collection is a List.
RemoveCollectionCollectionNoA batch of keys/items to remove in one call.

Outputs

NameTypeDescription
CollectionCollectionThe collection with the entry/entries removed.
ObjectObjectThe removed item (single-item cases).

Outcomes

OutcomeMeaning
SuccessEntry removed from the collection.

Use this as a base

The standard counterpart to AddToListAction/AddToMapAction for removing entries from a list, set, or map inside a process - use RemoveCollection for batch removal rather than looping this action per item. Only write a new action if you need conditional removal (e.g. remove-if-matches-predicate), which this action doesn't support.

GetIteratorAction

Classcom.enactor.commonUI.iteration.actions.GetIteratorAction
ModuleCommonUI
Categorydatabase
Keywordsdatabase, iterator
note

Always paired with IterateAction.

Description

Gets an Iterator over an Iterable, an existing Iterator, a Map (iterates its values), or an array. The returned iterator is then looped over using IterateAction. Only copies the source (via the MakeCopy flag) if requested, to avoid ConcurrentModificationException if the source is later modified. Returns Success, or throws an exception if an iterator can't be obtained from the input.

Inputs

NameTypeRequiredDescription
IterableObjectYesThe source to iterate - accepts Iterable, Iterator, Map, or an array.
MakeCopyBooleanNoIf true, copies the source first to avoid concurrent-modification issues.

Outputs

NameTypeDescription
Iteratorjava.util.IteratorThe resulting iterator.

Outcomes

OutcomeMeaning
SuccessAn iterator was obtained.

Use this as a base

Use as the first step of any explicit action-based loop, feeding its Iterator output into IterateAction. Set MakeCopy if the source collection might be mutated elsewhere while the loop runs. No need to write a new "get an iterator" action for lists, maps, or arrays - this one already accepts all of them.

IterateAction

Classcom.enactor.commonUI.iteration.actions.IterateAction
ModuleCommonUI
Categorydatabase
Keywordsdatabase, state, iterate
note

Always paired with GetIteratorAction.

Description

Iterates over an Iterator. Can be used instead of UIIteratorState where a process wants to loop through multiple states/steps explicitly. Returns Next (with the next item as output) while items remain, or Completed (with a null item) once exhausted. Throws an exception if no iterator is supplied.

Inputs

NameTypeRequiredDescription
Iteratorjava.util.IteratorYesThe iterator to advance.

Outputs

NameTypeDescription
IteratorItemObjectThe next item, or null when iteration has completed.

Outcomes

OutcomeMeaning
NextNot at the end - output data is the next item.
CompletedIteration has finished - output data is null.

Use this as a base

Use this together with GetIteratorAction any time a process needs to loop over a list/array/map: call GetIteratorAction once to obtain the Iterator, then loop this action, branching the process on Next (process the item, loop back) vs Completed (exit the loop). This is the standard alternative to UIIteratorState for processes that prefer explicit action-based looping. Rarely worth writing a new iteration action - the combination already handles Iterable, Iterator, Map, and arrays via GetIteratorAction.

AddToCollectionAction

Classcom.enactor.coreUI.actions.AddToCollectionAction
ModuleCoreUIBase-impl
Categorydatabase
Keywordsdatabase, collection, class, add, object

Description

Adds an object to any Collection (not just a List/Map like AddToListAction/AddToMapAction) - creating the collection first via CollectionClass if one isn't supplied. If the object being added is itself a collection or array, its elements are merged in individually unless MergeCollections is set to false. Returns Success, or throws an exception if a required input is missing.

Inputs

NameTypeRequiredDescription
ObjectObjectYesObject (or collection/array of objects) to add.
CollectionCollectionNoExisting collection to add to. Either this or CollectionClass is required.
IndexIntegerNoInsertion index, if the collection is a List.
CollectionClassStringNoClass to instantiate if Collection isn't supplied, e.g. java.util.LinkedHashSet.
MergeCollectionsBooleanNoMerge in a collection/array's elements individually rather than adding it as one object. Defaults to true.
ReplaceDuplicatesBooleanNoRemove an equal existing element before adding. Defaults to false.

Outputs

NameTypeDescription
CollectionCollectionThe updated (or newly created) collection.

Outcomes

OutcomeMeaning
SuccessObject added to the collection.

Use this as a base

The generic counterpart to AddToListAction/AddToMapAction - reach for this when the target is a Set or another non-List/Map Collection type, or when the collection type itself needs to be created on the fly from a class name.

BasketItemLoopAction

Classcom.enactor.pos.packages.basket.processes.BasketItemLoopAction
ModulePos
Categorypos
Keywordspos, basket, loop

Description

Iterates over the items in a basket (or the basket derived from a transaction handler), skipping voided/return items unless explicitly included. Returns Next with each qualifying item, or Completed once the iteration is exhausted.

Inputs

NameTypeRequiredDescription
BasketItemIteratorIteratorNoExisting iterator to continue from.
BasketIBasketNoBasket to iterate; if omitted, derived from TransactionHandler.
TransactionHandlerIRetailTransactionHandlerNoUsed to determine the basket if Basket isn't supplied.
UseTransactionBasketBooleanNoUse the transaction basket rather than its model basket. Defaults to false.
IncludeVoidedTenderItemsBooleanNoInclude voided items in the iteration.
IncludeReturnTenderItemsBooleanNoInclude return items in the iteration.
BasketItemClassNameStringNoRestrict iteration to a specific basket item class.

Outputs

NameTypeDescription
BasketItemIteratorIteratorThe iterator, for continuing the loop on the next call.
BasketItemIBasketItemThe next qualifying basket item.

Outcomes

OutcomeMeaning
NextAn item to process was found.
CompletedIteration finished, no more items.

Use this as a base

The standard way to loop over a basket's items in an Application/Business Process, with a loop-back link on Next back to this same action. Reach for IterateAction/GetIteratorAction instead for a generic, non-basket-specific collection.

Logging & auditing

WriteApplicationProcessLogAction

Classcom.enactor.commonUI.logging.actions.WriteApplicationProcessLogAction
ModuleCommonUI
Categorydatabase, logging
Keywordsdatabase, logging
note

The second most-used action documented in this reference.

Description

Writes an entry to the application process log. Logs a message with or without an exception trace: if a message is explicitly supplied, exception detail is only logged if also explicitly supplied; if no message is supplied, an exception is retrieved from input data or the last state exception, and a message derived from it. Raises an exception if neither a message nor an exception can be found. Returns Success once the log entry has been written (persisted to the database, and also to the console log if development mode is on).

Inputs

NameTypeRequiredDescription
ExceptionThrowableNoException to explicitly log.
MessageBasenameStringNoMessages file (XML or Java) containing the message.
MessageStringNoLiteral text; takes precedence over a message-id lookup.
MessageIdStringNoID of the message to look up in MessageBasename.
LoggingLocaleLocaleNoLocale for message resolution.
ProcessIdStringNoDefaults to the current process; also used for filtering.
ReferenceIdStringNoUnique identifier for the entry, used for filtering.
UserIdStringNoUser logged in when the event occurred.
DeviceIdStringNoDevice where the event occurred.
EntryTypeStringNoArbitrary developer-defined classification, e.g. scheduledJob, document.
LogEntryTypeIntegerNo0=error, 1=warning, 2=information (default), 3=debug.

Outputs

NameTypeDescription
ApplicationProcessLogEntryIApplicationProcessLogEntryThe log entry created, for optional further use.

Outcomes

OutcomeMeaning
SuccessApplication Process Log has been written to.

Use this as a base

This is the standard structured-logging action for process definitions - reuse it any time a process needs to record an event or failure with a consistent, queryable log entry, rather than relying only on UILogMessageAction's plain text logging. Only write a new logging action if you need a different persistence target entirely (this one always writes to the IApplicationProcessLogServer entity store).

WriteToApplicationUpdateLogAction

Classcom.enactor.coreProcessing.updateLog.actions.WriteToApplicationUpdateLogAction
ModuleCoreProcessing
Categorylogging
Keywordslogging, application, log, entry, write, update
note

Specific to the application-update/patching subsystem.

Description

Writes an entry to an application update log - typically used when restarting the POS or Back Office following an application update, to record progress (e.g. SHUTTING_DOWN_POS, COPYING_FILE, REPLACING_FILE, DELETING_FILE, APPLYING_UPDATE_WAIT, COMPLETED_UPDATE). File-copy operations (COPYING_FILE, REPLACING_FILE, DELETING_FILE) automatically create a FileCopyUpdateLogEntry capturing source/target filenames instead of a plain entry. The whole log is re-serialized to disk (LogFilename) on every write. Returns Success, or throws an exception if a required input is missing or the write fails.

Inputs

NameTypeRequiredDescription
ApplicationUpdateLogIApplicationUpdateLogYesThe in-memory log entity being appended to.
LogFilenameStringYesDirectory and filename the log is written to.
OperationStringYesThe operation being recorded, e.g. COPYING_FILE, COMPLETED_UPDATE.
TargetFilenameStringNoTarget filename - set for copy/replace operations.
FilenameStringNoSource filename - set for copy/replace/delete operations.

Outputs

NameTypeDescription
ApplicationUpdateLogEntryIApplicationUpdateLogEntryThe log entry that was created and appended.

Outcomes

OutcomeMeaning
SuccessLog entry written and the log file re-serialized.

Use this as a base

The standard action for recording progress during an application update/patch process - reuse it for each step of a custom update workflow rather than writing to the update log file directly, so entries stay consistently typed (plain vs. file-copy) and the log stays in the expected XML format for the update-progress UI to read.

UILogMessageAction

Classcom.enactor.coreUI.actions.UILogMessageAction
ModuleCoreUIBase-impl
Categorymessaging, logging
Keywordsmessaging, logging, logger

Description

Logs a message (and/or a serialized object, and/or an exception) to the standard logger API, against a per-process logger name so logging can be selectively enabled per process. Substitutes EL expressions in the message text first. Supports a restricted-volume mode (InitialMax/RelogDelaySecs) to throttle repeated identical messages. Always returns Success.

Inputs

NameTypeRequiredDescription
LogMessageStringNoMessage to log; EL expressions are substituted.
ObjectObjectNoObject to log - serialized to XML if possible, appended after the message.
LogLevelStringNoLOG_DEBUG, LOG_ERROR, LOG_WARNING, LOG_INFORMATION, etc. Defaults to vital-information level.
LogVariablesBooleanNoAlso log the action's full input data. Defaults to false.
InitialMaxIntegerNoMax duplicate messages to log before throttling. Defaults to unlimited.
RelogDelaySecsIntegerNoDelay before a throttled message is logged again.
ExceptionThrowableNoException to log explicitly (otherwise picked up from the current state, if any).
LogStackTraceBooleanNoLog the stack trace if there's an exception. Defaults to true.

Outputs

None.

Outcomes

OutcomeMeaning
SuccessMessage sent to the logger.

Use this as a base

The lightweight, simple-message counterpart to WriteApplicationProcessLogAction - reach for this for a plain diagnostic log line, and for the structured, queryable, database-backed process log use that one instead.

WriteEntryStatusToApplicationUpdateLogAction

Classcom.enactor.coreProcessing.updateLog.actions.WriteEntryStatusToApplicationUpdateLogAction
ModuleCoreProcessing
Categorylogging
Keywordslogging, application, log, entry, status, update, write

Description

Sets the status on a supplied application update log entry and writes the whole log back out to LogFilename as XML. Typically used when restarting the POS/Back Office after an application update, to record the outcome of an individual entry. Returns Success, or throws an exception if the write fails.

Inputs

NameTypeRequiredDescription
LogEntryStatusStringYesStatus for the log entry, e.g. SUCCESS or FAIL.
LogFilenameStringYesDirectory and filename of the application update log file.
ApplicationUpdateLogIApplicationUpdateLogYesThe application update log entity being written.
ApplicationUpdateLogEntryIApplicationUpdateLogEntryYesThe log entry to update and write.

Outputs

None.

Outcomes

OutcomeMeaning
SuccessLog entry status written.

Use this as a base

Use for updating one entry's status within an application update log; see WriteStatusToApplicationUpdateLogAction for setting the overall log's status instead.

WriteStatusToApplicationUpdateLogAction

Classcom.enactor.coreProcessing.updateLog.actions.WriteStatusToApplicationUpdateLogAction
ModuleCoreProcessing
Categorylogging
Keywordslogging, write, application, log, status, update

Description

Sets the overall status on a supplied application update log and writes it back out to LogFilename as XML. Returns Success, or throws an exception if the write fails.

Inputs

NameTypeRequiredDescription
LogStatusStringYesStatus to write, e.g. SUCCESS.
LogFilenameStringYesFilename of the application log.
ApplicationUpdateLogIApplicationUpdateLogYesThe application log to be updated.

Outputs

None.

Outcomes

OutcomeMeaning
SuccessStatus written to the application log.

Use this as a base

The overall-log counterpart to WriteEntryStatusToApplicationUpdateLogAction.

CreateErrorDetailsAction

Classcom.enactor.commonUI.actions.CreateErrorDetailsAction
ModuleCommonUI
Categorylogging
Keywordslogging, error

Description

Builds an ErrorDetails entity from an exception and/or a message (direct text, or looked up by basename/ID/locale with EL substitution), plus any XML-serializable application process data. Returns Success.

Inputs

NameTypeRequiredDescription
ExceptionThrowableNoException to record on the error details.
MessageBasenameStringNoMessage resource file (XML or Java basename).
MessageIdStringNoID of the message.
MessageStringNoMessage text, if MessageId isn't used.
ApplicationProcessDataIApplicationProcessDataNoExtra data to attach (only XML-serializable items are kept).
MessageLocaleLocaleNoLocale for the message; defaults to the current user's locale.

Outputs

NameTypeDescription
ErrorDetailsIErrorDetailsThe constructed error details.

Outcomes

OutcomeMeaning
SuccessErrorDetails created.

Use this as a base

The standard way to package an exception/message into an ErrorDetails entity for propagation or storage - e.g. the same shape of object InvokeRestServiceAction outputs on failure.

Security & process control

CheckPrivilegesAction

Classcom.enactor.coreUI.actions.CheckPrivilegesAction
ModuleCoreUIBase-impl
Categorydatabase
Keywordsdatabase, privileges
note

The standard security-gate action across the codebase.

Description

Checks whether the signed-on user's combined privileges satisfy both the privileges configured on the action definition itself and any supplied via the Privileges input. Overrides the default action privilege-check behaviour to always run (see UIBuiltInAction), then evaluates explicitly. With MatchAtLeastOnePrivilege set, succeeds if the user has any one of the required privileges rather than all of them.

Inputs

NameTypeRequiredDescription
PrivilegesSet<String>NoAdditional privileges to check alongside those on the action definition.
MatchAtLeastOnePrivilegeBooleanNoIf true, success requires only one matching privilege rather than all.

Outputs

NameTypeDescription
PrivilegeInfoStringThe (missing) privilege list as a string, for logging/UI display.
PrivilegesExistBooleanWhether the privileges were satisfied.

Outcomes

OutcomeMeaning
SuccessRequired privileges are present.
FailRequired privileges are not present.

Use this as a base

The standard authorization gate for a process step - branch on Success/Fail to guard sensitive operations, rather than querying the privilege manager directly in custom code. See also CallProcessWithPrivilegesAction for privilege-checked sub-process calls specifically.

CallProcessWithPrivilegesAction

Classcom.enactor.coreUI.actions.CallProcessWithPrivilegesAction
ModuleCoreUIBase-impl
Categoryui, process
Keywordsui, process, call, privileges
note

Extends UICallProcessAction (the class behind the palette's "Call Process" entry), combined with privilege checking.

Description

Calls a sub-process without checking privileges on the action definition itself - instead, it makes the combined privileges (from the action definition plus any supplied Privileges input) available to the called process as an input variable, letting the callee decide what to do with them (e.g. via CheckPrivilegesAction). Returns Null or ExecuteProcess (not user-handled directly - whatever outcomes the called process itself raises are what's actually returned), or throws an exception if the process ID can't be called.

Inputs

NameTypeRequiredDescription
PrivilegesStringNo - set by action configCombined with the action definition's privileges automatically.
ExecuteProcessIdStringNo - set by action configThe process to call.
ExecuteProcessInputDataStringNo - set by action configThe action's configured inputs, passed through automatically.

Outputs

None directly - outputs come from whatever the called process/action produces.

Outcomes

OutcomeMeaning
Null(Inherited placeholder outcome from UICallProcessAction.)
ExecuteProcessNot user-handled - the called process's own outcomes are what's returned.

Use this as a base

Use this instead of the plain "Call Process" palette action whenever the sub-process being called needs to know what privileges the caller had (e.g. a shared authorisation sub-process), rather than performing the check up-front and calling a plain process. Only write a new action if you need a fundamentally different privilege-propagation model.

UICallExtensionPointProcessAction

note

Extends UICallProcessAction (the class behind the palette's Call Process tool).

Classcom.enactor.coreUI.actions.UICallExtensionPointProcessAction
ModuleCoreUI
Categoryui, process
Keywordsui, process, call, extension point

Description

Looks up every process (or process package) registered against a given extension point ID and calls each one in turn, passing through the inputs and collecting the outputs/outcomes of the last one called. Returns Success once every registered process has run (or if none are registered) - including when a called process returns Fail, which simply stops the chain early rather than being propagated as this action's own outcome, the same as the deprecated enactor.action.StopExtensionLinking signal.

Inputs

NameTypeRequiredDescription
*-NoAll inputs are passed straight through to each called process.
ExtensionPointIdStringYesID of the extension point whose registered processes should be run.

Outputs

NameTypeDescription
*-Outputs of the process(es) called.

Outcomes

OutcomeMeaning
*Outcomes returned by the called process(es).
SuccessAll extension point processes ran successfully, or none were registered. Also returned (not Fail) when a called process fails, since that only stops the chain rather than being propagated.
FailDeclared, but not currently returned - a called process failing just stops the chain.
enactor.action.StopExtensionLinking(Deprecated) No further extension points were called.

Use this as a base

Use whenever a process needs to let other modules "plug in" extra behaviour at a fixed point without knowing what (if anything) is registered there, rather than hard-coding a fixed Call Process target.

CheckEventAction

note

Extends RaiseValueAsOutcomeAction, specialised for checking an event's name rather than an arbitrary string.

Classcom.enactor.coreUI.actions.CheckEventAction
ModuleCoreUIBase-impl
Categoryprocess
Keywordscheck, event, outcome

Description

Checks the supplied event's name against the process's defined outcome links and raises it as the outcome if a link exists. Returns Unknown if there's no event, no event name, or no matching link.

Inputs

NameTypeRequiredDescription
CurrentEventIEventYesEvent whose name will be checked/raised as the outcome.

Outputs

NameTypeDescription
CurrentEventIEventThe same event that was checked.

Outcomes

OutcomeMeaning
*The event's own name, if a link for it exists.
UnknownNo event, no event name, or no matching outcome link.

Use this as a base

The standard way to branch a process on an inbound event's name - pairs naturally with the palette's Send UI Event tool on the sending side.

RaiseOutcomeAction

note

Extends RaiseValueAsOutcomeAction - raises an already-resolved outcome object directly, rather than looking one up by name.

Classcom.enactor.commonUI.actions.RaiseOutcomeAction
ModuleCommonUI
Categoryprocess
Keywordsraise, action

Description

Raises the supplied IApplicationProcessOutcome object directly as this action's outcome.

Inputs

NameTypeRequiredDescription
CurrentOutcomeIApplicationProcessOutcomeYesThe outcome object to raise.

Outputs

None.

Outcomes

OutcomeMeaning
*Whatever outcome object was supplied.

Use this as a base

Use when a prior step has already produced (or looked up) an actual outcome object to re-raise; use RaiseValueAsOutcomeAction instead when starting from a plain outcome name string.

RaiseValueAsOutcomeAction

Classcom.enactor.coreUI.actions.RaiseValueAsOutcomeAction
ModuleCoreUIBase-impl
Categoryprocess
Keywordsraise, outcome

Description

Raises the supplied outcome name as this action's outcome, provided a link exists for it; falls back to Unknown if no link is found (logged, not treated as an error).

Inputs

NameTypeRequiredDescription
OutcomeNameStringYesName of the outcome to raise.

Outputs

None.

Outcomes

OutcomeMeaning
SuccessValid link found and raised.
UnknownCould not find a link for the outcome.

Use this as a base

The base class behind both CheckEventAction and RaiseOutcomeAction - use it directly whenever a process needs to branch on a computed outcome name (e.g. from an EL expression or a variable) rather than a fixed one.

UIThrowProcessExceptionAction

note

Extends UIEndProcessAction (the class behind the palette's End Process tool) - throws a process exception and ends the process in one step.

Classcom.enactor.coreUI.actions.UIThrowProcessExceptionAction
ModuleCoreUI
Categoryui, logging, process
Keywordsui, logging, process, throw, exception

Description

Builds (or reuses) an exception from the supplied or current-state exception, an optional message/localized message, and an optional error code, then ends the process by throwing it.

Inputs

NameTypeRequiredDescription
ExceptionThrowableNoException to throw; defaults to the current state's exception if not supplied.
MessageStringNoMessage text for the exception.
MessageBasenameStringNoMessage resource file, if MessageId is used instead of Message.
MessageIdStringNoID of a localized message to use instead of Message.
ErrorCodeStringNoError code to associate with the exception.

Outputs

None.

Outcomes

None - the process ends by throwing the exception.

Use this as a base

Use to deliberately fail a process with a specific, localized error message and code, rather than letting an unhandled runtime exception surface with a generic message.

UIWaitAction

Classcom.enactor.coreUI.actions.UIWaitAction
ModuleCoreUIBase-impl
Categorydatabase
Keywordsdatabase, wait

Description

Pauses the current thread for a specified time in milliseconds, seconds, or minutes (defaulting to 1 second). Returns Success once the wait completes.

Inputs

NameTypeRequiredDescription
WaitTimeMSIntegerNoWait time in milliseconds. Defaults to 1000.
WaitTimeSecsIntegerNoWait time in seconds.
WaitTimeMinsIntegerNoWait time in minutes.

Outputs

None.

Outcomes

OutcomeMeaning
SuccessWait completed.

Use this as a base

A blocking, synchronous wait on the calling thread - for a resumable, serialised wait that survives a restart, use the palette's Pause Action tool instead.

UIStopBackgroundProcessAction

Classcom.enactor.coreUI.actions.UIStopBackgroundProcessAction
ModuleCoreUI
Categoryprocess
Keywordsstop

Description

Stops a running background process, identified by the ProcessHandle returned when it was started. Typically used to let a user cancel a background lookup (e.g. an address lookup) while it's in progress. Returns Success, or throws an exception if the handle is missing.

Inputs

NameTypeRequiredDescription
ProcessHandleProcessHandleYesHandle of the background process to stop.

Outputs

None.

Outcomes

OutcomeMeaning
SuccessBackground process stopped (or was already not running).

Use this as a base

The standard counterpart to the palette's Execute In Background tool - always keep the ProcessHandle it returns if the user should be able to cancel that background work.

SetControlServiceCurrentActivityAction

Classcom.enactor.coreUI.actions.SetControlServiceCurrentActivityAction
ModuleCoreUI
Categoryservice, ui
Keywordsservice, ui, set, current, status

Description

Sets a control service's (e.g. a servlet's) current-activity status message, shown on the Back Office's service status page - useful for a service with multiple threads, each reporting its own activity. Message can be supplied directly or looked up from a message resource file/ID, with EL substitution applied. Returns Success, or throws an exception if the control service isn't supplied.

Inputs

NameTypeRequiredDescription
ControlServiceIControlServiceYesThe control service/servlet whose activity is being reported.
MessageStringNoActivity message text, if MessageId isn't used.
MessageBasenameStringNoMessage resource file, used with MessageId.
MessageIdStringNoID of a localized activity message.
MessageLocaleLocaleNoLocale for the message.

Outputs

None.

Outcomes

OutcomeMeaning
SuccessCurrent activity set.

Use this as a base

Use inside a long-running control service's own process/thread to keep the Back Office's status page accurate, rather than leaving the activity message stale while work is in progress.

ClosePromptAction

Classcom.enactor.coreUI.actions.ClosePromptAction
ModuleCoreUIBase-impl
Categoryui
Keywordsprompt, close

Description

Closes an open prompt, identified by state ID against the current process ID. Returns Success, or throws an exception if the state ID isn't supplied.

Inputs

NameTypeRequiredDescription
StateIdStringYesID of the state/prompt to close.

Outputs

None.

Outcomes

OutcomeMeaning
SuccessPrompt closed.

Use this as a base

Use to programmatically dismiss a prompt state from another process (e.g. closing a background-progress dialog once the work completes), rather than requiring the user to dismiss it manually.

UIPauseProcessAction

Classcom.enactor.coreUI.actions.UIPauseProcessAction
ModuleCoreUIBase-impl
Categoryprocess
Keywordsprocess, pause, chain

Description

Persists the current process instance (under an optional ProcessId/MessageBasename) and pauses it, typically so control can be handed off to another process while this one is later resumed. Always returns Null on success - deliberately, so the current state's own event link doesn't also fire while control is being chained elsewhere.

Inputs

NameTypeRequiredDescription
MessageBasenameStringNoLocation of any required messages.
ProcessIdStringNoID of the process to be paused.

Outputs

None.

Outcomes

OutcomeMeaning
NullProcess paused; prevents the current state's event link from also firing.

Use this as a base

The standard way to pause-and-chain the current process to another one while suppressing the current state's own event link - see UIStopBackgroundProcessAction if what's needed instead is stopping a separately-started background process.

UIExecuteBackgroundProcessAction

Classcom.enactor.coreUI.actions.UIExecuteBackgroundProcessAction
ModuleCoreUIBase-impl
Categoryui, process
Keywordsui, process, background, execute

Description

Starts one or more background threads - each running its own process instance with its own copy of the process/state data - and returns immediately with a ProcessHandle that can be used to control them. Background processes should avoid doing UI work. Returns Success, or throws an exception if the process ID can't be resolved.

Inputs

NameTypeRequiredDescription
*-NoAny additional inputs are passed through to the called process.
NumberOfThreadsIntegerNoNumber of execution threads to start. Defaults to 1.
ExecuteProcessIdStringNoOverrides the process ID configured on the action definition.
ThreadGroupNameStringNoName of the Java thread group created to run the process.
UseExistingProcessDefCacheBooleanNoShare the calling view's process definition cache instead of creating a new one.
DataSourceNameBooleanNoData source name to use; defaults to current.

Outputs

NameTypeDescription
ProcessHandleProcessHandleHandle used to control the started background process(es).

Outcomes

OutcomeMeaning
SuccessBackground process(es) started.

Use this as a base

The standard way to fire off headless background work (report generation, queue processing, scheduled jobs) from a process - see UIPauseProcessAction if the intent is instead to hand off the current process rather than spawn a new one.

UIExecuteProcessInWindowAction

Classcom.enactor.coreUI.actions.UIExecuteProcessInWindowAction
ModuleCoreUIBase-impl
Categoryui, process
Keywordsui, process, call, window

Description

Starts a process in another window without ending the current window's process - e.g. opening a secondary dialog while the calling process keeps running. Returns Success, or throws an exception if the process couldn't be started.

Inputs

NameTypeRequiredDescription
*-NoAdditional inputs are passed through to the called process.
ExecuteProcessIdStringNoOverrides the process ID configured on the action definition.
WindowIdStringNoID of the window to run the process in (optional in some UI environments).
ExecuteProcessInputDataIApplicationProcessDataNoDynamic map of extra inputs to pass to the called process.

Outputs

None.

Outcomes

OutcomeMeaning
SuccessProcess started in the target window.

Use this as a base

Use when a process needs to open another process in a separate window while continuing to run itself - see UIExecuteBackgroundProcessAction for headless background execution instead, or the palette's Call Process tool for a same-window call that ends the caller.

View-data plumbing

UISetViewDataAction

Classcom.enactor.coreUI.actions.UISetViewDataAction
ModuleCoreUIBase-impl
Categorydatabase
Keywordsdatabase, ui, view, set
note

Description

Sets whatever input data is supplied directly onto the view, regardless of the view's declared metadata (i.e. it bypasses normal input/output type validation). If SessionName is supplied, the data is written into a named session-scoped view variable (com.enactor.[sessionName]SessionViewData) instead of the main view data. Logs a warning if called from a thread that isn't safe for the view (use UIThreadSafeSetViewDataAction in that case). Always returns Success.

Inputs

NameTypeRequiredDescription
SessionNameStringNoIf set, data is written to a named session-scoped view variable instead of the main view.

Plus: whatever other data items are configured as this action's inputs are written onto the view as-is.

Outputs

None fixed.

Outcomes

OutcomeMeaning
SuccessInput data has been set onto the view.

Use this as a base

Use this to persist process data onto the view (so it survives across states/prompts) without going through the view's declared metadata - e.g. for dynamic or ad-hoc data. Pair with UIGetViewDataAction to read it back, using the same SessionName if session-scoped. If the calling code runs on a background thread, use UIThreadSafeSetViewDataAction instead to avoid the thread-safety warning this action logs.

UIGetViewDataAction

Classcom.enactor.coreUI.actions.UIGetViewDataAction
ModuleCoreUIBase-impl
Categoryui
Keywordsui, data
note

Description

Gets whatever output data types are configured on the action from the view, regardless of the view's declared metadata. If SessionName is supplied, reads from that named session-scoped view variable instead of the main view data. Also resolves a handful of built-in view properties automatically if requested as an output: currency code, user locale, data formatter (prompt views only), timeout seconds, and suppress-user-timeout flag. Always returns Success.

Inputs

NameTypeRequiredDescription
SessionNameStringNoIf set, reads from a named session-scoped view variable instead of the main view.

Outputs

Whatever data types are configured as this action's outputs - pulled from the view's process data, or from the built-in properties listed above if matched by name.

Outcomes

OutcomeMeaning
SuccessRequired output data obtained from the view.

Use this as a base

Use this to read process/view state (or one of the built-in view properties like currency code or user locale) back out into the current process, especially data set earlier via UISetViewDataAction using the same SessionName. Reuse rather than writing bespoke "get view property X" actions - the built-in property resolution already covers the common cases.

UIClearValuesAction

Classcom.enactor.coreUI.actions.UIClearValuesAction
ModuleCoreUIBase-impl
Categorydatabase
Keywordsdatabase, null, input

Description

Sets every input it's configured with to null in the output data. Takes no fixed inputs of its own - whatever data types are wired to it as inputs are simply nulled out and passed through as outputs. Always returns Success.

Inputs

None - configure whichever data items should be cleared as this action's inputs; each is nulled.

Outputs

None fixed - the same data items configured as inputs are output, set to null.

Outcomes

OutcomeMeaning
SuccessInput data has been set to null.

Use this as a base

The standard way to reset one or more process variables to null (e.g. clearing stale selection state before re-prompting a user) without an Assign action per variable. Only write a new action if you need conditional clearing (clear only if some condition holds) - this one always nulls everything it's given.

UIChangeLayoutAction

Classcom.enactor.coreUI.actions.UIChangeLayoutAction
ModuleCoreUIBase-impl
Categorydatabase
Keywordsdatabase

Description

Changes the layout URL (and/or theme) used by JSF applications. Supports several layout-transition modes: keep the current or new UI cached in memory by URL to avoid redrawing (KeepCurrentUI/KeepNewUI), reuse an existing cached UI (UseExistingUI), update the current UI in place without recreating controls (UpdateUI), re-layout without recreating controls (RelayoutUI), and allow a new container to be created if the layout needs one (AllowNewContainerName). Returns Success if the process has outgoing links defined, otherwise NULL to terminate. Throws an exception if neither LayoutURL nor Theme is supplied and the change fails.

Inputs

NameTypeRequiredDescription
LayoutURLStringNoURL of the layout to switch to, e.g. /HelpDesktopLayout.jsp.
ThemeStringNoTheme URL to apply with the layout.
KeepCurrentUI / KeepNewUIBooleanNoCache the current/new UI in memory by URL to avoid redrawing later.
UseExistingUIBooleanNoReuse a previously cached UI instead of redrawing.
UpdateUIBooleanNoUpdate the current UI in place without recreating controls.
RelayoutUIBooleanNoRe-layout the current UI without recreating controls or affecting visibility.
AllowNewContainerNameBooleanNoAllow a new container (e.g. new window/title bar) if the layout requires one.

Outputs

NameTypeDescription
ExistingLayoutUrlStringThe layout URL that was active before this change.

Outcomes

OutcomeMeaning
SuccessLayout changed (process has further links defined).
NULLLayout changed, but no further links are defined - terminates the process.

Use this as a base

The standard way to switch the active JSF layout/theme from within a process - use the Keep*/UseExistingUI/UpdateUI/RelayoutUI flags to control redraw cost rather than always doing a full layout replacement. Rarely worth writing a new layout-switching action; these flags cover the realistic combinations of cache/reuse/update behaviour.

UICopyValuesAction

Classcom.enactor.coreUI.actions.UICopyValuesAction
ModuleCoreUIBase-impl
Categorydata
Keywordscopy

Description

Copies all of the action's input data straight through to its output data - the specific fields depend entirely on the calling process. Always returns Success.

Inputs

Depends on the calling process - whatever is supplied is copied through.

Outputs

Same shape as the inputs - a full copy of the input data.

Outcomes

OutcomeMeaning
SuccessData copied successfully.

Use this as a base

A generic pass-through when a process step boundary needs input data re-presented as output data verbatim (e.g. threading data through a sub-process call) without picking named fields - for copying between two different named variables, use UISetViewDataAction/UIGetViewDataAction instead.

ExtractApplicationDataAction

Classcom.enactor.coreUI.actions.ExtractApplicationDataAction
ModuleCoreUI
Categorydatabase
Keywordsdatabase, data, application, extract, output

Description

Iterates every data item on a supplied ApplicationProcessData object and copies it onto this action's own outputs, so the calling process can consume it as if each item were a statically declared output. Returns Success.

Inputs

NameTypeRequiredDescription
ApplicationProcessDataIApplicationProcessDataYesObject whose data is to be extracted.

Outputs

Dynamic - one output per data item found on the input object; type varies by calling process (e.g. List, IEntity).

Outcomes

OutcomeMeaning
SuccessData extracted.

Use this as a base

Pairs with UIGetViewDataAction/UICopyValuesAction for dynamic data pass-through, when a process only has a bundled IApplicationProcessData object and needs its contents surfaced as individual named outputs.

Connectivity & messaging

ResolveConnectedProcessEndpointReferenceAction

Classcom.enactor.coreUI.processConnections.actions.ResolveConnectedProcessEndpointReferenceAction
ModuleCoreUI
Categorydatabase, process
Keywordsload, lock, entity, database, endpoint, process
note

This is the action InvokeRestServiceAction itself calls internally when no EndpointReference is supplied directly.

Description

Resolves a connected-process endpoint reference via ProcessConnectionResolver, so subsequent actions/process calls know whether (and where) to route a remote connection. Handles training-mode connection points (appending a TrainingMode suffix and falling back to the default if not found), REST/SOAP-specific provider configuration (transforms, parameters), and account-credential/user-principal resolution for the endpoint. Returns Success with the resolved EndpointReference output, or Fail if resolution errors (unless IgnoreUndefinedConnectionPoint/IgnoreUndefinedConnectionLink suppress specific error types).

Inputs (selected - 15 total, most optional)

NameTypeRequiredDescription
ConnectedProcessClientIdStringYesClient ID of the connected process, e.g. ServerProcessRunner.
ConnectedProcessIdStringYesID of the connected process, e.g. Reporting.
ConnectionPointIdStringYesID of the connection point, e.g. ReportService.
ProcessConnectionsDefinitionIdStringYesID of the process connections definition.
ConnectedProcessHostIdStringNoHost ID of the connected process, e.g. BPELRuntime.
ProcessConnectionsContextIProcessConnectionsContextNoExplicit context, if not resolvable from client/host ID.
IgnoreUndefinedConnectionPoint / IgnoreUndefinedConnectionLinkBooleanNoSuppress specific resolution errors - use with a "No Endpoint Found" fallback downstream.
OperationNameStringNoFor web-service endpoints, copies any diagram-configured transform onto the resolved endpoint.
TrainingModeBooleanNoIf set, tries a TrainingMode-suffixed connection point first, falling back to the default.

Outputs

NameTypeDescription
EndpointReferenceIEndpointReferenceThe resolved endpoint reference.

Outcomes

OutcomeMeaning
SuccessEndpoint reference resolved.
FailResolution failed (e.g. error reading the endpoint reference for the definition).

Use this as a base

This is what InvokeRestServiceAction and the web-service invoke actions use internally to turn connected-process configuration into an actual endpoint - call it directly whenever a process needs a resolved IEndpointReference for its own purposes (e.g. to pass to a different kind of remote call) rather than re-implementing connection-point resolution.

GetMessageAction

Classcom.enactor.commonUI.message.processes.GetMessageAction
ModuleCommonUI
Categorydatabase, messaging
Keywordsload, database, messaging

Description

Looks up a localized message from a message resource bundle, given a basename and message ID, and performs EL parameter substitution against the current input data. Locale is taken from the UserLocale input if supplied, otherwise from the view, otherwise the system default. Returns Fail (not an exception) if the message can't be found - this is a normal, expected outcome, not an error condition.

Inputs

NameTypeRequiredDescription
MessageBasenameStringYesMessages file (XML or Java), e.g. Maintenance/TransactionTypeMessages.
MessageIdStringYesID of the message within that basename, e.g. CARD_NUMBER_ALREADY_EXISTS.
UserLocaleLocaleNoLocale for translation; defaults to the current user's, then the system locale.

Outputs

NameTypeDescription
MessageStringThe resolved, substituted message text.

Outcomes

OutcomeMeaning
SuccessMessage loaded correctly.
FailNo message found for the given basename/ID.

Use this as a base

The standard way to resolve a localized, parameter-substituted message inside a process before displaying it or passing it to WriteApplicationProcessLogAction. Branch on Fail to supply a fallback rather than assuming the lookup always succeeds. Rarely worth writing a new message-lookup action - this one already handles locale fallback and EL substitution.

InvokeWebServiceAction

Classcom.enactor.commonUI.webService.processes.InvokeWebServiceAction
ModuleCommonUI
Categorywebservice
Keywordswebservice, invoke, url, endpoint
note

A legacy/alternate web-service invocation action alongside InvokeRestServiceAction, used where a SOAP/WSDL endpoint or RMI endpoint is involved rather than a REST one.

Description

Sends an XML-serializable object to a web service, either via a resolved EndpointReference (SOAP HTTP or RMI) or a direct WebServiceURL. When called via a URL with WrappedData true, it delegates to a simple wrap-and-invoke helper; otherwise it builds the call from Namespace/OperationName/argument inputs. Supports an inactivity timeout (invokes on a background thread and waits up to InactivityTimeoutMS). Returns Success, or (if ErrorOnFault is true, the default) throws a localized exception on invocation failure - otherwise fails silently and returns no response.

Inputs (selected)

NameTypeRequiredDescription
WebServiceURLStringNoDirect service URL, as an alternative to an endpoint.
WebServiceRequestIXMLSerializableNoThe request object to send.
EndpointReferenceIEndpointReferenceNoResolved endpoint (SOAP HTTP or RMI) - see ResolveConnectedProcessEndpointReferenceAction.
ActionURLStringNoSOAP action URL, when invoking via an endpoint.
NamespaceStringNoTarget namespace of the service.
OperationNameStringNoOperation to invoke, e.g. productEnquiry.
WrappedDataBooleanNoWhether the request/response is wrapped; defaults to true.
InactivityTimeoutMSLongNoTimeout for the call, invoked on a background thread if set.
ErrorOnFaultBooleanNoWhether a fault raises an exception; defaults to true.

Outputs

NameTypeDescription
WebServiceResponseIXMLSerializableThe response from the web service.

Outcomes

OutcomeMeaning
SuccessWeb service action invoked.

Use this as a base

Prefer InvokeRestServiceAction for new REST integrations - this action is the SOAP/WSDL/RMI-oriented equivalent, and is the one to reuse when the target endpoint is a SOAP HTTP or RMI service rather than REST. Resolve the endpoint first with ResolveConnectedProcessEndpointReferenceAction rather than hardcoding a WebServiceURL where possible, to get connected-process configuration and training-mode support for free.

InvokeRestServiceAction

Classcom.enactor.commonUI.webService.processes.InvokeRestServiceAction
ModuleCommonUI
Categorymessage, process
Keywordsmessage, xml, queue, process, web service

Description

Invokes a REST web service. It resolves an endpoint (either supplied directly or resolved from connected-process/connection-point IDs), infers the correct authentication handler and message handler from that endpoint's configuration (or lets you override either explicitly), and invokes the call. This is the standard action behind the process-editor's Call REST Service palette entry.

Inputs

NameTypeRequiredDescription
ObjectObjectYesThe object/payload to send to the service.
EndpointReferenceIEndpointReferenceNoA pre-resolved endpoint. If supplied, the connected-process resolution inputs below are skipped.
ConnectedProcessIdStringNoID of the connected process the request is directed to, e.g. CashManagement.
ConnectionPointIdStringNoID of the connection point, e.g. Transactions.
ConnectedProcessClientIdStringNoClient ID for the connected process (defaults to ${Service.DeviceID}).
ConnectedProcessHostIdStringNoHost ID for the connected process (defaults to ${Service.DeviceType}).
ProcessConnectionsDefinitionIdStringNoProcess connections definition ID (defaults to ${ProcessConnections.DefinitionId}).
ProcessConnectionsContextIProcessConnectionsContextNoExplicit process-connections context, if client/host ID resolution isn't sufficient.
AuthenticationHandlerStringNoClass name of an alternative authentication handler; inferred from the endpoint if omitted.
MessageHandlerStringNoClass name of an alternative message handler; inferred from the endpoint/payload if omitted.
ResponseObjectClassNameStringNoClass of the expected REST response object. Required for JSON payload formats.
JsonSerialiserFormatJsonSerializerUtil.FormatNoENACTOR (default, includes type info) or SIMPLE (for non-Enactor consumers).
ReturnErrorResponseBooleanNoIf true, returns any service-provided error response as-is instead of a generic ErrorDetails.
TrainingModeBooleanNoWhether training mode is active, considered when resolving the endpoint.
Headers / ParametersMapNoExtra request headers / query parameters to send.

Outputs

NameTypeDescription
ObjectObjectThe service's response, deserialized according to the endpoint's payload format.
ErrorDetailsErrorDetailsPopulated on failure (unless ReturnErrorResponse is set and the service returned its own error body).
StatusCodeIntegerThe response HTTP status code (set on failure).

Outcomes

OutcomeMeaning
SuccessMessage has been sent and a response received.
FailThe call failed (handler creation error, or a RestServiceInvocationException).

Use this as a base

For "call a REST endpoint" this action should almost always be reused directly rather than replaced - resolve or supply an IEndpointReference and configure inputs, rather than writing a new class. It already covers authentication-handler inference (basic, OAuth one-legged, X-API-Key, OpenID), message-handler inference by payload format (JSON, JSON-class, XML, raw), and request/response transform parameters.

Write a new action only if you need a fundamentally different transport (e.g. SOAP - see the equivalent SOAP invoke actions) or a message-handling strategy that can't be expressed via a custom IRestMessageHandler/IRestRequestMessageHandler/IRestResponseMessageHandler - prefer implementing one of those extension interfaces over forking this action's execute logic.

InvokeViaConnectionPointAction

note

Routes internally to a REST, SOAP, RMI, or queue-based send depending on the resolved endpoint type - effectively a dispatcher in front of InvokeRestServiceAction and its SOAP/RMI/queue equivalents.

Classcom.enactor.messageService.actions.InvokeViaConnectionPointAction
ModuleMessageService
Categorymessage, process
Keywordsmessage, xml, queue, process, web service

Description

Invokes a remote target resolved from a connected-process/connection-point ID, supporting any endpoint type - web service (SOAP or REST), RMI, or a queue. Resolves the endpoint/provider first if not supplied directly, then dispatches to the matching invocation strategy. Only supports a single request argument; any response arrives asynchronously, matched by correlation ID.

Inputs (selected - 18 total, most optional)

NameTypeRequiredDescription
ConnectedProcessIdStringYesID of the connected process to send to.
ConnectionPointIdStringYesID of the connection point.
ProcessConnectionsDefinitionIdStringYesID of the process connections definition.
ObjectObjectYesThe XML-serializable object to send.
CorrelationIdStringNoCorrelation ID for matching an async response.
EndpointReferenceIEndpointReferenceNoExplicit endpoint to use instead of resolving one.
ExpiryTimeIntegerNoMessage expiry time.

Outputs

NameTypeDescription
ObjectObjectThe (possibly response) XML-serializable object.

Outcomes

OutcomeMeaning
SuccessMessage sent.
FailMessage could not be sent.

Use this as a base

Use when the endpoint type genuinely varies by configuration (so the process shouldn't hard-code REST vs. SOAP vs. queue); use InvokeRestServiceAction/InvokeWebServiceAction directly instead when the endpoint type is always the same.

SendXMLSerializableMessageAction

note

Extends SendXMLMessageAction, specialised to serialize an arbitrary XML-serializable object first.

Classcom.enactor.messageService.actions.SendXMLSerializableMessageAction
ModuleMessageService
Categorymessage, process
Keywordsmessage, xml, queue, process

Description

Serializes the supplied object to XML (applying a transform first, if one is configured) and sends it as a message to a connected process via a queue. Returns Success, or throws an exception if serialization fails.

Inputs (selected - 11 total, most optional)

NameTypeRequiredDescription
ConnectedProcessIdStringYesID of the connected process to send to.
ConnectionPointIdStringYesID of the connection point.
ObjectObjectYesThe XML-serializable object to send.
CorrelationIdStringNoCorrelation ID for matching a response.
ExpiryTimeIntegerNoMessage expiry time.

Outputs

NameTypeDescription
QueueStringName of the queue the message was sent to.

Outcomes

OutcomeMeaning
SuccessMessage sent.

Use this as a base

The queue-specific building block InvokeViaConnectionPointAction delegates to when the resolved endpoint is a queue - use it directly when the target is always a queue.

ApplyDocumentTemplateAction

Classcom.enactor.coreUI.print.template.actions.ApplyDocumentTemplateAction
ModuleCoreUIBase-impl
Categorydocument
Keywordsdocument, template

Description

Parses and applies a print document template (given directly or loaded by URL) against all of the action's input data, producing a print document. Resolves locale for formatting from a cascade - document locale, POS terminal locale, location locale, then user/user locale, falling back to the OS default. All input data is exposed to the template via EL expressions. Returns Success, or throws a localized exception if the template can't be found or parsed.

Inputs (selected - most optional; at least one of PrintDocumentUrl/PrintDocumentTemplate is required)

NameTypeRequiredDescription
PrintDocumentUrlStringNo*URL of the template to load.
PrintDocumentTemplateIDocumentTemplateNo*The template itself, if already loaded.
DocumentLocaleKey / PosTerminalLocaleKey / LocationLocaleKeyILocaleKeyNoLocale cascade, checked in this order.
UserISignedOnUserNoSigned-on user, used to derive locale if no locale key matched.
UserLocaleILocaleNoExplicit user locale, as a further fallback.

Outputs

NameTypeDescription
PrintDocumentIPrintDocumentThe generated print document.

Outcomes

OutcomeMeaning
SuccessPrint document generated.

Use this as a base

The standard way to turn a print template into an actual document ready for output - pass every field the template's EL expressions will need as input data, since the whole input set (not just named inputs) is made available to it.

OS, file & process execution

UIExecuteOSCommandAction

Classcom.enactor.coreUI.actions.UIExecuteOSCommandAction
ModuleCoreUI
Categoryui, os
Keywordsui, os, command, execute

Description

Executes an operating system command line (or a ScriptActionData value supplied automatically from the process's input data), synchronously or fire-and-forget, typically to restart/shut down Tomcat or the POS. Returns Success or Fail depending on the command's exit status.

Inputs

NameTypeRequiredDescription
CommandStringNoThe OS command to execute.
ScriptActionDataStringNoCommand and data supplied automatically from the process's input data; used if Command isn't set.
WaitForBooleanNoWhether to block until the command completes. Defaults to true.
WaitTimeSecsIntegerNoHow long to wait if WaitFor is true. Defaults to 0 (unlimited).
WorkingDirectoryStringNoWorking directory for the command.
SaveOutputBooleanNoWhether to capture and return stdout/stderr. Defaults to true.

Outputs

NameTypeDescription
CommandOutStringStandard output from the command.
CommandErrorStringStandard error from the command.
ExitCodeIntegerExit code returned by the process.

Outcomes

OutcomeMeaning
SuccessCommand ran successfully.
FailCommand did not run successfully.

Use this as a base

The standard way to shell out to an OS-level command (restart/shutdown scripts, external tools) with built-in stdout/stderr/exit-code capture - write a new action only if the mechanism needs to be something other than an OS process (e.g. an in-JVM API call).

CopyFileAction

Classcom.enactor.commonUI.file.processes.CopyFileAction
ModuleCommonUI
Categorydatabase
Keywordsfile, copy

Description

Copies a file from OldFilename to NewFilename (both resolved for placeholders). Returns Success, or throws an exception if the copy fails.

Inputs

NameTypeRequiredDescription
OldFilenameStringYesThe file to be copied.
NewFilenameStringYesThe destination filename.

Outputs

None.

Outcomes

OutcomeMeaning
SuccessFile copied.

Use this as a base

The standard way to copy a file (e.g. archiving a report or log) - pair with DeleteFileAction or DeleteDirectoryAction for cleanup afterwards.

CheckFileAction

Classcom.enactor.commonUI.file.actions.CheckFileAction
ModuleCommonUI
Categorydocument
Keywordsdocument, file, check

Description

Checks whether a file exists, given a filename and (for relative paths) a target directory. Returns Success with the resolved File output, or NotFound if it doesn't exist (or if RelativePathAsNotFound is set and the path is relative).

Inputs

NameTypeRequiredDescription
FileNameStringYesThe name of the file to check.
TargetDirectoryStringNoDirectory to resolve a relative filename against.
RelativePathAsNotFoundBooleanNoTreat a relative path as NotFound rather than resolving it.

Outputs

NameTypeDescription
FileFileThe checked file (target directory + filename).

Outcomes

OutcomeMeaning
SuccessFile exists.
NotFoundFile does not exist.

Use this as a base

The standard existence check before DeleteFileAction or CopyFileAction, or before reading a file directly.

DeleteFileAction

Classcom.enactor.commonUI.file.processes.DeleteFileAction
ModuleCommonUI
Categorydatabase
Keywordsfile, delete

Description

Deletes the supplied file (either a File object or a filename). Returns Success or Fail depending on whether the delete succeeded; throws an exception if neither input is supplied.

Inputs

NameTypeRequiredDescription
FileFileNoThe file to delete.
FileNameStringNoFilename of the file to delete, if File isn't supplied.

Outputs

None.

Outcomes

OutcomeMeaning
SuccessFile deleted.
FailFile was not deleted.

Use this as a base

Pair with CheckFileAction to confirm existence first, or DeleteDirectoryAction for whole directories.

DeleteDirectoryAction

Classcom.enactor.commonUI.file.actions.DeleteDirectoryAction
ModuleCommonUI
Categorydatabase
Keywordsfile, delete, directory

Description

Deletes a directory (and, if DeleteFile is set, everything within it, recursively). Refuses to delete a filesystem root. Returns Success, or Fail/throws depending on ExceptionOnFailure.

Inputs

NameTypeRequiredDescription
SourceDirectoryStringYesDirectory to delete.
DeleteFileBooleanNoWhether to also delete files within the directory. Defaults to false.
ExceptionOnFailureBooleanNoThrow an exception on failure rather than returning Fail. Defaults to true.

Outputs

None.

Outcomes

OutcomeMeaning
SuccessDirectory deleted (or didn't exist).
FailDeletion failed and ExceptionOnFailure was false.

Use this as a base

The directory-level counterpart to DeleteFileAction.

SwitchOnOSNameAction

Classcom.enactor.commonUI.os.processes.SwitchOnOSNameAction
ModuleCommonUI
Categoryos
Keywordsos, name

Description

Extends RaiseValueAsOutcomeAction to detect the current operating system and raise an outcome named after it (Windows, Mac OS X, or Linux), also outputting the OS name and version. Returns Unknown if the OS can't be determined, or if the matching outcome isn't defined on the calling process.

Inputs

None.

Outputs

NameTypeDescription
OSNameStringName of the operating system.
OSVersionStringVersion of the operating system.

Outcomes

OutcomeMeaning
WindowsWindows operating system.
Mac OS XMac operating system.
LinuxLinux operating system.
UnknownOS not determined, or the corresponding outcome isn't defined on the process.

Use this as a base

The standard way to branch process logic by host OS - e.g. choosing an OS-specific script before calling UIExecuteOSCommandAction.

ExecuteKillCommandAction

Classcom.enactor.commonUI.os.processes.ExecuteKillCommandAction
ModuleCommonUI
Categoryprocess
Keywordsprocess, kill, external

Description

Kills an external OS process by name (e.g. a hung Tomcat or Swing POS launcher process). Returns Success or Fail depending on whether the kill succeeded, or throws an exception on an unsupported OS.

Inputs

NameTypeRequiredDescription
ExternalProcessNameStringYesName of the external process to kill.

Outputs

None.

Outcomes

OutcomeMeaning
SuccessProcess killed.
FailProcess not killed.

Use this as a base

The OS-process-kill counterpart to UIExecuteOSCommandAction - reach for that action instead if the required behavior is better expressed as an arbitrary OS command than a targeted kill.

ReadManifestAction

Classcom.enactor.coreUI.actions.ReadManifestAction
ModuleCoreUI
Categorydatabase
Keywordsdatabase, manifest, file, read

Description

Reads the system's manifest file (manifest.xml, in the home directory), which typically records the current deployed version. Returns Success with the manifest as output, or throws an exception if it can't be read.

Inputs

None.

Outputs

NameTypeDescription
ManifestIManifestThe loaded manifest.

Outcomes

OutcomeMeaning
SuccessManifest read successfully.

Use this as a base

The standard way to surface version/build information from the deployed manifest into a process - e.g. for display on an About screen or inclusion in diagnostic logs.

Maintenance Framework CRUD

note

These 8 actions live under com.enactor.maintenance.processes.actions and form the generic CRUD building blocks behind the Maintenance Framework's record navigation (new/view/edit/copy/create/cancel/back), rather than being general-purpose actions like the rest of this reference. Grouped together here because - like everything else in this document - they have no palette entry of their own, despite being used constantly (500+ references each) across the 2.7 codebase.

ViewAction

Classcom.enactor.maintenance.processes.actions.ViewAction
ModuleCoreMaintenance
Categoryuser, ui, entity, database
Keywordsuser, view, entity

Description

Loads an entity by key with a read lock (not an update lock, so no lock is held afterwards) and pushes it onto the entity navigation stack for viewing. Returns Success, or throws a localized exception if the key is invalid or the record can't be loaded.

Inputs

NameTypeRequiredDescription
KeyIEntityKeyYesKey of the entity to load.
EntityStackStackNoStack the loaded entity is pushed onto.
EndpointReferenceIEndpointReferenceNoRemote server to load from.

Outputs

NameTypeDescription
EntityKeyIEntityKeyKey of the viewed entity.
EntityIEntityThe loaded entity.

Outcomes

OutcomeMeaning
SuccessEntity loaded and viewed.

Use this as a base

The Maintenance Framework's read-only equivalent to EditAction - use this when the user only needs to view a record, not lock it for editing.

BackAction

Classcom.enactor.maintenance.processes.actions.BackAction
ModuleCoreMaintenance
Categoryuser, ui, entity
Keywordsuser, back, entity

Description

Pops the current entity off the navigation stack and outputs its parent, if one exists. Returns Success.

Inputs

NameTypeRequiredDescription
EntityStackStackNoStack of entities to pop from.

Outputs

NameTypeDescription
EntityIKeyedEntityThe parent entity, if one exists.

Outcomes

OutcomeMeaning
SuccessEntity popped from the stack.

Use this as a base

The standard "back" navigation step in a Maintenance Framework process; see BackFromNewAction for the special case right after CreateAction, where there's nothing on the stack yet to pop.

EditAction

Classcom.enactor.maintenance.processes.actions.EditAction
ModuleCoreMaintenance
Categoryentity, database
Keywordsentity, database, lock, load, edit

Description

Loads an entity by key with an update lock (optionally overriding an existing lock) and pushes it onto the entity navigation stack for editing. Returns Success, or RecordLocked if the entity is already locked by another user.

Inputs

NameTypeRequiredDescription
UserISignedOnUserYesCurrently signed-on user.
KeyIEntityKeyYesKey of the entity to edit.
EntityStackStackNoStack the loaded entity is pushed onto.
OverrideLockBooleanNoForce-unlock the entity first. Defaults to false.
EndpointReferenceIEndpointReferenceNoRemote server to load from.

Outputs

NameTypeDescription
KeyIEntityKeyKey of the edited entity.
EntityIEntityThe loaded entity.

Outcomes

OutcomeMeaning
SuccessEntity locked and loaded for editing.
RecordLockedEntity is currently locked by another user.

Use this as a base

The Maintenance Framework's standard "edit" step; see ViewAction for the read-only, non-locking equivalent.

CopyEntityAction

Classcom.enactor.maintenance.processes.actions.CopyEntityAction
ModuleCoreMaintenance
Categorydatabase, entity
Keywordsdatabase, entity, copy

Description

Duplicates an entity via an XML serialize/deserialize round-trip (so the copy is as deep as the entity's own XML serialization goes), accepting either the entity itself or a key to load it by. Returns Success, or throws a localized exception on load/serialization failure.

Inputs

NameTypeRequiredDescription
EntityIEntityNoEntity to copy.
EntityKeyIEntityKeyNoKey of the entity to load and copy, if Entity isn't supplied.
EndpointReferenceIEndpointReferenceNoRemote server to load from.

Outputs

NameTypeDescription
CopiedBooleanWhether the copy succeeded.
EntityIEntityThe copied entity.
EntityKeyIEntityKeyKey of the copied entity, if it's a keyed entity.

Outcomes

OutcomeMeaning
SuccessEntity duplicated.

Use this as a base

Feeds directly into CreateAction's Copied/Entity inputs for a "duplicate this record" workflow.

NewAction

Classcom.enactor.maintenance.processes.actions.NewAction
ModuleCoreMaintenance
Categoryuser, ui, entity, database
Keywordsuser, new, entity, create

Description

Creates a new (unpersisted) entity key from a name/namespace pair. Returns Success; logs (rather than throws) if the entity type can't be resolved.

Inputs

NameTypeRequiredDescription
EntityNameStringYesName of the entity, used to build its key.
EntityNamespaceStringYesNamespace of the entity.

Outputs

NameTypeDescription
EntityKeyIEntityKeyThe created entity key.

Outcomes

OutcomeMeaning
SuccessEntity key created.

Use this as a base

The first step of the Maintenance Framework's create flow - its EntityKey output feeds directly into CreateAction.

CancelAction

Classcom.enactor.maintenance.processes.actions.CancelAction
ModuleCoreMaintenance
Categoryentity, database
Keywordsentity, database, lock, load, cancel

Description

Cancels editing of an entity (accepting either the entity or its key), unlocks it, pops it off the navigation stack, and outputs its parent, if one exists. Returns Success.

Inputs

NameTypeRequiredDescription
EntityIEntityNoEntity being cancelled.
KeyIEntityKeyNoKey of the entity, if Entity isn't supplied.
EntityStackStackYesStack to pop the cancelled entity from.
UserISignedOnUserYesCurrently signed-on user, used to release the lock.
EndpointReferenceIEndpointReferenceNoRemote server the entity was loaded from.

Outputs

NameTypeDescription
EntityIEntityThe parent entity, if any.

Outcomes

OutcomeMeaning
SuccessEntity cancelled.

Use this as a base

The Maintenance Framework's cancel counterpart to EditAction - always unlocks, whereas BackAction simply navigates without touching a lock.

CreateAction

Classcom.enactor.maintenance.processes.actions.CreateAction
ModuleCoreMaintenance
Categoryuser, ui, entity, database
Keywordsuser, new, entity, create

Description

Validates a supplied entity key, checks the entity doesn't already exist, then either finalizes a copied entity (see CopyEntityAction) or creates a brand-new one from EntityName/EntityNamespace, pushing it onto the navigation stack. Returns Success, AlreadyExists, or Invalid.

Inputs (selected - 9 total)

NameTypeRequiredDescription
CopiedBooleanNoWhether this creation is finishing off a copy. Defaults to false.
EntityIEntityNoThe entity to create (used when Copied is true).
KeyIEntityKeyNoKey of the entity to create.
EntityStackStackNoStack the new entity is pushed onto.
EntityNameStringNoName of the entity to create.
EntityNamespaceStringNoNamespace of the entity to create.
EndpointReferenceIEndpointReferenceNoRemote server to check existence against.

Outputs

NameTypeDescription
EntityIEntityThe created entity.
ErrorMessagesIFormErrorsAny validation errors.

Outcomes

OutcomeMeaning
SuccessEntity created.
AlreadyExistsAn entity with this key already exists.
InvalidThe entity key failed validation.

Use this as a base

The Maintenance Framework's standard "create" step, following NewAction (for a fresh key) or CopyEntityAction (for a duplicate).

BackFromNewAction

Classcom.enactor.maintenance.processes.actions.BackFromNewAction
ModuleCoreMaintenance
Categoryentity
Keywordsentity, create, stack, back

Description

A no-op alternative to BackAction for use right after creating a new entity, where there's nothing on the stack yet to pop. Returns Success.

Inputs

None.

Outputs

None.

Outcomes

OutcomeMeaning
Success-

Use this as a base

Use immediately after NewAction/CreateAction instead of BackAction, since there's no stack entry to remove yet.