Demo Kit Version
- SAPUI5: UI Development Toolkit for HTML5
- What's New in SAPUI5
- What's New in SAPUI5 1.132
- What's New in SAPUI5 1.131
- Previous Versions
- What's New in SAPUI5 1.130
- What's New in SAPUI5 1.129
- What's New in SAPUI5 1.128
- What's New in SAPUI5 1.127
- What's New in SAPUI5 1.126
- What's New in SAPUI5 1.125
- What's New in SAPUI5 1.124
- What's New in SAPUI5 1.123
- What's New in SAPUI5 1.122
- What's New in SAPUI5 1.121
- What's New in SAPUI5 1.120
- What's New in SAPUI5 1.119
- What's New in SAPUI5 1.118
- What's New in SAPUI5 1.117
- What's New in SAPUI5 1.116
- What's New in SAPUI5 1.115
- What's New in SAPUI5 1.114
- What's New in SAPUI5 1.113
- What's New in SAPUI5 1.112
- What's New in SAPUI5 1.111
- What's New in SAPUI5 1.110
- What's New in SAPUI5 1.109
- What's New in SAPUI5 1.108
- What's New in SAPUI5 1.107
- What's New in SAPUI5 1.106
- What's New in SAPUI5 1.105
- What's New in SAPUI5 1.104
- What's New in SAPUI5 1.103
- What's New in SAPUI5 1.102
- What's New in SAPUI5 1.101
- What's New in SAPUI5 1.100
- What's New in SAPUI5 1.99
- What's New in SAPUI5 1.98
- What's New in SAPUI5 1.97
- What's New in SAPUI5 1.96
- What's New in SAPUI5 1.95
- What's New in SAPUI5 1.94
- What's New in SAPUI5 1.93
- What's New in SAPUI5 1.92
- What's New in SAPUI5 1.91
- What's New in SAPUI5 1.90
- What's New in SAPUI5 1.89
- What's New in SAPUI5 1.88
- What's New in SAPUI5 1.87
- What's New in SAPUI5 1.86
- What's New in SAPUI5 1.85
- What's New in SAPUI5 1.84
- What's New in SAPUI5 1.82
- What's New in SAPUI5 1.81
- What's New in SAPUI5 1.80
- What's New in SAPUI5 1.79
- What's New in SAPUI5 1.78
- What's New in SAPUI5 1.77
- What's New in SAPUI5 1.76
- What's New in SAPUI5 1.75
- What's New in SAPUI5 1.74
- What's New in SAPUI5 1.73
- What's New in SAPUI5 1.72
- What's New in SAPUI5 1.71
- What's New in SAPUI5 1.70
- What's New in SAPUI5 1.69
- What's New in SAPUI5 1.68
- What's New in SAPUI5 1.67
- What's New in SAPUI5 1.66
- What's New in SAPUI5 1.65
- What's New in SAPUI5 1.64
- What's New in SAPUI5 1.63
- What's New in SAPUI5 1.62
- What's New in SAPUI5 1.61
- What's New in SAPUI5 1.60
- What's New in SAPUI5 1.58
- What's New in SAPUI5 1.56
- What's New in SAPUI5 1.54
- What's New in SAPUI5 1.52
- What's New in SAPUI5 1.50
- What's New in SAPUI5 1.48
- What's New in SAPUI5 1.46
- What's New in SAPUI5 1.44
- What's New in SAPUI5 1.42
- What's New in SAPUI5 1.40
- What's New in SAPUI5 1.38
- Change Log
- Read Me First
- Enterprise Features of SAPUI5
- The UI5 Ecosystem
- ECMAScript Support
- TypeScript Support
- Browser and Platform Support
- Compatibility Rules
- Supported Library Combinations
- Supported Combinations of Themes and Libraries
- Versioning and Maintenance of SAPUI5
- Upgrading
- Deprecated Themes and Libraries
- SAPUI5 vs. OpenUI5
- Get Started: Setup, Tutorials, and Demo Apps
- Quickstart Tutorial
- Walkthrough Tutorial (JavaScript)
- Step 1: Hello World!
- Step 2: Bootstrap
- Step 3: Controls
- Step 4: XML Views
- Step 5: Controllers
- Step 6: Modules
- Step 7: JSON Model
- Step 8: Translatable Texts
- Step 9: Component Configuration
- Step 10: Descriptor for Applications
- Step 11: Pages and Panels
- Step 12: Shell Control as Container
- Step 13: Margins and Paddings
- Step 14: Custom CSS and Theme Colors
- Step 15: Nested Views
- Step 16: Dialogs and Fragments
- Step 17: Fragment Callbacks
- Step 18: Icons
- Step 19: Aggregation Binding
- Step 20: Data Types
- Step 21: Expression Binding
- Step 22: Custom Formatters
- Step 23: Filtering
- Step 24: Sorting and Grouping
- Step 25: Remote OData Service
- Step 26: Mock Server Configuration
- Step 27: Unit Test with QUnit
- Step 28: Integration Test with OPA
- Step 29: Debugging Tools
- Step 30: Routing and Navigation
- Step 31: Routing with Parameters
- Step 32: Routing Back and History
- Step 33: Custom Controls
- Step 34: Responsiveness
- Step 35: Device Adaptation
- Step 36: Content Density
- Step 37: Accessibility
- Step 38: Build Your Application
- Walkthrough Tutorial (TypeScript)
- Step 1: Hello World! (TypeScript)
- Step 2: Bootstrap (TypeScript)
- Step 3: Controls (TypeScript)
- Step 4: XML Views (TypeScript)
- Step 5: Controllers (TypeScript)
- Step 6: Modules (TypeScript)
- Step 7: JSON Model (TypeScript)
- Step 8: Translatable Texts (TypeScript)
- Step 9: Component Configuration (TypeScript)
- Step 10: Descriptor for Applications (TypeScript)
- Step 11: Pages and Panels (TypeScript)
- Step 12: Shell Control as Container (TypeScript)
- Step 13: Margins and Paddings (TypeScript)
- Step 14: Custom CSS and Theme Colors (TypeScript)
- Step 15: Nested Views (TypeScript)
- Step 16: Dialogs and Fragments (TypeScript)
- Step 17: Fragment Callbacks (TypeScript)
- Step 18: Icons (TypeScript)
- Step 19: Aggregation Binding (TypeScript)
- Step 20: Data Types (TypeScript)
- Step 21: Expression Binding (TypeScript)
- Step 22: Custom Formatters (TypeScript)
- Step 23: Filtering (TypeScript)
- Step 24: Sorting and Grouping (TypeScript)
- Step 25: Remote OData Service (TypeScript)
- Step 26: Mock Server Configuration (TypeScript)
- Step 27: Unit Test with QUnit (TypeScript)
- Step 28: Integration Test with OPA (TypeScript)
- Step 29: Debugging Tools (TypeScript)
- Step 30: Routing and Navigation (TypeScript)
- Step 31: Routing with Parameters (TypeScript)
- Step 32: Routing Back and History (TypeScript)
- Step 33: Custom Controls (TypeScript)
- Step 34: Responsiveness (TypeScript)
- Step 35: Device Adaptation (TypeScript)
- Step 36: Content Density (TypeScript)
- Step 37: Accessibility (TypeScript)
- Step 38: Build Your Application (TypeScript)
- Troubleshooting Tutorial
- Data Binding Tutorial
- Step 1: No Data Binding
- Step 2: Creating a Model
- Step 3: Create Property Binding
- Step 4: Two-Way Data Binding
- Step 5: One-Way Data Binding
- Step 6: Resource Models
- Step 7: (Optional) Resource Bundles and Multiple Languages
- Step 8: Binding Paths: Accessing Properties in Hierarchically Structured Models
- Step 9: Formatting Values
- Step 10: Property Formatting Using Data Types
- Step 11: Validation Using sap/ui/core/Messaging
- Step 12: Aggregation Binding Using Templates
- Step 13: Element Binding
- Step 14: Expression Binding
- Step 15: Aggregation Binding Using a Factory Function
- OData V4 Tutorial
- Step 1: The Initial App
- Step 2: Data Access and Client-Server Communication
- Step 3: Automatic Data Type Detection
- Step 4: Filtering, Sorting, and Counting
- Step 5: Batch Groups
- Step 6: Create and Edit
- Step 7: Delete
- Step 8: OData Operations
- Step 9: List-Detail Scenario
- Step 10: Enable Data Reuse
- Step 11: Add Table with :n Navigation to Detail Area
- Navigation and Routing Tutorial
- Step 1: Set Up the Initial App
- Step 2: Enable Routing
- Step 3: Catch Invalid Hashes
- Step 4: Add a Back Button to Not Found Page
- Step 5: Display a Target Without Changing the Hash
- Step 6: Navigate to Routes with Hard-Coded Patterns
- Step 7: Navigate to Routes with Mandatory Parameters
- Step 8: Navigate with Flip Transition
- Step 9: Allow Bookmarkable Tabs with Optional Query Parameters
- Step 10: Implement "Lazy Loading"
- Step 11: Assign Multiple Targets
- Step 12: Make a Search Bookmarkable
- Step 13: Make Table Sorting Bookmarkable
- Step 14: Make Dialogs Bookmarkable
- Step 15: Reuse an Existing Route
- Step 16: Handle Invalid Hashes by Listening to Bypassed Events
- Step 17: Listen to Matched Events of Any Route
- Testing Tutorial
- Step 1: Overview and Testing Strategy
- Step 2: A First Unit Test
- Step 3: Adding the Price Formatter
- Step 4: Testing a New Module
- Step 5: Adding a Flag Button
- Step 6: A First OPA Test
- Step 7: Changing the Table to a Growing Table
- Step 8: Testing Navigation
- Step 9: Adding the Post Page
- Step 10: Automated Testing
- Step 11: Testing User Input
- Step 12: Adding a Search
- Step 13: Testing User Interaction
- Step 14: Adding Tabs
- Step 15: Writing a Short Date Formatter Using TDD
- Step 16: Adding the Date Formatter
- OData V2 Mock Server Tutorial
- Worklist App Tutorial
- Flexible Column Layout App Tutorial
- Step 1: Setting Up the Initial App
- Step 2: Creating an Empty Flexible Column Layout
- Step 3: Using Dynamic Page for the List View
- Step 4: Adding a Detail Page
- Step 5: Using Object Page Layout as a Detail Page
- Step 6: Adding a Floating Footer
- Step 7: Routing
- Step 8: Enhancing the Detail Page
- Step 9: Adding a Detail-Detail Page
- Step 10: Adding More Pages
- Step 11: Using the Flexible Column Layout Semantic Helper
- Step 12: Starting with Two Columns
- Step 13: Setting the List-Detail Pattern
- Rule Builder Control Tutorial
- Smart Controls Tutorial
- Prerequisites
- Step 1: Smart Field
- Step 2: Smart Field with Value Help
- Step 3: Smart Field with Smart Link
- Step 4: Smart Form
- Step 5: Smart Filter Bar and Smart Table
- Step 6: Table Personalization
- Step 7: View Management
- Step 8: Page Variant Management
- Step 9: Smart Chart with Chart Personalization and View Management
- Summary
- 3D Viewer Tutorial
- Ice Cream Machine Tutorial
- Step 1: Initial Application
- Step 2: KPI Tile and Chart Tile on the Start Page
- Step 3: Launch Tile and Slide Tile
- Step 4: Generic Tiles in Line Mode
- Step 5: Navigating from the Start Page to Other Pages
- Step 6: Chart Container
- Step 7: Header Container and Radial Micro Chart
- Step 8: Comparison Micro Chart
- Step 9: Delta Micro Chart
- Step 10: Line Micro Chart
- Step 11: Process Flow
- Step 12: Timeline
- Step 13: Optimizing the Process Flow Layout
- Demo Apps
- Best Practices for Developers
- Essentials
- Bootstrapping: Loading and Initializing
- Structuring: Components and Descriptor
- Components
- Manifest (Descriptor for Applications, Components, and Libraries)
- Migrating from Component Metadata to Manifest
- Descriptor for Libraries
- Descriptor for Components (Inside Libraries)
- The resources.json File
- Creating a Descriptor File for Existing Apps
- Descriptor Dependencies to Libraries and Components
- Manifest Model Preload
- Enabling the Automatic SAP Fiori 2.0 Header Adaptation in the Manifest
- Model View Controller (MVC)
- Models
- Views
- XML View
- Namespaces in XML Views
- Aggregation Handling in XML Views
- Control Properties and Associations in XML Views
- Using Native HTML in XML Views (deprecated)
- Using CSS Style Sheets in XML Views (deprecated)
- Handling Events in XML Views
- Preprocessing XML Views
- XML View Cache
- Require Modules in XML View and Fragment
- Typed View
- Instantiating Views
- JSON View (deprecated)
- View Cloning (deprecated)
- XML View
- Controller
- Support for Unique IDs
- Data Binding
- Binding Types
- Binding Syntax
- Formatting, Parsing, and Validating Data
- Models
- OData V2 Model
- Creating the Model Instance
- Service Metadata
- Adding Additional URL Parameters
- Custom HTTP Headers
- Addressing Entities: Binding Path Syntax
- Accessing Data from an OData Model
- Creating Entities
- CRUD Operations
- Concurrency Control and ETags
- XSRF Token
- Refreshing the Model
- Batch Processing
- Two-Way Binding
- Binding-specific Parameters
- Optimizing Dependent Bindings
- Function Import
- Language
- Meta Model for OData V2
- Currency and Unit Customizing in OData V2
- OData V4 Model
- Model Instantiation and Data Access
- Bindings
- Binding Events
- Filtering
- Selection
- Sorting
- Value Lists
- OData Operations
- Batch Control
- Meta Model for OData V4
- Performance Aspects
- Unsupported Superclass Methods and Events
- Changes Compared to OData V2 Model
- Creating an Entity
- Draft Handling with the OData V4 Model
- Deleting an Entity
- Consuming OData V2 Services with the OData V4 Model
- Data Aggregation and Recursive Hierarchy
- Server Messages in the OData V4 Model
- Currency and Unit Customizing in OData V4
- JSON Model
- XML Model
- Resource Model
- Custom Model
- Assigning the Model to the UI
- Setting the Default Binding Mode
- OData V2 Model
- Using Data Binding for Data Export
- Reusing UI Parts: Fragments
- XML Templating
- Working with Controls
- Declarative Support (deprecated)
- Enabling Declarative Support (deprecated)
- Defining Controls (deprecated)
- Declarative Support: Properties (deprecated)
- Declarative Support: Associations (deprecated)
- Declarative Support: Events (deprecated)
- Declarative Support: Aggregations (deprecated)
- Declarative Support: Data Binding (deprecated)
- Compiling Declarative HTML (deprecated)
- Error, Warning, and Info Messages
- Routing and Navigation
- Modules and Dependencies
- Optimizing Applications
- Adapting to Operating Systems And Devices
- SAPUI5 Flexibility: Adapting UIs Made Easy
- Testing
- Theming
- Localization
- Accessibility
- Drag and Drop
- Document Export
- Troubleshooting
- Developing Apps
- Development Environment
- App Overview: The Basic Files of Your App
- App Initialization: What Happens When an App Is Started?
- Folder Structure: Where to Put Your Files
- Device Adaptation: Using Device Models for Your App
- Performance: Speed Up Your App
- Stable IDs: All You Need to Know
- Reacting on User Input Events
- Whitespaces Concept
- SAPUI5 Flexibility: Enable Your App for UI Adaptation
- Coding Issues to Avoid
- Securing Apps
- Right-to-Left Support
- Accessibility
- The SAPUI5 ABAP Repository and the ABAP Back-End Infrastructure
- Big Picture: How Does it All Work?
- Technical Remarks
- Design Time Aspects
- Using an OData Service to Load Data to the SAPUI5 ABAP Repository
- Using the SAPUI5 ABAP Repository Upload and Download Reports to Synchronize
- Runtime Aspects
- Fallback: Translating Apps Using the SAPUI5 Text Repository
- Securing the SAPUI5 ABAP Repository
- SAPUI5 Application Index
- Creating a Login Screen
- Browser Debugging for ABAP Developers
- Developing Apps with SAP Fiori Elements
- Why Use SAP Fiori Elements?
- Using SAP Fiori Elements Floorplans
- Feature Showcase Apps and Samples
- SAP Fiori Elements Feature Map
- SAP Fiori Elements Tutorials, Courses, and Blogs
- FAQs
- How To Use SAP Fiori Elements
- Prerequisites for Using SAP Fiori Elements
- Working With UI Annotations
- Security Configuration
- Migrating an Existing Project from SAP Web IDE
- Building an App
- Configuring Navigation
- Extending SAP Fiori Elements-Based Apps
- Extending Generated Apps Using App Extensions
- Read Before Extending a Generated App
- Using the extensionAPI
- Adapting Transient Messages that Come from the Back End
- Extending the Bookmark Function to Save Static Tiles to the SAP Fiori Launchpad
- Modifying Startup Parameters Using an Extension
- Creating an Extension to Modify Properties in the Navigation Context
- Refresh Data Set for Back Navigation When sap-keep-alive Is Set to True
- Adding a Custom Message Strip to List Report, Analytical List Page and Object Page Tables
- Extending Delivered Apps Using Adaptation Extensions
- Extending Apps Using a Canvas Page
- Extending Generated Apps Using App Extensions
- Adapting the UI
- General Concepts and Configuration
- Actions
- Configuring Fields
- Configuring Tables
- Defining Line Items
- Tables
- Setting the Table Type
- Setting the Table Header
- Table Groupings
- Enabling Table Personalization
- Enabling Multiple Selection in Tables
- Adding Actions to Tables
- Highlighting Line Items Based on Criticality
- Adding a Rating Indicator to a Table
- Adding a Progress Indicator to a Table
- Adding a Micro Chart to a Table
- Adding a Contact Quick View to a Table
- Using the Condensed Table Layout
- Enabling Editing Using a Dialog (Mass Edit)
- Enabling the Full-Screen Mode for Tables
- Overriding the Horizontal Alignment of Annotation-Based Table Columns
- Handling Semantic Key Fields
- Displaying Images in Tables
- Using the Export Button
- Influencing the Request Dynamically
- Tree Tables
- Enabling the Upload Functionality
- Illustrated Message When No Data Is Found
- Configuring Charts
- Using Messages
- Enabling the Flexible Column Layout
- Adapting the Application Header
- Managing Variants
- Store/Restore the Application State
- Responsiveness Options: Example
- Using Images, Initials, and Icons
- Keyboard Shortcuts
- Setting the Default Column Width
- Initial Expansion Level for Tables in List Reports & Analytical List Pages
- The Share Functionality
- Creating Cards for the Insights Cards Section of My Home in SAP S/4HANA Cloud Public Edition and My Home in SAP S/4HANA
- Configuring Default Settings (Visualizations, Sort Order, Filter Values)
- Configuring Filter Bars
- Loading Behavior of Data on Initial Launch of the Application
- Using the Application Preview Generator
- List Report and Object Page
- List Report Elements
- Object Page Elements
- Navigation to the Next Level
- Navigation to an Object Page in Edit Mode
- General Concepts
- Configuring List Report Features
- Creating a List Report without Variant Management
- Actions in the List Report
- Defining Determining Actions in List Reports
- Multiple Views on List Report Tables
- Disabling the Editing Status Filter
- Configuring the Delete Dialog Box
- Settings for List Report Tables
- Enabling Standard List Items and Object List Items
- Enabling the History of Recently Entered Values
- Creating Key Performance Indicators
- Configuring Object Page Features
- Displaying Actions on the Object Page
- Setting Up the Object Page Header
- Adapting the Object Page Header Title and Description
- Header Facets
- Enabling Actions in the Object Page Header
- Navigation from Header Facet Title
- UI Controls in Object Page Header
- Toggling the Editability of Header Fields
- Adding Subpages
- Enabling the Related Apps Button
- Defining and Adapting Sections
- Grouping of Fields
- Controlling the Editability of Sections
- Adding a Chart Facet
- Adding a Contact Facet
- Address Facet in Sections
- Showing and Hiding Content in Object Page Facets
- Adding Action Buttons to Forms in Sections
- Displaying Fields in Smartforms on Small Devices
- Adding a Section to an Object Page Using SAP Fiori Tools
- Settings for Object Page Tables
- Adding Titles to Object Page Tables
- Adding Segmented Buttons to a Table Toolbar
- Enabling Inline Creation Mode or Empty Row Mode for Table Entries
- Generic Action Buttons in Tables on the Object Page: Additional Considerations
- Adding Two Tables in a Subsection
- Rebinding a Table with Each Instance Change on an Object Page
- Copying and Pasting from External Applications to Tables
- Adapting Texts for Confirmation Dialog Box When Deleting Lines in a Table
- Defining Determining Actions
- Enabling Discovery/Persistence Mode
- Defining the Loading Behavior of Object Page Headers
- Defining the Loading Behavior of Object Page Subsections
- Hiding Features Using the UI.Hidden Annotation
- Displaying Text and ID for Value Help Input Fields
- Save and Navigation Options on the Object Page
- Enabling Sub-object Creation Through Dialog on a Non-draft Object Page
- Using the Multi-Input Field on the Object Page
- Enabling Variant Management on the Object Page
- Including Reuse Components on an Object Page
- Configuring Date Fields with a Valid Date Range
- Configuring Further Common Features
- Using Action Control for Context-Dependent Actions
- Adding Confirmation Popovers for Actions
- Setting the Criticality for Actions
- Prefilling Fields When Creating a New Entity
- Status Colors and Icons
- Side Effects
- Toggling Between Draft and Saved Values
- Providing Editable Key Fields
- Configuring the Delete Confirmation Dialog Box
- Reducing Entity Sets in Metadata Using a Feature Toggle
- Support for Extended OData Annotations
- Prefilling Fields Using the DefaultValuesFunction
- Enabling Stream Support
- Enabling the Icon for Situation Handling
- Changing Default Titles of New and Unnamed Objects
- Extending List Reports and Object Pages Using App Extensions
- Extension Points for Object Page Header Facets
- Extension Points for Sections on the Object Page
- Extension Points for Subsections on the Object Page
- Extension Points for Forms on the Object Page
- Finding the Right Key for the Anchor
- Extension Points for Tables
- Example: Applying Custom Logic When a Table is Loaded or Refreshed
- Example: Adding Columns to a Responsive Table in the List Report
- Example: Replacing Standard Navigation in a Responsive Table in the List Report
- Example: Replacing Standard Navigation in a Responsive Table on the Object Page
- Example: Enable Internal Navigation to Different Detail Page
- Example: Adding Columns to a Responsive Table on the Object Page
- Example: Adding Columns to a Grid Table in the List Report
- Example: Adding Columns to a Grid Table in the Object Page
- Example: Adding Columns to an Analytical Table on the Object Page
- Example: Adding Columns to a Tree Table in the List Report
- Example: Adding Custom Filter Fields in Table Toolbar
- Extension Points for Pages
- Extension Points for Views in the List Report
- Adding Custom Actions Using Extension Points
- Adding Custom Fields to the Filter Bar
- Adapting Texts in the Delete Dialog Box Using Extensions (List Report)
- Adapting Texts in the Delete Dialog Box (Object Page Header)
- Adapting Texts in the Delete Dialog Box (Object Page with Nested Smart Table)
- Adapting Logic Before Save Operation
- Using Custom Code Before Standard Operations
- Prefilling Fields When Creating a New Entity Using an Extension Point
- Custom State Handling for Extended Apps
- Replacing the Standard Save Functionality in the Mass Edit Dialog
- Adding a Custom ViewExtension to the Mass Edit Dialog
- Adaptation Extension Example: Adding a Button to the Table Toolbar in the List Report
- Flexible Programming Model
- Building Blocks
- The Field Building Block
- The Form Building Block
- The FormElement Building Block
- The Table Building Block
- The FilterBar Building Block
- The FilterField Building Block
- The MicroChart Building Block
- The Chart Building Block
- The FlexibleColumnLayoutActions Building Block
- The Share Building Block
- The Paginator Building Block
- The TreeTable Building Block
- The VariantManagement Building Block
- Building Blocks
- Adapting the UI: List Report and Object Page
- Worklist
- Form Entry Object Page
- Analytical List Page
- Overview Pages
- Descriptor Configuration for the Overview Page
- Overview Page Card
- Types of Cards
- Configuring Card Properties
- Configuring an EntitySet with Input Parameters
- Configuring Card Navigation
- Configuring Card Filters
- Configuring Sort Properties
- Adding the OData Select Parameter
- Configuring View Switch
- Setting Units of Measure
- Formatting Numeric Values
- Highlighting Numeric Values
- Coloring Cards Based on Threshold Values
- Setting Authorizations for Cards
- Annotations Used in Overview Pages
- Configuring Overview Page App Extensions
- Sharing Overview Pages
- Customizing Overview Pages Using Runtime Capabilities
- Developing Apps with Analysis Path Framework (APF)
- Analytical Applications Based on APF
- Setting Up APF and the APF Configuration Modeler
- Authorization Concept
- Enhancing an APF-Based Application
- Creating Your Own Application
- APF Configuration Modeler
- Adding an Application
- Creating a Configuration
- Creating Categories
- Creating Steps
- Creating Hierarchical Steps
- Creating Representations
- Configuring Filters
- Creating Navigation Targets
- Executing a Configuration
- Deleting Objects
- Text Pool Cleanup
- Import
- Export
- Transporting Configurations in SAP S/4HANA Cloud Public Edition
- Translation
- Launching APF-Based Applications
- Data Protection and Privacy
- APF Modules
- Concepts
- Configuration Files and Their Structure
- Application Configuration in SAPUI5 1.28 and Prior Releases
- Descriptor (manifest.json)
- Analytical Configuration
- The Configuration Root Object
- The Step Object
- The Request Object
- The Binding Object
- The Representation Object
- The Representation Type Object
- The Facet Filter Object
- The Smart Filter Bar Object
- The Navigation Target Object
- The Configuration Header Object
- The Category Object
- The Label Object
- The Thumbnail Object
- API Reference
- Extending Apps
- Developing Controls
- Development Conventions and Guidelines
- The library.js File
- Creating Control and Class Modules
- Defining the Control Metadata
- Enabling Controls for SAPUI5 Flexibility
- Which Action Has to Be Enabled for Which Control?
- Enable a Library for Design-Time Usage
- Enable a Control for Design-Time Usage
- Providing Design-Time Metadata
- Change Handlers
- How to Enable Different Actions
- Enabling the Remove Action
- Enabling the Reveal Action
- Enabling the Rename Action
- Enabling the Move Action
- Enabling the AddViaDelegate Action
- Enabling the CreateContainer Action
- Enabling the AddIFrame Action
- Enabling the Settings Action
- Enabling the Combine Action
- Enabling the Split Action
- Enabling the Resize Action
- How to Enable Personalization for SAPUI5 Controls
- Adding Method Implementations
- Device-specific Behavior of Controls
- Examples for Creating and Extending Controls
- Writing a Control Renderer
- Implementing Animation Modes
- Implementing Focus Handling
- Item Navigation - Supporting Keyboard Handling in List-like Controls
- Right-to-Left Support in Controls
- Defining Groups for Fast Navigation
- Composite Controls
- Accessibility Aspects
- Writing a Control: FAQ
- More About Controls
- Busy Indicators
- Cards
- Date and Time Related Controls: Data Binding
- Grid Controls
- Hyphenation for Text Controls
- Semantic Pages
- Pages: Which One Should I Choose?
- Tables: Which One Should I Choose?
- Forms: Which One Should I Choose?
- sap.f
- sap.m
- sap.suite.ui.commons
- sap.suite.ui.microchart
- sap.tnt
- sap.ui.codeeditor
- sap.ui.comp
- sap.ui.core
- sap.ui.mdc
- sap.ui.richtexteditor
- sap.ui.table
- sap.ui.vk
- sap.uxap
- Glossary
- What's New in SAPUI5