Read NAV code at a glance. Find everywhere it is used.

Prism for C/AL opens your Microsoft Dynamics NAV solution from exported text objects or from a mirror of your server, and shows it as structured, linked code you can search. You browse and analyse in Prism, and edit in C/SIDE.

All of an object, on one screen

C/SIDE opens a table's fields, a field's properties and its code each in a window of its own. Prism shows the object whole, every field with its properties and triggers in line, and every reference in the code links to its declaration, with a tooltip that says what it is.

Where used, down to where a field is assigned

Find usages of any object, procedure, field, key or variable across the whole solution. For a field, narrow them to where it is assigned a value, whether by :=, VALIDATE, EVALUATE, MODIFYALL or a VAR parameter.

Every write to a table, not counting temporary records

Tick the system functions to look for, such as INSERT, MODIFY and MODIFYALL, and Prism finds every call to them on the table across the solution. Then zoom in on physical usages: Prism knows which records are declared temporary, so the calls that never reach the database drop out.

Prism on your own code, free for 14 days

Universal Search

Open Universal Search with Search Everywhere (Ctrl+T) and type. One box finds objects, fields, procedures, triggers, keys and variables, the workspace's pages, its menu commands and the places you have just been.

Universal Search

One box for the whole solution

Type part of a name and the best matches come first, word starts and capitals ahead of the rest. Or type what you already know:

  • An id, a range or alternatives: 18, 50000..59999, 18|21, Sales*.
  • A type and a name or an id: cu 80, t18, form 21.
  • An object as code names it: CODEUNIT::"Sales-Post", or a web client address with ?page=22.

The preview shows the first lines of the selected object or member, coloured as in the object view. Enter opens it; Tab lists what else you can do with it, such as Find Usages or Copy Prism Path.

Universal Search

Prism for C/AL: the Ctrl+T Universal Search with the objects matching a name, and a preview of the selected one
Results grouped by kind, objects first, with the selected one previewed on the right.

Filters

Narrow it down with filter tokens

A filter token turns into a pill as you type a space after it, and pills combine. Type ? in the box to list them all.

  • k:table, k:field, k:procedure: kinds of object and member.
  • is:publisher, is:subscriber, is:obsolete, is:singleton, is:noprint: roles and flags.
  • v:NAVW1*: objects whose Version List has a matching tag.
  • of:50000..59999: the members of one object or an id range.
  • subtype:, pagetype:, in:view: codeunits by SubType, pages by PageType, the objects the object index shows.

Start with > for menu commands, @ for the open object's members, :120 for a line of it, or prism: for a Prism Path. Ctrl+Enter pins the search into a window of its own that stays open and copies its results.

Prism for C/AL: Universal Search narrowed by filter token pills
Filter tokens as pills: here the event publishers among the objects with a given Version List tag.

By name

Fields, procedures and events by name

Search › Fields by Name…, Procedures by Name… and Event Publishers… open the search pinned into a window and set to that kind, so you can locate code of interest directly by its name.

Prism for C/AL: search procedures by name
Search procedures with names that include xml.
Prism for C/AL: search fields by name
Search fields with names matching pattern desc*2, e.g. Description 2

Code lines

Find a line of code, or where an error message comes from

Search › Code lines… (Ctrl+Shift+F) searches every line of code with * and ? wildcards: in the open object, in the objects the object index shows, or in all of them. Results come in while it searches, a chip per object type hides the types you do not want, and the preview shows each match in its code.

A user reports an error message? Search › Text Constants by Content… finds the text constant it comes from, and Find Usages finds where it is raised.

Find code lines

Prism for C/AL: Search code lines
Search code lines matching pattern SETRANGE*Sell-to Customer No.
Prism for C/AL: Search text constants
Search text constants for error message You cannot create this type of document when Vendor 12345 is blocked with type Payment.

An MCP server for AI coding agents

An AI coding agent reads C/AL one text file at a time. Connected to Prism over MCP, it asks the solution Prism has already parsed: where a symbol is declared, every reference to it, what a procedure calls, and what an object depends on.

Tools

What an agent can ask

  • find_symbols: objects and members by regular expression, kind, id range and Version List.
  • find_references: every reference to a declaration, grouped by object, declaration and line. For an event publisher, its subscribers.
  • find_callees: the procedures, triggers and system functions a procedure or trigger calls.
  • find_object_dependencies and find_dependency_paths: what an object uses, what uses it, and how two objects are connected.
  • get_source_code and check_object_source: the source of an object or a single declaration, and a parse check of changed source.

Every answer names its declarations by Prism Path, such as prism:table/Customer/field/City/trigger/OnValidate. Paste one into the search box to go there in Prism and check what the agent found.

Prism for C/AL: the Tools list on the MCP Server page, grouped by category with each tool's description
The MCP Server page lists the tools by category, with the description an agent reads.

Connect

