Leanpub Header

Skip to main content

The Complete Guide to Business Central Extension Development

Free With Membership

With Membership

Free!

$179.00

You pay

$179.00

Author earns

$143.20
$

...Or Buy With Credits!

You can get credits with a paid monthly or annual Reader Membership, or you can buy them here.
PDF
EPUB
WEB
About

About

About the Course

Share this course

Instructor

About the Instructor

Silviu Virlan

Silviu Virlan is a Microsoft MVP for Business Applications (awarded multiple times, including a second recognition in recent years), MCP (Microsoft Certified Professional), and a highly respected Dynamics 365 Business Central expert.

With over 12 years of hands-on experience in Dynamics NAV and Business Central, Silviu specializes in AL development, extensions, integrations, performance optimization, and modern AI-driven analytics. He served as a Developer Lead or Technical Architect in Dynamics 365 Business Central development teams for various Microsoft Partners in USA and Canada.

Since 2017, Silviu has been a dedicated contributor to the global Business Central community. He shares practical knowledge and deep technical insights through:

  • His popular blog at www.svirlan.com, featuring tutorials, release wave overviews, and best practices.
  • The Business Central Musings YouTube channel (@BusinessCentralMusings), home to well-received educational series such as: - "Let's pass MB-820" – a comprehensive certification prep playlist - "What's new in Business Central" – covering 2023, 2024, 2025, and beyond release waves

In 2024, Silviu authored the book "Beyond the Ledgers: Cutting-edge Data Insights with Business Central and AI", a practical guide that helps users and developers unlock powerful analytics, automation, and AI capabilities within Business Central.

A sought-after speaker, you can often find Silviu presenting at major technical conferences including Directions, DynamicsCon, and Community Summit, where he delivers sessions on cutting-edge Business Central topics, from AL language features to advanced integrations and user experience enhancements.

Through his content, speaking engagements, and community leadership, Silviu continues to empower developers, consultants, and partners to build better solutions in the ever-evolving world of Dynamics 365 Business Central.

Material

