What are Actions?
Actions trigger either an interaction with the back end (calling the OData service) or they initiate an external navigation to another app. You can see actions displayed as buttons on the apps.
Placement of Actions in Apps
The SAP Fiori design guidelines define where the actions can be placed as buttons on the UI. According to the guidelines, actions must be placed close to the information they act upon. An example can be placing the actions on the toolbar of the table or chart in the list report. Another example would be placing the global actions in the header area of the object page.
For more information about actions, see Actions.
For more information about the action placement, see Action Placement.
Generic Actions
SAP Fiori elements provides generic actions, such as:
- Trigger external navigation to related apps.
- Create a new item.
- Delete a single item or multiple items.
- Edit an existing item.
In the list report, the Create and Delete actions are placed in the table toolbar.

On the object page, the Edit and Delete actions are global actions placed in the header area.

The Delete button is an action on the table and is enabled only if the user selects an item.
Visibility of the Delete and Create Buttons
You can control the visibility of the Delete button by using the @UI.DeleteHidden annotation. Its value can be a Boolean value (true or false), or a path that points to a Boolean property of an entity. If the value of the property is true, then the Delete button is hidden; if it's false, it's visible.
12345
annotate TravelService.Travel with @UI : {
DeleteHidden : true
}
Similarly, you can control the visibility of the Create button using the @UI.CreateHidden annotation. Its value can be a Boolean value (true or false), or a path that points to a Boolean property of an entity. If the value of the property is true, then the Create button is hidden; if it's false, it's visible.
12345
annotate TravelService.Travel with @UI : {
CreateHidden : true
}
Disable the Delete Button
Instead of hiding the Delete button, you can choose to disable it in the app by using the @Capabilities.DeleteRestrictions annotation. You can set its Deletable property to true or false. If the value of this property is true, the Delete button is enabled for all items; if it's false, it's disabled for all items.
12345678
annotate TravelService.Travel with @(
Capabilities.DeleteRestrictions : {
$Type : 'Capabilities.DeleteRestrictionsType',
Deletable: false
}
);
You can also disable the delete action for specific items by assigning a path to the Deletable property that points to a particular Boolean property of the entity.
12345678
annotate TravelService.Travel with @(
Capabilities.DeleteRestrictions : {
$Type : 'Capabilities.DeleteRestrictionsType',
Deletable: TravelStatus.insertDeleteRestriction
}
);
The items in the Manage Travels app have various statuses such as Open, Accepted, and Canceled.
You can see that for the status Open the value for insertDeleteRestriction is true, and for the statuses Accepted and Canceled the value is false. This means that for travels with the status Accepted and Canceled, the Delete action is disabled.
You can see the values for the insertDeleteRestriction in the sap.fe.cap.travel-TravelStatus.csv.
123456
code;name;criticality;fieldControl;createDeleteHidden;insertDeleteRestriction
O;Open;2;7;0;1
A;Accepted;3;1;1;0
X;Canceled;0;7;1;0
For more information about enabling or disabling of the Create button, see Adding Actions to Tables.