Connect your agent in a few minutes

Connect over HTTP. Press Start on the MCP Server page of a workspace window, and the agent's tool calls answer from the object store already open in Prism.

Start over stdio. The agent launches Prism's command-line tool itself. It works with Prism closed, and builds its own index of the object store on each launch.

The MCP client config card writes the entry for Visual Studio Code with GitHub Copilot, for Claude Code, or for any other MCP client, ready to copy.

MCP server

Prism for C/AL: the MCP client configuration for Visual Studio Code, from the MCP Server page
The MCP Server page gives you the client entry for your agent, ready to copy.

Solution overview

Open solution

Flexible options for opening a solution

Once you have installed Prism for C/AL, all you need to browse and analyse a solution is text objects. Prism offers a wide range of options for opening a solution:

  • Open file: opens a single .txt file exported with C/SIDE.
  • Open mirror: opens a mirror Prism keeps of the objects of a NAV database.
  • Open folder: opens any folder of NAV objects exported as text, subfolders included, such as a version control workspace.
  • Open Prism folder: opens a folder of NAV text objects in Prism's own layout. File › Open also reads the ReVision layout.
Prism for C/AL: Open file
Prism for C/AL: Open mirror
Prism for C/AL: Open folder
Prism for C/AL: Open Prism folder

Mirrors

Mirror your solutions to save time

Configure Prism mirrors for your NAV databases, so you are ready to analyse your code at any time.

  • Prism exports the objects through C/SIDE's finsql.exe and keeps the mirror in sync in the background.
  • Pick the service tier from the ones registered in the database (NAV 2013 R2 CU10 and later).
  • Test the database and service-tier connection before you save.
  • Restrict the mirror to the object ids your licence can export, and leave out objects by Version List tag.
  • Export your mirror definitions to a file, and import them on another machine.
  • Navigate to the object in C/SIDE.

Mirrors

Prism for C/AL can mirror code on a server

Objects

Find objects and their dependencies

Quickly locate objects with flexible object filtering: by name, number, number range, object type, granule, or properties such as obsolete objects and test codeunits. A status line says how many objects the filter shows, and what hides the rest.

Press Ctrl+Shift+E and the object index fills the window, with each object's Version List, date, source table, Modified flag and caption in columns you choose.

The Dependencies tab shows which objects use the current object, or which it uses, with a chip per kind of dependency, such as source table, table relation or event subscriber. Right-click an object to see exactly where.

Object index · Dependencies tab

Prism for C/AL object index
Filter objects by name, number, number ranges or combine with '|'. Click to view object. Right-click to invoke object level functionality.
Prism for C/AL: the object index filling the window, with Version List, Date and Source table columns
The object index filling the window, with its columns.
Prism for C/AL Using and Used By
Which objects use the current object (Used by) and which it uses (Uses), with a chip per kind of dependency. Right-click an object to see exactly where.

Solution dashboard

Open a workspace and the Solution page sums it up: objects, types, granules, Version List tags and parse errors, then cards for health, custom against stock, granule and id ranges, translation coverage, the largest custom objects, and what changed recently, by object date or Git commit. Click a count to list its objects; hide the cards you do not need. Solution page

Prism for C/AL: the Solution dashboard with its headline counts and cards

Reports

Save the object dependencies, the objects nothing references, and the duplicate ids that break a merge, each as a file for a spreadsheet. Reports page

Prism for C/AL: the Reports page with its three reports

Interop References (experimental)

Every DotNet, Automation and OCX type the solution uses, how often, its risk for a move to Business Central online, and the AL replacement where one is known. Interop References

Prism for C/AL: the Interop References page with its risk strip and the types grid

Dark or light, as Windows is

Prism follows the Windows dark or light theme, with Fluent windows, a rail of pages in every workspace window, and a colour-coded icon for each object type.

Prism for C/AL: a workspace window in the light theme

Rich code browsing experience

Object view

View it all, at a glance

Structure, colours, tooltips and links speed up code reading. Prism shows all the code—immediately. No need to open multiple windows to view field triggers or table relation details. Everything is linked, so you can navigate back and forth. Declaration identifiers have context menus (e.g. "Find usages") and identifiers that reference a declaration have rich tooltips and are linked to the declaration.

Right-click the object's heading for everything you can do with the object. The Source tab opens on the code you were reading.

Prism for C/AL: Structured object view, here a page action with a trigger
Tree-structured code view. Here a page action with a trigger. Click identifiers to navigate.
Prism for C/AL: View triggers, properties etc directly
Table field with table relation and trigger. Select the field name to Find Usages, or right-click it for more.

Object outline

Find your way in the current object

Outlines the current object for overview and navigation purposes. Use wildcard filter to restrict to what you are looking for.

  • Outlines current object contents.
  • Filter by name or number (supports wild-cards, number ranges and |.)
  • Choose which kinds of node to show, from the object's own, with a count for each, or a preset such as Data model, Code or Events.
  • Show global or local procedures only.
  • FlowFields and FlowFilters are marked with icons.
  • Click to navigate.
