MB-820 flashcards
MB-820 · Build recall with a focused review session.
32 cards. Read the term and the definition here. The deck at the top of this page is optional.
- Business Central deployment options
- The same AL application codebase can be delivered as Microsoft-hosted SaaS online, as on-premises server installations, or as Docker containers used mainly for development and automated testing.
- Essentials versus Premium editions
- Essentials covers financials, sales, purchasing, inventory, and projects. Premium adds manufacturing and service management. Both editions run on the same platform and share the AL extension model.
- AppSource app versus per-tenant extension
- AppSource apps are published globally, validated by Microsoft, and installable by any tenant. Per-tenant extensions are uploaded privately to a single tenant and are not distributed through the marketplace.
- Business Central admin center
- The web portal at businesscentral.dynamics.com/<tenant>/admin where administrators create and manage environments, upload and deploy extensions, configure telemetry, and control capacity and updates.
- AL language
- The only development language for Business Central. AL replaced C/AL, compiles into .app extension packages, and is written in Visual Studio Code using the AL Language extension.
- app.json manifest file
- The JSON file at the root of every AL project declaring the extension's id GUID, name, publisher, version, platform and application minimum versions, idRanges, dependencies, and resource exposure policy.
- idRanges property
- It declares the object ID interval an extension may use. Ranges must not overlap the base application, Microsoft apps, or other installed extensions, so two extensions never claim the same object ID.
- Symbols in .alpackages
- Downloaded .app symbol packages representing the base application and dependencies. They are required for compilation and are refreshed from the target environment with the AL: Download Symbols command.
- launch.json authentication values
- The AL launch configuration accepts AAD for cloud or Entra ID on-premises, Windows for integrated authentication, UserPassword for server credentials, and NavUserPassword for Business Central credentials.
- Sandbox versus production environment
- Sandbox environments are non-production copies where debugging and testing occur. Production environments hold live data and do not allow debugger attachment. Both receive extensions through the admin center.
- Schema synchronization on publish
- Publishing compares the extension's tables with the database. Online tenants reject destructive changes such as removing fields or altering field types, so schema changes must remain backward compatible.
- TableExtension object
- It adds fields, keys, and fieldgroups to an existing base table without modifying the base object. The Extends property names the target table, and base fields cannot be removed.
- FlowField CalcFormula types
- FlowFields are calculated at runtime, and CalcFormula uses Sum, Count, Average, Min, Max, Lookup, or Exist, usually constrained by a filter that references fields of the current record.
- SumIndexFields on keys
- Listing fields as SumIndexFields on a key maintains a sum index so Sum and Count flowfields and flowfilters are answered from maintained totals instead of scanning detailed records.
- PageExtension placement keywords
- Inside layout, actions, and views blocks, controls are added with addfirst, addlast, addbefore, addafter, modify, movefirst, and moveafter, each referencing the name of an existing control.
- Temporary table type
- A table declared with TableType = Temporary stores records in memory for the current session only, never writes to the database, and is commonly used as a buffer or report dataset.
- DataClassification property
- A tag required on table fields declaring data sensitivity, for example CustomerContent, EndUserIdentifiableInformation, SystemMetadata, or ToDo. AppSource validation and compliance reporting rely on these values.
- xRec system variable
- It holds the record values as they were last read from or written to the database, letting OnModify and OnValidate triggers compare old and new field values.
- SetLoadFields method
- It specifies which fields a query retrieves so the platform loads a partial record. Remaining fields are fetched on first access, cutting SQL traffic for wide tables.
- Codeunit.Run error trapping
- Codeunit.Run executes a codeunit in its own transaction scope and returns false when an error is raised, but the error is only trapped if no commit occurred inside that codeunit.
- IntegrationEvent attribute
- It marks a global procedure as an extensibility event publisher that other extensions can subscribe to. The IncludeSender and GlobalVar parameters control what the subscriber receives.
- IsHandled subscriber pattern
- The publisher passes a Boolean parameter by reference and checks it after raising the event. A subscriber that fully handles the case sets the flag to true so default logic is skipped.
- Validate method and OnValidate
- Calling Record.Validate(Field, Value) assigns the value and fires the field's OnValidate trigger. Assigning the field directly without Validate skips the trigger and its business logic.
- AL Language extension
- The Visual Studio Code extension providing AL editing, IntelliSense, compilation, symbol download, publishing, and debugging. It is the only tool required to build Business Central extensions.
- Snapshot debugging
- It records the execution of a session on a cloud sandbox so breakpoints, call stacks, and variable values can be inspected afterwards, without keeping an interactive debugger attached.
- Code analyzers in AL
- CodeCop, UICop, AppSourceCop, and PerTenantExtensionCop run at compile time and report warnings and errors. Rules and severities are configured in app.json settings or a ruleset file.
- AL Profiler
- A sampling profiler in Visual Studio Code that captures the AL call tree and statement timings during a session, used to locate slow loops and excessive database calls.
- Test codeunit
- A codeunit whose procedures are marked with the Test attribute and executed by the test runner. It uses library functions to create and clean up test data in a sandbox environment.
- API page URL pattern
- API pages require APIPublisher, APIGroup, APIVersion, EntityName, and EntitySetName, and are addressed as /api/<publisher>/<group>/<version>/<entitySetName> over OData V4.
- OData and SOAP web services
- Pages, codeunits, and queries can be exposed as OData V4 or SOAP endpoints from the Web Services page. API pages use a separate, purpose-built OData contract instead.
- JsonObject and HttpClient
- The built-in types JsonObject, JsonArray, and JsonValue read and build JSON payloads, while the HttpClient type sends outbound HTTP REST requests to external services from AL code.
- Business events for integration
- Events published from AL with the BusinessEvent attribute can be subscribed to externally through Azure Service Bus, Event Grid, or Power Automate instead of polling the Business Central API.