In Atomiton Domain Languages an Action is a named XML Element that describes fundamental unit of executable functionality.
<Action Name="RotateCameraAC" Documentation="Simple Action to Rotate ESKY Camera by x degrees"/>
An Action Element can contain following modifiers or attributes:
- Name
- Documentation
An Action is defined in:
- ThingFacet
- AppFacet
- Subscribe
An Action must describe or define
The execution of an action represents some interaction with external system, transformation or processing in the modeled system. An action execution represents the run-time behavior of executing an action within a specific behavior execution. All action executions will be executions of specific kinds of actions as defined by internal workflow . Action is executed, when actionable attribute gets updated (modified by KnownBy in the model) by the app or side effect in the system.
An action is the specification of an executable statement and is the fundamental unit of processing or behavior in an Thing or App Model that represents some transformation in the modeled system, triggered by an external event.
An action forms an abstraction of a computational procedure which is an atomic execution and therefore completes without interruption. An action can either be completed in zero time and cannot be interrupted, once started or it can be a more complex collection of behavior that may run for a long duration. In this scenario, action may be interrupted by events, in which case, it does not run to completion. Zero time execution vs long lasting execution gets defined by the definition of the workflow.
An action of ThingFacet is a result of a device state change or intent to change the state of the device, and is realized by sending a message to an instance or modifying a value of an actionable attribute.
Action is defined as encapsulated workflow, which gets triggered on updates of actionable attributes in ThingModel and/or AppModel. Action can perform synchronous set of activities defined in the workflow.
Where can Action be used in TQL (only in ThingFacets and AppFacets?)
What is the general structure of an Action in TQL? (1 or more workflows?)