Advanced features provide powerful capabilities for experienced users and larger organizations. These features require proper setup and training to use effectively.
Note
Some advanced features require specific license levels. Contact walter75 Consulting for licensing information.
Workflow automation
Approval workflows
Configure multi-level approval processes:
Setup approval workflows
- Choose the icon
- Enter Workflows and choose the related link
- Choose New > New Workflow from Template
- Select BC Doc Test Document Approval Workflow
- Customize the workflow steps:
graph TD
A[Document Created] --> B{Amount Check}
B -->|< $1000| C[Auto-Approve]
B -->|>= $1000| D[Manager Approval]
D -->|Approved| E[Finance Approval]
D -->|Rejected| F[Return to Sender]
E -->|Approved| G[Post Document]
E -->|Rejected| F
Approval hierarchy
Define approval limits:
| User Role | Approval Limit | Next Approver |
|---|---|---|
| Department Manager | $10,000 | Director |
| Director | $50,000 | VP |
| VP | $250,000 | CFO |
| CFO | Unlimited | - |
Note
Approval workflows are configured per company. Each company in your environment needs separate workflow setup.
Scheduled batch jobs
Automate recurring tasks with batch jobs:
Create a scheduled job
- Navigate to Job Queue Entries
- Choose New
- Configure the job:
| Field | Description | Example |
|---|---|---|
| Object Type | Type of object to run | Codeunit |
| Object ID | ID of the object | 50000 |
| Earliest Start Date/Time | When to first run | 01/01/2026 06:00 |
| Recurring Job | Repeat automatically | Yes |
| Recurrence | How often to repeat | Daily |
Common scheduled tasks
- Document archiving: Archive old documents automatically
- Report generation: Generate reports overnight
- Data synchronization: Sync with external systems
- Cleanup routines: Remove obsolete data
// Example batch job codeunit
codeunit 50000 "BC Doc Batch Processor"
{
TableNo = "Job Queue Entry";
trigger OnRun()
var
BCDocDocument: Record "BC Doc Test Document";
begin
// Process all pending documents
BCDocDocument.SetRange(Status, BCDocDocument.Status::Pending);
if BCDocDocument.FindSet() then
repeat
ProcessDocument(BCDocDocument);
until BCDocDocument.Next() = 0;
end;
}
Advanced reporting
Power BI integration
Connect to Power BI for advanced analytics:
Setup Power BI connection
- Open BC Doc Test Setup
- Choose Power BI Settings
- Choose Connect to Power BI
- Sign in with your Microsoft 365 account
- Select workspace for reports
Available Power BI reports
- Executive Dashboard: High-level KPIs and trends
- Document Analysis: Detailed document metrics
- Customer Insights: Customer behavior patterns
- Performance Metrics: System usage statistics
Power BI executive dashboard showing key metrics
Custom report builder
Create custom reports without coding:
- Navigate to Report Builder
- Choose New Report
- Use the visual designer:
- Drag fields from data sources
- Add grouping and sorting
- Configure calculations
- Design layout
- Save and run your report
Excel data analysis
Export data for analysis in Excel:
- Open any list page
- Choose Open in Excel
- The list opens in Excel with a live connection
- Make changes in Excel
- Choose Publish to update Business Central
Tip
Use Excel pivot tables to analyze large datasets without impacting Business Central performance.
API integration
REST API access
Access BC Doc Test App data via REST API:
API authentication
POST https://api.businesscentral.dynamics.com/v2.0/{tenant}/Production/api/v1.0/
Authorization: Bearer {token}
Content-Type: application/json
Example API requests
Get documents:
GET /companies({companyId})/bcDocTestDocuments
Create document:
POST /companies({companyId})/bcDocTestDocuments
Content-Type: application/json
{
"number": "",
"customerNumber": "C-10000",
"documentType": "Order",
"date": "2026-01-01"
}
Update document:
PATCH /companies({companyId})/bcDocTestDocuments({documentId})
Content-Type: application/json
{
"description": "Updated description"
}
Warning
API rate limits apply: 6000 requests per 5 minutes per user. Exceeding limits results in temporary throttling.
Webhook notifications
Receive real-time notifications of changes:
Setup webhooks
- Register your webhook endpoint
- Subscribe to events:
- Document created
- Document modified
- Document posted
- Document deleted
- Receive JSON payloads when events occur
Example webhook payload:
{
"eventType": "documentCreated",
"timestamp": "2026-01-01T10:30:00Z",
"documentId": "DOC-0001",
"companyId": "company-guid",
"data": {
"number": "DOC-0001",
"customerNumber": "C-10000",
"amount": 1500.00
}
}
AI-powered features
Intelligent suggestions
AI analyzes patterns and provides suggestions:
- Predicted customers: Suggests likely customers for new documents
- Smart pricing: Recommends optimal pricing based on history
- Fraud detection: Identifies potentially fraudulent documents
- Process optimization: Suggests workflow improvements
Natural language queries
Query data using natural language:
- Open the AI Assistant panel
- Type your question:
- "Show me all documents from last month"
- "Which customer has the highest average order value?"
- "Find documents pending approval"
- View results immediately
AI Assistant answering a natural language query
Important
AI features require the Enterprise license and are subject to data residency requirements.
Advanced customization
Custom fields and tables
Extend the data model:
Add custom fields
- Open Extension Management
- Choose Customize > Add Fields
- Select table: BC Doc Test Document
- Add field:
- Name: Custom Reference
- Type: Text[50]
- Caption: Reference Number
- Save customization
Create custom tables
For complex customizations:
table 50001 "BC Doc Custom Data"
{
DataClassification = CustomerContent;
fields
{
field(1; "Document No."; Code[20])
{
DataClassification = CustomerContent;
TableRelation = "BC Doc Test Document";
}
field(2; "Custom Value"; Text[100])
{
DataClassification = CustomerContent;
}
}
keys
{
key(PK; "Document No.")
{
Clustered = true;
}
}
}
Event subscribers
Extend functionality without modifying base code:
codeunit 50002 "BC Doc Event Handlers"
{
[EventSubscriber(ObjectType::Codeunit, Codeunit::"BC Doc Management", 'OnAfterPostDocument', '', false, false)]
local procedure OnAfterPostDocument(var BCDocDocument: Record "BC Doc Test Document")
begin
// Custom logic after posting
SendNotificationEmail(BCDocDocument);
UpdateExternalSystem(BCDocDocument);
end;
[EventSubscriber(ObjectType::Table, Database::"BC Doc Test Document", 'OnBeforeInsert', '', false, false)]
local procedure OnBeforeInsertDocument(var BCDocDocument: Record "BC Doc Test Document")
begin
// Custom validation before insert
if BCDocDocument."Customer No." = '' then
Error('Customer is required');
end;
}
Data management
Bulk operations
Process multiple records efficiently:
Batch posting
- Navigate to BC Doc Test Documents
- Use filters to select documents to post
- Choose Actions > Posting > Post Batch
- Configure options:
- [ ] Validate before posting
- [ ] Stop on first error
- [ ] Generate posting report
- Choose OK to start
Data import/export
Import and export data in various formats:
| Format | Import | Export | Use Case |
|---|---|---|---|
| Excel | ✓ | ✓ | Data analysis, bulk updates |
| CSV | ✓ | ✓ | Integration with other systems |
| JSON | ✓ | ✓ | API integration |
| XML | ✓ | ✓ | EDI and legacy systems |
Archive management
Automatically archive old documents:
Configure archiving
- Open BC Doc Test Setup
- Navigate to Archive Settings
- Configure:
| Setting | Recommended Value |
|---|---|
| Archive Posted Documents | Yes |
| Days Before Archive | 365 |
| Delete After Archive | Optional |
| Compress Archives | Yes |
Manual archiving
Archive specific documents:
- Select documents to archive
- Choose Actions > Archive
- Archived documents are moved to BC Doc Test Archives
Security and audit
Advanced audit logging
Comprehensive audit trails:
- Field-level tracking: Log every field change
- User attribution: Record who made changes
- Timestamp tracking: Exact date and time of changes
- Before/after values: See what changed
- Reason codes: Require justification for changes
Data encryption
Protect sensitive data:
procedure EncryptSensitiveData(var BCDocDocument: Record "BC Doc Test Document")
begin
if BCDocDocument."Credit Card No." <> '' then
BCDocDocument."Credit Card No." := EncryptionMgt.Encrypt(BCDocDocument."Credit Card No.");
end;
Encrypted fields:
- Credit card numbers
- Bank account information
- Personal identification numbers
- Confidential notes
Compliance reports
Generate compliance documentation:
| Report | Purpose | Schedule |
|---|---|---|
| Audit Trail Report | SOX compliance | Quarterly |
| Data Access Log | GDPR compliance | Monthly |
| Change Report | Internal audit | Monthly |
| Security Report | Security review | Monthly |
Performance optimization
Caching
Improve performance with intelligent caching:
- Query results: Cache frequently accessed data
- Calculated fields: Store pre-calculated values
- Report data: Cache report datasets
- API responses: Cache API calls
Database optimization
Optimize database performance:
- Add custom indexes for frequently filtered fields
- Implement pagination for large lists
- Use FlowFields for calculated values
- Optimize table relations to reduce joins
key(Performance; "Customer No.", Date)
{
IncludedFields = Amount, "Remaining Amount";
}
Integration scenarios
Microsoft 365 integration
Deep integration with Microsoft 365:
- Teams: Share documents in Teams channels
- SharePoint: Store documents in SharePoint
- OneDrive: Sync files to OneDrive
- Outlook: Email documents from Outlook
- Excel: Live connections to Excel
Power Platform integration
Build solutions with Power Platform:
- Power Automate: Create automated workflows
- Power Apps: Build mobile apps
- Power BI: Advanced analytics
- Dataverse: Sync data to Dataverse
Third-party integration
Connect to external systems:
- Payment providers: Stripe, PayPal, etc.
- Shipping carriers: UPS, FedEx, DHL
- E-commerce platforms: Shopify, WooCommerce
- CRM systems: Salesforce, HubSpot
Note
Integration support varies by plan. Contact walter75 Consulting to verify which integrations are available in your license.