An Action can be implemented in a persistent class declaration. When the Action attribute is applied to a persistent class method, a new Action is added to the special built-in ObjectMethodActionsViewController View Controller. If the target method is parameterless, then a SimpleAction is created. If this method takes a non-persistent object as a parameter, then a PopupWindowShowAction is created, and a passed object’s Detail View is shown in a pop-up. When this Action is executed, the target method is called. The target method’s declaring class is assigned to the Action’s ActionBase.TargetObjectType property. So, this Action is activated only for objects of the specified type. When activated, this Action is displayed within the RecordsEdit Action Container, because the ActionBase.Category property of these Actions is set to “RecordEdit”, by default. You can override this behavior by passing the required category as the category parameter. You can also specify other named parameters to define the Action’s details: caption, tooltip, image name and so on.
Identifiers (see ActionBase.Id) of Actions declared via the Action attribute are formed by combining the declaring type name and target method name separated with a dot. If target method takes a parameter, then the method parameter type name is also appended. For instance, if the Action attribute is applied to a Recalculate method declared in an Order business class, the resulting Action’s identifier will be “Order.Recalculate”. Metadata information on the Actions is available in the Application Model. So, just like with a regular Action declared in a Controller, you can customize these Actions via ActionDesign | Action node properties in the Model Editor.
If the Action attribute’s parameters do not allow you to define a particular feature, add a Simple Action to a custom Controller in the standard way (see Add a Simple Action, Add an Action that Displays a Pop-up Window).
To see an example of the Action attribute in use, refer to the How to: Create an Action Using the Action Attribute topic.
It is not recommended to create actions within business classes because normally, a business model is separated from UI settings.