Skip to main content

Core Actions Reference

An Action is a stateless process step: a Java class implementing com.enactor.coreUI.actions.IUIAction, invoked by class name from an Application Process (or Business Process) definition. It reads typed inputs, does one unit of work, writes typed outputs, and returns a named outcome that drives branching to the next step in the process.

What this reference covers​

This is not a general action catalogue - the Application Process Editor's own palette (Common Actions, Advanced Actions, Web Actions, plus the generic Actions group) already documents the action types that show up as drag-and-drop tools: Assign, Call Process, End Process, Null Action, Create Object, Execute Script, Pause, and the entity/transaction actions in Common Actions. If it has a palette icon, look there first.

This reference is specifically for the opposite case: classes used constantly across the codebase but with no palette entry at all - findable only by already knowing the class name, reading source, or searching the Resource Library by category. Every class below was confirmed against a full codebase scan of <core:className> action references (108,000+ occurrences across Core, BusinessProcess, EstateManager, POS, Retail, CRM, Inventory, OrderManager, and every other module) and cross-checked against the four palette pages to confirm it has no tool of its own.

Wiring one of these into a process​

This page tells you which class to use and its inputs/outputs/outcomes - for the mechanics of actually adding it to a process (dragging a generic Action tool from the palette, setting its Class Name property via ctrl+space search or via the Resource Library, then matching its Inputs/Outputs/Outcomes to the tables below), see Actions.

How an action is documented​

Every action class carries two layers of metadata, both maintained in the class-level Javadoc, with inputs/outputs/outcomes additionally mirrored as real Java annotations:

LayerWhere it livesWhat it's for
@Categories, @Keywords, @ResourceTypeJavadoc tags onlyDrives the Resource Library search/category filter - see Search by Element Type
@Inputs/@Input, @Outputs/@Output, @Outcomes/@OutcomeBoth Javadoc tags and @Inputs/@Outputs/@Outcomes Java annotations (com.enactor.coreUI.annotations)Drives the Application Process Editor's Inputs/Outputs/Outcomes property tables, and is read at runtime to validate process wiring

Keeping both layers correct and complete matters: an action missing @Categories/@Keywords still works, but won't surface when a developer searches the Resource Library by category - they're more likely to write a duplicate action instead of reusing yours. See Java Action Best Practices for the coding conventions.

Reference index​

Entity & list building​

ActionCategorySummary
AddListFilterActiondatabase, entityAdds a filter to a list-query's criteria
AddOrderByPropertyActiondatabase, entityAdds sort ordering to a list's criteria
LoadPagedListActiondatabase, entityReflection-based paginated list loading
CreateAndSetEntityActiondatabase, entityCreates an entity and populates its fields in one step
CreateDynamicMapActiondatabase, entityLazy key-based lookup map over entities
CreateEntityFromXMLActiondatabase, entityCreates an entity by deserializing XML
ResetFiltersActionuiResets every filter in a list of list filters
CreateListActiondatabase, entityInstantiates an empty (or pre-sized) list/array/set/map

Collections & iteration​

ActionCategorySummary
AddToListActionentity, uiAppends a value (or collection) to a list
AddToMapActiondatabase, entityAdds/merges an entry into a map
RemoveFromCollectionActiondatabaseRemoves entry/entries from a list, set, or map
GetIteratorActiondatabaseGets an Iterator over an iterable/map/array
IterateActiondatabaseAdvances an Iterator, one step per call
AddToCollectionActiondatabaseGeneric add to any Collection (not just List/Map)
BasketItemLoopActionposIterates over the items in a basket

Logging & auditing​

ActionCategorySummary
WriteApplicationProcessLogActiondatabase, loggingStructured, queryable process log entry
WriteToApplicationUpdateLogActionloggingApplication-update/patch progress log entry
UILogMessageActionmessaging, loggingSimple message/exception log entry
WriteEntryStatusToApplicationUpdateLogActionloggingWrites one entry's status into an application update log
WriteStatusToApplicationUpdateLogActionloggingWrites the overall status of an application update log
CreateErrorDetailsActionloggingBuilds an ErrorDetails entity from an exception/message

