Initial commit
This commit is contained in:
301
references/partners.md
Normal file
301
references/partners.md
Normal file
@@ -0,0 +1,301 @@
|
||||
# SAP BTP Partner Development Reference
|
||||
|
||||
## Overview
|
||||
|
||||
SAP BTP provides deployment options for partners (ISVs) to build and deliver ABAP and CAP-based applications as products or SaaS offerings.
|
||||
|
||||
## Deployment Models
|
||||
|
||||
### Multitenant SaaS
|
||||
|
||||
**Definition**: Cloud service operated in partner's global account
|
||||
|
||||
**Characteristics:**
|
||||
- Partner owns infrastructure
|
||||
- Customers subscribe to service
|
||||
- Partner manages operations, monitoring
|
||||
- Customers get key-user extensibility
|
||||
|
||||
**Advantages:**
|
||||
- Single codebase for all customers
|
||||
- Centralized operations
|
||||
- Easy updates (deploy once)
|
||||
- Lower per-customer costs at scale
|
||||
|
||||
### Add-on Product
|
||||
|
||||
**Definition**: Product installed in customer's ABAP environment
|
||||
|
||||
**Characteristics:**
|
||||
- Customer owns infrastructure
|
||||
- Customer manages lifecycle
|
||||
- Customer has full data control
|
||||
- Developer extensibility available
|
||||
|
||||
**Requirements:**
|
||||
- SAP PartnerEdge Build contract
|
||||
- Distribution via SAP Store
|
||||
- Registered ABAP namespace
|
||||
|
||||
## ABAP Partner Development
|
||||
|
||||
### Landscape Portal
|
||||
|
||||
**Purpose**: Central management for partner solutions
|
||||
|
||||
**Capabilities:**
|
||||
|
||||
| Feature | Description |
|
||||
|---------|-------------|
|
||||
| System Management | Create, configure ABAP systems |
|
||||
| Tenant Management | SaaS tenant operations |
|
||||
| Product Lifecycle | Build, register, publish products |
|
||||
| Deployment Pipelines | CI/CD for ABAP |
|
||||
| Monitoring | System and application health |
|
||||
|
||||
### Software Components
|
||||
|
||||
**Requirement**: At least one software component per solution
|
||||
|
||||
**Rules:**
|
||||
- Registered ABAP namespace mandatory
|
||||
- Y*/Z* objects only within single global account
|
||||
- Multiple global accounts require add-on products
|
||||
|
||||
### Transport Mechanisms
|
||||
|
||||
| Tool | Use Case |
|
||||
|------|----------|
|
||||
| gCTS | BTP system-to-system transports (recommended) |
|
||||
| abapGit | On-premise migration, backup, cross-account |
|
||||
| Landscape Portal Products | Multi-account delivery |
|
||||
|
||||
### Namespace Requirements
|
||||
|
||||
**Mandatory**: All objects in a Product require registered namespace
|
||||
|
||||
**Process:**
|
||||
1. Request namespace from SAP
|
||||
2. Register in development system
|
||||
3. Use namespace prefix for all objects
|
||||
|
||||
## CAP Partner Development
|
||||
|
||||
### Poetry Slam Manager
|
||||
|
||||
**Type**: Reference application for multitenant CAP SaaS
|
||||
|
||||
**GitHub**: [https://github.com/SAP-samples/partner-reference-application/](https://github.com/SAP-samples/partner-reference-application/)
|
||||
|
||||
**Demonstrates:**
|
||||
- Full-stack cloud applications using SAP Cloud Application Programming Model (CAP)
|
||||
- Multitenant architecture aligned with SAP BTP Developer's Guide
|
||||
- ERP-agnostic design (compatible with S/4HANA Cloud, Business One, Business ByDesign)
|
||||
- Subscription lifecycle management
|
||||
- Cost optimization patterns
|
||||
|
||||
**Tutorial Structure:**
|
||||
1. Core application development (business models, logic)
|
||||
2. Enhancement to multitenant (multi-customer) solutions
|
||||
3. ERP backend integration
|
||||
4. Feature expansion
|
||||
5. Application extension
|
||||
|
||||
**Bill of Materials**: Complete service list at [https://github.com/SAP-samples/partner-reference-application/blob/main/Tutorials/01-BillOfMaterials.md](https://github.com/SAP-samples/partner-reference-application/blob/main/Tutorials/01-BillOfMaterials.md)
|
||||
|
||||
### Partner Reference Application Extension
|
||||
|
||||
**Type**: Customer-specific extension example
|
||||
|
||||
**GitHub**: [https://github.com/SAP-samples/partner-reference-application-extension](https://github.com/SAP-samples/partner-reference-application-extension)
|
||||
|
||||
**Demonstrates:**
|
||||
- Enhanced catering management capabilities
|
||||
- Seamless base application integration
|
||||
- Granular tenant-specific configurations
|
||||
- Consistent UX across extended and core features
|
||||
- Secure multitenant architecture with data isolation
|
||||
|
||||
## ABAP Sample Application
|
||||
|
||||
### Music Festival Manager
|
||||
|
||||
**Type**: Reference application for multitenant ABAP SaaS
|
||||
|
||||
**GitHub**: [https://github.com/SAP-samples/abap-platform-partner-reference-application](https://github.com/SAP-samples/abap-platform-partner-reference-application)
|
||||
|
||||
**Demonstrates:**
|
||||
- Full-stack ABAP Cloud development using RAP
|
||||
- Scalable, multitenant architecture
|
||||
- SAP BTP Developer's Guide best practices
|
||||
- ERP-agnostic design (side-by-side extensions)
|
||||
- Compatibility with any SAP solution including S/4HANA Cloud ERP
|
||||
|
||||
**Tutorial Structure:**
|
||||
1. **Core Application Development**: Business models, logic, UI, authentication, role-based authorization
|
||||
2. **Deployment & Provisioning**: Building and deploying to consumers
|
||||
3. **SAP S/4HANA Cloud Integration**: Connecting with enterprise systems
|
||||
4. **Feature Enhancement**: Expanding application capabilities
|
||||
|
||||
**Key Features:**
|
||||
- Uses ABAP RESTful Application Programming Model (RAP)
|
||||
- Leverages SAP BTP services for enterprise-class standards
|
||||
- Enables focus on business logic and domain functionality
|
||||
|
||||
## Cost Estimation
|
||||
|
||||
### Total Cost of Ownership Calculator
|
||||
|
||||
**Location**: SAP Partner Portal
|
||||
|
||||
**Inputs:**
|
||||
- Expected tenant count
|
||||
- Resource requirements
|
||||
- Support level
|
||||
- Region
|
||||
|
||||
**Outputs:**
|
||||
- Monthly operational costs
|
||||
- Per-tenant estimates
|
||||
- Scaling projections
|
||||
|
||||
## Development Workflow
|
||||
|
||||
### SaaS Development Flow
|
||||
|
||||
```
|
||||
1. Setup
|
||||
├── Create global account
|
||||
├── Configure Landscape Portal
|
||||
└── Setup development system
|
||||
|
||||
2. Develop
|
||||
├── Build software components
|
||||
├── Implement business logic
|
||||
├── Create Fiori apps
|
||||
└── Configure multitenancy
|
||||
|
||||
3. Test
|
||||
├── Unit testing (ABAP Unit)
|
||||
├── Integration testing
|
||||
├── Tenant isolation testing
|
||||
└── Performance testing
|
||||
|
||||
4. Deploy
|
||||
├── Build product
|
||||
├── Register in Landscape Portal
|
||||
└── Publish to SAP Store (optional)
|
||||
|
||||
5. Operate
|
||||
├── Monitor via SAP Cloud ALM
|
||||
├── Manage subscriptions
|
||||
└── Handle support requests
|
||||
```
|
||||
|
||||
### Add-on Development Flow
|
||||
|
||||
```
|
||||
1. Develop
|
||||
├── Create software components
|
||||
├── Use registered namespace
|
||||
└── Follow ABAP Cloud guidelines
|
||||
|
||||
2. Build
|
||||
├── Assemble product via Landscape Portal
|
||||
├── Run quality checks
|
||||
└── Create release
|
||||
|
||||
3. Distribute
|
||||
├── Register in SAP Store
|
||||
├── Define pricing
|
||||
└── Enable discovery
|
||||
|
||||
4. Support
|
||||
├── Customer installation support
|
||||
├── Update delivery
|
||||
└── Issue resolution
|
||||
```
|
||||
|
||||
## Key User Extensibility (SaaS)
|
||||
|
||||
**Available to customers:**
|
||||
- UI adaptations
|
||||
- Custom fields
|
||||
- Custom logic (BAdIs)
|
||||
- Business configuration
|
||||
|
||||
**Not available:**
|
||||
- Database schema changes
|
||||
- Core code modifications
|
||||
- Direct system access
|
||||
|
||||
## Tenant Management
|
||||
|
||||
### Subscription Lifecycle
|
||||
|
||||
```
|
||||
Customer Subscription Request
|
||||
↓
|
||||
Tenant Provisioning (automatic)
|
||||
↓
|
||||
Tenant Configuration
|
||||
↓
|
||||
User Access Setup
|
||||
↓
|
||||
Operational Phase
|
||||
↓
|
||||
[Optional] Tenant Offboarding
|
||||
```
|
||||
|
||||
### Isolation Guarantees
|
||||
|
||||
| Aspect | Isolation Level |
|
||||
|--------|-----------------|
|
||||
| Data | Complete (separate schemas) |
|
||||
| Configuration | Per-tenant |
|
||||
| Customizations | Per-tenant |
|
||||
| Resources | Shared compute, isolated data |
|
||||
|
||||
## Best Practices
|
||||
|
||||
### Architecture
|
||||
|
||||
1. **Design for multitenancy** from the start
|
||||
2. **Implement proper tenant isolation**
|
||||
3. **Use SAP-recommended patterns**
|
||||
4. **Plan for scale** (up to 1000 tenants per HANA instance)
|
||||
|
||||
### Development
|
||||
|
||||
1. **Follow ABAP Cloud guidelines**
|
||||
2. **Use ATC for quality checks**
|
||||
3. **Implement comprehensive testing**
|
||||
4. **Document APIs and extensions**
|
||||
|
||||
### Operations
|
||||
|
||||
1. **Monitor with SAP Cloud ALM**
|
||||
2. **Automate deployments**
|
||||
3. **Plan upgrade windows**
|
||||
4. **Establish support processes**
|
||||
|
||||
### Pricing
|
||||
|
||||
1. **Calculate TCO accurately**
|
||||
2. **Consider scaling costs**
|
||||
3. **Plan for support overhead**
|
||||
4. **Offer flexible pricing tiers**
|
||||
|
||||
## Resources
|
||||
|
||||
| Resource | Location |
|
||||
|----------|----------|
|
||||
| Partner Portal | partner.sap.com |
|
||||
| Discovery Center | discovery-center.cloud.sap |
|
||||
| PartnerEdge Build | SAP PartnerEdge program |
|
||||
| Reference Applications | github.com/SAP-samples |
|
||||
|
||||
## Source Documentation
|
||||
|
||||
- ISV ABAP Guide: [https://github.com/SAP-docs/btp-developer-guide/blob/main/docs/build-and-run-abap-applications-for-partners-who-are-independent-software-vendors-210db8e.md](https://github.com/SAP-docs/btp-developer-guide/blob/main/docs/build-and-run-abap-applications-for-partners-who-are-independent-software-vendors-210db8e.md)
|
||||
- ISV SaaS Guide: [https://github.com/SAP-docs/btp-developer-guide/blob/main/docs/build-and-run-multitenant-saas-applications-for-partners-who-are-independent-software-ven-9b5e06f.md](https://github.com/SAP-docs/btp-developer-guide/blob/main/docs/build-and-run-multitenant-saas-applications-for-partners-who-are-independent-software-ven-9b5e06f.md)
|
||||
Reference in New Issue
Block a user