User Types (BC Entity Mapping)
APD supports different user types through the Navision Type field, allowing portal users to be mapped to various Business Central entities.
Note: This page covers BC entity types (Customer, Vendor, etc.) that link portal users to BC records. For information about authentication methods (Native, Auth0, Microsoft Entra), see Users Overview.
Authentication vs Entity Mapping
APD has two separate user concepts:
| Concept | Field | Purpose |
|---|---|---|
| Authentication Type | External User | How user logs in (Native/Auth0/Entra) |
| Entity Type | Navision Type | What BC record user represents |
A user can use any authentication method with any entity type:
| Authentication | Entity Type | Example |
|---|---|---|
| Native | Customer | Local customer portal |
| Auth0 | Customer | Customer portal with SSO |
| Microsoft Entra | Customer | Enterprise customer portal |
| Microsoft Entra | Salesperson | Internal sales team portal |
Understanding Navision Type
Purpose
The Navision Type field determines:
- What BC entity the user represents
- How
<?no?>placeholder resolves - What data relationships apply
- Default security filter behavior
Available Types
| Type | BC Entity | Use Case |
|---|---|---|
| Customer | Customer | Customer portals |
| Vendor | Vendor | Vendor/supplier portals |
| Contact | Contact | Contact-based portals |
| Sales Person | Salesperson/Purchaser | Sales team portals |
APD only supports these four BC entity types. There is no "User ID" entity type that maps to a BC user record — for employee portals, pick the closest BC entity (typically Sales Person) or leave the type blank.
Customer Type
Configuration
Navision Type: Customer
Navision Identification: 10000
Data Access
The <?no?> placeholder returns the Customer No. (10000).
Common Use Cases
- Customer self-service portal
- Order history viewing
- Invoice downloads
- Account information
Security Filter Example
Table: Sales Header (36)
Field: Sell-to Customer No. (2)
Value: %4
Customer sees only their own sales orders.
Template Example
<?open(Customer)?>
<?filter(Customer,"No.",no())?>
<div class="customer-info">
<h2><?field(Customer,Name)?></h2>
<p>Customer No: <?field(Customer,"No.")?></p>
<p>Balance: <?field(Customer,"Balance (LCY)")?></p>
</div>
<?close(Customer)?>
Vendor Type
Configuration
Navision Type: Vendor
Navision Identification: V10000
Data Access
The <?no?> placeholder returns the Vendor No. (V10000).
Common Use Cases
- Vendor/supplier portal
- Purchase order viewing
- Invoice submission
- Payment status
Security Filter Example
Table: Purchase Header (38)
Field: Buy-from Vendor No. (2)
Value: %4
Vendor sees only their purchase orders.
Template Example
<?open(Vendor)?>
<?filter(Vendor,"No.",no())?>
<div class="vendor-info">
<h2><?field(Vendor,Name)?></h2>
<p>Vendor No: <?field(Vendor,"No.")?></p>
<p>Balance Due: <?field(Vendor,"Balance Due (LCY)")?></p>
</div>
<?close(Vendor)?>
Contact Type
Configuration
Navision Type: Contact
Navision Identification: CT10000
Data Access
The <?no?> placeholder returns the Contact No. (CT10000).
Common Use Cases
- CRM portal
- Contact self-service
- Marketing portals
- Event registration
Security Filter Example
Table: Contact (5050)
Field: No. (1)
Value: %4
Template Example
<?open(Contact)?>
<?filter(Contact,"No.",no())?>
<div class="contact-info">
<h2><?field(Contact,Name)?></h2>
<p>Company: <?field(Contact,"Company Name")?></p>
<p>Email: <?field(Contact,"E-Mail")?></p>
</div>
<?close(Contact)?>
Sales Person Type
Configuration
Navision Type: Sales Person
Navision Identification: JD
Data Access
The <?no?> placeholder returns the Salesperson Code (JD).
Common Use Cases
- Sales team portal
- Customer management
- Commission tracking
- Sales reporting
Security Filter Example
Table: Customer (18)
Field: Salesperson Code (86)
Value: %4
Salesperson sees only their assigned customers.
Template Example
<?open("Salesperson/Purchaser")?>
<?filter("Salesperson/Purchaser",Code,no())?>
<div class="salesperson-info">
<h2><?field("Salesperson/Purchaser",Name)?></h2>
<p>Code: <?field("Salesperson/Purchaser",Code)?></p>
<p>Commission: <?field("Salesperson/Purchaser","Commission %")?></p>
</div>
<?close("Salesperson/Purchaser")?>
Extended Access
Sales portal typically includes:
<!-- My Customers -->
<?open(Customer)?>
<?filter(Customer,"Salesperson Code",no())?>
<?loop(Customer,'-')?>
<tr>
<td><?field(Customer,"No.")?></td>
<td><?field(Customer,Name)?></td>
<td><?field(Customer,"Balance (LCY)")?></td>
</tr>
<?endloop(Customer)?>
<?close(Customer)?>
Choosing the Right Type
Decision Tree
Is the user external?
├── Yes: Is it a customer?
│ ├── Yes → Customer Type
│ └── No: Is it a vendor?
│ ├── Yes → Vendor Type
│ └── No → Contact Type
└── No: Sales-based / internal employee?
└── → Sales Person Type (mapped to a Salesperson/Purchaser record)
Considerations
| Factor | Recommendation |
|---|---|
| Customer self-service | Customer |
| Supplier portal | Vendor |
| CRM/Marketing | Contact |
| Sales team | Sales Person |
| Employee self-service | Sales Person (or leave type blank if no BC-entity link is needed) |
No Type (Blank)
When to Use
- General authenticated access
- No BC entity mapping needed
- Custom identification logic
Implications
<?no?>returns empty- No automatic data mapping
- Manual filter configuration needed
Multiple Entity Access
Complex Scenarios
Some users need access to multiple entity types:
Example: Sales Manager
Navision Type: Sales Person
Navision Identification: JM
Security Filters: SALES|MANAGER
With appropriate security setup, this user can:
- See their assigned customers (as Salesperson)
- Access management reports (as Manager)
Custom Implementation
For complex multi-entity scenarios:
- Use custom fields in APD User table
- Create script actions for entity switching
- Implement role-based views
Validation
Ensuring Valid Mapping
When setting Navision Identification:
- Verify the entity exists in BC
- Use correct format for the type
- Test data access after configuration
Common Issues
| Issue | Cause | Solution |
|---|---|---|
| No data showing | Wrong identification | Verify entity number |
| Wrong data | Type/ID mismatch | Check mapping |
| Error on login | Entity deleted | Update or clear mapping |
Migration Considerations
Changing User Types
If user type needs to change:
- Update Navision Type
- Update Navision Identification
- Review security filters
- Test data access
Bulk Updates
For many users:
- Export users
- Update mapping in Excel
- Import changes
- Verify results