60 Practice Questions & Answers
When creating a new table extension in Business Central, which property is mandatory to establish the relationship with the base table?
-
A
Name
-
B
SourceTable
-
C
TableNo
-
D
Extends
✓ Correct
Explanation
The 'Extends' property is mandatory in a table extension object to specify which base table is being extended. This establishes the relationship between the extension and the original table.
You need to add a field to an existing page without modifying the original page object. What is the best approach?
-
A
Modify the original page XML directly in the database
-
B
Use page customization through the UI only, never through code
-
C
Create a page extension using the Extends property
✓ Correct
-
D
Create a new standalone page that includes all original fields plus the new field
Explanation
Page extensions allow you to add fields, actions, and other controls to existing pages without modifying the original page object, which is the best practice in modern Business Central development.
In AL, what is the purpose of the 'var' keyword when declaring variables inside a procedure?
-
A
To declare optional parameters in function signatures
-
B
To declare local variables with scope limited to that procedure
✓ Correct
-
C
To declare variables with variable scope that changes at runtime
-
D
To declare global variables accessible from any object
Explanation
The 'var' keyword declares local variables with scope limited to the procedure in which they are declared. These variables exist only during the procedure's execution.
You are implementing a business rule where a sales order cannot be posted if the total amount exceeds a customer's credit limit. Where should this validation logic be placed for optimal performance?
-
A
In the OnValidate trigger of the Amount field in Sales Header
-
B
In a page action's OnAction trigger only
-
C
In the OnBeforePost trigger of the Sales Header table
✓ Correct
-
D
In the OnBeforeInsert trigger of the Sales Header table
Explanation
The OnBeforePost trigger is the appropriate location for posting validations as it executes just before the record is posted, preventing invalid data from being committed to the database.
What is the main advantage of using query objects in Business Central instead of directly querying tables with code?
-
A
Query objects eliminate the need for write permissions on tables
-
B
Query objects provide filtering, sorting, and aggregation capabilities with better performance and easier maintenance
✓ Correct
-
C
Query objects automatically encrypt sensitive data
-
D
Query objects can only be used in reports and not in code
Explanation
Query objects are optimized for data retrieval and provide built-in support for filtering, sorting, and aggregation, making them more efficient and maintainable than raw table queries in application code.
When implementing an event subscriber in AL, which trigger method is used to subscribe to a published event?
-
A
[SubscriberOnly] attribute on the codeunit declaration
-
B
[EventHandler] attribute with custom binding parameters
-
C
[PublishedEvent] attribute followed by SUBSCRIBE keyword
-
D
[EventSubscriber] attribute with the procedure signature matching the event
✓ Correct
Explanation
The [EventSubscriber] attribute is used to subscribe to published events. The procedure signature must match the event signature, including parameters and return types.
You need to display a confirmation dialog to the user asking whether they want to proceed with an action. Which method should you use?
-
A
Error() function with dialog parameter set to true
-
B
Dialog.Open() to create a custom dialog window
-
C
Message() function to show the dialog with automatic buttons
-
D
Confirm() function to display a yes/no confirmation dialog
✓ Correct
Explanation
The Confirm() function is specifically designed to display a yes/no confirmation dialog and returns a boolean value indicating the user's choice.
In a report object, what is the purpose of the 'RDLCLayout' property?
-
A
It defines the RDLC (Report Definition Language Client-side) XML layout for the report's visual design
✓ Correct
-
B
It references the dataset queries that populate the report with data
-
C
It contains the business logic for calculating report values before rendering
-
D
It specifies the Word document template to be used for rendering the report
Explanation
The RDLCLayout property contains the RDLC XML that defines how the report data is visually presented, including formatting, sections, and control placement.
What does the 'FlowField' property on a table field accomplish?
-
A
It enables real-time synchronization of the field value across all connected clients
-
B
It creates a calculated field that automatically sums or counts related records from another table based on a defined FlowFilter
✓ Correct
-
C
It ensures the field flows from one page section to another automatically
-
D
It defines how the field's value flows through the posting routine
Explanation
A FlowField is a calculated field that dynamically computes values like sums or counts based on FlowFilters. It doesn't store data but calculates it on-demand from related tables.
You are developing a codeunit that performs critical financial operations. Which access modifier should you use to ensure it can only be called from specific approved objects?
-
A
Local - restricts visibility to the codeunit itself
-
B
Protected - allows inheritance-based access only
-
C
Internal - restricts access to the same application package only
✓ Correct
-
D
Public - allows any object to call it
Explanation
The 'Internal' access modifier restricts a codeunit's accessibility to objects within the same application package, providing control over which objects can invoke critical operations.
When using the FILTER function on a record variable in AL, what data type must the filter expression be?
-
A
A FilterPageBuilder object
-
B
Text with specific syntax matching Business Central filter syntax
✓ Correct
-
C
An integer representing predefined filter constants
-
D
A boolean expression that evaluates to true or false
Explanation
The FILTER function accepts a Text parameter with Business Central's specific filter syntax (e.g., 'Status=Open'). The filter is applied to the record variable's current view.
What is the primary purpose of using a 'Codeunit' with the 'SingleInstance' property set to true?
-
A
It ensures only one instance of the codeunit exists across the entire system, maintaining state between calls
✓ Correct
-
B
It prevents the codeunit from being compiled into multiple instances in the database
-
C
It allows the codeunit to be called only once per session before requiring re-instantiation
-
D
It restricts the codeunit to be used by a single user at a time
Explanation
Setting 'SingleInstance' to true creates a codeunit that maintains its state (global variables) throughout the user's session, useful for caching and performance optimization.
In AL development, which method is used to create a new record in a table without triggering validation triggers?
-
A
INSERT(SkipTriggers := true) method
-
B
NEW() method which automatically bypasses triggers
-
C
Insert(true) method with the validate parameter set to false
-
D
INIT() followed by INSERT(false) methods
✓ Correct
Explanation
The INIT() method initializes a record with default values, and INSERT(false) inserts it without running validation triggers. This combination allows insertion without triggering standard validations.
You need to handle an error that occurs during record deletion and prevent the deletion from completing. Which trigger should you use?
-
A
OnAfterDelete trigger to log the error
-
B
OnDeleteRecord trigger which is page-specific and prevents deletion
-
C
OnDelete trigger which is deprecated but still functional
-
D
OnBeforeDelete trigger to validate conditions before deletion
✓ Correct
Explanation
The OnBeforeDelete trigger executes before the deletion occurs, allowing you to add conditions and use ERROR() to prevent the deletion if business rules are violated.
What is the correct syntax for declaring a procedure with multiple optional parameters in AL?
-
A
procedure MyProc(param1: Text; param2?: Text; param3?: Integer)
-
B
procedure MyProc(param1: Text; [Optional] param2: Text; [Optional] param3: Integer)
-
C
procedure MyProc(param1: Text; param2: Text := 'default'; param3: Integer := 0)
✓ Correct
-
D
procedure MyProc(param1: Text; *param2: Text; *param3: Integer)
Explanation
Optional parameters in AL are declared by providing a default value using the ':=' operator. Parameters without defaults are required, while those with defaults are optional.
When developing a page that displays customer information, you want to ensure specific actions are only visible to users with the appropriate permissions. How should you implement this?
-
A
Use the AccessByPermission property on the page action to check specific permission sets
✓ Correct
-
B
Create separate pages for different user roles and manage access through page permissions
-
C
Implement custom authentication logic in the OnOpenPage trigger
-
D
Use the Visible property with a condition checking user permissions or use the Enabled property
Explanation
The AccessByPermission property on page actions allows you to specify required permission sets, automatically hiding or disabling the action based on the user's permissions.
In Business Central, what is the primary difference between a 'List' page type and a 'Card' page type?
-
A
List pages are used for read-only displays; Card pages are used for data entry only
-
B
List pages display multiple records in a table format; Card pages display a single record with detailed fields
✓ Correct
-
C
Card pages can only display one record and cannot be filtered; List pages show all records without filtering
-
D
Both page types function identically; the difference is purely cosmetic and UI-related
Explanation
List pages use a repeater control to show multiple records in tabular format for browsing and selection, while Card pages display a single record with all its details for editing or viewing.
You are implementing a feature that requires executing a long-running process without blocking the user interface. Which approach should you use?
-
A
Create a background task using the TaskScheduler.CreateTask() method
✓ Correct
-
B
Use the SLEEP() function to pause execution periodically
-
C
Execute the process in the OnBeforePost trigger which runs asynchronously
-
D
Move the logic to a job queue entry or use the COMMIT statement strategically
Explanation
TaskScheduler.CreateTask() allows you to schedule a codeunit to run asynchronously in the background, preventing the UI from blocking while long-running operations complete.
What is the purpose of the 'UpdatePropagation' property on a table field?
-
A
It controls whether changes to the field automatically propagate to related tables through foreign keys
-
B
It specifies whether field updates trigger recalculation of FlowFields in related records
✓ Correct
-
C
It determines if the field value updates synchronously or asynchronously across the network
-
D
It manages how updates to this field affect calculated fields and reports using the data
Explanation
UpdatePropagation controls whether changes to a field trigger recalculation of FlowFields in related tables, ensuring that calculated fields remain accurate when source data changes.
In a table extension, you want to add a new field that references another table. Which property must you use on the field to establish this relationship?
-
A
ForeignKey property to create a database-level constraint
-
B
TableRelation property to define the referenced table and key field relationship
✓ Correct
-
C
Link property to specify the join condition
-
D
RelatedTable property to map the extension field to an existing table
Explanation
The TableRelation property establishes a relationship between a field and another table's key field, enabling validation and lookup functionality in the user interface.
You need to create a report that aggregates sales data by month and department. Which report element should you use for grouping and aggregation?
-
A
Separate report sections with manual aggregation formulas in the RDLC layout
-
B
A DataItem with grouping properties and aggregate functions in the column expressions
✓ Correct
-
C
A Query object filtered by month and department before passing to the report
-
D
Multiple separate DataItems, one for each grouping level
Explanation
DataItems in reports support hierarchical grouping through the DataItemLink property and aggregate functions (SUM, COUNT, AVG) in column expressions for efficient data summarization.
When implementing a webhook integration in Business Central, which object type should you create to receive and process incoming HTTP requests?
-
A
An API page or API query with appropriate HTTP methods exposed
✓ Correct
-
B
A Codeunit with [Subscriber] attribute listening to HTTP events
-
C
A custom web service object type called 'Webhook'
-
D
A Page of type API with the WebhookReceiver property enabled
Explanation
API pages and queries allow you to expose Business Central data through REST APIs and handle incoming HTTP requests. They support standard HTTP methods like GET, POST, PATCH, and DELETE.
What is the correct way to iterate through a filtered recordset and perform operations on each record in AL?
-
A
Use FOREACH loop directly on the record variable
-
B
Use a simple FOR loop with indexed record access
-
C
Use WHILE loop to check NEXT() method return value
✓ Correct
-
D
Use the ForEach() method available on all record variables
Explanation
The standard pattern in AL is to use a WHILE loop with the NEXT() method, which returns true if a record exists and false at the end, allowing iteration through filtered recordsets.
In the Business Central mobile app, which page type provides the optimal user experience for data entry on small screens?
-
A
Card pages with vertical layout and simplified field grouping
✓ Correct
-
B
List pages optimized for horizontal scrolling
-
C
Report pages which automatically adapt to mobile screens
-
D
Worksheet pages designed specifically for mobile platforms
Explanation
Card pages provide the best mobile experience with their vertical, single-column layout and ability to group related fields, making them suitable for small screens and touch-based interaction.
You are developing a feature that must validate customer credit limits during sales order posting. This validation requires checking multiple conditions and should abort posting if conditions are not met. Which mechanism is most appropriate?
-
A
Configure automated validation rules in the application setup with role-based enforcement
-
B
Implement validation in a table trigger and use the ERROR() function to abort posting
✓ Correct
-
C
Create a validation page that users must complete before posting
-
D
Add custom validation logic in the sales posting codeunit's OnBeforePost event subscriber
Explanation
Implementing validation in OnBeforePost triggers with ERROR() function ensures that posting is aborted before any database changes occur, preventing invalid data from being committed.
When creating a new table extension in Business Central, which property is mandatory to establish the relationship between the extension and the base table?
-
A
TableId
-
B
Source
✓ Correct
-
C
Caption
-
D
Name
Explanation
The Source property must reference the base table that is being extended. This property is mandatory and establishes the inheritance relationship.
What is the primary purpose of using the OnModify trigger in a table?
-
A
To prevent users from modifying specific fields
-
B
To validate data before insertion
-
C
To log changes to an audit table
-
D
To execute code before a record is modified and before validation occurs
✓ Correct
Explanation
The OnModify trigger fires before a record is updated in the database, occurring before validation checks. This allows for pre-modification logic.
Which AL data type is best suited for storing a reference to another record without creating a hard dependency?
-
A
Text
-
B
Code
-
C
GUID
-
D
RecordId
✓ Correct
Explanation
RecordId stores a reference to a record that can be used later to retrieve the record dynamically, allowing flexible record references without direct table dependencies.
In Business Central development, what does the RunModal method do when applied to a page object?
-
A
Validates all fields on the page before displaying it
-
B
Displays the page as a non-modal dialog that allows background operations
-
C
Exports the page data to Excel format
-
D
Opens the page and returns control only after the user closes it
✓ Correct
Explanation
RunModal opens a page in modal mode, meaning the user must close it before control returns to the calling code. This differs from Run, which opens non-modally.
When implementing a custom lookup in a page, which event should you subscribe to in order to modify the lookup behavior?
-
A
OnValidate
-
B
OnAssistEdit
-
C
OnLookup
✓ Correct
-
D
OnDrillDown
Explanation
The OnLookup event is triggered when a user initiates a lookup action, allowing you to customize the lookup page or logic before the standard lookup executes.
What is the correct syntax to define a field group in a table to control which fields appear in a list view by default?
-
A
fieldgroup(Brick; FieldName) { }
-
B
fieldgroup(listheader; FieldName) { }
✓ Correct
-
C
fieldgroup(GridLayout; FieldName) { }
-
D
fieldgroup(Dropdown; FieldName) { }
Explanation
The 'listheader' fieldgroup designates which fields display in list views. Other fieldgroups like 'Brick' are used for card view layouts in the Web client.
In AL, which method would you use to retrieve all records from a table filtered by a specific field value without modifying the original filter?
-
A
Copy
✓ Correct
-
B
Next
-
C
FindSet
-
D
FindFirst
Explanation
The Copy method creates a copy of the current record variable with its filters intact, allowing independent operations without affecting the original variable's state.
What is the purpose of using the [ServiceEnabled] attribute on a procedure in a page or table in Business Central?
-
A
To mark the procedure for background job execution
-
B
To restrict the procedure to administrative users only
-
C
To encrypt the procedure in the compiled code
-
D
To enable the procedure for use in Power Automate and Power Apps
✓ Correct
Explanation
The [ServiceEnabled] attribute makes a procedure callable from external services like Power Automate, Power Apps, and the Business Central API.
When should you use the GetRec method instead of directly assigning one record variable to another?
-
A
When working with temporary records only
-
B
When you need to clear all filters from the source record
-
C
When copying records across different databases
-
D
When you want to preserve the current filters on both variables after assignment
✓ Correct
Explanation
GetRec is rarely used in modern AL, but direct assignment copies both the record data and filters. Using Copy method is preferred for independent filter management.
In a Business Central page, what is the difference between a Group and a GridGroup control?
-
A
GridGroup is only available in the mobile client
-
B
GridGroup allows multi-column layouts while Group uses single-column layouts
✓ Correct
-
C
Group is for organizing fields vertically while GridGroup organizes them horizontally
-
D
Group is deprecated and GridGroup is the modern control structure
Explanation
GridGroup controls enable multi-column grid layouts for better space utilization, while regular Group controls arrange fields in a single vertical column.
Which AL statement would you use to conditionally execute code only if a record exists and pass control to an error scenario if not?
-
A
FindOrCreate(rec);
-
B
if rec.FindFirst then Process() else Error('Not found');
✓ Correct
-
C
rec.FindFirst or Error('Not found');
-
D
Assert(rec.FindFirst, 'Not found');
Explanation
The if...then...else statement is the standard AL syntax for conditional execution. FindFirst returns a boolean indicating whether a record was found.
What is the primary advantage of using a table buffer instead of directly querying the database in a performance-critical scenario?
-
A
Table buffers automatically encrypt sensitive data
-
B
Table buffers enforce data validation rules automatically
-
C
Table buffers provide real-time synchronization with external systems
-
D
Table buffers reduce database round trips by holding records in memory
✓ Correct
Explanation
A temporary table buffer holds data in memory, reducing the number of database calls and improving performance in loops or complex operations.
When implementing a codeunit with procedure events, what does the [IntegrationEvent] attribute signify?
-
A
The procedure requires special permissions to execute
-
B
The procedure automatically synchronizes data with external systems
-
C
The procedure can only be called from integration points in the system
-
D
The procedure is designed to be subscribed to by other extensions and is safe for subscription
✓ Correct
Explanation
The [IntegrationEvent] attribute marks a procedure as a public event designed for external subscribers, indicating it is safe and stable for third-party extensions to hook into.
In Business Central, what is the purpose of the [TransactionModel] attribute on a codeunit?
-
A
To restrict access to the codeunit based on user permissions
-
B
To define the transactional behavior for database operations
✓ Correct
-
C
To enable multi-language support within the codeunit
-
D
To specify whether the codeunit can be called from background jobs
Explanation
The [TransactionModel] attribute controls whether a codeunit executes within a single transaction or manages its own transactions, affecting data consistency and rollback behavior.
What does the Validate method do when called on a field in AL code?
-
A
Compares the field value against a lookup table
-
B
Checks the syntax of the field value
-
C
Formats the field value according to system settings
-
D
Executes the OnValidate trigger for the field and any related validations
✓ Correct
Explanation
The Validate method triggers the OnValidate event for a field, executing any validation logic defined for that field as if the user had entered the value.
Which permission object type in Business Central is used to control access to specific tables and their operations?
-
A
Report Permission
-
B
Page Permission
-
C
Table Permission
✓ Correct
-
D
Codeunit Permission
Explanation
Table Permissions control read (R), insert (I), modify (M), and delete (D) operations on tables. These are fundamental to data access control in Business Central.
In AL, when you use the 'var' keyword to declare a variable, what scope does it have?
-
A
Session scope persistent across multiple procedure calls
-
B
Global scope accessible throughout the entire session
-
C
Local scope limited to the current procedure or trigger
✓ Correct
-
D
Module scope shared across all procedures in the same object
Explanation
Variables declared with 'var' are local to the procedure or trigger block in which they are declared and are destroyed when execution leaves that scope.
What is the primary function of the FlowFields feature in Business Central tables?
-
A
To enable data flow between multiple tables during import operations
-
B
To store calculated values that are persisted in the database
-
C
To display calculated values based on related records without storing them
✓ Correct
-
D
To automatically generate workflow approval chains
Explanation
FlowFields compute values dynamically from related tables using formulas like Sum, Count, or Lookup, displaying results without consuming storage space.
When creating a report in Business Central, what is the primary purpose of the dataset section?
-
A
To define the visual layout of the report output
-
B
To specify the tables and fields that provide data for the report
✓ Correct
-
C
To set the fonts and colors used in the report design
-
D
To configure how the report is distributed to users
Explanation
The dataset section defines the data source, including tables, filters, and columns that populate the report. The rendering section handles the visual layout.
What is the correct way to throw a custom error in AL that will be displayed to the user?
-
A
Alert('Error message');
-
B
Message('Error message');
-
C
throw new Exception('Error message');
-
D
Error('Error message');
✓ Correct
Explanation
The Error function in AL displays a message to the user and halts execution. Message and Alert display information without stopping execution.
In the context of Business Central extensions, what is the purpose of an AppSource submission checklist?
-
A
To compress and optimize the extension code for faster downloads
-
B
To automatically test the extension against the latest version of Business Central
-
C
To register the extension with local regulatory authorities
-
D
To ensure the extension meets Microsoft's quality, security, and functionality standards before publication
✓ Correct
Explanation
The AppSource submission checklist verifies compliance with Microsoft's requirements for performance, security, data handling, and user experience before marketplace approval.
What is the difference between using Insert(true) and Insert(false) when creating a new record in AL?
-
A
Insert(true) is synchronous while Insert(false) is asynchronous
-
B
Insert(true) triggers the OnInsert event while Insert(false) does not
-
C
Insert(true) runs with triggers while Insert(false) bypasses triggers
✓ Correct
-
D
Insert(true) commits the transaction immediately while Insert(false) defers it
Explanation
The boolean parameter controls trigger execution: Insert(true) runs triggers, Insert(false) skips them for performance when triggers are unnecessary.
In Business Central, what does the [Scope] attribute control when applied to a global variable in a codeunit?
-
A
Whether the variable persists across multiple codeunit invocations
-
B
The data type classification for encryption purposes
-
C
How the variable is included in backup and restore operations
-
D
Whether the variable is accessible from external extensions and API calls
✓ Correct
Explanation
The [Scope] attribute determines if a global variable is available to external callers (Public) or only within the same object (Internal), affecting API exposure.
When implementing a page action that should only appear in the Web client but not on mobile devices, what property or attribute would you use?
-
A
[Platform(Web)]
✓ Correct
-
B
[Visible]
-
C
[RunOnClient]
-
D
[ApplicationArea]
Explanation
The [Platform] attribute filters UI elements to display only on specified clients. Using [Platform(Web)] restricts an action to the Web client only.
What is the primary role of the app.json file in a Business Central development project?
-
A
To store encrypted credentials for connecting to the development environment
-
B
To define the extension's metadata, dependencies, and runtime configuration
✓ Correct
-
C
To list all AL source files included in the project
-
D
To configure the build output and compilation settings
Explanation
The app.json file contains critical metadata including the app name, publisher, version, dependencies on other extensions, and runtime requirements like minimum AL language version.
You are developing a page extension for the Customer list page in Business Central. You need to add a new action that calls a codeunit procedure. Which page element should you use to define this action?
-
A
A field control with trigger properties
-
B
A group element in the grid layout
-
C
A repeater element with custom styling
-
D
An action group within the actions section
✓ Correct
Explanation
Actions are defined within action groups in the actions section of a page. These actions can trigger procedures from codeunits or perform other operations when clicked by the user.
When implementing table triggers in Business Central, you want to prevent deletion of records that have related entries in another table. Which trigger should you use to implement this validation?
-
A
OnBeforeDelete
-
B
OnDelete
✓ Correct
-
C
OnModify
-
D
OnInsert
Explanation
The OnDelete trigger fires when a record is being deleted. You can use it to perform validation logic and call Error() to prevent deletion if conditions are not met.
You need to create a query object that returns summarized sales data grouped by customer and filtered by date range. Which query element property allows you to aggregate data across multiple rows?
-
A
Method property set to Sums
-
B
DataSource property with Join
-
C
GroupTotalType property
✓ Correct
-
D
FilterExpression with aggregate functions
Explanation
The GroupTotalType property in query columns enables aggregation of data (such as Sum, Count, Average) across groups, making it essential for summarized reporting.
You are creating a codeunit that processes batch transactions. You need to ensure that if any error occurs during processing, all changes are rolled back. Which statement should you use?
-
A
Set the TransactionType property to Automatic
-
B
COMMIT; followed by ROLLBACK;
-
C
You must wrap the code in a try-catch block with ROLLBACK in the catch
✓ Correct
-
D
ROLLBACK;
Explanation
In AL, transaction control is handled implicitly, but you should use try-catch blocks to handle errors and explicitly call ROLLBACK() in the catch block to undo changes when errors occur.
When developing a report that displays customer transactions, you need to filter records based on a user-selected date range. How should you define this requirement?
-
A
Add a filter field directly to the data item
-
B
Implement client-side filtering in the report viewer
-
C
Use a report parameter and filter the dataset based on that parameter
✓ Correct
-
D
Create a separate query object to pre-filter the data
Explanation
Report parameters allow users to provide filter criteria at runtime. The report dataset should be filtered based on these parameters in the OnPreDataItem trigger or dataset definition.
You are implementing a permission set for a new role. The role requires access to specific tables but not others. Which security object should you use to grant table-level permissions?
-
A
Security Policy
-
B
Permission Set
✓ Correct
-
C
User Group
-
D
Entitlement
Explanation
Permission Sets define what objects users can access and what operations they can perform. They contain individual permission entries that specify Read, Insert, Modify, and Delete access to specific tables and other objects.
In a page extension, you want to modify the behavior of an existing action without replacing it entirely. Which approach should you use?
-
A
Use the modify keyword to override the action's properties and triggers
✓ Correct
-
B
Use JavaScript customization in the web client
-
C
Add a new action with a different name and rename the original action
-
D
Create a completely new page object that extends the base page
Explanation
The modify keyword in page extensions allows you to change properties and triggers of existing page elements without completely replacing them, maintaining backwards compatibility.
You need to implement a web service that allows external systems to create and update sales orders in Business Central. Which approach is most appropriate?
-
A
Use SOAP services with manual XML mapping
-
B
Develop a custom codeunit exposed as a web service endpoint
-
C
Build an integration point using Power Automate connectors only
-
D
Create an API page based on the Sales Order table
✓ Correct
Explanation
API pages are the modern, recommended approach for exposing Business Central data to external systems. They automatically handle REST operations (GET, POST, PATCH, DELETE) and provide OData compliance.
When debugging AL code in Visual Studio Code, you want to inspect the value of a variable at a specific point in execution. Which debugging feature should you use?
-
A
Print statement in the code output
-
B
Log entries in the Event Log table
-
C
Session snapshots and audit trails
-
D
Watch window and conditional breakpoints
✓ Correct
Explanation
The Watch window in the AL debugger allows you to monitor variable values during execution, and conditional breakpoints let you pause execution when specific conditions are met.
You are designing a table structure where a field value must be unique across all records. How should you enforce this uniqueness constraint?
-
A
Add a Key property with the Unique keyword set to true
✓ Correct
-
B
Use a view with a DISTINCT filter on the field
-
C
Implement a trigger that checks for duplicate values before insertion
-
D
Create a separate lookup table with a foreign key relationship
Explanation
Keys in Business Central tables can be marked as unique with the Unique property. This database-level constraint ensures that no duplicate values can exist for that key combination.