Security & process control​

ActionCategorySummary
CheckPrivilegesActiondatabaseChecks the signed-on user's privileges
CallProcessWithPrivilegesActionui, processCalls a sub-process, passing privileges through as data
UICallExtensionPointProcessActionui, processCalls every process registered against an extension point
CheckEventActionprocessRaises an event's name as the outcome
RaiseOutcomeActionprocessRaises an already-resolved outcome object
RaiseValueAsOutcomeActionprocessRaises a named outcome, given its name
UIThrowProcessExceptionActionui, logging, processThrows a process exception and ends the process
UIWaitActiondatabaseBlocking wait for a period of time
UIStopBackgroundProcessActionprocessStops a running background process
SetControlServiceCurrentActivityActionservice, uiSets a control service's Back Office activity status
ClosePromptActionuiCloses an open prompt state
UIPauseProcessActionprocessPersists and pauses the current process, to chain to another
UIExecuteBackgroundProcessActionui, processStarts a background process on one or more threads
UIExecuteProcessInWindowActionui, processStarts a process in another window without ending the current one

View-data plumbing​

ActionCategorySummary
UISetViewDataActiondatabaseWrites data onto the view, bypassing declared metadata
UIGetViewDataActionuiReads data (and built-in properties) from the view
UIClearValuesActiondatabaseNulls out configured input values
UIChangeLayoutActiondatabaseSwitches the active JSF layout/theme
UICopyValuesActiondataCopies all input data straight through to output data
ExtractApplicationDataActiondatabaseCopies every item off an ApplicationProcessData object onto the outputs

Connectivity & messaging​

ActionCategorySummary
ResolveConnectedProcessEndpointReferenceActiondatabase, processResolves a connected-process endpoint reference
GetMessageActiondatabase, messagingLocalized message lookup with EL substitution
InvokeWebServiceActionwebserviceSOAP/WSDL/RMI web-service invocation (legacy/alternate to REST)
InvokeRestServiceActionmessage, processREST web-service invocation
InvokeViaConnectionPointActionmessage, processDispatches to REST/SOAP/RMI/queue by resolved endpoint type
SendXMLSerializableMessageActionmessage, processSerializes an object and sends it via a queue
ActionCategorySummary
ApplyDocumentTemplateActiondocumentParses and applies a print document template

OS, file & process execution​

ActionCategorySummary
UIExecuteOSCommandActionui, osExecutes an OS command line
CopyFileActiondatabaseCopies a file
CheckFileActiondocumentChecks whether a file exists
DeleteFileActiondatabaseDeletes a file
DeleteDirectoryActiondatabaseDeletes a directory, optionally including its files
SwitchOnOSNameActionosRaises an outcome named after the current OS
ExecuteKillCommandActionprocessKills an external OS process by name
ReadManifestActiondatabaseReads the deployed manifest.xml file

Maintenance Framework CRUD​

ActionCategorySummary
ViewActionuser, ui, entity, databaseLoads (read-locked) and pushes an entity for viewing
BackActionuser, ui, entityPops an entity off the navigation stack
EditActionentity, databaseLocks and loads an entity for editing
CopyEntityActiondatabase, entityDeep-copies an entity via XML round-trip
NewActionuser, ui, entity, databaseCreates a new entity key from a name/namespace pair
CancelActionentity, databaseUnlocks and pops a cancelled entity off the stack
CreateActionuser, ui, entity, databaseValidates, checks existence, and creates a new/copied entity
BackFromNewActionentityNo-op back action for use right after Create

Before writing a new action​

Each entry above has a "Use this as a base" section aimed at exactly this question. As a general rule:

  • If an existing action already does the kind of work you need (filter a list, check privileges, resolve an endpoint, log an entry), configure it against your data rather than writing a new class - that's what the @Input/@Output contracts are designed for.
  • Check this page first if the action you're about to write doesn't have an obvious palette icon - there's a good chance it already exists here or in one of its listed siblings.
  • Only write a new action when the existing ones can't be configured to do the job. Search the Resource Library by category first - it will surface more candidates than this page alone.