Initial commit
This commit is contained in:
419
SKILL.md
Normal file
419
SKILL.md
Normal file
@@ -0,0 +1,419 @@
|
||||
---
|
||||
name: sap-fiori-tools
|
||||
description: |
|
||||
Develops SAP Fiori applications using SAP Fiori tools extensions for VS Code and SAP Business Application Studio.
|
||||
Use when: generating Fiori Elements or Freestyle SAPUI5 applications, configuring Page Editor for List Report
|
||||
or Object Page, working with annotations and Service Modeler, setting up deployment to ABAP or Cloud Foundry,
|
||||
creating adaptation projects, using Guided Development, previewing with mock data or live data, configuring
|
||||
SAP Fiori launchpad, or using AI-powered generation with Project Accelerator/Joule.
|
||||
Technologies: SAP Fiori Elements, SAPUI5, OData V2/V4, CAP, SAP BTP, ABAP, Cloud Foundry.
|
||||
license: GPL-3.0
|
||||
metadata:
|
||||
version: "1.0.0"
|
||||
last_verified: "2025-11-25"
|
||||
---
|
||||
|
||||
# SAP Fiori Tools Development Skill
|
||||
|
||||
## Related Skills
|
||||
|
||||
- **sapui5**: Use for underlying UI5 framework details, custom control development, and advanced UI patterns
|
||||
- **sap-cap-capire**: Use for CAP service integration, OData consumption, and backend service configuration
|
||||
- **sap-abap-cds**: Use when consuming ABAP CDS views as OData services or working with ABAP backends
|
||||
- **sap-btp-cloud-platform**: Use for deployment targets, BTP destination configuration, and Cloud Foundry deployment
|
||||
- **sap-api-style**: Use when documenting OData APIs or following API documentation standards for Fiori apps
|
||||
|
||||
Comprehensive guidance for developing SAP Fiori applications using SAP Fiori tools extensions.
|
||||
|
||||
## Overview
|
||||
|
||||
SAP Fiori tools is a collection of extensions that simplifies SAP Fiori elements and SAPUI5 application development. It includes six main components:
|
||||
|
||||
| Component | Purpose |
|
||||
|-----------|---------|
|
||||
| **Application Wizard** | Generate Fiori Elements and Freestyle SAPUI5 templates |
|
||||
| **Application Modeler** | Visual Page Map and Page Editor for configuration |
|
||||
| **Guided Development** | Step-by-step feature implementation guides |
|
||||
| **Service Modeler** | Visualize OData service metadata and annotations |
|
||||
| **Annotations Language Server** | Code completion, diagnostics, i18n for annotations |
|
||||
| **Environment Check** | Validate setup and destination configurations |
|
||||
|
||||
**Minimum SAPUI5 Version**: 1.65+
|
||||
**Support Component**: CA-UX-IDE
|
||||
|
||||
## Sample Projects
|
||||
|
||||
Official SAP sample repository with Fiori Elements applications built using SAP Fiori tools:
|
||||
|
||||
**Repository**: [SAP-samples/fiori-tools-samples](https://github.com/SAP-samples/fiori-tools-samples)
|
||||
|
||||
| Folder | Content |
|
||||
|--------|---------|
|
||||
| `V2/` | OData V2 Fiori Elements samples |
|
||||
| `V4/` | OData V4 Fiori Elements samples |
|
||||
| `cap/` | CAP project integration samples |
|
||||
| `app-with-tutorials/` | Tutorial companion projects |
|
||||
|
||||
**Quick Start**:
|
||||
```bash
|
||||
git clone [https://github.com/SAP-samples/fiori-tools-samples](https://github.com/SAP-samples/fiori-tools-samples)
|
||||
cd fiori-tools-samples/V4/apps/salesorder
|
||||
npm install
|
||||
npm start
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Quick Start Commands
|
||||
|
||||
Access features via Command Palette (`Cmd/Ctrl + Shift + P`):
|
||||
|
||||
```
|
||||
Fiori: Open Application Generator # Create new application
|
||||
Fiori: Open Application Info # View project commands
|
||||
Fiori: Open Page Map # Visual navigation editor
|
||||
Fiori: Open Guided Development # Feature implementation guides
|
||||
Fiori: Open Service Modeler # Explore OData service
|
||||
Fiori: Add Deployment Configuration # Setup ABAP or CF deployment
|
||||
Fiori: Add Fiori Launchpad Configuration # Configure FLP tile
|
||||
Fiori: Validate Project # Run project validation
|
||||
Fiori: Open Environment Check # Troubleshoot destinations
|
||||
```
|
||||
|
||||
## Application Generation
|
||||
|
||||
### Fiori Elements Floorplans
|
||||
|
||||
| Floorplan | OData V2 | OData V4 | Use Case |
|
||||
|-----------|----------|----------|----------|
|
||||
| List Report Page | Yes | Yes | Browse large datasets, navigate to details |
|
||||
| Worklist Page | Yes | 1.99+ | Process work items, task completion |
|
||||
| Analytical List Page | Yes | 1.90+ | Data analysis, KPI visualization |
|
||||
| Overview Page | Yes | Yes | Role-based dashboards, multi-card views |
|
||||
| Form Entry Object Page | Yes | Yes | Structured data entry |
|
||||
| Custom Page | No | Yes | Extensible custom UI with building blocks |
|
||||
|
||||
### Data Source Options
|
||||
|
||||
1. **SAP System** - Connect to ABAP on-premise or BTP systems
|
||||
2. **CAP Project** - Use local Node.js or Java CAP project
|
||||
3. **EDMX File** - Upload metadata for mock-only development
|
||||
4. **SAP Business Accelerator Hub** - Development/testing only (deprecated)
|
||||
|
||||
### Generated Project Structure
|
||||
|
||||
```
|
||||
webapp/
|
||||
├── manifest.json # App descriptor
|
||||
├── Component.js # UI5 component
|
||||
├── localService/ # Mock data and metadata
|
||||
│ ├── metadata.xml
|
||||
│ └── mockdata/
|
||||
└── annotations/ # Local annotation files
|
||||
package.json
|
||||
ui5.yaml # UI5 tooling config
|
||||
ui5-local.yaml # Local development config
|
||||
```
|
||||
|
||||
## Page Editor Configuration
|
||||
|
||||
The Page Editor provides visual configuration for Fiori Elements pages.
|
||||
|
||||
### List Report Page Elements
|
||||
|
||||
- **Filter Fields** - Configure filter bar with value helps
|
||||
- **Table** - Configure columns, actions, row selection
|
||||
- **Multiple Views** - Create tabbed table views
|
||||
- **Analytical Chart** - Add data visualizations
|
||||
|
||||
### Object Page Elements
|
||||
|
||||
- **Header** - Configure header facets and actions
|
||||
- **Sections** - Form, Table, Identification, Chart, Group sections
|
||||
- **Footer** - Configure footer actions
|
||||
|
||||
### Extension-Based Elements (OData V4)
|
||||
|
||||
| Element | Location | Description |
|
||||
|---------|----------|-------------|
|
||||
| Custom Column | Table | Add custom columns with fragments |
|
||||
| Custom Section | Object Page | Add custom sections with views |
|
||||
| Custom Action | Header/Table | Add action buttons with handlers |
|
||||
| Custom View | List Report | Add custom tab views |
|
||||
| Controller Extension | Page | Override lifecycle methods |
|
||||
|
||||
For detailed configuration, see `references/page-editor.md`.
|
||||
|
||||
## Annotations Development
|
||||
|
||||
### Language Server Features
|
||||
|
||||
- **Code Completion** (`Ctrl/Cmd + Space`) - Context-aware suggestions
|
||||
- **Micro-Snippets** - Insert complete annotation blocks
|
||||
- **Diagnostics** - Validation against vocabularies
|
||||
- **i18n Support** - Externalize translatable strings
|
||||
- **Peek/Go to Definition** - Navigate to annotation sources
|
||||
|
||||
### Supported Vocabularies
|
||||
|
||||
OASIS OData v4: Core, Capabilities, Aggregation, Authorization, JSON, Measures, Repeatability, Temporal, Validation
|
||||
|
||||
SAP Vocabularies: Analytics, CodeList, Common, Communication, DataIntegration, DirectEdit, Graph, Hierarchy, HTML5, ODM, PDF, PersonalData, Preview, Session, UI
|
||||
|
||||
### Annotation Files Location
|
||||
|
||||
- **CDS files**: CAP project `.cds` files
|
||||
- **XML files**: `webapp/annotations/*.xml`
|
||||
|
||||
For annotation patterns, see `references/annotations.md`.
|
||||
|
||||
## Preview Options
|
||||
|
||||
### NPM Scripts
|
||||
|
||||
```bash
|
||||
npm start # Live data from backend
|
||||
npm run start-mock # Mock data via MockServer
|
||||
npm run start-local # Mock data + local SAPUI5 resources
|
||||
npm run start-noflp # Without Fiori launchpad sandbox
|
||||
```
|
||||
|
||||
### Run Control
|
||||
|
||||
Configure via `launch.json` in `.vscode/` folder. Supports:
|
||||
- Multiple run configurations per workspace
|
||||
- VS Code and BAS integration
|
||||
- App-to-app navigation preview
|
||||
|
||||
### Mock Data
|
||||
|
||||
- **Data Editor** - Visual mock data management
|
||||
- **AI Generation** - Generate contextual mock data (requires SAP Build Code)
|
||||
- **MockServer** - Automatic mock server setup
|
||||
|
||||
For preview details, see `references/preview.md`.
|
||||
|
||||
## Deployment
|
||||
|
||||
### ABAP Deployment
|
||||
|
||||
**Prerequisites**:
|
||||
- SAP_UI 7.53+
|
||||
- SAPUI5 ABAP Repository service enabled
|
||||
- S_DEVELOP authorization
|
||||
|
||||
**Configuration**:
|
||||
```bash
|
||||
npx fiori add deploy-config # Generate ui5-deploy.yaml
|
||||
npm run deploy # Execute deployment
|
||||
```
|
||||
|
||||
**Generated Files**: `ui5-deploy.yaml`, updated `package.json`
|
||||
|
||||
### Cloud Foundry Deployment
|
||||
|
||||
**Prerequisites**:
|
||||
- MTA tool: `npm i -g mta`
|
||||
- CF CLI with multiapps plugin
|
||||
- HTML5 Repository service instance
|
||||
|
||||
**Configuration**:
|
||||
```bash
|
||||
npx fiori add deploy-config # Select Cloud Foundry
|
||||
npm run build # Generate mta.yaml
|
||||
npm run deploy # Deploy to CF
|
||||
```
|
||||
|
||||
**Generated Files**: `mta.yaml`, `xs-app.json`, `xs-security.json`
|
||||
|
||||
For deployment details, see `references/deployment.md`.
|
||||
|
||||
## Fiori Launchpad Configuration
|
||||
|
||||
Add FLP tile configuration via:
|
||||
```
|
||||
Fiori: Add Fiori Launchpad Configuration
|
||||
```
|
||||
|
||||
**Required Parameters**:
|
||||
- Semantic Object (unique identifier)
|
||||
- Action (e.g., "display")
|
||||
- Title
|
||||
- Subtitle (optional)
|
||||
|
||||
Configuration updates `manifest.json` with inbound navigation.
|
||||
|
||||
## Adaptation Projects
|
||||
|
||||
Extend existing Fiori applications without modifying source code.
|
||||
|
||||
### Prerequisites
|
||||
|
||||
**On-Premise (VS Code)**:
|
||||
- SAP_UI 7.54+, SAPUI5 1.72+
|
||||
- Base app must have manifest.json
|
||||
- Cannot use ABAP Cloud packages
|
||||
|
||||
**S/4HANA Cloud & BTP ABAP**:
|
||||
- Application must be "released for extensibility"
|
||||
- 3-system landscape with developer tenant
|
||||
- Required business catalogs assigned
|
||||
|
||||
### Adaptation Workflow
|
||||
|
||||
1. Create adaptation project via Template Wizard
|
||||
2. Make UI adaptations in Adaptation Editor
|
||||
3. Preview adaptation
|
||||
4. Deploy to ABAP repository
|
||||
|
||||
### Adaptation Capabilities
|
||||
|
||||
| Adaptation | Description |
|
||||
|------------|-------------|
|
||||
| Control Variants | Create page variants/views |
|
||||
| Fragments | Add UI fragments to extension points |
|
||||
| Controller Extensions | Override/extend controller methods |
|
||||
| App Descriptor Changes | Modify manifest.json settings |
|
||||
| OData Service | Add/replace OData services |
|
||||
| Component Usages | Add SAPUI5 component references |
|
||||
|
||||
For adaptation details, see `references/adaptation-projects.md`.
|
||||
|
||||
## AI-Powered Generation
|
||||
|
||||
### Project Accelerator / Joule
|
||||
|
||||
Generate complete CAP projects with Fiori UI from business requirements.
|
||||
|
||||
**Input Formats**: Text, Images, or Combined
|
||||
|
||||
**Generated Output**:
|
||||
- Entity definitions and associations
|
||||
- Code lists and value helps
|
||||
- List Report applications
|
||||
- Object Page configurations
|
||||
- Sample data
|
||||
|
||||
**Limitations**:
|
||||
- No charts or specialized headers
|
||||
- Do not include personal/sensitive data in requirements
|
||||
|
||||
### AI Mock Data Generation
|
||||
|
||||
Generate contextual mock data using entity property names (requires SAP Build Code subscription).
|
||||
|
||||
## Project Functions
|
||||
|
||||
| Function | Command |
|
||||
|----------|---------|
|
||||
| Application Info | `Fiori: Open Application Info` |
|
||||
| Project Validation | `Fiori: Validate Project` |
|
||||
| Environment Check | `Fiori: Open Environment Check` |
|
||||
| Data Editor | Via Application Info page |
|
||||
| Service Metadata | `Fiori: Open Service Modeler` |
|
||||
| System Connections | Manage SAP Systems in VS Code |
|
||||
|
||||
### Project Validation Checks
|
||||
|
||||
1. **Project** - Verify package.json, manifest.json, ui5.yaml
|
||||
2. **Annotation** - Validate annotation files
|
||||
3. **Specification** - Check manifest and changes folder
|
||||
4. **ESLint** - Run ESLint if configured
|
||||
|
||||
## Building Blocks (OData V4)
|
||||
|
||||
Reusable UI components for custom pages and sections:
|
||||
|
||||
| Block | Use Case |
|
||||
|-------|----------|
|
||||
| Chart | Data visualization |
|
||||
| Filter Bar | Query filtering |
|
||||
| Table | Tabular data display |
|
||||
| Page | Custom page container |
|
||||
| Rich Text Editor | Content editing in custom sections |
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Common Issues
|
||||
|
||||
**Port 8080 in use**: System auto-selects next available port
|
||||
|
||||
**HTTPS/SSL errors**: Configure browser to trust localhost certificates
|
||||
|
||||
**Deployment 400 errors**: Check `/IWFND/ERROR_LOG`, configure virus scan in `/IWFND/VIRUS_SCAN`
|
||||
|
||||
**Debug deployment**:
|
||||
```bash
|
||||
# macOS/Linux
|
||||
DEBUG=ux-odata-client npm run deploy
|
||||
|
||||
# Windows
|
||||
set DEBUG=ux-odata-client & npm run deploy
|
||||
```
|
||||
|
||||
### CLI Help
|
||||
|
||||
```bash
|
||||
npx fiori help # List available commands
|
||||
npx fiori deploy help # Deployment command help
|
||||
```
|
||||
|
||||
## Migration from SAP Web IDE
|
||||
|
||||
Migrate existing projects using:
|
||||
```
|
||||
Fiori: Migrate Project for use in Fiori tools
|
||||
```
|
||||
|
||||
**Supported Types**: Fiori Elements (V2/V4), Freestyle SAPUI5, Adaptation Projects, Extensibility Projects
|
||||
|
||||
**Post-Migration**: Run `npm run deploy-config` to update deployment configuration.
|
||||
|
||||
For migration details, see `references/getting-started.md`.
|
||||
|
||||
## Guided Development (76+ Guides)
|
||||
|
||||
Access step-by-step implementation guides:
|
||||
```
|
||||
Fiori: Open Guided Development
|
||||
```
|
||||
|
||||
**Guide Categories**:
|
||||
- Building Blocks (Chart, Filter Bar, Table)
|
||||
- Page Elements (Cards, Header Facets, Sections)
|
||||
- Table Enhancements (Column types, Actions)
|
||||
- Filtering & Navigation
|
||||
- Configuration (Variant management, Side effects)
|
||||
- Extensions (Custom actions, sections, columns)
|
||||
|
||||
## Reference Documentation
|
||||
|
||||
For detailed information on specific topics:
|
||||
|
||||
- `references/getting-started.md` - Installation, migration, ADT integration, commands
|
||||
- `references/configuration.md` - MTA, middlewares, SAPUI5 versions, project functions
|
||||
- `references/page-editor.md` - Page Editor configuration details
|
||||
- `references/annotations.md` - Annotation patterns and examples
|
||||
- `references/deployment.md` - Deployment configuration details
|
||||
- `references/adaptation-projects.md` - Adaptation project workflows
|
||||
- `references/preview.md` - Preview and testing options
|
||||
|
||||
## Documentation Sources
|
||||
|
||||
**Primary Source**: [https://github.com/SAP-docs/btp-fiori-tools/tree/main/docs](https://github.com/SAP-docs/btp-fiori-tools/tree/main/docs)
|
||||
|
||||
**Last Updated**: 2025-11-22
|
||||
|
||||
| Section | Documentation Link |
|
||||
|---------|-------------------|
|
||||
| Getting Started | `Getting-Started-with-SAP-Fiori-Tools/` |
|
||||
| Generating Apps | `Generating-an-Application/` |
|
||||
| Developing | `Developing-an-Application/` |
|
||||
| Previewing | `Previewing-an-Application/` |
|
||||
| Deploying | `Deploying-an-Application/` |
|
||||
| Project Functions | `Project-Functions/` |
|
||||
| Adaptation Projects | Root docs folder |
|
||||
|
||||
**SAP Resources**:
|
||||
- Fiori Design Guidelines: [https://experience.sap.com/fiori-design-web/](https://experience.sap.com/fiori-design-web/)
|
||||
- SAP Help Portal: [https://help.sap.com/docs/SAP_FIORI_tools](https://help.sap.com/docs/SAP_FIORI_tools)
|
||||
Reference in New Issue
Block a user