Reference manual

Objects page

Glossary

The terms this manual uses for Prism for AL, in alphabetical order.

Term Meaning
App

An add-on (extension) to Business Central, as defined by Microsoft. Prism for AL also treats Base Application, System Application, Application, System and localizations as apps.

Synonym: Module.

Code graph

A graph database that Prism for AL builds from a workspace's syntax, references and flow. Features such as Find Inbound Flow, Find Outbound Flow and the procedural flow-graphs need it; see Declaration search feature matrix.

Its Graph detail is either Procedural (the default, a procedural flow graph) or Full (a full graph). See Code graph page.

Compilation unit A unit that Prism for AL parses on its own: an .al file, or an object in the SymbolReference.json of an .app file. A parse error affects only its own compilation unit; see Parse errors.
Control Panel The window Prism for AL starts in, where you open workspaces and manage the license, the package cache and settings. File › Control Panel in a workspace window shows it. See Control Panel.
Declaration Anything an AL object declares by name: a field, key, procedure, trigger, variable, parameter, label, enum value, page control or action, report or query column, and so on. Which find and flow commands a declaration offers depends on its kind; see Declaration search feature matrix.
Discovery An app.json or .app file that Prism for AL finds while it loads a workspace, with whether it was included, ignored or failed. See Discovery page.
Flow The paths that executing AL code might take (reachability). Prism for AL models flow as follows:
Topic Flow
Statements and expressions A statement has flow to the next statement (after ;), to its sub-statements, such as the branches of an if statement, and to its expressions, such as the if condition. A procedure call has flow to the called procedure.
Event publishers and subscribers A call to an event publisher has flow to all its subscribers.
Interface calls A call to an interface method has flow to every method that implements it.
Running objects A call such as Codeunit.Run(Codeunit::MyCodeunit) has flow to the codeunit's OnRun trigger, and likewise for other object types. A call such as Codeunit.Run(myVariable), where myVariable is a variable, has no flow to the OnRun trigger.
Triggers Flow reaches triggers. For example, myRec.Validate(MyField, 42) has flow to the OnValidate trigger of MyField.
Properties A property whose value is an AL expression has flow to that expression.
User actions A user action is a node of its own and can start a flow.
Full graph A code graph with Graph detail set to Full: nodes and edges for detailed syntax and flow, as well as procedural flow. Flow to fields, variables, parameters and other values needs it.
Inbound and outbound flow The direction of a flow search. Inbound flow is the code that can reach a declaration, found with Find Inbound Flow or Find Inbound Procedural Flow; outbound flow is the code a declaration can reach, found with Find Outbound Flow or Find Outbound Procedural Flow. See Flows window.
License and trial license A license key enables all features. A trial license enables all features until it ends, on the machine it was requested from. Without either, Prism for AL runs with limited features. See Activate license window and Trial license window.
Module See App.
Module dependencies A module can depend on another module in these ways:
  • Directly: declared in the dependencies element of its module metadata.
  • Application: a dependency on Application, declared in the application element.
  • Propagated: a dependency gained through dependency propagation, from a dependency on a module whose metadata sets propagateDependencies to true.
  • System: a dependency on the System module, declared in the platform element.
Module dependency graph The directed graph with modules as nodes and their dependencies as edges. See Module graph page.
Module metadata The data about a module in its app.json file, or in the NavxManifest.xml file of a package.
Namespace An AL namespace, such as Microsoft.Sales.Customer, that groups objects. A Prism Path includes it. See Namespaces page.
Package cache The folder where Prism for AL keeps the source files of every package it has read, so a package loads faster the next time. See Package cache page and Package cache and anti-virus.
Package file An .app file: the output of the AL compiler, which can be published to a Business Central server. Also called a package or symbol package.
Prism Path

A URI that names a declaration in an object. Prism Paths belong to a workspace, since declarations do, but workspaces that share code, such as the same version of Base Application, share most Prism Paths, so a Prism Path usually works across them.

Example: prism:table/microsoft.sales.customer.customer/field/name names the Name field of the Customer table.

Procedural flow Flow summed up per procedure and trigger. For example, when procedure Foo calls procedure Bar, Foo has procedural flow to Bar.
Procedural flow graph A code graph with Graph detail set to Procedural: it has procedural flow but no detailed syntax. It is the default, and far smaller than a full graph.
RIMD Short for the database operations Read (and in some cases Rename), Insert, Modify and Delete, much like CRUD (Create, Read, Update, Delete). See RIMD overview window.
Runtime package An encrypted package without source code. Prism for AL cannot read runtime packages; see Packages ignored when opening folder.
Symbol file The SymbolReference.json file inside a package. Prism for AL reads it when the package has no source code.
Topological order An order of modules in which every module comes after the modules it depends on, following the Module dependency graph. It is a natural order in which to read modules. The Objects panel sorts by it, and the Extended view applies extensions in it.
Universal Search The search that finds objects, members, Prism Paths, commands and pages from one box. Open it with Ctrl+T or Search › Search Everywhere… in a workspace window. See Universal Search.
Unresolved module A module that a workspace depends on but Prism for AL did not find, often because its symbols have not been downloaded. See Unresolved modules.
User action Something a user does in Business Central that runs code: opening or closing a page, selecting an action, inserting, modifying or deleting a record, validating, looking up or drilling down on a field, or running a report or XMLport. Find Inbound User Actions finds the user actions that can reach a procedure or trigger.
Workspace

In Visual Studio Code, a folder with an app.json and .al source files, or a .code-workspace file that lists several such folders.

In Prism for AL, any set of modules you open to view and analyze together: Visual Studio Code workspaces and the packages they depend on alike. Each workspace opens in its own Workspace window.

Workspace recording A .wrec file with what Statical needs to reproduce a problem with a workspace or folder, made with Help › Troubleshoot › Record Workspace… or Record Directory… in the Control Panel. A workspace recording leaves out .al files. See Troubleshoot menu item.