483 lines
12 KiB
Markdown
483 lines
12 KiB
Markdown
# Page Editor Reference
|
|
|
|
Detailed configuration reference for the SAP Fiori tools Page Editor.
|
|
|
|
## Table of Contents
|
|
|
|
1. [List Report Page](#list-report-page)
|
|
2. [Object Page](#object-page)
|
|
3. [Extension-Based Elements](#extension-based-elements)
|
|
4. [Building Blocks](#building-blocks)
|
|
5. [Quick Actions](#quick-actions)
|
|
|
|
---
|
|
|
|
## List Report Page
|
|
|
|
### Filter Fields
|
|
|
|
Configure filter bar elements for data discovery.
|
|
|
|
**Types**:
|
|
- **Compact Filters**: Fields with value help
|
|
- **Visual Filters**: Charts with selectable elements (analytics-enabled services)
|
|
|
|
**Adding**: Page Map > Configure Page > Add icon next to Filter Bar > Filter Fields
|
|
|
|
Generates `UI.SelectionFields` annotation.
|
|
|
|
**Excluded Properties**: `UI.Hidden`, `UI.HiddenFilter`, `NonFilterableProperties`
|
|
|
|
**Editable Properties (Compact)**: Label, External ID, Text, Text Arrangement, Display Type
|
|
|
|
**Visual Filter Properties**: Measure/Dimension Labels, Scale Factor, Fractional Digits, Sort Order, Fixed Values
|
|
|
|
### Table Configuration
|
|
|
|
**Supported Table Types**: Responsive, Grid, Analytical, Tree (hierarchical data)
|
|
|
|
**Column Types (7)**:
|
|
|
|
| Column Type | Description |
|
|
|-------------|-------------|
|
|
| Basic Column | Standard value display (String, Decimal) |
|
|
| Chart Column | Inline chart visualization |
|
|
| Contact Column | Contact information display |
|
|
| Progress Column | Progress indicator |
|
|
| Rating Column | Star rating display |
|
|
| Table Actions | Actionable elements |
|
|
| External Navigation | External navigation links |
|
|
|
|
**Column Properties**:
|
|
- **Label**: From `Common.Label` or `@title`, customizable
|
|
- **Importance**: Controls small-screen visibility (None = hidden)
|
|
- **Hidden**: Conditional hiding via boolean property
|
|
|
|
### Table Actions
|
|
|
|
**Action Types**:
|
|
| Type | Annotation | Description |
|
|
|------|------------|-------------|
|
|
| Internal | `UI.DataFieldForAction` | Operations within app using bound actions |
|
|
| External | `UI.DataFieldForIntentBasedNavigation` | Navigate to other FLP apps |
|
|
|
|
**Placement**: Toolbar or Inline (column)
|
|
|
|
**Properties**:
|
|
- Label (from `Common.Label` or `@title`)
|
|
- Importance (column actions only)
|
|
- Criticality (Positive/Negative for inline only)
|
|
- Hidden (conditional)
|
|
- Semantic Object Mapping (external navigation)
|
|
- Requires Context (toolbar external navigation)
|
|
|
|
### Multiple Views
|
|
|
|
Display additional tables/charts in separate tabs via icon tab bar.
|
|
|
|
**Requirements**:
|
|
- `@Aggregation.ApplySupported` at service level
|
|
- Custom aggregations: `@Aggregation.CustomAggregate`
|
|
- Transformation aggregations: SAPUI5 1.106+
|
|
- Cannot coexist with Analytical Charts
|
|
|
|
**Adding Views**:
|
|
1. Click Add icon on Views node
|
|
2. Select table or chart view type
|
|
3. Choose Entity from OData Service
|
|
4. For charts: specify type, dimension, measure
|
|
|
|
Generates `UI.LineItem` or `UI.Chart` with qualifiers, updates `manifest.json`.
|
|
|
|
**Management**: Drag-and-drop reordering, delete icon (cannot remove last main entity table view)
|
|
|
|
### Analytical Chart
|
|
|
|
Add aggregated data visualization to List Report.
|
|
|
|
**Prerequisites**:
|
|
- No Multiple Views in List Report
|
|
- Main entity has aggregable/groupable properties
|
|
- Transformation aggregations: SAPUI5 1.106+
|
|
|
|
**Adding**:
|
|
1. Click "Add Chart" in Page Editor header
|
|
2. Select chart type
|
|
3. Choose dimension (groupable property)
|
|
4. Choose measure (aggregable property or create new)
|
|
|
|
**Configuration Properties**:
|
|
|
|
| Property | Description |
|
|
|----------|-------------|
|
|
| Chart Type | Visualization style |
|
|
| Title | Display text (supports i18n) |
|
|
| Measures | Aggregated values (min 1 default, cannot add same twice) |
|
|
| Dimensions | Groupable categories (min 1 default) |
|
|
| Presentation Variant | Controls sorting (New, From Table, None) |
|
|
|
|
**Note**: Sort order applies to both chart and table.
|
|
|
|
---
|
|
|
|
## Object Page
|
|
|
|
### Header Configuration
|
|
|
|
Based on `@UI.HeaderInfo` annotation.
|
|
|
|
**Header Properties**:
|
|
| Property | Description |
|
|
|----------|-------------|
|
|
| Type Name/Plural | String describing main object |
|
|
| Title | Displayed in header area |
|
|
| Description | Additional context |
|
|
| Image | Reference via `ImageUrl` |
|
|
| Initials | Path to string properties |
|
|
| Icon URL | SAP icon format (e.g., `sap-icon://accept`) |
|
|
|
|
**Header Actions**:
|
|
- **Standard Actions**: Edit, Delete (can be hidden conditionally)
|
|
- **Annotation-Based**: `UI.DataFieldForAction`, `UI.DataFieldForIntentBasedNavigation`, `UI.DataFieldForActionGroups`
|
|
- **Custom Actions**: Based on application extensions
|
|
|
|
**Header Sections (7 Types)**:
|
|
| Section | Description |
|
|
|---------|-------------|
|
|
| Form Section | Groups multiple fields |
|
|
| Data Point | Single key metrics with semantic coloring |
|
|
| Progress | Progress toward targets |
|
|
| Rating | Star ratings (default 5-star) |
|
|
| Bullet Micro Chart | Values on scales with targets |
|
|
| Area/Column/Line Micro Chart | Trend visualization |
|
|
| Radial/Comparison/Harvey/Stacked Bar | Additional chart types |
|
|
|
|
Reorder sections via drag-and-drop (updates `UI.HeaderFacets`).
|
|
|
|
### Section Types
|
|
|
|
#### Form Section
|
|
|
|
Based on `UI.FieldGroup` annotation.
|
|
|
|
**Adding**:
|
|
1. Open Page Editor for Object/Form Entry Page
|
|
2. Navigate to section node > Add icon
|
|
3. Choose "Add Form Section"
|
|
4. Enter label
|
|
|
|
**Properties**:
|
|
- Label: Section title
|
|
- Display on Demand: Hide content under "Show More"
|
|
- Hidden: Visibility control
|
|
|
|
#### Table Section
|
|
|
|
**Adding**:
|
|
1. Open Page Editor
|
|
2. Section node > Add icon > "Add Table Section"
|
|
3. Enter label and Value Source Entity
|
|
|
|
Generates `UI.LineItem` annotation with reference facet.
|
|
|
|
**Properties**: Label, Hidden
|
|
|
|
#### Identification Section
|
|
|
|
Display key identifying information prominently.
|
|
|
|
#### Chart Section
|
|
|
|
Embed charts within Object Page for data visualization.
|
|
|
|
#### Group Section
|
|
|
|
Group related content logically with collapsible containers.
|
|
|
|
### Footer Configuration
|
|
|
|
Actions from `UI.DataFieldForAction` records where `Determining = true`.
|
|
|
|
**Limitations**:
|
|
- External navigation actions NOT allowed in footer
|
|
- Importance and Requires Context properties don't apply
|
|
|
|
**Criticality**: Affects action ordering (Positive/Negative reorganizes nodes)
|
|
|
|
### Basic Fields
|
|
|
|
**Adding Fields**:
|
|
1. Expand section > click add button
|
|
2. Search/select fields from dropdown
|
|
3. Multiple fields can be added simultaneously
|
|
|
|
**Excluded Properties**:
|
|
- `Edm.Guid` type properties
|
|
- Draft properties: `IsActiveEntity`, `HasActiveEntity`, `HasDraftEntity`
|
|
- Draft navigation: `SiblingEntity`, `DraftAdministrativeData`
|
|
- Already referenced properties
|
|
- Duplicates within same section
|
|
|
|
**Moving Fields**:
|
|
- Drag-and-drop (highlights green when valid)
|
|
- Arrow buttons (up/down)
|
|
- Multi-select: Ctrl+Click
|
|
- Cross-section only when same entity `FieldGroup`/`Identification`
|
|
|
|
**Field Properties**:
|
|
|
|
| Property | Description |
|
|
|----------|-------------|
|
|
| Label | Display text |
|
|
| Criticality | Semantic coloring |
|
|
| Display as Image | Image rendering |
|
|
| External ID | External identifier |
|
|
| Hidden / Hide by Property | Visibility control |
|
|
| Restrictions | Input control |
|
|
| Semantic Object Name/Mapping | Navigation |
|
|
| Text / Text Arrangement | Display format |
|
|
| Display Type | Rendering type |
|
|
|
|
**Restrictions (Input Control)**:
|
|
|
|
| Option | Behavior |
|
|
|--------|----------|
|
|
| None | No annotations, defaults to optional |
|
|
| Optional | Field may remain empty |
|
|
| Mandatory | Value required |
|
|
| ReadOnly | Non-editable display-only |
|
|
|
|
**Note**: Read-only objects disable Display Type and Restrictions properties.
|
|
|
|
---
|
|
|
|
## Extension-Based Elements
|
|
|
|
### Custom Columns (OData V4)
|
|
|
|
Add custom columns with XML fragments:
|
|
|
|
**Configuration Steps**:
|
|
1. Select Table in Page Editor
|
|
2. Add > Custom Column
|
|
3. Provide: Header text, Fragment name, Anchor column, Placement
|
|
4. Optional: Generate event handler
|
|
|
|
**Generated Files**:
|
|
- Fragment: `webapp/ext/fragments/<name>.fragment.xml`
|
|
- Controller (optional): `webapp/ext/<name>.controller.js`
|
|
|
|
**Fragment Template**:
|
|
```xml
|
|
<core:FragmentDefinition xmlns:core="sap.ui.core" xmlns="sap.m">
|
|
<Text text="{PropertyPath}" id="customColumn"/>
|
|
</core:FragmentDefinition>
|
|
```
|
|
|
|
### Custom Sections (OData V4)
|
|
|
|
Add custom sections to Object Page:
|
|
|
|
**Configuration**:
|
|
- Section title
|
|
- View type: Fragment (V4) or View (V2)
|
|
- Fragment/View name
|
|
- Anchor section and placement
|
|
- Generate event handler option
|
|
|
|
**Fragment Location**: `webapp/ext/fragments/`
|
|
|
|
### Custom Actions (OData V4 1.96+)
|
|
|
|
Add action buttons with custom handlers:
|
|
|
|
**Configuration**:
|
|
- Action ID (unique identifier)
|
|
- Button Text
|
|
- Anchor and Placement
|
|
- Action Handler File
|
|
- Handler Method name
|
|
- Requires Selection toggle (for table actions)
|
|
|
|
**Handler Template**:
|
|
```javascript
|
|
sap.ui.define([], function() {
|
|
"use strict";
|
|
return {
|
|
onCustomAction: function(oEvent) {
|
|
// Custom action logic
|
|
}
|
|
};
|
|
});
|
|
```
|
|
|
|
### Custom Views (OData V4 1.96.29+)
|
|
|
|
Add custom tab views to List Report:
|
|
|
|
**Configuration**:
|
|
- View Key (unique)
|
|
- Label text
|
|
- Fragment selection
|
|
- Event handler generation
|
|
|
|
### Controller Extensions
|
|
|
|
Extend page controller lifecycle and methods:
|
|
|
|
**Lifecycle Methods**:
|
|
- `onInit` - Component initialization
|
|
- `onBeforeRendering` - Before UI rendering
|
|
- `onAfterRendering` - After UI rendering
|
|
- `onExit` - Component destruction
|
|
|
|
**Override Pattern**:
|
|
```javascript
|
|
sap.ui.define(["sap/ui/core/mvc/ControllerExtension"], function(ControllerExtension) {
|
|
return ControllerExtension.extend("customer.extension.MyExtension", {
|
|
override: {
|
|
onInit: function() {
|
|
// Extension logic
|
|
}
|
|
},
|
|
// Custom methods outside override
|
|
myCustomMethod: function() {
|
|
// Custom logic
|
|
}
|
|
});
|
|
});
|
|
```
|
|
|
|
**File Locations**:
|
|
- Extension: `webapp/changes/coding/<name>.js`
|
|
- Change descriptor: `webapp/changes/<name>.controllerExtension.change`
|
|
|
|
---
|
|
|
|
## Building Blocks
|
|
|
|
Reusable UI components for OData V4 custom pages and sections.
|
|
|
|
### Chart Building Block
|
|
|
|
Embed charts in custom UI:
|
|
|
|
```xml
|
|
<macros:Chart
|
|
id="chartBlock"
|
|
metaPath="@com.sap.vocabularies.UI.v1.Chart"
|
|
contextPath="/EntitySet"/>
|
|
```
|
|
|
|
### Filter Bar Building Block
|
|
|
|
Add filter capabilities:
|
|
|
|
```xml
|
|
<macros:FilterBar
|
|
id="filterBar"
|
|
metaPath="@com.sap.vocabularies.UI.v1.SelectionFields"
|
|
liveMode="true"/>
|
|
```
|
|
|
|
### Table Building Block
|
|
|
|
Display tabular data:
|
|
|
|
```xml
|
|
<macros:Table
|
|
id="tableBlock"
|
|
metaPath="@com.sap.vocabularies.UI.v1.LineItem"
|
|
readOnly="true"/>
|
|
```
|
|
|
|
### Page Building Block
|
|
|
|
Container for custom pages:
|
|
|
|
```xml
|
|
<macros:Page id="customPage">
|
|
<!-- Page content -->
|
|
</macros:Page>
|
|
```
|
|
|
|
### Rich Text Editor Building Block
|
|
|
|
Content editing in custom sections:
|
|
|
|
```xml
|
|
<macros:RichTextEditor
|
|
id="richTextEditor"
|
|
value="{Description}"/>
|
|
```
|
|
|
|
---
|
|
|
|
## Quick Actions
|
|
|
|
Page Editor provides quick action shortcuts for common operations:
|
|
|
|
| Quick Action | Description | Availability |
|
|
|--------------|-------------|--------------|
|
|
| Add Custom Page Action | Add action to page header | Object Page |
|
|
| Add Custom Table Action | Add action to table toolbar | List Report, Object Page |
|
|
| Add Custom Table Column | Add custom column | List Report, Object Page |
|
|
| Add Header Field | Add field to header | Object Page |
|
|
| Add Custom Section | Add custom section | Object Page |
|
|
|
|
### Accessing Quick Actions
|
|
|
|
1. Right-click element in Page Editor outline
|
|
2. Select from context menu
|
|
3. Configure in dialog
|
|
|
|
---
|
|
|
|
## Configuration Files
|
|
|
|
### Manifest.json Updates
|
|
|
|
Page Editor modifications update `manifest.json`:
|
|
|
|
```json
|
|
{
|
|
"sap.ui5": {
|
|
"routing": {
|
|
"targets": {
|
|
"ListReport": {
|
|
"options": {
|
|
"settings": {
|
|
"content": {
|
|
"header": {},
|
|
"body": {}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
### UI Flexibility Changes
|
|
|
|
Custom extensions generate flexibility changes in `webapp/changes/`:
|
|
|
|
- `addXML.change` - Fragment additions
|
|
- `controllerExtension.change` - Controller extensions
|
|
- `propertyChange.change` - Property modifications
|
|
|
|
---
|
|
|
|
## Documentation Source
|
|
|
|
**GitHub**: [https://github.com/SAP-docs/btp-fiori-tools/tree/main/docs/Developing-an-Application](https://github.com/SAP-docs/btp-fiori-tools/tree/main/docs/Developing-an-Application)
|
|
|
|
Key files:
|
|
- `list-report-page-493f2aa.md`
|
|
- `form-and-object-page-1eb11a6.md`
|
|
- `maintaining-extension-based-elements-02172d2.md`
|
|
- `maintaining-building-blocks-6d3ad83.md`
|
|
- `supported-elements-in-page-editor-47f0424.md`
|