Prism for C/AL: Object outline
Object outline filtered to 60..80|amount

C/SIDE integration

Browse and analyse in Prism, edit in C/SIDE

Open objects in C/SIDE directly from Prism for C/AL for any objects in a mirror store. This enables a view-in-Prism-edit-in-C/SIDE way of working.

  • Available for mirror stores.
  • (Optional) In Prism, copy a line of code.
  • In Prism, click Design Object.
  • (Optional) In C/SIDE, search for the line of code.
  • In C/SIDE, edit and save the object.
  • In Prism, reload the store to reflect changes.
Prism for C/AL: Open and design object in C/SIDE
Open object in C/SIDE

Semantic search

Find usages

Find usages to gain detailed insight

Find usages of declarations (objects, procedures, fields, keys, variables etc) across your whole solution, including fields named in properties such as RunPageLink, SourceTableView and a report's DataItemLink. Save time with filters: Find out where a field is assigned a value.

Find usages

Prism for C/AL: find usages
Click a result to navigate.
Prism for C/AL: Find usages filter
Filter to where the field is assigned a value.

System function usages

How did we get this data into the database?

Find system function usages allows you to quickly answer questions like the one above. Select which instance methods you search for. For table functions like INSERT, save time by narrowing the result to non-temporary records. Prism counts a record as temporary when it is declared so, and on pages, forms, reports and XMLports with SourceTableTemporary or UseTemporary.

Prism for C/AL: Invoke find system function usages
1. Right-click an object in the object index and choose Find System Function Usages…
Prism for C/AL: Select system functions to find usages of
2. Select instance method(s) to search for
Prism for C/AL: Filter system function usages results to e.g. only show non-temporary usages
3. Filter result to non-temporary, if required

Event search

Find events fit for your purpose

Good practice when developing for NAV 2016+ is to subscribe to existing business and integration events instead of changing code directly in the base application. Use Search › Event Publishers…, or is:publisher in the search box, to find events, and use Find usages to make sure you understand exactly when and how the event is raised. Find usages of a subscriber lists its publisher too, and for a validate event, the field.

Prism for C/AL: Search events by name
Search for events where name matches *general*.
Prism for C/AL: Event usages (where raised and where subscribed)
Usages of event OnGeneralJournalBatchBalanced: raised once and subscribed once.

Table relations

Explore your data model visually

Understanding the data model is crucial for efficient C/AL development. With approximately 1200 tables in Microsoft's base application alone, presenting the full data model in one diagram is not an option. Instead, Prism for C/AL lets you explore the data model gradually.

  • Right-click the start table
  • Immediate in- and outbound table relations are shown
  • Navigate to objects and table relation definitions
  • Expand diagram by exploring in- and outbound relations
  • Choose the layout, and save the graph as a PNG

Explore Table Relations

Prism for C/AL: explore table relations

Try Prism for C/AL on your own code

Download it and request a trial license from the app. The trial runs for 14 days.

Book a live demo

We take you through Prism for C/AL and answer your questions. Suggest a couple of times—we are pretty flexible.

6 usages of Prism for C/AL

  • Manuel S.Software Developer

    This tool is incredibly valuable and time-saving for my daily work. It is easy to use and provides all necessary information you need for efficiently developing in the NAV environment.

  • Džoka MitrovSwissSalary

    I love the speed and the usability of Prism. It comes in very handy when doing code cleanups, refactorings or just a quick code analysis.

  • Steven RendersMVP, think about IT

    Prism for C/AL quickly loads objects and immediately gives you an overview of all objects, properties and code. Find Usages then gives you a high level and a detailed view on where variables, fields or functions are used or referenced. And did I mention it's amazingly fast…

  • Mike GlueDevelopment Manager R&D, IndustryBuilt Software

    This tool is absolutely amazing and it is saving us a load of development hours with the project we have going on right now!

  • Steven RendersMVP, think about IT

    Prism for C/AL is a real gem! It's one of those tools you can't do without if you are serious about development and upgrading databases in Dynamics NAV.

  • Eric “Waldo” WautersMVP, Waldo's blog

    THE most requested feature in the world of Microsoft Dynamics NAV development is the "where used". Statical Prism doesn't only fulfill this in the most broad sense, it does that in the most user friendly way thinkable.

Pricing

Per named user per month, billed yearly. The size of your team sets the price for every user on the subscription.

Prices in DKK, EUR and USD
  1. €37 1–4 users
  2. €32 5–19 users
  3. €27 20+ users

Ready to sign up?

If you would like to know more before you decide, then please visit our extensive Prism for C/AL documentation or the subscription FAQ. Also, feel free to email us at sales@stati-cal.com with any questions or suggestions you may have.

Sign up