Reference manual

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.
Prism for C/AL object view of a table on the Prism tab, with two code lines selected
1 2 3 4 5 6
The Prism tab with two code lines selected.
#NameDescription
1Object headingType, id and name. Right-click it for the object's context menu. See Object context menu.
2Declaration groupsSelect a group to scroll to it. The number is the count of declarations in the group. See Declaration groups.
3FieldA field: its number, name and type, with its properties below. Select the name to find where the field is used. See Prism tab.
4CodeThe code header of a trigger or procedure. Right-click it to copy the whole block.
5Selected code linesLines you selected. Right-click them for the copy commands. See Selecting and copying code.
6TabsSwitch 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

Prism for C/AL Prism tab with table fields and their properties: a caption per language and an Options grid
1 2 3 4
Fields and their properties on the Prism tab.
#NameDescription
1Declaration nameSelect it to find its usages; right-click it for its context menu.
2Property nameHover over it to see where it sits in the object.
3Multi-language propertyA row per language, as for CaptionML.
4OptionsThe 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:

PropertyShown as
Reference to an object or a fieldA link to it.
ExpressionCode in its code colors, with links on the names it uses.
Multi-language, such as CaptionMLA row per language.
A field's OptionString and OptionCaptionMLOne Options grid: the option number, the option and a column per language.
TableRelation and CalcFormulaThe 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 CalcFieldsEach field in the field color, with the tooltip it has in code.
PermissionThe 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.

Prism for C/AL Parse error panel with the syntax error and its line and column, the expected tokens, the source lines around the error and the parser's report
1 2 3 4
The parse error of an object.
#NameDescription
1Syntax errorWhat the parser rejected, such as “Syntax error: unexpected 'Rec'”, and where: Line 21, column 11, counted in the object's text.
2Expected tokensWhat the parser would have accepted at that place, as “Expected one of: …”. Shown when it has a list.
3SourceThe lines around the error, numbered: three before and two after. The error line is highlighted, and the rejected token is red and underlined.
4Technical detailsThe 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:

Prism for C/AL Prism tab with the context menu of a TRANSFERFIELDS call open
The context menu of a TRANSFERFIELDS call.
#NameDescription
1CallA TRANSFERFIELDS call from one record to a record of another table.
2Show inter-table field mappingsOpens 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.

  1. On the Prism tab, select the first line, then the last line of the code.
  2. Right-click a marked line and choose Copy Code to Clipboard.
  3. 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

  1. On the Prism tab, select the line.
  2. Right-click it and choose Copy Code to Clipboard without Context.
  3. In the C/AL editor of the development environment, search for the copied text.
Prism for C/AL MenuSuite on the Prism tab with modified and re-linked menu nodes
1 2 3 4
A MenuSuite layer in the Prism tab.
#NameDescription

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:

ChangeThe node
AddedIs new. It shows its type (MenuItem, Menu or MenuGroup), its properties and its child nodes.
ModifiedChanges properties of an existing node.
Re-linkedChanges only where an existing node sits: its next node, parent, first child or menu.
RemovedDeletes 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.

Prism for C/AL procedure on the Prism tab with its names in code colors, a global variable in italics and a temporary record underlined
1 2 3 4 5 6 7
Code colors in a procedure.
#NameDescription
1Global variableA variable of the whole object, in italics. A local variable has the same color, upright.
2ParameterA value the caller passes in. A named return value has a color of its own too.
3FieldA field of a record, also inside WITH … DO and in a table's own code.
4Temporary recordKeeps 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.
5ProcedureA call of a procedure of this object or, after a variable, of another object.
6DELETE or COMMITA record's DELETE or DELETEALL in red, a COMMIT in magenta.
7CommentIn 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:

SettingEffect
FontThe font family of code.
Font sizeThe font size of code.
Line spacingThe row height of code, parameter and variable lines: Compact sizes the rows from the font size, Standard gives them the height of header rows.
An unhandled error has occurred. Reload 🗙