Moderate Level Business Central Interview Questions

Overview of Microsoft Dynamics 365 Business Central

Moderate-level Microsoft Dynamics 365 Business Central interview questions are designed to evaluate a candidate’s practical understanding of Business Central processes, posting logic, and AL development concepts. At this level, interviewers expect candidates to move beyond definitions and demonstrate how things work in real projects.

Unlike beginner interviews, moderate-level interviews often include scenario-based questions, why-based questions, and basic code discussions. Candidates are expected to explain functional flows, understand system behavior, and read or write simple AL code confidently.


1. Explain the End-to-End Sales Order Process in Business Central

The sales order process in Business Central starts with creating a sales order and ends with posting the sales invoice. Each step impacts multiple modules.

The typical flow includes:

• Sales Order creation
• Reservation and shipment of items
• Posting shipment (inventory impact)
• Posting invoice (financial impact)

When the invoice is posted, Business Central automatically creates General Ledger entries, Customer Ledger entries, and Item Ledger entries. This demonstrates ERP integration between sales, inventory, and finance.

2. What Happens in the System When a Sales Invoice Is Posted?

Posting a sales invoice converts the document into permanent ledger entries. This is one of the most common interview questions at moderate level.

When a sales invoice is posted:

• Customer balance is updated
• Revenue is posted to the General Ledger
• Inventory is reduced and valued
• VAT / tax entries are created

All postings are controlled by posting groups and setup tables.

3. Explain Posting Groups with a Practical Example

Posting groups determine how transactions are mapped to G/L accounts. They separate operational logic from accounting structure.

For example:

• Customer Posting Group → controls receivable accounts
• General Business Posting Group → controls revenue accounts

When a sales invoice is posted, Business Central combines these posting groups to determine which G/L accounts should be used.

4. Difference Between Item Ledger Entry and Value Entry

Item Ledger Entries track quantities, while Value Entries track cost and value.

• Item Ledger Entry answers what happened to inventory quantity
• Value Entry answers what is the financial impact of inventory movement

Both entries together provide complete inventory and costing information.

5. Explain FlowFields in Business Central

FlowFields are virtual fields that calculate values dynamically instead of storing them in the database. They are commonly used for totals and balances.

Examples include:

• Customer Balance
• Inventory Quantity on Hand

FlowFields improve performance and avoid data duplication.

6. Difference Between FlowField and Normal Field

A normal field stores data physically in the table, while a FlowField calculates data on demand.

FlowFields:

• Are read-only
• Use CALCSUMS or LOOKUP formulas
• Require CALCFIELDS to retrieve values

7. Explain CALCFIELDS with an Example

CALCFIELDS is used to calculate FlowField values.

Example:

AL

Customer.CalcFields(Balance);
Message('Customer Balance: %1', Customer.Balance);
   

Without CALCFIELDS, FlowField values will not be available in AL code.

8. Explain SETFILTER and SETRANGE with Code Example

SETRANGE is used for simple filters, while SETFILTER is used for complex conditions.

Example:

AL

Item.SetRange("Inventory Posting Group", 'RAW');
Item.SetFilter(Description, '*Steel*');
   

This example filters items based on posting group and description pattern.

9. Difference Between FINDFIRST, FINDLAST, and FINDSET

These functions control how records are retrieved:

• FINDFIRST → retrieves first matching record
• FINDLAST → retrieves last matching record
• FINDSET → retrieves multiple records for looping

Example:

AL

if Item.FindSet() then
  repeat
    // Process item
  until Item.Next() = 0;
   

10. Explain Event-Driven Programming in Business Central

Business Central uses an event-driven architecture to support extension-based development. Instead of modifying standard code, developers subscribe to events.

This approach ensures upgrade safety and clean customization.

11. What Is an Event Subscriber? (With Example)

An event subscriber reacts to an event published by another object.

Example:

AL

[EventSubscriber(ObjectType::Codeunit, Codeunit::"Sales-Post", 'OnAfterPostSalesDoc', '', false, false)]
local procedure AfterSalesPost()
begin
  Message('Sales document posted successfully');
end;
   

This code executes after a sales document is posted.

12. Difference Between Integration Events and Business Events

• Integration Events are designed for external integrations and extensions
• Business Events represent important business actions

Both allow customization without modifying base code.

