AbstractBuilds the ActionInvocationProvenance for a dispatch: which binding fired, from which
lifecycle event, against which record. Stamped onto ActionExecutionLog so a workflow failure is
diagnosable without correlating by timestamp, and used by the redaction rules — the binding's
EntityActionParam rows are what carry ValueType and the per-binding LogValue override.
OptionalentityObject: BaseEntitythe record the run operates on; omitted for a dispatch not yet resolved to one.
Case insensitive helper method to find a param by valueType
AbstractInvokeRuns the action for this invocation type.
Returns null when the action did not run at all — the binding is scoped
(ScopeEntityID/ScopeRecordID) and this record falls outside it, or a filter refused it.
That is an ordinary outcome, not a failure: there is simply no result to report. The type
says so because callers were dereferencing it — HandleEntityActions guards correctly, the
GraphQL resolver did not, and an out-of-scope binding surfaced to clients as a server error.
This method will map the Entity Action Params to the Action Params and where needed evaluate scripts to get the run-time values that need to get passed to the Action.
Attempt to execute a script and wraps in try/catch to handle any errors so that no exceptions are thrown The scripts are passed an object called EntityActionContext which has a property called entityObject that is the entity object for the current Entity Action. The script can do whatever it wants to do, and passes back a value in the result property of the EntityActionContext object
the script to execute
the entity object to pass to the script
Base class for invocation of any entity action invocation type