Course Material

  • Welcome to Business Central AL Development & Administration

  • What You’ll Learn

  • Course Structure

  • Prerequisites

  • Who This Course Is For

  • Install and Upgrade Codeunits in Business Central

  • Table of Contents

  • Introduction

  • Install Codeunits

  • What are Install Codeunits?

  • When Install Code Runs

  • Install Codeunit Structure

  • Install Triggers Explained

  • 1. OnInstallAppPerCompany()

  • 2. OnInstallAppPerDatabase()

  • Real-World Example: E-Document Setup

  • Best Practices for Install Codeunits

  • 1. Detect Fresh Install vs. Reinstall

  • 2. Use Defensive Coding

  • 3. Keep Install Codeunits Independent

  • 4. Choose the Right Trigger

  • Upgrade Codeunits

  • What are Upgrade Codeunits?

  • When Upgrade Code Runs

  • Upgrade Codeunit Structure

  • Upgrade Triggers Explained

  • Phase 1: Precondition Checks

  • Phase 2: Upgrade Execution

  • Phase 3: Validation

  • Real-World Example: VAT Group Upgrade

  • Best Practices for Upgrade Codeunits

  • 1. Always Use Upgrade Tags

  • 2. Add Safety Checks

  • 3. Avoid Blank Modifies

  • 4. Use DataTransfer for Large Tables

  • Upgrade Tags Deep Dive

  • Why Use Upgrade Tags?

  • The Three-Step Pattern

  • Step 1: Check and Execute in Upgrade Codeunit

  • Step 2: Register Tag for New Companies

  • Step 3: Handle Fresh Installs

  • Complete Example: E-Document URL Migration

  • Upgrade Tag Naming Convention

  • Advanced Topics

  • ModuleInfo and Version Detection

  • Available Properties

  • Detecting Fresh Install vs. Reinstall

  • Version-Specific Upgrade Logic

  • DataTransfer Object

  • Basic Syntax

  • Same Table Field Migration

  • Cross-Table Data Migration

  • Performance Comparison

  • Protecting Code During Upgrade

  • Using ExecutionContext

  • Execution Context Values

  • Practical Example

  • Debugging Install and Upgrade Code

  • Setup for Debugging

  • Common Debugging Issues

  • Force Upgrade for Testing

  • Common Scenarios and Solutions

  • Scenario 1: Migrate Field Data

  • Scenario 2: Populate New Required Field

  • Scenario 3: Convert Text to Option/Enum

  • Scenario 4: Delete Obsolete Data

  • Scenario 5: Multi-Version Upgrade Path

  • MB-820 Exam Tips

  • Key Concepts to Memorize

  • Install Codeunits

  • Upgrade Codeunits

  • Upgrade Tags

  • Common Exam Questions

  • Practice Scenarios

  • Scenario 1

  • Scenario 2

  • Scenario 3

  • Scenario 4

  • References

  • Microsoft Learn Documentation

  • Base Application Examples

  • Summary

  • Chapter 1: Install and Upgrade Codeunits - Quizzes & Exercises

  • Install Codeunits Quiz

    2 attempts allowed

  • Upgrade Codeunits Quiz

    2 attempts allowed

  • Upgrade Tags Quiz

    2 attempts allowed

  • DataTransfer and Advanced Topics Quiz

    2 attempts allowed

  • Exercise: Install Codeunit Scenario

  • Exercise: Fresh Install Detection

  • Exercise: Choosing the Right Approach

  • Business Central Administration and Automation API

  • Table of Contents

  • Introduction

  • Cloud Solution Provider (CSP) Program

  • What is the CSP Program?

  • Partner Responsibilities

  • Customer Benefits

  • Business Central Admin Center

  • Accessing the Admin Center

  • Environment Management

  • Sandbox vs Production

  • Trial Extensions

  • Database Export

  • Admin Center API

  • Authentication Setup

  • API Structure and Versioning

  • Environment Management via API

  • Telemetry API

  • Real-World Example: Retrieving Environment Info

  • Automation APIs Deep Dive

  • What are Automation APIs?

  • Authentication and Authorization

  • API Namespace and Discovery

  • Available Automation Endpoints

  • Company Automation

  • Creating Companies via API

  • Company Structure and Properties

  • Real-World Example: Company Creation

  • Configuration Package Management

  • What are Configuration Packages?

  • RapidStart Technology

  • Package Lifecycle: Create, Upload, Import, Apply

  • Real-World Example: Automating Package Deployment

  • Code Deep Dive: Configuration Package API

  • Extension Management via API

  • Extension Lifecycle

  • Installing Extensions

  • Uninstalling Extensions

  • Extension Upload and Deployment

  • Monitoring Extension Deployment Status

  • Real-World Example: Extension Management

  • Code Deep Dive: Extension Management Codeunit

  • User and Permission Management

  • User Management via API

  • Permission Sets

  • Security Groups (APIV2)

  • User Synchronization

  • Real-World Example: User Provisioning

  • Scheduled Jobs and Automation

  • Job Queue Management

  • Scheduled Jobs API

  • Monitoring Job Status

  • Telemetry and Monitoring

  • What is Telemetry?

  • Azure Application Insights Integration

  • Environment Lifecycle Telemetry

  • Configuring Telemetry via API

  • Key Telemetry Signals

  • Performance Analysis and Optimization

  • In-Client Performance Profiler

  • Business Central Performance Toolkit (BCPT)

  • BCPT Suite Configuration

  • Analyzing Performance Telemetry

  • Real-World Example: BCPT Scenario

  • Infrastructure as Code with Automation APIs

  • Automated Tenant Provisioning

  • Environment Standardization

  • CI/CD Integration

  • Complete Workflow Example

  • Error Handling and Best Practices

  • API Error Responses

  • Async Operation Handling

  • Retry Logic

  • Rate Limiting

  • Common Scenarios and Solutions

  • Scenario 1: Clone Production to Sandbox

  • Scenario 2: Bulk User Permission Update

  • Scenario 3: Monitor Extension Deployment Across Multiple Companies

  • Scenario 4: Automated Nightly Configuration Backup

  • MB-820 Exam Tips

  • Key Concepts to Memorize

  • Cloud Solution Provider (CSP)

  • Admin Center

  • Admin Center API

  • Automation APIs

  • Configuration Packages

  • Extension Management

  • Users and Permissions

  • Telemetry

  • Performance

  • Common Exam Questions

  • Exercises and Practice Questions

  • Exercise 1: Create Company via API

  • Exercise 2: Monitor Extension Installation

  • Exercise 3: Bulk Permission Assignment

  • Practice Questions

  • References

  • Microsoft Learn Documentation

  • Blog Posts

  • Video Resources

  • Base Application Examples

  • Summary

  • Answer Key - Practice Questions

  • Chapter 2: BC Admin & Automation API - Quizzes & Exercises

  • Admin Center and CSP Quiz

    2 attempts allowed

  • Automation APIs Quiz

    2 attempts allowed

  • Configuration Packages and Extensions Quiz

    2 attempts allowed

  • Telemetry and Performance Quiz

    2 attempts allowed

  • Exercise: Create Company via API

  • Exercise: Extension Management

  • Exercise: Configuration Package Lifecycle

  • Business Central Performance Toolkit

  • Table of Contents

  • Introduction

  • Understanding Performance Testing

  • Why Performance Testing Matters

  • Performance Testing vs Functional Testing

  • Common Performance Issues

  • Performance Testing Personas

  • Performance Toolkit Overview

  • What is the Performance Toolkit?

  • BCPT Architecture

  • The Three BCPT Components

  • Prerequisites and Requirements

  • Getting Started with BCPT

  • Installing the VS Code Extension

  • Setting Up Your First Project

  • Connecting to Your Environment

  • Installing Sample Tests

  • Creating Performance Test Scenarios

  • Test Codeunit Structure

  • Normal Subtype Tests

  • Test Subtype Tests (UI Scenarios)

  • The BCPT Test Context

  • Measuring Scenarios with StartScenario and EndScenario

  • Simulating User Behavior with UserWait

  • Real-World Example: Create Sales Order

  • Parameterized Test Scenarios

  • Why Use Parameters?

  • Implementing the BCPT Test Param Provider Interface

  • GetDefaultParameters Method

  • ValidateParameters Method

  • Using Parameters in Test Logic

  • Real-World Example: Purchase Order with N Lines

  • Configuring Test Suites

  • Understanding BCPT Suites

  • Suite Configuration Settings

  • Adding Test Lines to Suites

  • User Delay Configuration

  • Delay Between Iterations

  • Tags for Comparison Testing

  • Real-World Example: 50-User Trading Scenario

  • Running Performance Tests

  • Single Run Mode

  • Full Suite Execution

  • Running from VS Code

  • Running via PowerShell

  • Background vs Foreground Execution

  • Monitoring Test Progress

  • Analyzing Performance Results

  • Understanding Result Metrics

  • Baseline Comparison

  • SQL Statement Analysis

  • Duration Analysis

  • Identifying Performance Regressions

  • Log Entries and Drill-Down

  • Exporting Results to Excel

  • Telemetry and Power BI Integration

  • Enabling Azure Application Insights

  • BCPT Telemetry Signals

  • Installing the Power BI Performance Report

  • KQL Queries for Performance Analysis

  • Creating Custom Dashboards

  • Regression Testing Workflows

  • Establishing Baselines

  • Before and After Testing

  • Version Upgrade Testing

  • Extension Impact Analysis

  • Real-World Example: Detecting Extension Regression

  • Advanced Testing Techniques

  • Multi-Session Testing

  • Workload Simulation Patterns

  • Testing with Different Data Volumes

  • Concurrent User Simulation

  • Deadline-Based Testing

  • Performance Profiling Integration

  • CI/CD Pipeline Integration

  • AL-Go for GitHub Integration

  • Azure DevOps Integration

  • Automated Performance Gates

  • Continuous Performance Monitoring

  • Real-World Example: GitHub Actions Workflow

  • Best Practices

  • Test Design Best Practices

  • Suite Configuration Best Practices

  • Data Management Best Practices

  • Analysis Best Practices

  • Common Pitfalls to Avoid

  • Troubleshooting

  • Common Errors and Solutions

  • Performance Test Failures

  • Connection Issues

  • Debugging Test Scenarios

  • Performance Terms and Definitions

  • MB-820 Exam Tips

  • Key Concepts to Memorize

  • Common Exam Questions

  • Practice Scenarios for Exam

  • Exercises and Practice Questions

  • Exercise 1: Creating Your First Test Scenario

  • Exercise 2: Parameterized Testing

  • Exercise 3: Regression Detection

  • Exercise 4: Multi-User Load Testing

  • Practice Questions

  • Answers to Practice Questions

  • References

  • Microsoft Documentation

  • GitHub Resources

  • Community Resources

  • Summary

  • Chapter 3: BC Performance Toolkit - Quizzes & Exercises

  • BCPT Fundamentals Quiz

    2 attempts allowed

  • Test Scenarios and Configuration Quiz

    2 attempts allowed

  • Performance Analysis Quiz

    2 attempts allowed

  • Advanced BCPT Topics Quiz

    2 attempts allowed

  • Exercise: Creating Your First Test Scenario

  • Exercise: Regression Detection Workflow

  • Exercise: BCPT Suite Configuration

  • Business Central Cloud Migration Tool

  • Table of Contents

  • Introduction

  • Understanding Cloud Migration

  • Why Migrate to the Cloud?

  • Migration vs New Implementation

  • Supported Source Systems

  • Cloud Migration Benefits

  • Cloud Migration Architecture

  • How the Migration Tool Works

  • Data Replication Pipeline

  • Azure Data Factory Integration

  • Integration Runtime Components

  • Change Tracking Mechanism

  • Prerequisites and Planning

  • System Requirements

  • License Requirements

  • Network Requirements

  • User Permissions

  • Database Prerequisites

  • Data Cleanup Recommendations

  • Planning Your Migration

  • Company Selection Strategy

  • Extension Migration Planning

  • Storage Capacity Planning

  • Advanced Multi-Stage Strategy

  • Migration Timeline Best Practices

  • Migration Setup - Assisted Setup

  • Step 1: Sign In to Microsoft 365

  • Step 2: Access Business Central Online

  • Step 3: Run Cloud Migration Setup

  • Step 4: Accept Terms and Conditions

  • Step 5: Product Selection

  • Step 6: SQL Connection Setup

  • Step 7: Integration Runtime Installation

  • Step 8: SQL Connection String

  • Step 9: Select Companies to Migrate

  • 9.2 Finishing the Setup

  • 10. Running Cloud Migrations

  • 10.1 The Cloud Migration Management Page

  • 10.2 Running the Initial Migration

  • Starting the Initial Migration

  • Migration Phases

  • What Happens During Migration

  • 10.3 Monitoring Migration Progress

  • Real-Time Monitoring Options

  • 10.4 Migration Logs and Diagnostics

  • Accessing Migration Logs

  • Diagnostic Tools

  • 10.5 Handling Migration Errors

  • Error Handling Strategy

  • Common Error Scenarios and Solutions

  • 📋 MB-820 Exam Focus: Memorize common errors, their root causes, and the troubleshooting steps.

  • 10.6 Running Incremental Migrations

  • What Are Incremental Migrations?

  • Running an Incremental Migration

  • Scheduling Automatic Incremental Migrations

  • 11. Data Upgrade Process

  • 11.1 When Data Upgrade Is Required

  • 11.2 Running the Data Upgrade

  • 11.3 Post-Upgrade Validation

  • 12. Completing the Migration - Cutover

  • 12.1 Planning the Cutover

  • 12.2 Running the Final Migration

  • 12.3 Cutover Validation

  • 12.4 Go-Live

  • 12.5 Disabling Cloud Migration

  • 13. Post-Migration Tasks

  • 13.1 User Setup and Permissions

  • 13.2 Record Links and Attachments

  • 13.3 Integration Setup

  • 13.4 Report Layouts and Customizations

  • 13.5 Job Queue and Scheduled Tasks

  • 14. Troubleshooting Guide

  • 14.1 Setup and Configuration Issues

  • Issue: Cannot Access Cloud Migration Setup

  • Issue: Source Product Not Listed in Setup

  • 14.2 Integration Runtime Issues

  • Issue: Integration Runtime Installation Fails

  • Issue: Integration Runtime Won’t Register

  • Issue: Integration Runtime Shows “Stopped” or “Disconnected”

  • 14.3 Connection and Authentication Errors

  • Issue: Cannot Connect to Source SQL Server

  • Issue: SQL Authentication Fails

  • 14.4 Data Replication Errors

  • Issue: Change Tracking Not Enabled

  • Issue: Table Replication Times Out

  • Issue: Schema Mismatch Errors

  • 14.5 Performance Issues

  • Issue: Migration Taking Too Long

  • 15. Best Practices

  • 15.1 Planning Best Practices

  • 15.2 Technical Best Practices

  • 15.3 Migration Execution Best Practices

  • 15.4 Testing Best Practices

  • 15.5 Common Pitfalls to Avoid

  • 16. Cloud Migration Terms and Definitions

  • 17. MB-820 Exam Tips and Key Concepts

  • 17.1 Key Concepts to Memorize

  • 17.2 Common Exam Question Topics

  • 17.3 Sample Exam-Style Questions (Practice)

  • 17.4 Study Tips

  • 18. Exercises and Practice Questions

  • Exercise 1: Planning a Cloud Migration

  • Exercise 2: Configuring Migration Setup

  • Exercise 3: Running and Monitoring Migration

  • Exercise 4: Troubleshooting Migration Issues

  • Practice Questions (20 Questions)

  • Detailed Answers to Practice Questions

  • 19. References and Further Reading

  • 20. Conclusion

  • Chapter 4: BC Cloud Migration Tool - Quizzes & Exercises

  • Migration Fundamentals Quiz

    2 attempts allowed

  • Migration Setup and Configuration Quiz

    2 attempts allowed

  • Running and Monitoring Migrations Quiz

    2 attempts allowed

  • Cutover and Post-Migration Quiz

    2 attempts allowed

  • Exercise: Planning a Cloud Migration

  • Exercise: SQL Server Preparation

  • Exercise: Troubleshooting Migration Issues

  • Exercise: Migration Components Mnemonic

  • MB-820 Exam Cram: Create New Companies in Business Central

  • Table of Contents

  • Introduction

  • Understanding Companies in Business Central

  • What is a Company?

  • Companies vs. Environments

  • When to Create Multiple Companies

  • Creating a New Company

  • Prerequisites and Permissions

  • The Create New Company Wizard

  • Company Templates Explained

  • Step-by-Step Company Creation

  • Creating Companies via the Automation API

  • Company Setup and Configuration

  • Company Information Page

  • Assisted Company Setup Wizard

  • General Ledger Setup

  • Area-Specific Setup Pages

  • Configuration Packages and RapidStart Services

  • What are Configuration Packages?

  • The Configuration Worksheet

  • Creating a Configuration Package

  • Exporting and Importing Packages

  • Applying Configuration Packages

  • Best Practices for Configuration Packages

  • Copying Companies

  • When to Copy a Company

  • Performance Considerations

  • The Copy Process

  • Limitations and Gotchas

  • Developer Topics: Working with Companies in AL

  • The ChangeCompany Method

  • CompanyName() Function

  • Working with Company Records

  • Real-World Code Examples

  • Intercompany Transactions

  • Understanding Intercompany

  • Setting Up Intercompany Partners

  • Intercompany Chart of Accounts

  • Posting Intercompany Transactions

  • Managing the Intercompany Inbox/Outbox

  • Contoso Coffee Demo Data

  • What is Contoso Coffee?

  • Installing Demo Data

  • Available Modules

  • Company Administration

  • Renaming Companies

  • Deleting Companies

  • Company Badges

  • User Access and Permissions

  • Hands-On Exercises

  • Exercise 1: Create a Company with Production Data

  • Exercise 2: Create and Apply a Configuration Package

  • Exercise 3: Using ChangeCompany in AL Code

  • Exercise 4: Set Up Intercompany Transactions

  • MB-820 Exam Tips

  • Key Concepts to Know

  • Common Exam Scenarios

  • Practice Questions

  • Question 1

  • Question 2

  • Question 3

  • Question 4

  • Question 5

  • Question 6

  • Question 7

  • Question 8

  • Question 9

  • Question 10

  • Question 11

  • Question 12

  • Question 13

  • Question 14

  • Question 15

  • Question 16

  • Question 17

  • Question 18

  • Question 19

  • Question 20

  • Answers to Practice Questions

  • Answer 1

  • Answer 2

  • Answer 3

  • Answer 4

  • Answer 5

  • Answer 6

  • Answer 7

  • Answer 8

  • Answer 9

  • Answer 10

  • Answer 11

  • Answer 12

  • Answer 13

  • Answer 14

  • Answer 15

  • Answer 16

  • Answer 17

  • Answer 18

  • Answer 19

  • Answer 20

  • References

  • Microsoft Learn Documentation

  • Video Reference

  • Base Application Code Examples

  • Summary

  • Chapter 5: Create New Companies - Quizzes & Exercises

  • Company Creation & Configuration Quiz

    2 attempts allowed

  • ChangeCompany & Intercompany Quiz

    2 attempts allowed

  • Exercise: Company Management Scenarios

  • Integrating Business Central with Outlook

  • Table of Contents

  • Introduction

  • Understanding the Outlook Add-in

  • What is the Business Central Outlook Add-in?

  • Add-in Components

  • 1. Contact Insights Add-in

  • 2. Document View Add-in

  • System Requirements

  • Supported Outlook Versions

  • Deployment Methods

  • Method 1: Centralized Deployment (Recommended)

  • Method 2: Individual User Installation

  • Method 3: Manual Installation (On-Premises)

  • Choosing the Right Deployment Method

  • Technical Configuration

  • Exchange Online Configuration

  • Exchange Server Configuration

  • Microsoft Entra ID Setup

  • Business Central Server Configuration

  • Nested App Authentication (NAA)

  • Working with the Outlook Add-in

  • Contact Insights Features

  • Document View Features

  • Creating Documents from Outlook

  • Managing Incoming Documents

  • File Attachments

  • Optimization and Performance

  • Updating Outlook

  • Installing WebView2

  • Browser Requirements

  • Performance Best Practices

  • Developer Topics

  • Understanding the Add-in Architecture

  • Manifest Management

  • Microsoft Graph API Integration

  • Exchange Web Services

  • Real-World Code Example: Outlook Add-In Services

  • Real-World Code Example: Exchange Add-in Setup

  • Multi-Environment and Multi-Company Scenarios

  • Switching Between Environments

  • Working with Multiple Companies

  • Customizing for Multiple Environments

  • Troubleshooting

  • Common Issues and Solutions

  • Add-in Not Starting

  • Authentication Problems

  • Page Not Supported Errors

  • Shared Mailbox Limitations

  • Related Microsoft 365 Integrations

  • Excel Add-in Integration

  • Teams Integration

  • Power BI Integration

  • MB-820 Exam Tips

  • Key Concepts to Memorize

  • Outlook Add-in Components

  • Deployment Methods

  • Requirements

  • Technical Configuration

  • Common Exam Questions

  • Exercises

  • Exercise 1: Deploy the Outlook Add-in via Centralized Deployment

  • Exercise 2: Create a Sales Quote from Outlook

  • Exercise 3: Process Incoming Documents from Outlook

  • Exercise 4: Configure Outlook Add-in for Multiple Environments

  • Practice Questions

  • Answers to Practice Questions

  • References

  • Microsoft Learn Documentation

  • Base Application Code References

  • Video Resources

  • Summary

  • Chapter 6: Outlook Integration - Quizzes & Exercises

  • Outlook Add-in Fundamentals Quiz

    2 attempts allowed

  • Outlook Configuration & Deployment Quiz

    2 attempts allowed

  • Exercise: Outlook Integration Scenarios

  • Integrating Business Central with Microsoft Teams

  • Table of Contents

  • Introduction

  • Understanding the Teams Integration

  • What is the Business Central App for Teams?

  • Integration Components

  • 1. Interactive Cards

  • 2. Contact Search

  • 3. Share to Teams

  • 4. Business Central Tabs

  • System Requirements

  • Licensing Requirements

  • Installing the Business Central App for Teams

  • Method 1: Direct Link Installation

  • Method 2: From Teams App Store

  • Method 3: From Business Central

  • Centralized Deployment for Organizations

  • Working with Cards

  • Understanding Business Central Cards

  • Sharing Records in Conversations

  • Using Share to Teams

  • Viewing Card Details

  • Card Data Visibility Settings

  • Searching for Contacts

  • Command Box Search

  • Message Compose Box Search

  • Contact Card Features

  • Viewing Interactions and Documents

  • Business Central Tabs in Teams

  • Adding Tabs from Recommended Content

  • Adding Tabs Using Page Links

  • Managing and Customizing Tabs

  • Tab Permissions and Access

  • Settings and Multi-Environment Scenarios

  • Accessing Settings

  • Switching Companies and Environments

  • Working with Multiple Companies

  • Administration and Configuration

  • Managing Teams Integration

  • URL Previews Policy

  • Privacy and Compliance

  • Information Barriers and DLP

  • Developer Topics

  • Understanding the Integration Architecture

  • Extending Teams Cards

  • Approach 1: Field Groups (Recommended)

  • Approach 2: Event Subscribers

  • Customizing Card Fields with Events

  • Adding Recommended Content to Tabs

  • Real-World Code Example: Teams Customizations

  • Page Summary Provider

  • Page Action Provider

  • Guest and External User Scenarios

  • Sharing Cards with Guests

  • Guest Experience Differences

  • Guest App Installation

  • Troubleshooting

  • Common Issues and Solutions

  • Links Not Expanding into Cards

  • Authentication and Sign-in Issues

  • Tab Visibility Problems

  • Language and Localization Issues

  • Related Integrations

  • Outlook Integration

  • Excel Add-in Integration

  • Power BI Integration

  • MB-820 Exam Tips

  • Key Concepts to Memorize

  • Integration Components

  • Installation Methods

  • Requirements

  • Developer Events

  • Common Exam Questions

  • Exercises

  • Exercise 1: Install and Configure the Business Central App for Teams

  • Exercise 2: Share Business Central Records and Create a Tab

  • Exercise 3: Extend Teams Cards with Custom Fields

  • Exercise 4: Configure Recommended Content for Teams Tabs

  • Practice Questions

  • Answers to Practice Questions

  • References

  • Microsoft Learn Documentation

  • Microsoft Learn Training

  • Code Examples

  • Video Resources

  • Summary

  • Chapter 7: Teams Integration - Quizzes & Exercises

  • Teams Integration Fundamentals Quiz

    2 attempts allowed

  • Teams Cards, Tabs & Developer Quiz

    2 attempts allowed

  • Exercise: Teams Integration Scenarios

  • MB-820 Exam Cram: Tables and Table Extensions in Business Central

  • Table of Contents

  • Introduction

  • Understanding Tables in Business Central

  • What is a Table?

  • Table Architecture Overview

  • Table Types

  • 1. Normal Tables

  • 2. Temporary Tables

  • 3. System Tables

  • 4. Virtual Tables

  • System Fields

  • Creating Tables in AL

  • Table Syntax and Structure

  • Table Properties

  • Field Definition and Properties

  • Data Types in AL

  • Simple Data Types

  • Text Data Types

  • Complex Data Types

  • Field Classes: Normal, FlowField, and FlowFilter

  • Normal Fields

  • FlowFields

  • FlowFilter Fields

  • Data Classification

  • Using Snippets for Table Creation

  • Keys and Indexes

  • Understanding Primary Keys

  • Secondary Keys

  • Clustered vs Non-Clustered Keys

  • Clustered Index

  • Non-Clustered Index

  • Unique Keys

  • Keys with Included Fields

  • Columnstore Indexes

  • Key Performance Considerations

  • Field Groups

  • DropDown Field Group

  • Brick Field Group

  • Adding Field Groups in Extensions

  • Table Triggers

  • Table-Level Triggers

  • Field-Level Triggers

  • Trigger Execution Order

  • Real-World Table Examples from Base App

  • Customer Table Analysis

  • Item Table Analysis

  • Table Extensions

  • What is a Table Extension?

  • Table Extension Syntax

  • Adding Fields to Existing Tables

  • Adding Keys in Table Extensions

  • Adding Field Groups in Extensions

  • Extension Limitations and Constraints

  • Using Snippets for Table Extensions

  • Real-World Table Extension Examples

  • Service Customer Table Extension

  • Subscription Billing Customer Extension

  • Retention Policies

  • Understanding Retention Policies

  • Why Retention Policies Matter

  • Setting Up Retention Policies

  • Retention Period Interface

  • Retention Policy Filtering Interface

  • Retention Policy Deleting Interface

  • Adding Custom Tables to Retention Policies

  • Real-World Retention Policy Implementation

  • Best Practices

  • Table Design Best Practices

  • Key Design Best Practices

  • Extension Best Practices

  • Retention Policy Best Practices

  • MB-820 Exam Tips

  • Key Concepts to Memorize

  • Common Exam Questions

  • Exercises

  • Exercise 1: Create a Custom Table

  • Exercise 2: Add Keys and Field Groups

  • Exercise 3: Create FlowFields

  • Exercise 4: Create a Table Extension

  • Exercise 5: Extend with Keys and Field Groups

  • Exercise 6: Add FlowFields to Extension

  • Exercise 7: Implement Table Triggers

  • Exercise 8: Implement Retention Policy for Custom Table

  • Exercise 9: Custom Retention Policy Deleting Interface

  • Practice Questions

  • Answers to Practice Questions

  • References

  • Microsoft Learn Documentation

  • Microsoft Learn Training Modules

  • Code Examples

  • Video Resources

  • Summary

  • Chapter 8: Tables and Table Extensions - Quizzes & Exercises

  • Table Fundamentals Quiz

    2 attempts allowed

  • Table Extensions & Advanced Topics Quiz

    2 attempts allowed

  • FlowFields & Retention Policies Quiz

    2 attempts allowed

  • Exercise: Table Design

  • MB-820 Exam Cram: Pages and Page Extensions in Business Central

  • Table of Contents

  • Introduction

  • Understanding Pages in Business Central

  • What is a Page?

  • Page Architecture Overview

  • Page Types

  • Page vs Table Relationship

  • Creating Pages in AL

  • Page Syntax and Structure

  • Page Properties

  • Using Snippets for Page Creation

  • Layout Section Deep Dive

  • Areas

  • Groups

  • Fields and Controls

  • Parts and FactBoxes

  • Repeaters for List Display

  • Actions Section Deep Dive

  • Action Areas

  • Action Types

  • Action Properties

  • Promoted Actions

  • Action Groups

  • Page Triggers

  • Page-Level Triggers

  • Field-Level Triggers

  • Action Triggers

  • Page Extensions

  • What are Page Extensions?

  • Page Extension Syntax

  • Placement Keywords

  • Modifying Existing Controls

  • Moving Controls

  • Real-World Example: Customer Card Extension

  • Role Centers and Profiles

  • Understanding Role Centers

  • Profile Objects

  • Page Customization Objects

  • Customization Layers

  • Views on Pages

  • Creating Views

  • Views in Page Extensions

  • Advanced Topics

  • SourceTableView and Filters

  • RunObject vs RunPageLink

  • Editable and Enabled Properties

  • Visible Property and Dynamic UI

  • AboutTitle and AboutText

  • Bonus: Page Scripting Tool

  • What is Page Scripting?

  • Recording Scripts

  • Playback and Validation

  • Power Fx Integration

  • Best Practices for Page Scripting

  • Common Scenarios and Solutions

  • Scenario 1: Making a Field Required with Visual Indicator

  • Scenario 2: Conditional Field Visibility

  • Scenario 3: Running a Report from a Page Action

  • Scenario 4: Drill-Down to Related Records

  • Scenario 5: Page Part Communication

  • MB-820 Exam Tips

  • Key Concepts to Memorize

  • Common Exam Questions

  • Exercises

  • Exercise 1: Create a Custom List Page

  • Exercise 2: Create a Page Extension

  • Exercise 3: Create a Document Page

  • Exercise 4: Create a Profile with Page Customization

  • Practice Questions

  • Answers to Practice Questions

  • References

  • Microsoft Learn Documentation

  • Microsoft Learn Training Modules

  • Page Scripting Resources

  • Video Resources

  • Summary

  • Chapter 9: Pages and Page Extensions - Quizzes & Exercises

  • Page Types & Structure Quiz

    2 attempts allowed

  • Page Extensions & Actions Quiz

    2 attempts allowed

  • Page Triggers & Customization Quiz

    2 attempts allowed

  • Exercise: Page Development

  • MB-820 Exam Cram: Reports, Report Extensions, and Queries in Business Central

  • Table of Contents

  • Introduction

  • Understanding Reports in Business Central

  • What is a Report?

  • Report Architecture Overview

  • Report Types

  • 1. Document Reports

  • 2. Analysis Reports

  • 3. Processing-Only Reports

  • Report Properties

  • Creating Reports in AL

  • Report Syntax and Structure

  • Dataset Definition

  • Data Items and Columns

  • DataItemLink and DataItemLinkReference

  • Request Pages

  • Report Triggers

  • Using Snippets for Report Creation

  • Report Layouts

  • Layout Types Overview

  • RDLC Layouts

  • Word Layouts

  • Excel Layouts

  • The Rendering Section

  • Multiple Layouts per Report

  • Custom Report Layouts

  • Processing-Only Reports

  • When to Use Processing-Only Reports

  • Processing-Only Report Examples

  • Real-World Report Examples from Base App

  • Customer Top 10 List Analysis

  • Standard Sales Invoice Analysis

  • Salesperson Commission Report Analysis

  • Report Extensions

  • What is a Report Extension?

  • Report Extension Syntax

  • Adding Columns to Existing Data Items

  • Adding New Data Items

  • Modifying Data Items with Triggers

  • Extending Request Pages

  • Adding New Layouts

  • Report Extension Limitations

  • Real-World Report Extension Examples

  • Service Document Entries Extension

  • Customer Top 10 with Email Extension

  • Report Substitution

  • When to Use Substitution vs Extension

  • Implementing Report Substitution

  • Substitution Best Practices

  • Understanding Queries

  • What is a Query?

  • Query vs Report

  • Query Architecture

  • Query Properties

  • Creating Queries in AL

  • Query Syntax and Structure

  • Data Items in Queries

  • Columns and Filters

  • Joining Tables

  • Aggregation Methods

  • Sorting and Limiting Results

  • Real-World Query Examples from Base App

  • Top 10 Customer Sales Query

  • Top Customer Overview Query

  • Using Queries in Reports

  • Query-Based Report Pattern

  • Opening and Reading Query Data

  • Publishing Queries as Web Services

  • OData Query Exposure

  • Query Web Service Best Practices

  • Best Practices

  • Report Design Best Practices

  • Layout Best Practices

  • Extension Best Practices

  • Query Best Practices

  • Performance Considerations

  • MB-820 Exam Tips

  • Key Concepts to Memorize

  • Common Question Patterns

  • Watch Out For

  • Exercises

  • Exercise 1: Create a Basic Report with RDLC Layout

  • Exercise 2: Create a Report with Multiple Layouts

  • Exercise 3: Create a Processing-Only Report

  • Exercise 4: Create a Report Extension

  • Exercise 5: Create a Query with Aggregation

  • Exercise 6: Create a Query-Based Report

  • Exercise 7: Implement Report Substitution

  • Practice Questions

  • Answers to Practice Questions

  • References

  • Microsoft Learn Resources

  • Sample Code Repositories

  • Community Resources

  • Companion Videos

  • Chapter 10: Reports, Report Extensions & Queries - Quizzes & Exercises

  • Reports & Layouts Quiz

    2 attempts allowed

  • Report Extensions & Queries Quiz

    2 attempts allowed

  • Exercise: Reports & Queries

  • MB-820 Exam Cram: Error Handling, RAD, Debugging, Permissions, and Application Areas

  • Table of Contents

  • Introduction

  • Chapter 1: Error Handling with Try Functions

  • Understanding Try Functions

  • TryFunction Attribute

  • Return Values and Error Handling

  • Database Write Restrictions

  • Getting Error Details

  • Base Application Examples: Try Functions

  • Best Practices for Try Functions

  • Chapter 2: Collectible Errors

  • Understanding Collectible Errors

  • ErrorBehavior Attribute

  • ErrorInfo Data Type

  • Collectible Errors API

  • Implementing Collectible Errors

  • Base Application Examples: Collectible Errors

  • Best Practices for Collectible Errors

  • Chapter 3: Rapid Application Development (RAD)

  • Understanding RAD

  • The rad.json File

  • What RAD Includes and Excludes

  • RAD Keyboard Shortcuts

  • RAD Limitations and Warnings

  • Best Practices for RAD

  • Chapter 4: Debugging and Deploying AL Extensions

  • Debugging Overview

  • Launch.json Configuration

  • Standard Debugging

  • Attach and Debug Next

  • Snapshot Debugging

  • Database Statistics in Debugger

  • Deploying Extensions

  • Best Practices for Debugging

  • Chapter 5: Entitlements and Permission Sets

  • Understanding the Permission Model

  • Permission Set Objects

  • Entitlement Objects

  • Permission Set Extensions

  • Base Application Examples: Permissions

  • Best Practices for Permissions

  • Chapter 6: Inherent Permissions

  • Understanding Inherent Permissions

  • InherentPermissions Attribute

  • InherentPermissionsScope

  • InherentEntitlements Property

  • Base Application Examples: Inherent

  • When to Use Inherent Permissions

  • Chapter 7: Extending Application Areas

  • Understanding Application Areas

  • Built-in Application Areas

  • Creating Custom Application Areas

  • Experience Tiers

  • ApplicationArea Property Inheritance

  • Best Practices for Application Areas

  • MB-820 Exam Tips

  • Error Handling (Try Functions & Collectible Errors)

  • RAD (Rapid Application Development)

  • Debugging

  • Permissions and Entitlements

  • Application Areas

  • Exercises

  • Exercise 1: Implement Error Handling with Try Function

  • Exercise 2: Collect Multiple Validation Errors

  • Exercise 3: Create a Permission Set Structure

  • Exercise 4: Implement Inherent Permissions

  • Exercise 5: Create Custom Application Area

  • Practice Questions

  • Question 1

  • Question 2

  • Question 3

  • Question 4

  • Question 5

  • Question 6

  • Question 7

  • Question 8

  • Question 9

  • Question 10

  • Question 11

  • Question 12

  • Question 13

  • Question 14

  • Question 15

  • Question 16

  • Question 17

  • Question 18

  • Question 19

  • Question 20

  • Answers to Practice Questions

  • Answer 1: C

  • Answer 2: B

  • Answer 3: B

  • Answer 4: C

  • Answer 5: B

  • Answer 6: C

  • Answer 7: C

  • Answer 8: B

  • Answer 9: C

  • Answer 10: B

  • Answer 11: B

  • Answer 12: B

  • Answer 13: C

  • Answer 14: B

  • Answer 15: B

  • Answer 16: C

  • Answer 17: B

  • Answer 18: C

  • Answer 19: B

  • Answer 20: C

  • References

  • Microsoft Learn Documentation

  • Microsoft Learn Training Modules

  • MVP Blog Posts and Community Resources

  • GitHub Repositories

  • YouTube Resources

  • Chapter 11: Error Handling, RAD, Debugging, Permissions & Application Areas - Quizzes & Exercises

  • Error Handling Quiz

    2 attempts allowed

  • RAD & Debugging Quiz

    2 attempts allowed

  • Permissions & Entitlements Quiz

    2 attempts allowed

  • Application Areas Quiz

    2 attempts allowed

  • Exercise: Error Handling & Development Tools

  • Final Exam: MB-820 Certification Preparation

  • Part 1: Install and Upgrade Codeunits (10 Questions)

    2 attempts allowed

  • Part 2: Admin Center and Automation APIs (10 Questions)

    2 attempts allowed

  • Part 3: Performance Toolkit (10 Questions)

    2 attempts allowed

  • Part 4: Cloud Migration Tool (10 Questions)

    2 attempts allowed

  • Part 5: Create New Companies (5 Questions)

    2 attempts allowed

  • Part 6: Outlook Integration (5 Questions)

    2 attempts allowed

  • Part 7: Teams Integration (5 Questions)

    2 attempts allowed

  • Part 8: Tables and Table Extensions (5 Questions)

    2 attempts allowed

  • Part 9: Pages and Page Extensions (5 Questions)

    2 attempts allowed

  • Part 10: Reports, Report Extensions & Queries (5 Questions)

    2 attempts allowed

  • Part 11: Error Handling, RAD, Debugging, Permissions & Application Areas (5 Questions)

    2 attempts allowed

  • Part 12: Cross-Topic Integration (10 Questions)

    2 attempts allowed

