Feature Templates
Simple Object Designer provides templates to accelerate feature creation. This page explains each template and helps you choose the right one.
Available Templates
| Template | Best For | Creates |
|---|---|---|
| Data | Standalone master tables | Table, List, Card, API |
| DataRelated | Linked/child tables | Table with FK, List, Card |
| Document | Header/line documents | Header + Lines tables, pages |
| RoleCenter | Dashboards | Role Center page |
Choosing the Right Template
Questions to Ask
- Is this standalone data or related to something else?
- Standalone → Data Template
- Related to existing table → DataRelated Template
- Does it have a header/line structure?
- Yes (like orders) → Document Template
- No → Data or DataRelated
- Is this for navigation/dashboard?
- Yes → RoleCenter Template
Decision Flow
Need new data storage?
├─ Yes → Is it related to existing table?
│ ├─ Yes → DataRelated Template
│ └─ No → Is it header/lines?
│ ├─ Yes → Document Template
│ └─ No → Data Template
└─ No → Need dashboard?
└─ Yes → RoleCenter Template
Template Comparison
Data Template
Creates:
- One new table
- Optional list page
- Optional card page
- Optional API endpoint
Primary Key Options:
- Manual entry
- Number series
Best for:
- Customer-style masters
- Reference/lookup data
- Simple lists
- Configuration tables
Examples:
- Equipment types
- Skill codes
- Custom categories
DataRelated Template
Creates:
- One new table with foreign key
- List page showing related records
- Navigation from parent
No card page is generated for DataRelated features. Records are accessed and edited through the list page and FactBox only. This may be improved in a future release.
Relationships:
- Links to existing BC table (the anchor/parent table)
- Foreign key field — the parent key, for example "Job No." when anchored to table 167 Job, exists on the DataRelated table and can be used as the source for a lookup filter with Filter Type = Field
- Filtered views
Best for:
- Detail records
- Child tables
- Extended information
- One-to-many relationships
Examples:
- Customer certifications (related to Customer)
- Item specifications (related to Item)
- Vendor contacts (related to Vendor)
Document Template
Creates:
- Header table
- Lines table
- Header page
- Lines subpage (embedded)
- Document actions
Document features:
- Number series for document numbers
- Header/line relationship
- Standard document patterns
Best for:
- Order-style documents
- Custom invoices
- Approval requests
- Multi-line transactions
Examples:
- Expense reports
- Work orders
- Internal requisitions
RoleCenter Template
Creates:
- Role Center page
- Cue group areas
- Activity sections
- Page actions (Embedding, Creation, Processing, Reporting)
- Embedded page parts
Features:
- Dashboard layout
- Summary cues
- Actions to open pages and run reports directly from the role center
- Embedded list parts and card parts
Best for:
- Custom home pages
- Department dashboards
- Role-specific views
Role Center Parts (embedded ListParts and CardParts) accept custom captions that render on the generated page. This requires SOD 12.0.0.568 or later — on earlier versions the caption is ignored and the part shows a generic caption such as "Activities", and parts added after publishing are not detected at all.
Existing Role Centers cannot be imported as a starting point. SOD does not support taking a standard Role Center and modifying it; role center objects are built from scratch in the designer. The cue and action setup assembles fairly quickly once you are underway.
Template Feature Matrix
| Feature | Data | DataRelated | Document | RoleCenter |
|---|---|---|---|---|
| New table | Yes | Yes | Yes (2) | No |
| List page | Optional | Yes | Yes | No |
| Card page | Optional | No | Yes | No |
| Subpage | No | No | Yes | No |
| API | Optional | Optional | Optional | No |
| Number series | Optional | No | Yes | No |
| Foreign key | No | Yes | No | No |
| Cues | No | No | No | Yes |
| Page actions | No | No | No | Yes |
| Embedded parts | No | No | No | Yes |
Using Templates
Step 1: Start New Feature Wizard
- Open Feature List
- Click New Feature
- Wizard opens
Step 2: Select Template
- Review template descriptions
- Click on your chosen template
- Description shows what will be created
Step 3: Configure Template-Specific Options
Each template has specific configuration:
Data Template:
- Feature name
- Primary key type
- Generate list/card pages
- Enable API
DataRelated Template:
- Feature name
- Parent table selection
- Relationship field
Document Template:
- Feature name
- Document number series
- Header field groups
- Line field configuration
RoleCenter Template:
- Role center name
- Cue groups
- Activities
- Page actions (grouped by Embedding, Creation, Processing, or Reporting)
- Embedded page parts (ListParts and CardParts)
Step 4: Complete Wizard
- Review configuration
- Click Finish
- Feature is created
Step 5: Customize
After wizard completes:
- Open Feature Card
- Add/modify fields
- Configure additional options
- Publish when ready
Template Limitations
What Templates Don't Provide
- Complex business logic
- Posting routines
- Workflow integration
- External system connections
- Default values or auto-population of a field on insert
- Calculated fields
- Reports or a print action
- A cross-line list page for the Document template — there is no standalone Lines list or Posted Lines list for browsing and filtering lines across documents. Only header list pages and the embedded lines subpage are generated.
For these, consider graduating to full AL development.
Template Constraints
Each template has boundaries:
- Data: Simple list/card patterns; one primary key field only (no compound keys)
- DataRelated: Single parent relationship; no card page is generated — records are managed through the list page and FactBox
- Document: Standard header/line only; no header-to-line value defaulting
- RoleCenter: Dashboard elements, actions, and embedded parts (Navigation action group is not supported); existing role centers cannot be imported
Number series setup is shared
All setup for your app — including number series configuration for every feature — is stored in a single shared setup feature. Only the first number-series-enabled feature triggers the prompt to create it; later features silently add their own field to the existing setup table. See Data Table Template.
Changing Templates
Templates cannot be changed after creation. If you need a different structure:
- Create new feature with correct template
- Migrate any data manually
- Delete the old feature
- Rename new feature if needed