Object view
The object view shows the current object: a heading, links to its declaration groups, and three tabs at the bottom. Prism shows the declarations and code, Dependencies what uses the object and what it uses, and Source the object's text. Use it to read an object and to navigate from it.
Opening it
- It is the middle part of the Objects page.
- Select an object in the Object index, in search results or on the Solution page, and it shows that object.

| # | Name | Description |
|---|---|---|
| 1 | Object heading | Type, id and name. Right-click it for the object's context menu. See Object context menu. |
| 2 | Declaration groups | Select a group to scroll to it. The number is the count of declarations in the group. See Declaration groups. |
| 3 | Field | A field: its number, name and type, with its properties below. Select the name to find where the field is used. See Prism tab. |
| 4 | Code | The code header of a trigger or procedure. Right-click it to copy the whole block. |
| 5 | Selected code lines | Lines you selected. Right-click them for the copy commands. See Selecting and copying code. |
| 6 | Tabs | Switch the object view between the object's declarations and code (Prism), what uses it and what it uses (Dependencies), and its text (Source). See Tabs. |
Object context menu
Right-click the object heading, or an object in the Object index, for the object's context menu.
Declaration groups
Under the heading, a link per top-level group of the object, such as fields, keys or triggers, with the number of declarations in it. Select one to scroll the Prism tab to that group. The links are hidden on the Dependencies tab.
Prism tab

| # | Name | Description |
|---|---|---|
| 1 | Declaration name | Select it to find its usages; right-click it for its context menu. |
| 2 | Property name | Hover over it to see where it sits in the object. |
| 3 | Multi-language property | A row per language, as for CaptionML. |
| 4 | Options | The field's options in a grid: the option number and its OptionString value, with a column per language when the field has OptionCaptionML. |
The Prism tab shows the object's declarations, properties and code. Select a reference to an object, a field or another declaration to navigate to it. Select the name of a declaration, such as a procedure or trigger, to find its usages. Hover over a property name to see where it sits in the object.
Right-click the name of a declaration for:
Properties are shown by kind:
| Property | Shown as |
|---|---|
| Reference to an object or a field | A link to it. |
| Expression | Code in its code colors, with links on the names it uses. |
Multi-language, such as CaptionML | A row per language. |
A field's OptionString and OptionCaptionML | One Options grid: the option number, the option and a column per language. |
TableRelation and CalcFormula | The target table and field as a link, with the conditions and filters below. Tables and fields are in their code colors, with the tooltip they have in code. |
Links, view filters and field lists, such as SubPageLink, SourceTableView and CalcFields | Each field in the field color, with the tooltip it has in code. |
| Permission | The object type, number and permissions, linked to the object. |
Parse error panel
When an object could not be parsed, a Parse error panel takes the place of its declarations on the Prism tab: “Source could not be fully parsed; outline and analysis are unavailable for this object.” Use it to find what to fix in the object's text.

| # | Name | Description |
|---|---|---|
| 1 | Syntax error | What the parser rejected, such as “Syntax error: unexpected 'Rec'”, and where: Line 21, column 11, counted in the object's text. |
| 2 | Expected tokens | What the parser would have accepted at that place, as “Expected one of: …”. Shown when it has a list. |
| 3 | Source | The lines around the error, numbered: three before and two after. The error line is highlighted, and the rejected token is red and underlined. |
| 4 | Technical details | The parser's own report, open at first; select the heading to fold it. Its copy button copies the object's type and id with the report, for example to send to Statical support. |
When Prism cannot place the error in the source, the panel says “The parser could not place this error in the source” and shows no line, column or source lines. The Object Errors window and the Parse errors list of the Solution page show the summary on one line. See Troubleshooting for what to do about objects that fail to parse.
Context menus on calls in code
Some calls in the code on the Prism tab have a context menu with one item. The mouse pointer changes over a call that has one. Right-click the call for:

TRANSFERFIELDS call.| # | Name | Description |
|---|---|---|
| 1 | Call | A TRANSFERFIELDS call from one record to a record of another table. |
| 2 | Show inter-table field mappings | Opens the Field Transfer Mappings window window for the two tables. |
Selecting and copying code
Select a code line to mark it, then select another line to mark the lines between them. Select a marked line's marker to clear it. Prism keeps your marked lines while Remember code line selections is on, on the Settings page.
Right-click a marked line for:
When the clipboard is not available, a copy command says Error trying to copy source code lines to clipboard.; when the text file cannot be written or opened, Open Code with Default Text Editor says Error trying to copy source code lines to text file. Try again.
Right-click the Code header of a trigger or procedure to copy the whole block:
Send a piece of code to a colleague
Use this to send a colleague a piece of code they can find again.
- On the Prism tab, select the first line, then the last line of the code.
- Right-click a marked line and choose Copy Code to Clipboard.
- Paste into the email or ticket.
The text names the store, the object and the declaration above the code. To add notes first, choose Copy Code to New Window instead; see Code fragment window.
Find the same line in the development environment
- On the Prism tab, select the line.
- Right-click it and choose Copy Code to Clipboard without Context.
- In the C/AL editor of the development environment, search for the copied text.
MenuSuite layers