13. Explain Page Extension with Example

Page extensions allow adding fields or actions to existing pages.

Example:

AL

pageextension 50100 CustomerExt extends "Customer Card"
{
  layout
  {
    addlast(General)
    {
      field("Customer Category"; Rec."Customer Category")
      {
        ApplicationArea = All;
      }
    }
  }
}
   

14. Explain Table Extension with Example

Table extensions add fields to existing tables without modifying them.

Example:

AL

tableextension 50101 CustomerTableExt extends Customer
{
  fields
  {
    field(50100; "Customer Category"; Code[20])
    {
      DataClassification = CustomerContent;
    }
  }
}
   

15. Explain the Difference Between Validate and Assigning a Field Value

VALIDATE triggers business logic, while direct assignment does not.

Example:

AL

Rec.Validate("Credit Limit", 50000);
Rec."Credit Limit" := 50000; // No validation
   

Using VALIDATE ensures consistency and rule enforcement.

16. What Is Posting Preview?

Posting Preview allows users to simulate posting and view expected ledger entries without committing data.

It helps validate setup and prevent posting errors.

17. Explain Permissions and Permission Sets

Permission sets define what data and actions a user can access.

They control security at table, page, report, and codeunit level.

18. Explain Journals in Business Central

Journals are used to post transactions manually.

Common journals include:

• General Journal
• Item Journal
• Payment Journal

Each journal posts data to ledgers based on setup and posting groups.

19. What Is CalcFormula in Business Central?

CalcFormula defines how a FlowField value is calculated. It specifies the source table, calculation type, and filter logic used to derive the value dynamically.

Common CalcFormula types include Sum, Count, Lookup, Exist, and Average. CalcFormula ensures that calculated values remain consistent and up to date without storing redundant data.

20. What Is a FlowFilter and Why Is It Used?

A FlowFilter is a special type of filter field used in combination with FlowFields. It allows users or code to dynamically influence how a FlowField is calculated.

FlowFilters are commonly used for date ranges, dimensions, or locations to analyze balances or quantities under specific conditions.

21. What Is a Date Filter in Business Central?

A Date Filter is a FlowFilter used to restrict data based on date ranges. It is commonly applied to FlowFields such as balances or quantities.

For example, applying a date filter allows users to see customer balances or inventory values for a specific period.

22. Explain DT2DMY, DM2DATE, and Related Date Functions

DT2DMY extracts the day, month, or year from a Date value. It is commonly used when date components are required separately.

Example:

AL

Year := DT2DMY(Today, 3);
   

DM2DATE is used to construct a Date value from day, month, and year components. These functions are useful in reporting and date-based logic.

23. Which Tables Are Impacted When a Sales Order Is Posted?

When a sales order is posted, multiple tables are updated to reflect operational and financial impact.

Key tables include:

• Sales Invoice Header and Sales Invoice Line
• Customer Ledger Entry
• Detailed Customer Ledger Entry
• General Ledger Entry
• Item Ledger Entry
• Value Entry

This demonstrates the ERP integration between sales, inventory, and finance.

24. Which Tables Are Impacted When a Service Order Is Posted?

Posting a service order updates service, financial, and inventory-related tables.

Common tables include:

• Service Invoice Header and Line
• Service Ledger Entry
• Customer Ledger Entry
• General Ledger Entry
• Item Ledger Entry (if inventory is involved)

Service postings follow similar accounting principles as sales postings.

25. What Is the Difference Between Sales Header and Sales Line Tables?

Sales Header stores document-level information such as customer, dates, and totals. Sales Line stores line-level details such as items, quantities, and prices.

Both tables work together to represent a complete sales document.

26. What Is the Purpose of Detailed Customer Ledger Entry?

Detailed Customer Ledger Entries provide a breakdown of how customer ledger entries are applied, adjusted, or closed.

They are important for reconciliation and audit analysis.

27. What Is a Value Entry and Why Is It Important?

Value Entries store inventory cost information. They link inventory movements to financial impact.

They are critical for accurate inventory valuation and cost of goods sold calculations.

28. How Does Business Central Determine G/L Accounts During Posting?

Business Central uses posting groups and setup tables to determine which G/L accounts to post to.

Customer, vendor, inventory, and general posting groups work together to select correct accounts automatically.