The Leanpub 60 Day 100% Happiness Guarantee

Within 60 days of purchase you can get a 100% refund on any Leanpub purchase, in two clicks.

Now, this is technically risky for us, since you'll have the book or course files either way. But we're so confident in our products and services, and in our authors and readers, that we're happy to offer a full money back guarantee for everything we sell.

You can only find out how good something is by trying it, and because of our 100% money back guarantee there's literally no risk to do so!

So, there's no reason not to click the Add to Cart button, is there?

See full terms...

Earn $8 on a $10 Purchase, and $16 on a $20 Purchase

We pay 80% royalties on purchases of $7.99 or more, and 80% royalties minus a 50 cent flat fee on purchases between $0.99 and $7.98. You earn $8 on a $10 sale, and $16 on a $20 sale. So, if we sell 5000 non-refunded copies of your book for $20, you'll earn $80,000.

(Yes, some authors have already earned much more than that on Leanpub.)

In fact, authors have earned over $14 million writing, publishing and selling on Leanpub.

Learn more about writing on Leanpub

Free Updates. DRM Free.

If you buy a Leanpub book, you get free updates for as long as the author updates the book! Many authors use Leanpub to publish their books in-progress, while they are writing them. All readers get free updates, regardless of when they bought the book or how much they paid (including free).

Most Leanpub books are available in PDF (for computers) and EPUB (for phones, tablets and Kindle). The formats that a book includes are shown at the top right corner of this page.

Finally, Leanpub books don't have any DRM copy-protection nonsense, so you can easily read them on any supported device.

Learn more about Leanpub's ebook formats and where to read them

Write and Publish on Leanpub

You can use Leanpub to easily write, publish and sell in-progress and completed ebooks and online courses!

Leanpub is a powerful platform for serious authors, combining a simple, elegant writing and publishing workflow with a store focused on selling in-progress ebooks.

Leanpub is a magical typewriter for authors: just write in plain text, and to publish your ebook, just click a button. (Or, if you are producing your ebook your own way, you can even upload your own PDF and/or EPUB files and then publish with one click!) It really is that easy.

Learn more about writing on Leanpub