| # | Name | Description |
|---|---|---|
| 1 | Group | The nodes with one kind of change, and their count. |
| 2 | Change | What this MenuSuite does to a node a lower MenuSuite defines: changes its properties (Modified), only moves it (Re-linked) or deletes it (Removed). An added node shows its type instead. |
| 3 | Node name | The name of the node, found in the MenuSuites below. |
| 4 | Annotation | The MenuSuite that defines the node, and what this layer changes. |
MenuSuites are layered: a MenuSuite can add nodes, and change, move or delete the nodes of the MenuSuites below it. The Prism tab sorts each menu node of a MenuSuite by what it does:
| Change | The node |
|---|---|
| Added | Is new. It shows its type (MenuItem, Menu or MenuGroup), its properties and its child nodes. |
| Modified | Changes properties of an existing node. |
| Re-linked | Changes only where an existing node sits: its next node, parent, first child or menu. |
| Removed | Deletes an existing node. Removed nodes are dimmed. |
The nodes are grouped as Added menu nodes, Modified menu nodes, Re-linked menu nodes and Removed menu nodes, each with a count. Re-linked and removed nodes start collapsed. A MenuSuite with only one kind, such as a base layer, shows a single Menu nodes group.
A node that changes another fits on one line: the change, the node's name, then the MenuSuite that defines the
node and what changes, for example next → Customers, Visible = No. Prism finds node names in the
nearest MenuSuite at or below the current one in the same family: the navigation pane (ids below 1000) or the
departments (1000 and up). Hover over a node to see its GUID; a GUID Prism cannot resolve is shown shortened.
Source tab
The Source tab shows the object's text, read only. It opens on the code the Prism tab was showing, so you do not have to scroll to find your place.
Code colors
Names in code are colored by what they are. Prism resolves each name to its declaration, so a field, a parameter,
a procedure and a variable each have a color of their own, also when they belong to another object. Global
variables and comments are set in italics, and a variable, parameter or return value that holds a temporary
record has a dotted underline. Two calls stand out in colors of their own, since they change what is in the
database for good: a record's DELETE and DELETEALL are red, and COMMIT is
magenta. A record's other built-in functions, such as INSERT and MODIFY, keep the color
of every built-in function.

| # | Name | Description |
|---|---|---|
| 1 | Global variable | A variable of the whole object, in italics. A local variable has the same color, upright. |
| 2 | Parameter | A value the caller passes in. A named return value has a color of its own too. |
| 3 | Field | A field of a record, also inside WITH … DO and in a table's own code. |
| 4 | Temporary record | Keeps the color of its variable, parameter or return value and gains a dotted underline: what the code writes to it stays in memory and never reaches the database. |
| 5 | Procedure | A call of a procedure of this object or, after a variable, of another object. |
| 6 | DELETE or COMMIT | A record's DELETE or DELETEALL in red, a COMMIT in magenta. |
| 7 | Comment | In italics. |
An option value after ::, such as Status::Open, and an object named after an object type,
such as PAGE::"Customer Card", have colors of their own. Keywords, text, numbers, operators and
brackets are colored by kind. A name Prism cannot resolve has the color of plain text, and selecting it does
nothing.
Fields and tables in property values take the same colors: the table and fields of a TableRelation or
CalcFormula, with their conditions and filters, the fields of link properties such as
SubPageLink, of the filters of view properties such as SourceTableView, and of field
lists such as CalcFields.
Hover over a name in code or in a property value for its tooltip: the path from the object down to the declaration, each step with its kind and name, and for a field, variable or parameter its type. For a name Prism cannot resolve, the last step reads Unresolved.
The colors follow the dark or light theme and cannot be changed. The Code fragment window and the preview of Universal Search show code in the same colors; the Source tab does not color it.
Font and line spacing
These settings under Code on the Settings page change how code looks:
| Setting | Effect |
|---|---|
| Font | The font family of code. |
| Font size | The font size of code. |
| Line spacing | The row height of code, parameter and variable lines: Compact sizes the rows from the font size, Standard gives them the height of header rows. |

