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.