Control Visibility
Visibility control allows you to hide fields from users who should not see certain information. This guide explains how to configure and use field visibility settings.
Understanding Visibility
When a field's visibility is set to "No":
- The field does not appear on the page
- The field label is not shown
- The space may collapse (depending on page layout)
- The user has no indication the field exists
Configuring Field Visibility
Accessing Field Controls
- Open Define Security Features
- Select a security feature
- In the Field Access part (embedded below the feature list), add a new line
Adding Fields with Visibility Control
- Use the assist edit (...) to select a table, field, and page
- Set the Visible column to Hide
Visibility Options
| Setting | Field Behavior |
|---|---|
| Show | Field appears on the page |
| Hide | Field is hidden |
| (blank) | No visibility override (inherits default) |
Visibility Control Examples
Example 1: Hide Cost Information
Hide cost fields from non-purchasing users:
| Page | Field | Visible |
|---|---|---|
| Item Card | Unit Cost | No |
| Item Card | Last Direct Cost | No |
| Item Card | Standard Cost | No |
| Item List | Unit Cost | No |
| Purchase Line | Direct Unit Cost | No |
Example 2: Hide Personal Information
Hide sensitive employee data:
| Page | Field | Visible |
|---|---|---|
| Employee Card | Social Security No. | No |
| Employee Card | Birth Date | No |
| Employee Card | Bank Account No. | No |
| Employee List | Birth Date | No |
Example 3: Hide Financial Details
Hide financial information from operations staff:
| Page | Field | Visible |
|---|---|---|
| Customer Card | Credit Limit (LCY) | No |
| Customer Card | Balance (LCY) | No |
| Vendor Card | Balance (LCY) | No |
Finding All Occurrences
A field may appear on multiple pages. To ensure complete hiding:
Common Page Types to Check
| Page Type | Example |
|---|---|
| Card pages | Customer Card, Item Card |
| List pages | Customer List, Item List |
| Mini cards | Mini Customer Card |
| Worksheet pages | Item Journal |
| FactBoxes | Customer Statistics FactBox |
| Parts | Sales Line Subform |
Systematic Approach
- Identify the table containing the field
- List all pages that display this table
- Check each page for the field
- Add controls for each occurrence
Visibility Precedence
When multiple features control the same field:
User has Feature A: Field visible
User has Feature B: Field hidden
Result: Field is HIDDEN
Hidden always wins - if any assigned feature hides the field, it's hidden.
Why Most Restrictive Wins
This ensures security is additive:
- Adding a feature can only restrict access
- Never accidentally reveals hidden data
- Predictable behavior
Dynamic Visibility
Standard Business Central may have fields with dynamic visibility:
Visible = ShowCreditLimit;
ACS can work with these fields - see Handle Conflict Fields.
Testing Visibility Controls
Before Deployment
- Assign the feature to a test user
- Log in as the test user (or use test function)
- Navigate to each controlled page
- Verify fields are hidden
After Deployment
- Communicate changes to affected users
- Be available for questions
- Monitor for issues
Test Checklist
- Field hidden on card page
- Field hidden on list page
- Field hidden on related pages
- No errors when opening pages
- Page layout looks acceptable
User Experience Considerations
Layout Impact
When fields are hidden:
- Page layout may shift
- Groups may appear emptier
- FastTabs may have fewer fields
User Perception
Users won't see hidden fields, so:
- No "access denied" messages
- Field appears to not exist
- Cleaner interface for that user
Training
Help users understand:
- They have appropriate access for their role
- Not seeing certain fields is intentional
- Who to contact for additional access
Common Pitfalls
Pitfall 1: Missing Pages
Forgetting to hide field on all pages where it appears.
Solution: Systematically check all pages for the table.
Pitfall 2: FactBox Fields
FactBoxes often show sensitive data (statistics, balances).
Solution: Check and configure FactBox parts.
Pitfall 3: Page Parts
Subforms and embedded parts may have the field.
Solution: Configure page parts separately.
Pitfall 4: Extension Regeneration
Forgetting to regenerate after adding fields.
Solution: Always regenerate extension after changes.
Visibility vs. Editability
| Goal | Use |
|---|---|
| User should not see the data | Visibility = No |
| User can see but not change | Editability = No |
| User can see and change | No control needed |
Choose visibility when the data itself is sensitive.
Reporting Considerations
Field visibility is a UI control:
- Fields may still appear in reports
- API access is not affected
- Report filtering may expose hidden data
For complete data protection:
- Combine with data-level filters
- Review report access
- Consider API permissions
Best Practices
Group Logically
Create features for related fields:
- "HIDE-COST-INFO" - all cost fields
- "HIDE-PERSONAL-DATA" - all PII fields
- "HIDE-FINANCIAL-DETAILS" - all financial fields
Document Thoroughly
Record:
- Which fields are hidden
- Which pages are affected
- Why these fields are hidden
- Who should have this feature
Review Regularly
- Check visibility settings periodically
- Update as business needs change
- Remove obsolete controls
Communicate Changes
- Notify users before implementing
- Explain the rationale
- Provide contact for questions