Dual-App Overview
Dual-App mode generates two separate extensions instead of one, solving circular dependency issues. This page explains why and when to use Dual-App mode.
What is Dual-App Mode
In Dual-App mode, SOD generates:
- App 1 - Contains table extensions and new tables
- App 2 - Contains page extensions and logic that depends on App 1
Why Dual-App Mode Exists
The Circular Dependency Problem
Sometimes customizations create circular dependencies:
- Page extension needs to reference new fields
- New fields are defined in table extension
- Table extension might reference page elements
- Single app can't compile due to circular reference
How Dual-App Solves It
By splitting into two apps:
- App 1 defines all data structures
- App 2 depends on App 1
- App 2 adds UI and logic
- No circular reference possible
When to Use Dual-App Mode
Scenarios Requiring Dual-App
- Complex field dependencies
- Circular reference compilation errors
- Advanced feature configurations
- Specific extension patterns
Signs You Need Dual-App
- Publish fails with "circular dependency" error
- Complex features with cross-references
When Single-App is Sufficient
Most SOD usage works with single app:
- Simple field additions
- Basic page placements
- Standard features
- Typical customizations
How It Works
App 1 Contents
| Object Type | Contents |
|---|---|
| Table Extensions | New fields on existing tables |
| New Tables | Feature tables |
App 2 Contents
| Object Type | Contents |
|---|---|
| Page Extensions | Field placements |
| Report Extensions | Report field additions |
| API Pages | API endpoints |
| Logic | Business logic |
Dependency Chain
Base Application
↓
App 1
↓
App 2
App 2 depends on App 1. Both depend on Base Application.
Enabling Dual-App Mode
In Setup
- Open Setup page
- Set App Mode to Dual
- Configure Extension Name 2
Requirements
| Requirement | Notes |
|---|---|
| Two Extension Names | Unique names for each app |
| Proper deployment order | App 1 before App 2 |