π Business Process Flows (BPF)
Category | Limit | Scope | Best Practice / Notes |
---|---|---|---|
Max active BPFs | 10 | Per table | Deactivate unused BPFs |
Total BPFs | 50 | Per environment | Includes both active and inactive |
Stages per BPF | 30 | Per BPF | Keep logical, avoid bloat |
Concurrent BPFs | 5 | Per record | More than 5 not supported |
π Multiline Text Fields
Limit | Scope | Best Practice / Notes |
---|---|---|
1,048,576 characters | Per column | Use rich text sparingly |
β€ 100,000 characters | Recommended max | Improves sync/form performance |
π€ Single Line Text Fields
Limit | Scope | Best Practice / Notes |
---|---|---|
4000 characters | Per field | Use multiline if longer needed |
50 characters | Schema/internal name | Keep clean and consistent |
100 characters | Display name | Shorter names = better UX |
π§© Field Titles & Naming
Limit | Scope | Best Practice / Notes |
---|---|---|
100 characters | Column display name | Use PascalCase / Proper Case |
50 characters | Schema/logical name | No spaces/special characters |
π Lookups (Relationships)
Limit | Scope | Best Practice / Notes |
---|---|---|
75 | Lookup fields per form | Keep <15 for performance |
1000 | Relationships per table | Reuse when possible |
Unlimited | N:N relationships | Prefer junction tables |
π Security Role & Access Limits
Category | Limit | Best Practice |
---|---|---|
Roles per user | ~100 | Keep model simple |
Team inheritance depth | 1 | No nesting supported |
βοΈ Solution Layering & Fields
Field | Limit | Scope | Best Practice |
---|---|---|---|
Fields per table | 1023 | Per table | Normalize models |
Forms per table | 100 | Manageable | Archive unused |
Views per table | 200 | Per table | Use role-based views |
π± Model-Driven App UI Limits
Component | Limit | Best Practice |
---|---|---|
Tabs per form | 100 | Keep it under 10 |
Sections per tab | 75 | Use 2β4 max |
Fields per form | ~340 | Keep forms clean |
Subgrids per form | No hard limit | Avoid >10 for speed |
Business Rules | 300 per table | Avoid conflicts |
β General Recommendations
Scenario | Best Approach |
---|---|
Need long text? | Use multiline, keep β€100K |
Need editable unique ID? | Use text + Power Automate |
Complex forms? | Split into tabs or forms |
Too many BPFs? | Use conditional logic or security roles |
Notes by Akira28:
- Limit Noise in Your UI: Just because a form supports 340+ fields doesnβt mean you should use them. Clean forms create focused users.
- Normalize Before You Customize: Overloading a single table with too many fields or relationships leads to chaos. Modular design wins long term.
- BPFs Should Follow Behavior: Donβt build long flows to “map” every scenario. Build to support user intent at critical moments.
- Use Lookups Intentionally: Too many lookup fields drag performance. If you need more than 10, consider breaking into tabs or multiple forms.
- Security Roles β Bandaids: Avoid patching over design gaps with too many roles. Fewer, smarter roles are more scalable and easier to audit.
- Views and Forms Are Conversations: Role-based forms and filtered views give the right data to the right people β thatβs what real UX means in enterprise apps.
- Multiline Fields Are Not Dumping Grounds: If users are writing essays, you’re doing something wrong. Segment info into logical fields and use notes or activities when needed.
- CONCLUSION – Limits and best practices listed here may change as Microsoft updates the platform. Always consult official documentation for the most current information.
This is helpful!