29. Real-Time Scenario: You Added a Field on Sales Order – How Do You Flow It to G/L Entries?

This is a very common interview question.

The correct approach is:

• Add the field using a table extension on Sales Header or Sales Line
• Subscribe to the relevant posting event in the sales posting codeunit
• Transfer the field value to G/L Entry through event subscribers

Example approach:

AL

[EventSubscriber(ObjectType::Codeunit, Codeunit::"Sales-Post", 'OnAfterInsertGLEntry', '', false, false)]
local procedure CopyCustomField(var GLEntry: Record "G/L Entry"; SalesHeader: Record "Sales Header")
begin
  GLEntry."Custom Field" := SalesHeader."Custom Field";
end;
   

This ensures upgrade-safe data flow from documents to ledger entries.

30. What Is COMMIT and When Should It Be Avoided?

COMMIT forces database changes to be saved immediately. In Business Central, COMMIT should be used carefully.

Unnecessary COMMIT usage can break transaction integrity and cause inconsistent data.

31. What Is a TryFunction?

TryFunctions allow developers to handle errors gracefully without stopping execution.

They are commonly used in integration and background processing scenarios.

32. Difference Between ERROR and TryFunction

ERROR stops execution immediately, while TryFunction allows controlled error handling.

Choosing the correct approach is important for system stability.

33. What Is a Temporary Table?

Temporary tables store data in memory and are cleared automatically. They are commonly used for calculations and reporting.

They do not write data to the database.

34. What Is the Difference Between Temporary and Normal Tables?

Normal tables store persistent data, while temporary tables are session-based.

Temporary tables improve performance for intermediate data processing.

35. What Is the Purpose of Keys and Indexes?

Keys and indexes control how data is sorted and retrieved efficiently.

Proper key design improves performance and filtering.

36. How Do You Optimize AL Code in Business Central?

Code optimization in Business Central focuses on improving performance, scalability, and maintainability. Interviewers ask this question to evaluate whether a candidate understands how AL code behaves in a real, multi-user ERP environment.

Optimization is not only about writing faster code, but about writing code that minimizes database calls, reduces locking, and scales well as data volume grows.

Key code optimization practices include:

• Using SETCURRENTKEY and proper filters before looping records
• Avoiding unnecessary FINDSET / FINDFIRST calls inside loops
• Fetching only required fields using SetLoadFields
• Using temporary tables for intermediate calculations
• Avoiding excessive COMMIT statements

Example of optimized looping:

AL

Item.SetCurrentKey("Inventory Posting Group");
Item.SetRange("Inventory Posting Group", 'RAW');
Item.SetLoadFields("No.", Description);

if Item.FindSet() then
  repeat
    // Process item
  until Item.Next() = 0;
   

This approach minimizes database load and improves performance.

37. What Is the Performance Profiler in Business Central?

The Performance Profiler is a built-in tool used to analyze and measure the performance of AL code and user actions. It helps identify slow operations, excessive database calls, and inefficient logic.

The profiler records execution details such as:

• Time taken by pages, reports, and codeunits
• SQL statements executed during processing
• AL method execution duration
• Call stack and object interaction

This information helps developers pinpoint performance bottlenecks.

38. How Do You Use Performance Profiler to Improve Code?

To optimize performance using the profiler, developers typically:

• Run the profiler while executing a slow process
• Identify objects or methods consuming the most time
• Analyze SQL queries generated by AL code
• Refactor logic to reduce database interactions

For example, replacing multiple FINDFIRST calls with a single FINDSET loop or applying proper keys can significantly improve performance.

39. Common Performance Mistakes in AL Code

Interviewers often ask about common mistakes to evaluate practical experience.

Typical performance issues include:

• Looping without filters
• Not using appropriate keys
• Calculating FlowFields repeatedly inside loops
• Using GET incorrectly when records may not exist
• Excessive MESSAGE calls in processing logic

Avoiding these mistakes is critical in production systems.

Final Notes

Moderate-level interview questions focus on how Business Central works in real scenarios. Interviewers expect candidates to explain process flows, understand posting behavior, and read or write basic AL code confidently.

Once comfortable with these topics, candidates are ready to move on to Advanced Level Business Central Interview Questions, which focus on architecture, performance, and complex design decisions.

Hot Topics in Business Central

Next Steps in Business Central