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
| |
|---|
| Class | com.enactor.commonUI.list.processes.AddListFilterAction |
| Module | CommonUI |
| Category | database, entity |
| Keywords | load, entity, database, list |
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.
| Name | Type | Required | Description |
|---|
FilterId | String | Yes | ID of the filter, defined in the entity's server definition file. |
FilterType | String | No | Type of filter (e.g. text, date) - must implement IListFilter. |
FilterClassname | String | No | Alternative to FilterType for a user-defined filter with no factory entry. |
ListFilters / ListFiltersMap | List / Map | No | Existing filters to merge into; the map form is preferred for speed. |
CompoundListFilters | List | No | A list of filters combined into a single compound filter, used instead of the usual FilterId/criteria lookup. |
ListCriteria | IListCriteria | No | Existing criteria to add the filter to. |
EntityName / EntityNamespace | String | No | Used to validate the filter's metadata exists on the server. |
ComparisonOperator | String/ComparisonOperators | No | e.g. EQUALS, GREATER_THAN, CONTAINS, IN. |
CaseInsensitive, DefaultToFirstValue, DefaultValue, FuzzyLevel, ReplaceExistingFilter, ForceApplicable, OrNull, ReadOnly | various | No | Filter behaviour tuning. |
ListAllowBlank, BlankValue, UseKeyForValue, FilterKeyProperty, HideDeviceDefaultValue | various | No | Selection-list-filter-specific configuration (blank handling, key-vs-value, device default). |
PersistenceGroupId, IgnorePersistenceGroupValues | String / Boolean | No | Controls whether/where the filter's value is persisted across views. |
Outputs
| Name | Type | Description |
|---|
ListCriteria | IListCriteria | The inputted criteria merged with the new filter. |
ListFilters | List | The updated list of filters. |
ListFiltersMap | Map | The updated filters keyed by ID. |
ListFilter | IListFilter | The filter that was found or created. |
Outcomes
| Outcome | Meaning |
|---|
Success | List 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
| |
|---|
| Class | com.enactor.commonUI.list.processes.AddOrderByPropertyAction |
| Module | CommonUI |
| Category | database, entity |
| Keywords | entity, 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.
| Name | Type | Required | Description |
|---|
ListOrderByColumnName | String | Yes | One or more property names to order by, comma-separated, e.g. description, productKey.productId. |
ListOrderBySortDirection | SortDirection | No | ASCENDING (default), DESCENDING, or NONE. |
ListCriteria | IListCriteria | No | Existing criteria to add the ordering to; a new one is created if omitted. |
Outputs
| Name | Type | Description |
|---|
ListCriteria | IListCriteria | The criteria with the order-by definitions added. |
Outcomes
| Outcome | Meaning |
|---|
Success | Order-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
| |
|---|
| Class | com.enactor.commonUI.list.processes.LoadPagedListAction |
| Module | CommonUI |
| Category | database, entity |
| Keywords | load, 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.
| Name | Type | Required | Description |
|---|
EntityName / EntityNamespace | String | Yes | Identify the entity's server via its QName. |
ListName | String | No | List method to invoke, defaults to listAll. |
ListCriteria | IListCriteria | No | Filter/order criteria - merge in output from AddListFilterAction/AddOrderByPropertyAction. |
PageSize | Integer | No | Rows per page; defaults via GetPageSizeAction if unset/zero. |
RowOffset | Integer | No | Row offset for the page; clamped to 0 minimum. |
EndpointReference | IEndpointReference | No | Target a remote server instead of the local one. |
EntityServerName | QName | No | Explicit server QName, if it differs from the entity's own QName. |
DisableListCache | Boolean | No | Overrides the criteria's cache setting. |
LockType | LockType | No | Overrides the criteria's read-lock setting. |
Outputs
| Name | Type | Description |
|---|
List | List | The page of list elements (key, description, and other server-defined properties). |
ListCriteria | IListCriteria | The criteria actually used, including the page info added. |
Outcomes
| Outcome | Meaning |
|---|
Success | List 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
| |
|---|
| Class | com.enactor.commonUI.entities.processes.CreateAndSetEntityAction |
| Module | CommonUI |
| Category | database, entity |
| Keywords | load, 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.
| Name | Type | Required | Description |
|---|
EntityNamespace | String | No | Namespace of the entity, e.g. http://www.enactor.com/core. |
EntityName | String | No | Entity name (lower-case first letter), e.g. product. |
EntityQname | QName | No | Combined name+namespace, as an alternative to the pair above. |
DynamicParameterNames | String | No | Comma-separated property names to set from matching input data. |
Outputs
| Name | Type | Description |
|---|
Entity | IEntity | The created and populated entity. |
Outcomes
| Outcome | Meaning |
|---|
Success | Entity created and set correctly. |
InvalidType | Input 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
| |
|---|
| Class | com.enactor.commonUI.list.processes.CreateDynamicMapAction |
| Module | CommonUI |
| Category | database, entity |
| Keywords | map, 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).
| Name | Type | Required | Description |
|---|
UserLocale | ILocale | No | Locale for the dynamic map's lookups. |
PropertyName | String | No | The entity property to extract; if omitted, the whole entity is returned. |
DefaultKeyProperty | String | No | Fallback property resolved against the key itself when the main property can't be resolved. |
KeyAdapter | DynamicMap.IKeyAdapter | No | Converts an arbitrary lookup value into an entity key (for complex keys). |
KeyName / KeyNamespace | String | No | Entity name/namespace of the key, used with KeyIdProperty for simple keys. |
KeyIdProperty | String | No | The property on the key supplied to the map (required if KeyName is set). |
IgnoreMissingEntities | Boolean | No | Suppress errors when a requested entity is missing. |
Outputs
| Name | Type | Description |
|---|
DynamicMap | com.enactor.core.utilities.DynamicMap | The created dynamic map. |
Outcomes
| Outcome | Meaning |
|---|
Success | Dynamic 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
| |
|---|
| Class | com.enactor.commonUI.entities.processes.CreateEntityFromXMLAction |
| Module | CommonUI |
| Category | database, entity |
| Keywords | entity, 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.
| Name | Type | Required | Description |
|---|
XML | String | Yes | XML from which the entity is to be created. |
Outputs
| Name | Type | Description |
|---|
Entity | IEntity | The entity created from the inputted XML. |
Outcomes
| Outcome | Meaning |
|---|
Success | Entity 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
| |
|---|
| Class | com.enactor.commonUI.list.processes.ResetFiltersAction |
| Module | CommonUI |
| Category | ui |
| Keywords | list, 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.
| Name | Type | Required | Description |
|---|
ListFilters | List | Yes | List of list filters to reset. |
Outputs
| Name | Type | Description |
|---|
ListFilters | List | The same list, with every filter reset. |
Outcomes
| Outcome | Meaning |
|---|
Success | All 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
| |
|---|
| Class | com.enactor.coreUI.actions.CreateListAction |
| Module | CoreUIBase-impl |
| Category | database, entity |
| Keywords | entity, 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.
| Name | Type | Required | Description |
|---|
ListClassname | String | No | Class to instantiate, e.g. java.util.ArrayList, java.util.HashSet, or a [] array suffix. Defaults to ArrayList. |
ObjectClassname | String | No | If set, pre-fills the list with new instances of this class up to InitialSize. |
InitialSize | Integer | No | Initial size to pre-fill to, defaults to 0. |
MakeThreadSafe | Boolean | No | Wraps the result in the matching Collections.synchronized* wrapper. |
Outputs
| Name | Type | Description |
|---|
Object | Object | The created list/array/set/map. |
Outcomes
| Outcome | Meaning |
|---|
Success | List 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
| |
|---|
| Class | com.enactor.commonUI.list.processes.AddToListAction |
| Module | CommonUI |
| Category | entity, ui |
| Keywords | ui, 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.
| Name | Type | Required | Description |
|---|
List | List | No | List to add to; a new one is created if omitted. |
Value | Object | Yes | Value to add - if it's itself a Collection, all its elements are added. |
ListType | String | No | Type of list to create if List isn't supplied, e.g. ArrayList, LinkedList. |
Outputs
| Name | Type | Description |
|---|
List | List | The list with the value added. |
Outcomes
| Outcome | Meaning |
|---|
Success | Item 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
| |
|---|
| Class | com.enactor.commonUI.list.processes.AddToMapAction |
| Module | CommonUI |
| Category | database, entity |
| Keywords | map, 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.
| Name | Type | Required | Description |
|---|
Map | Map | No | Map to add to; a new hashed map is created if omitted. |
Key | Object | No (required unless merging) | Key of the item to add. |
Value | Object | Yes | Value to add - or, if MergeMap is true, a Map to merge in. |
MapType | String | No | Type of map to create if none supplied, e.g. CachedMap, TreeMap. |
TimeoutMS | Integer | No | Timeout for a CachedMap, defaults to 60000. |
MergeMap | Boolean | No | If true, treats Value as a map to merge rather than a single value. |
Outputs
| Name | Type | Description |
|---|
Map | Map | The map with the entry added (or merged). |
Outcomes
| Outcome | Meaning |
|---|
Success | Item 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
| |
|---|
| Class | com.enactor.coreUI.actions.RemoveFromCollectionAction |
| Module | CoreUIBase-impl |
| Category | database |
| Keywords | database, list, collection, map |
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.
| Name | Type | Required | Description |
|---|
Collection | Object | Yes | The collection or map to modify. |
Key | Object | No | Entry (collection) or key (map) to remove. |
Index | Integer | No | List position to remove - only valid when Collection is a List. |
RemoveCollection | Collection | No | A batch of keys/items to remove in one call. |
Outputs
| Name | Type | Description |
|---|
Collection | Collection | The collection with the entry/entries removed. |
Object | Object | The removed item (single-item cases). |
Outcomes
| Outcome | Meaning |
|---|
Success | Entry 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
| |
|---|
| Class | com.enactor.commonUI.iteration.actions.GetIteratorAction |
| Module | CommonUI |
| Category | database |
| Keywords | database, iterator |
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.
| Name | Type | Required | Description |
|---|
Iterable | Object | Yes | The source to iterate - accepts Iterable, Iterator, Map, or an array. |
MakeCopy | Boolean | No | If true, copies the source first to avoid concurrent-modification issues. |
Outputs
| Name | Type | Description |
|---|
Iterator | java.util.Iterator | The resulting iterator. |
Outcomes
| Outcome | Meaning |
|---|
Success | An 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
| |
|---|
| Class | com.enactor.commonUI.iteration.actions.IterateAction |
| Module | CommonUI |
| Category | database |
| Keywords | database, state, iterate |
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.
| Name | Type | Required | Description |
|---|
Iterator | java.util.Iterator | Yes | The iterator to advance. |
Outputs
| Name | Type | Description |
|---|
IteratorItem | Object | The next item, or null when iteration has completed. |
Outcomes
| Outcome | Meaning |
|---|
Next | Not at the end - output data is the next item. |
Completed | Iteration 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
| |
|---|
| Class | com.enactor.coreUI.actions.AddToCollectionAction |
| Module | CoreUIBase-impl |
| Category | database |
| Keywords | database, 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.
| Name | Type | Required | Description |
|---|
Object | Object | Yes | Object (or collection/array of objects) to add. |
Collection | Collection | No | Existing collection to add to. Either this or CollectionClass is required. |
Index | Integer | No | Insertion index, if the collection is a List. |
CollectionClass | String | No | Class to instantiate if Collection isn't supplied, e.g. java.util.LinkedHashSet. |
MergeCollections | Boolean | No | Merge in a collection/array's elements individually rather than adding it as one object. Defaults to true. |
ReplaceDuplicates | Boolean | No | Remove an equal existing element before adding. Defaults to false. |
Outputs
| Name | Type | Description |
|---|
Collection | Collection | The updated (or newly created) collection. |
Outcomes
| Outcome | Meaning |
|---|
Success | Object 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
| |
|---|
| Class | com.enactor.pos.packages.basket.processes.BasketItemLoopAction |
| Module | Pos |
| Category | pos |
| Keywords | pos, 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.
| Name | Type | Required | Description |
|---|
BasketItemIterator | Iterator | No | Existing iterator to continue from. |
Basket | IBasket | No | Basket to iterate; if omitted, derived from TransactionHandler. |
TransactionHandler | IRetailTransactionHandler | No | Used to determine the basket if Basket isn't supplied. |
UseTransactionBasket | Boolean | No | Use the transaction basket rather than its model basket. Defaults to false. |
IncludeVoidedTenderItems | Boolean | No | Include voided items in the iteration. |
IncludeReturnTenderItems | Boolean | No | Include return items in the iteration. |
BasketItemClassName | String | No | Restrict iteration to a specific basket item class. |
Outputs
| Name | Type | Description |
|---|
BasketItemIterator | Iterator | The iterator, for continuing the loop on the next call. |
BasketItem | IBasketItem | The next qualifying basket item. |
Outcomes
| Outcome | Meaning |
|---|
Next | An item to process was found. |
Completed | Iteration 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
| |
|---|
| Class | com.enactor.commonUI.logging.actions.WriteApplicationProcessLogAction |
| Module | CommonUI |
| Category | database, logging |
| Keywords | database, logging |
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).
| Name | Type | Required | Description |
|---|
Exception | Throwable | No | Exception to explicitly log. |
MessageBasename | String | No | Messages file (XML or Java) containing the message. |
Message | String | No | Literal text; takes precedence over a message-id lookup. |
MessageId | String | No | ID of the message to look up in MessageBasename. |
LoggingLocale | Locale | No | Locale for message resolution. |
ProcessId | String | No | Defaults to the current process; also used for filtering. |
ReferenceId | String | No | Unique identifier for the entry, used for filtering. |
UserId | String | No | User logged in when the event occurred. |
DeviceId | String | No | Device where the event occurred. |
EntryType | String | No | Arbitrary developer-defined classification, e.g. scheduledJob, document. |
LogEntryType | Integer | No | 0=error, 1=warning, 2=information (default), 3=debug. |
Outputs
| Name | Type | Description |
|---|
ApplicationProcessLogEntry | IApplicationProcessLogEntry | The log entry created, for optional further use. |
Outcomes
| Outcome | Meaning |
|---|
Success | Application 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
| |
|---|
| Class | com.enactor.coreProcessing.updateLog.actions.WriteToApplicationUpdateLogAction |
| Module | CoreProcessing |
| Category | logging |
| Keywords | logging, application, log, entry, write, update |
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.
| Name | Type | Required | Description |
|---|
ApplicationUpdateLog | IApplicationUpdateLog | Yes | The in-memory log entity being appended to. |
LogFilename | String | Yes | Directory and filename the log is written to. |
Operation | String | Yes | The operation being recorded, e.g. COPYING_FILE, COMPLETED_UPDATE. |
TargetFilename | String | No | Target filename - set for copy/replace operations. |
Filename | String | No | Source filename - set for copy/replace/delete operations. |
Outputs
| Name | Type | Description |
|---|
ApplicationUpdateLogEntry | IApplicationUpdateLogEntry | The log entry that was created and appended. |
Outcomes
| Outcome | Meaning |
|---|
Success | Log 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
| |
|---|
| Class | com.enactor.coreUI.actions.UILogMessageAction |
| Module | CoreUIBase-impl |
| Category | messaging, logging |
| Keywords | messaging, 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.
| Name | Type | Required | Description |
|---|
LogMessage | String | No | Message to log; EL expressions are substituted. |
Object | Object | No | Object to log - serialized to XML if possible, appended after the message. |
LogLevel | String | No | LOG_DEBUG, LOG_ERROR, LOG_WARNING, LOG_INFORMATION, etc. Defaults to vital-information level. |
LogVariables | Boolean | No | Also log the action's full input data. Defaults to false. |
InitialMax | Integer | No | Max duplicate messages to log before throttling. Defaults to unlimited. |
RelogDelaySecs | Integer | No | Delay before a throttled message is logged again. |
Exception | Throwable | No | Exception to log explicitly (otherwise picked up from the current state, if any). |
LogStackTrace | Boolean | No | Log the stack trace if there's an exception. Defaults to true. |
Outputs
None.
Outcomes
| Outcome | Meaning |
|---|
Success | Message 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
| |
|---|
| Class | com.enactor.coreProcessing.updateLog.actions.WriteEntryStatusToApplicationUpdateLogAction |
| Module | CoreProcessing |
| Category | logging |
| Keywords | logging, 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.
| Name | Type | Required | Description |
|---|
LogEntryStatus | String | Yes | Status for the log entry, e.g. SUCCESS or FAIL. |
LogFilename | String | Yes | Directory and filename of the application update log file. |
ApplicationUpdateLog | IApplicationUpdateLog | Yes | The application update log entity being written. |
ApplicationUpdateLogEntry | IApplicationUpdateLogEntry | Yes | The log entry to update and write. |
Outputs
None.
Outcomes
| Outcome | Meaning |
|---|
Success | Log 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
| |
|---|
| Class | com.enactor.coreProcessing.updateLog.actions.WriteStatusToApplicationUpdateLogAction |
| Module | CoreProcessing |
| Category | logging |
| Keywords | logging, 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.
| Name | Type | Required | Description |
|---|
LogStatus | String | Yes | Status to write, e.g. SUCCESS. |
LogFilename | String | Yes | Filename of the application log. |
ApplicationUpdateLog | IApplicationUpdateLog | Yes | The application log to be updated. |
Outputs
None.
Outcomes
| Outcome | Meaning |
|---|
Success | Status written to the application log. |
Use this as a base
The overall-log counterpart to WriteEntryStatusToApplicationUpdateLogAction.
CreateErrorDetailsAction
| |
|---|
| Class | com.enactor.commonUI.actions.CreateErrorDetailsAction |
| Module | CommonUI |
| Category | logging |
| Keywords | logging, 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.
| Name | Type | Required | Description |
|---|
Exception | Throwable | No | Exception to record on the error details. |
MessageBasename | String | No | Message resource file (XML or Java basename). |
MessageId | String | No | ID of the message. |
Message | String | No | Message text, if MessageId isn't used. |
ApplicationProcessData | IApplicationProcessData | No | Extra data to attach (only XML-serializable items are kept). |
MessageLocale | Locale | No | Locale for the message; defaults to the current user's locale. |
Outputs
| Name | Type | Description |
|---|
ErrorDetails | IErrorDetails | The constructed error details. |
Outcomes
| Outcome | Meaning |
|---|
Success | ErrorDetails 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
| |
|---|
| Class | com.enactor.coreUI.actions.CheckPrivilegesAction |
| Module | CoreUIBase-impl |
| Category | database |
| Keywords | database, privileges |
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.
| Name | Type | Required | Description |
|---|
Privileges | Set<String> | No | Additional privileges to check alongside those on the action definition. |
MatchAtLeastOnePrivilege | Boolean | No | If true, success requires only one matching privilege rather than all. |
Outputs
| Name | Type | Description |
|---|
PrivilegeInfo | String | The (missing) privilege list as a string, for logging/UI display. |
PrivilegesExist | Boolean | Whether the privileges were satisfied. |
Outcomes
| Outcome | Meaning |
|---|
Success | Required privileges are present. |
Fail | Required 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
| |
|---|
| Class | com.enactor.coreUI.actions.CallProcessWithPrivilegesAction |
| Module | CoreUIBase-impl |
| Category | ui, process |
| Keywords | ui, process, call, privileges |
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.
| Name | Type | Required | Description |
|---|
Privileges | String | No - set by action config | Combined with the action definition's privileges automatically. |
ExecuteProcessId | String | No - set by action config | The process to call. |
ExecuteProcessInputData | String | No - set by action config | The action's configured inputs, passed through automatically. |
Outputs
None directly - outputs come from whatever the called process/action produces.
Outcomes
| Outcome | Meaning |
|---|
Null | (Inherited placeholder outcome from UICallProcessAction.) |
ExecuteProcess | Not 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
Extends UICallProcessAction (the class behind the palette's Call Process tool).
| |
|---|
| Class | com.enactor.coreUI.actions.UICallExtensionPointProcessAction |
| Module | CoreUI |
| Category | ui, process |
| Keywords | ui, 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.
| Name | Type | Required | Description |
|---|
* | - | No | All inputs are passed straight through to each called process. |
ExtensionPointId | String | Yes | ID of the extension point whose registered processes should be run. |
Outputs
| Name | Type | Description |
|---|
* | - | Outputs of the process(es) called. |
Outcomes
| Outcome | Meaning |
|---|
* | Outcomes returned by the called process(es). |
Success | All 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. |
Fail | Declared, 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
| |
|---|
| Class | com.enactor.coreUI.actions.CheckEventAction |
| Module | CoreUIBase-impl |
| Category | process |
| Keywords | check, 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.
| Name | Type | Required | Description |
|---|
CurrentEvent | IEvent | Yes | Event whose name will be checked/raised as the outcome. |
Outputs
| Name | Type | Description |
|---|
CurrentEvent | IEvent | The same event that was checked. |
Outcomes
| Outcome | Meaning |
|---|
* | The event's own name, if a link for it exists. |
Unknown | No 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
| |
|---|
| Class | com.enactor.commonUI.actions.RaiseOutcomeAction |
| Module | CommonUI |
| Category | process |
| Keywords | raise, action |
Description
Raises the supplied IApplicationProcessOutcome object directly as this action's outcome.
| Name | Type | Required | Description |
|---|
CurrentOutcome | IApplicationProcessOutcome | Yes | The outcome object to raise. |
Outputs
None.
Outcomes
| Outcome | Meaning |
|---|
* | 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
| |
|---|
| Class | com.enactor.coreUI.actions.RaiseValueAsOutcomeAction |
| Module | CoreUIBase-impl |
| Category | process |
| Keywords | raise, 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).
| Name | Type | Required | Description |
|---|
OutcomeName | String | Yes | Name of the outcome to raise. |
Outputs
None.
Outcomes
| Outcome | Meaning |
|---|
Success | Valid link found and raised. |
Unknown | Could 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
Extends UIEndProcessAction (the class behind the palette's End Process tool) - throws a process exception and ends the process in one step.
| |
|---|
| Class | com.enactor.coreUI.actions.UIThrowProcessExceptionAction |
| Module | CoreUI |
| Category | ui, logging, process |
| Keywords | ui, 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.
| Name | Type | Required | Description |
|---|
Exception | Throwable | No | Exception to throw; defaults to the current state's exception if not supplied. |
Message | String | No | Message text for the exception. |
MessageBasename | String | No | Message resource file, if MessageId is used instead of Message. |
MessageId | String | No | ID of a localized message to use instead of Message. |
ErrorCode | String | No | Error 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
| |
|---|
| Class | com.enactor.coreUI.actions.UIWaitAction |
| Module | CoreUIBase-impl |
| Category | database |
| Keywords | database, 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.
| Name | Type | Required | Description |
|---|
WaitTimeMS | Integer | No | Wait time in milliseconds. Defaults to 1000. |
WaitTimeSecs | Integer | No | Wait time in seconds. |
WaitTimeMins | Integer | No | Wait time in minutes. |
Outputs
None.
Outcomes
| Outcome | Meaning |
|---|
Success | Wait 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
| |
|---|
| Class | com.enactor.coreUI.actions.UIStopBackgroundProcessAction |
| Module | CoreUI |
| Category | process |
| Keywords | stop |
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.
| Name | Type | Required | Description |
|---|
ProcessHandle | ProcessHandle | Yes | Handle of the background process to stop. |
Outputs
None.
Outcomes
| Outcome | Meaning |
|---|
Success | Background 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
| |
|---|
| Class | com.enactor.coreUI.actions.SetControlServiceCurrentActivityAction |
| Module | CoreUI |
| Category | service, ui |
| Keywords | service, 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.
| Name | Type | Required | Description |
|---|
ControlService | IControlService | Yes | The control service/servlet whose activity is being reported. |
Message | String | No | Activity message text, if MessageId isn't used. |
MessageBasename | String | No | Message resource file, used with MessageId. |
MessageId | String | No | ID of a localized activity message. |
MessageLocale | Locale | No | Locale for the message. |
Outputs
None.
Outcomes
| Outcome | Meaning |
|---|
Success | Current 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
| |
|---|
| Class | com.enactor.coreUI.actions.ClosePromptAction |
| Module | CoreUIBase-impl |
| Category | ui |
| Keywords | prompt, 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.
| Name | Type | Required | Description |
|---|
StateId | String | Yes | ID of the state/prompt to close. |
Outputs
None.
Outcomes
| Outcome | Meaning |
|---|
Success | Prompt 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
| |
|---|
| Class | com.enactor.coreUI.actions.UIPauseProcessAction |
| Module | CoreUIBase-impl |
| Category | process |
| Keywords | process, 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.
| Name | Type | Required | Description |
|---|
MessageBasename | String | No | Location of any required messages. |
ProcessId | String | No | ID of the process to be paused. |
Outputs
None.
Outcomes
| Outcome | Meaning |
|---|
Null | Process 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
| |
|---|
| Class | com.enactor.coreUI.actions.UIExecuteBackgroundProcessAction |
| Module | CoreUIBase-impl |
| Category | ui, process |
| Keywords | ui, 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.
| Name | Type | Required | Description |
|---|
* | - | No | Any additional inputs are passed through to the called process. |
NumberOfThreads | Integer | No | Number of execution threads to start. Defaults to 1. |
ExecuteProcessId | String | No | Overrides the process ID configured on the action definition. |
ThreadGroupName | String | No | Name of the Java thread group created to run the process. |
UseExistingProcessDefCache | Boolean | No | Share the calling view's process definition cache instead of creating a new one. |
DataSourceName | Boolean | No | Data source name to use; defaults to current. |
Outputs
| Name | Type | Description |
|---|
ProcessHandle | ProcessHandle | Handle used to control the started background process(es). |
Outcomes
| Outcome | Meaning |
|---|
Success | Background 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
| |
|---|
| Class | com.enactor.coreUI.actions.UIExecuteProcessInWindowAction |
| Module | CoreUIBase-impl |
| Category | ui, process |
| Keywords | ui, 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.
| Name | Type | Required | Description |
|---|
* | - | No | Additional inputs are passed through to the called process. |
ExecuteProcessId | String | No | Overrides the process ID configured on the action definition. |
WindowId | String | No | ID of the window to run the process in (optional in some UI environments). |
ExecuteProcessInputData | IApplicationProcessData | No | Dynamic map of extra inputs to pass to the called process. |
Outputs
None.
Outcomes
| Outcome | Meaning |
|---|
Success | Process 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
| |
|---|
| Class | com.enactor.coreUI.actions.UISetViewDataAction |
| Module | CoreUIBase-impl |
| Category | database |
| Keywords | database, ui, view, set |
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.
| Name | Type | Required | Description |
|---|
SessionName | String | No | If 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
| Outcome | Meaning |
|---|
Success | Input 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
| |
|---|
| Class | com.enactor.coreUI.actions.UIGetViewDataAction |
| Module | CoreUIBase-impl |
| Category | ui |
| Keywords | ui, data |
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.
| Name | Type | Required | Description |
|---|
SessionName | String | No | If 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
| Outcome | Meaning |
|---|
Success | Required 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
| |
|---|
| Class | com.enactor.coreUI.actions.UIClearValuesAction |
| Module | CoreUIBase-impl |
| Category | database |
| Keywords | database, 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.
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
| Outcome | Meaning |
|---|
Success | Input 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
| |
|---|
| Class | com.enactor.coreUI.actions.UIChangeLayoutAction |
| Module | CoreUIBase-impl |
| Category | database |
| Keywords | database |
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.
| Name | Type | Required | Description |
|---|
LayoutURL | String | No | URL of the layout to switch to, e.g. /HelpDesktopLayout.jsp. |
Theme | String | No | Theme URL to apply with the layout. |
KeepCurrentUI / KeepNewUI | Boolean | No | Cache the current/new UI in memory by URL to avoid redrawing later. |
UseExistingUI | Boolean | No | Reuse a previously cached UI instead of redrawing. |
UpdateUI | Boolean | No | Update the current UI in place without recreating controls. |
RelayoutUI | Boolean | No | Re-layout the current UI without recreating controls or affecting visibility. |
AllowNewContainerName | Boolean | No | Allow a new container (e.g. new window/title bar) if the layout requires one. |
Outputs
| Name | Type | Description |
|---|
ExistingLayoutUrl | String | The layout URL that was active before this change. |
Outcomes
| Outcome | Meaning |
|---|
Success | Layout changed (process has further links defined). |
NULL | Layout 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
| |
|---|
| Class | com.enactor.coreUI.actions.UICopyValuesAction |
| Module | CoreUIBase-impl |
| Category | data |
| Keywords | copy |
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.
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
| Outcome | Meaning |
|---|
Success | Data 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.
| |
|---|
| Class | com.enactor.coreUI.actions.ExtractApplicationDataAction |
| Module | CoreUI |
| Category | database |
| Keywords | database, 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.
| Name | Type | Required | Description |
|---|
ApplicationProcessData | IApplicationProcessData | Yes | Object 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
| Outcome | Meaning |
|---|
Success | Data 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
| |
|---|
| Class | com.enactor.coreUI.processConnections.actions.ResolveConnectedProcessEndpointReferenceAction |
| Module | CoreUI |
| Category | database, process |
| Keywords | load, lock, entity, database, endpoint, process |
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).
| Name | Type | Required | Description |
|---|
ConnectedProcessClientId | String | Yes | Client ID of the connected process, e.g. ServerProcessRunner. |
ConnectedProcessId | String | Yes | ID of the connected process, e.g. Reporting. |
ConnectionPointId | String | Yes | ID of the connection point, e.g. ReportService. |
ProcessConnectionsDefinitionId | String | Yes | ID of the process connections definition. |
ConnectedProcessHostId | String | No | Host ID of the connected process, e.g. BPELRuntime. |
ProcessConnectionsContext | IProcessConnectionsContext | No | Explicit context, if not resolvable from client/host ID. |
IgnoreUndefinedConnectionPoint / IgnoreUndefinedConnectionLink | Boolean | No | Suppress specific resolution errors - use with a "No Endpoint Found" fallback downstream. |
OperationName | String | No | For web-service endpoints, copies any diagram-configured transform onto the resolved endpoint. |
TrainingMode | Boolean | No | If set, tries a TrainingMode-suffixed connection point first, falling back to the default. |
Outputs
| Name | Type | Description |
|---|
EndpointReference | IEndpointReference | The resolved endpoint reference. |
Outcomes
| Outcome | Meaning |
|---|
Success | Endpoint reference resolved. |
Fail | Resolution 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
| |
|---|
| Class | com.enactor.commonUI.message.processes.GetMessageAction |
| Module | CommonUI |
| Category | database, messaging |
| Keywords | load, 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.
| Name | Type | Required | Description |
|---|
MessageBasename | String | Yes | Messages file (XML or Java), e.g. Maintenance/TransactionTypeMessages. |
MessageId | String | Yes | ID of the message within that basename, e.g. CARD_NUMBER_ALREADY_EXISTS. |
UserLocale | Locale | No | Locale for translation; defaults to the current user's, then the system locale. |
Outputs
| Name | Type | Description |
|---|
Message | String | The resolved, substituted message text. |
Outcomes
| Outcome | Meaning |
|---|
Success | Message loaded correctly. |
Fail | No 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
| |
|---|
| Class | com.enactor.commonUI.webService.processes.InvokeWebServiceAction |
| Module | CommonUI |
| Category | webservice |
| Keywords | webservice, invoke, url, endpoint |
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.
| Name | Type | Required | Description |
|---|
WebServiceURL | String | No | Direct service URL, as an alternative to an endpoint. |
WebServiceRequest | IXMLSerializable | No | The request object to send. |
EndpointReference | IEndpointReference | No | Resolved endpoint (SOAP HTTP or RMI) - see ResolveConnectedProcessEndpointReferenceAction. |
ActionURL | String | No | SOAP action URL, when invoking via an endpoint. |
Namespace | String | No | Target namespace of the service. |
OperationName | String | No | Operation to invoke, e.g. productEnquiry. |
WrappedData | Boolean | No | Whether the request/response is wrapped; defaults to true. |
InactivityTimeoutMS | Long | No | Timeout for the call, invoked on a background thread if set. |
ErrorOnFault | Boolean | No | Whether a fault raises an exception; defaults to true. |
Outputs
| Name | Type | Description |
|---|
WebServiceResponse | IXMLSerializable | The response from the web service. |
Outcomes
| Outcome | Meaning |
|---|
Success | Web 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
| |
|---|
| Class | com.enactor.commonUI.webService.processes.InvokeRestServiceAction |
| Module | CommonUI |
| Category | message, process |
| Keywords | message, 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.
| Name | Type | Required | Description |
|---|
Object | Object | Yes | The object/payload to send to the service. |
EndpointReference | IEndpointReference | No | A pre-resolved endpoint. If supplied, the connected-process resolution inputs below are skipped. |
ConnectedProcessId | String | No | ID of the connected process the request is directed to, e.g. CashManagement. |
ConnectionPointId | String | No | ID of the connection point, e.g. Transactions. |
ConnectedProcessClientId | String | No | Client ID for the connected process (defaults to ${Service.DeviceID}). |
ConnectedProcessHostId | String | No | Host ID for the connected process (defaults to ${Service.DeviceType}). |
ProcessConnectionsDefinitionId | String | No | Process connections definition ID (defaults to ${ProcessConnections.DefinitionId}). |
ProcessConnectionsContext | IProcessConnectionsContext | No | Explicit process-connections context, if client/host ID resolution isn't sufficient. |
AuthenticationHandler | String | No | Class name of an alternative authentication handler; inferred from the endpoint if omitted. |
MessageHandler | String | No | Class name of an alternative message handler; inferred from the endpoint/payload if omitted. |
ResponseObjectClassName | String | No | Class of the expected REST response object. Required for JSON payload formats. |
JsonSerialiserFormat | JsonSerializerUtil.Format | No | ENACTOR (default, includes type info) or SIMPLE (for non-Enactor consumers). |
ReturnErrorResponse | Boolean | No | If true, returns any service-provided error response as-is instead of a generic ErrorDetails. |
TrainingMode | Boolean | No | Whether training mode is active, considered when resolving the endpoint. |
Headers / Parameters | Map | No | Extra request headers / query parameters to send. |
Outputs
| Name | Type | Description |
|---|
Object | Object | The service's response, deserialized according to the endpoint's payload format. |
ErrorDetails | ErrorDetails | Populated on failure (unless ReturnErrorResponse is set and the service returned its own error body). |
StatusCode | Integer | The response HTTP status code (set on failure). |
Outcomes
| Outcome | Meaning |
|---|
Success | Message has been sent and a response received. |
Fail | The 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
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.
| |
|---|
| Class | com.enactor.messageService.actions.InvokeViaConnectionPointAction |
| Module | MessageService |
| Category | message, process |
| Keywords | message, 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.
| Name | Type | Required | Description |
|---|
ConnectedProcessId | String | Yes | ID of the connected process to send to. |
ConnectionPointId | String | Yes | ID of the connection point. |
ProcessConnectionsDefinitionId | String | Yes | ID of the process connections definition. |
Object | Object | Yes | The XML-serializable object to send. |
CorrelationId | String | No | Correlation ID for matching an async response. |
EndpointReference | IEndpointReference | No | Explicit endpoint to use instead of resolving one. |
ExpiryTime | Integer | No | Message expiry time. |
Outputs
| Name | Type | Description |
|---|
Object | Object | The (possibly response) XML-serializable object. |
Outcomes
| Outcome | Meaning |
|---|
Success | Message sent. |
Fail | Message 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
Extends SendXMLMessageAction, specialised to serialize an arbitrary XML-serializable object first.
| |
|---|
| Class | com.enactor.messageService.actions.SendXMLSerializableMessageAction |
| Module | MessageService |
| Category | message, process |
| Keywords | message, 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.
| Name | Type | Required | Description |
|---|
ConnectedProcessId | String | Yes | ID of the connected process to send to. |
ConnectionPointId | String | Yes | ID of the connection point. |
Object | Object | Yes | The XML-serializable object to send. |
CorrelationId | String | No | Correlation ID for matching a response. |
ExpiryTime | Integer | No | Message expiry time. |
Outputs
| Name | Type | Description |
|---|
Queue | String | Name of the queue the message was sent to. |
Outcomes
| Outcome | Meaning |
|---|
Success | Message 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.
Print & document templating
ApplyDocumentTemplateAction
| |
|---|
| Class | com.enactor.coreUI.print.template.actions.ApplyDocumentTemplateAction |
| Module | CoreUIBase-impl |
| Category | document |
| Keywords | document, 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.
| Name | Type | Required | Description |
|---|
PrintDocumentUrl | String | No* | URL of the template to load. |
PrintDocumentTemplate | IDocumentTemplate | No* | The template itself, if already loaded. |
DocumentLocaleKey / PosTerminalLocaleKey / LocationLocaleKey | ILocaleKey | No | Locale cascade, checked in this order. |
User | ISignedOnUser | No | Signed-on user, used to derive locale if no locale key matched. |
UserLocale | ILocale | No | Explicit user locale, as a further fallback. |
Outputs
| Name | Type | Description |
|---|
PrintDocument | IPrintDocument | The generated print document. |
Outcomes
| Outcome | Meaning |
|---|
Success | Print 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
| |
|---|
| Class | com.enactor.coreUI.actions.UIExecuteOSCommandAction |
| Module | CoreUI |
| Category | ui, os |
| Keywords | ui, 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.
| Name | Type | Required | Description |
|---|
Command | String | No | The OS command to execute. |
ScriptActionData | String | No | Command and data supplied automatically from the process's input data; used if Command isn't set. |
WaitFor | Boolean | No | Whether to block until the command completes. Defaults to true. |
WaitTimeSecs | Integer | No | How long to wait if WaitFor is true. Defaults to 0 (unlimited). |
WorkingDirectory | String | No | Working directory for the command. |
SaveOutput | Boolean | No | Whether to capture and return stdout/stderr. Defaults to true. |
Outputs
| Name | Type | Description |
|---|
CommandOut | String | Standard output from the command. |
CommandError | String | Standard error from the command. |
ExitCode | Integer | Exit code returned by the process. |
Outcomes
| Outcome | Meaning |
|---|
Success | Command ran successfully. |
Fail | Command 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
| |
|---|
| Class | com.enactor.commonUI.file.processes.CopyFileAction |
| Module | CommonUI |
| Category | database |
| Keywords | file, copy |
Description
Copies a file from OldFilename to NewFilename (both resolved for placeholders). Returns Success, or throws an exception if the copy fails.
| Name | Type | Required | Description |
|---|
OldFilename | String | Yes | The file to be copied. |
NewFilename | String | Yes | The destination filename. |
Outputs
None.
Outcomes
| Outcome | Meaning |
|---|
Success | File 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
| |
|---|
| Class | com.enactor.commonUI.file.actions.CheckFileAction |
| Module | CommonUI |
| Category | document |
| Keywords | document, 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).
| Name | Type | Required | Description |
|---|
FileName | String | Yes | The name of the file to check. |
TargetDirectory | String | No | Directory to resolve a relative filename against. |
RelativePathAsNotFound | Boolean | No | Treat a relative path as NotFound rather than resolving it. |
Outputs
| Name | Type | Description |
|---|
File | File | The checked file (target directory + filename). |
Outcomes
| Outcome | Meaning |
|---|
Success | File exists. |
NotFound | File does not exist. |
Use this as a base
The standard existence check before DeleteFileAction or CopyFileAction, or before reading a file directly.
DeleteFileAction
| |
|---|
| Class | com.enactor.commonUI.file.processes.DeleteFileAction |
| Module | CommonUI |
| Category | database |
| Keywords | file, 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.
| Name | Type | Required | Description |
|---|
File | File | No | The file to delete. |
FileName | String | No | Filename of the file to delete, if File isn't supplied. |
Outputs
None.
Outcomes
| Outcome | Meaning |
|---|
Success | File deleted. |
Fail | File was not deleted. |
Use this as a base
Pair with CheckFileAction to confirm existence first, or DeleteDirectoryAction for whole directories.
DeleteDirectoryAction
| |
|---|
| Class | com.enactor.commonUI.file.actions.DeleteDirectoryAction |
| Module | CommonUI |
| Category | database |
| Keywords | file, 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.
| Name | Type | Required | Description |
|---|
SourceDirectory | String | Yes | Directory to delete. |
DeleteFile | Boolean | No | Whether to also delete files within the directory. Defaults to false. |
ExceptionOnFailure | Boolean | No | Throw an exception on failure rather than returning Fail. Defaults to true. |
Outputs
None.
Outcomes
| Outcome | Meaning |
|---|
Success | Directory deleted (or didn't exist). |
Fail | Deletion failed and ExceptionOnFailure was false. |
Use this as a base
The directory-level counterpart to DeleteFileAction.
SwitchOnOSNameAction
| |
|---|
| Class | com.enactor.commonUI.os.processes.SwitchOnOSNameAction |
| Module | CommonUI |
| Category | os |
| Keywords | os, 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.
None.
Outputs
| Name | Type | Description |
|---|
OSName | String | Name of the operating system. |
OSVersion | String | Version of the operating system. |
Outcomes
| Outcome | Meaning |
|---|
Windows | Windows operating system. |
Mac OS X | Mac operating system. |
Linux | Linux operating system. |
Unknown | OS 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
| |
|---|
| Class | com.enactor.commonUI.os.processes.ExecuteKillCommandAction |
| Module | CommonUI |
| Category | process |
| Keywords | process, 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.
| Name | Type | Required | Description |
|---|
ExternalProcessName | String | Yes | Name of the external process to kill. |
Outputs
None.
Outcomes
| Outcome | Meaning |
|---|
Success | Process killed. |
Fail | Process 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
| |
|---|
| Class | com.enactor.coreUI.actions.ReadManifestAction |
| Module | CoreUI |
| Category | database |
| Keywords | database, 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.
None.
Outputs
| Name | Type | Description |
|---|
Manifest | IManifest | The loaded manifest. |
Outcomes
| Outcome | Meaning |
|---|
Success | Manifest 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
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
| |
|---|
| Class | com.enactor.maintenance.processes.actions.ViewAction |
| Module | CoreMaintenance |
| Category | user, ui, entity, database |
| Keywords | user, 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.
| Name | Type | Required | Description |
|---|
Key | IEntityKey | Yes | Key of the entity to load. |
EntityStack | Stack | No | Stack the loaded entity is pushed onto. |
EndpointReference | IEndpointReference | No | Remote server to load from. |
Outputs
| Name | Type | Description |
|---|
EntityKey | IEntityKey | Key of the viewed entity. |
Entity | IEntity | The loaded entity. |
Outcomes
| Outcome | Meaning |
|---|
Success | Entity 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
| |
|---|
| Class | com.enactor.maintenance.processes.actions.BackAction |
| Module | CoreMaintenance |
| Category | user, ui, entity |
| Keywords | user, back, entity |
Description
Pops the current entity off the navigation stack and outputs its parent, if one exists. Returns Success.
| Name | Type | Required | Description |
|---|
EntityStack | Stack | No | Stack of entities to pop from. |
Outputs
| Name | Type | Description |
|---|
Entity | IKeyedEntity | The parent entity, if one exists. |
Outcomes
| Outcome | Meaning |
|---|
Success | Entity 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
| |
|---|
| Class | com.enactor.maintenance.processes.actions.EditAction |
| Module | CoreMaintenance |
| Category | entity, database |
| Keywords | entity, 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.
| Name | Type | Required | Description |
|---|
User | ISignedOnUser | Yes | Currently signed-on user. |
Key | IEntityKey | Yes | Key of the entity to edit. |
EntityStack | Stack | No | Stack the loaded entity is pushed onto. |
OverrideLock | Boolean | No | Force-unlock the entity first. Defaults to false. |
EndpointReference | IEndpointReference | No | Remote server to load from. |
Outputs
| Name | Type | Description |
|---|
Key | IEntityKey | Key of the edited entity. |
Entity | IEntity | The loaded entity. |
Outcomes
| Outcome | Meaning |
|---|
Success | Entity locked and loaded for editing. |
RecordLocked | Entity 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
| |
|---|
| Class | com.enactor.maintenance.processes.actions.CopyEntityAction |
| Module | CoreMaintenance |
| Category | database, entity |
| Keywords | database, 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.
| Name | Type | Required | Description |
|---|
Entity | IEntity | No | Entity to copy. |
EntityKey | IEntityKey | No | Key of the entity to load and copy, if Entity isn't supplied. |
EndpointReference | IEndpointReference | No | Remote server to load from. |
Outputs
| Name | Type | Description |
|---|
Copied | Boolean | Whether the copy succeeded. |
Entity | IEntity | The copied entity. |
EntityKey | IEntityKey | Key of the copied entity, if it's a keyed entity. |
Outcomes
| Outcome | Meaning |
|---|
Success | Entity duplicated. |
Use this as a base
Feeds directly into CreateAction's Copied/Entity inputs for a "duplicate this record" workflow.
NewAction
| |
|---|
| Class | com.enactor.maintenance.processes.actions.NewAction |
| Module | CoreMaintenance |
| Category | user, ui, entity, database |
| Keywords | user, 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.
| Name | Type | Required | Description |
|---|
EntityName | String | Yes | Name of the entity, used to build its key. |
EntityNamespace | String | Yes | Namespace of the entity. |
Outputs
| Name | Type | Description |
|---|
EntityKey | IEntityKey | The created entity key. |
Outcomes
| Outcome | Meaning |
|---|
Success | Entity 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
| |
|---|
| Class | com.enactor.maintenance.processes.actions.CancelAction |
| Module | CoreMaintenance |
| Category | entity, database |
| Keywords | entity, 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.
| Name | Type | Required | Description |
|---|
Entity | IEntity | No | Entity being cancelled. |
Key | IEntityKey | No | Key of the entity, if Entity isn't supplied. |
EntityStack | Stack | Yes | Stack to pop the cancelled entity from. |
User | ISignedOnUser | Yes | Currently signed-on user, used to release the lock. |
EndpointReference | IEndpointReference | No | Remote server the entity was loaded from. |
Outputs
| Name | Type | Description |
|---|
Entity | IEntity | The parent entity, if any. |
Outcomes
| Outcome | Meaning |
|---|
Success | Entity 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
| |
|---|
| Class | com.enactor.maintenance.processes.actions.CreateAction |
| Module | CoreMaintenance |
| Category | user, ui, entity, database |
| Keywords | user, 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.
| Name | Type | Required | Description |
|---|
Copied | Boolean | No | Whether this creation is finishing off a copy. Defaults to false. |
Entity | IEntity | No | The entity to create (used when Copied is true). |
Key | IEntityKey | No | Key of the entity to create. |
EntityStack | Stack | No | Stack the new entity is pushed onto. |
EntityName | String | No | Name of the entity to create. |
EntityNamespace | String | No | Namespace of the entity to create. |
EndpointReference | IEndpointReference | No | Remote server to check existence against. |
Outputs
| Name | Type | Description |
|---|
Entity | IEntity | The created entity. |
ErrorMessages | IFormErrors | Any validation errors. |
Outcomes
| Outcome | Meaning |
|---|
Success | Entity created. |
AlreadyExists | An entity with this key already exists. |
Invalid | The 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
| |
|---|
| Class | com.enactor.maintenance.processes.actions.BackFromNewAction |
| Module | CoreMaintenance |
| Category | entity |
| Keywords | entity, 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.
None.
Outputs
None.
Outcomes
Use this as a base
Use immediately after NewAction/CreateAction instead of BackAction, since there's no stack entry to remove yet.