Reference manual

Objects page

Outline panel

The outline shows the declarations of the current object as a tree under the heading Outline: fields, keys, controls, actions, triggers, procedures, event publishers and subscribers, and so on. It also lists the page and database trigger events that have subscribers. Use it to see an object's structure at a glance and to jump to a declaration. Select a node to go to its declaration in the current view of the Objects page.

Opening it

  • It is the right panel of the Objects page, and follows the current object.
  • When it is hidden, select View › Show › Outline in the Workspace window.
  • Select View › Outline, or press Ctrl+O, to open the outline of the current object in a window of its own, titled with the object and outline. That window stays on the object it was opened for, so you can keep outlines of several objects open.
The outline of a table.
#NameDescription
1Collapse all nodesCollapses every node.
2Expand all nodesExpands every node.
3Reveal selected node in outline panelScrolls the outline to the selected node and expands the nodes above it. Available while a node is selected.
4Toggle search boxShows or hides the search box.
5Filter and displayOpens the filter popup. The icon turns into a filled, accent colored filter while the filter differs from the default. See Filter and display.
6SearchNarrows the outline as you type. See Search and Showing X of Y.
7Pinned rowThe nodes above the top row stay pinned while you scroll. See Selection and pinned rows.
8FlowFieldA mark before a field's name shows that it is a FlowField; another mark shows a FlowFilter. Point at a mark to see which.
The outline narrowed by a search and a filter.
#NameDescription
1SearchThe search text. The outline narrows as you type.
2Showing X of YHow many nodes the filter and the search leave. Point at it to see what hides nodes (Types, Access, Obsolete, Extensions, Search); select it to open the filter popup.
3ResetResets the filter to the outline's default types. The search stays. Shown while the filter differs from the default.
4Matching nodeA node that matches, with the nodes above it.

A node matches by its name; a field also matches by its field number. A node stays visible when it or a node below it matches, so you always see where a match sits. The search box uses the Filter/search syntax chosen under Search syntax in the filter popup; point at the box for a reminder of the wildcards.

The Showing X of Y line appears only while the filter differs from the default or a search is typed.

Selection and pinned rows

  • Select a node to go to its declaration. Double-click a node to go to it again after you have scrolled away.
  • When you go to a procedure or another declaration in the object view, by a link or from search results, the outline selects its node and scrolls to it.
  • While you scroll, the nodes above the top row stay pinned at the top, so you always see where you are. Select a pinned row to go to it, or select its chevron to collapse it.

Context menus

Right-click a node's name for the same context menu the declaration has in the Object view; see Declaration context menu and Procedure context menu. A field's menu in the outline has these items:

Right-click elsewhere on a row for a short menu with Go to Source and Go to Line in Visual Studio Code.

Filter and display

Select Filter and display, or the Showing X of Y line, to choose which nodes the outline shows and how it shows them. Your choices apply as you select them.

The outline filter for a codeunit.
#NameDescription
1PresetsChoose a set of node types in one selection. See Presets.
2Reset to defaultReturns this object type to the default node types, every procedure access and Any obsolete state, and turns off Only changes from extensions. The search, the display switches and the search syntax are not affected.
3Node typesA check box per node type the object has, with its icon and count, grouped under Code, Data, Layout and Metadata. See Node types.
4OnlyAppears beside the node type you point at: select it to show that type alone.
5Procedure accessPublic, Internal, Protected and Local, with counts. See Procedure access and obsolete members.
6Obsolete (n)Any, Hide or Only. See Procedure access and obsolete members.
7Only changes from extensionsShows only what extensions add or change. See Only changes from extensions.
8DisplayKinds, Types, Property values, Field numbers and Groups. See Display and search syntax.
9Search syntaxSubstring, Whole name or Fuzzy. See Display and search syntax.
10Node countShowing X of Y nodes · applies as you click.

The popup shows only what applies to the current object: the node types it has, Procedure access when its procedures have more than one access, Obsolete when it has obsolete members, and Only changes from extensions when extensions change it. A choice saved earlier that still narrows the outline keeps its section visible.

Presets

Prism offers only the presets that make a difference for the current object, so a codeunit gets no Data model and a table no Layout. A preset shows the types it names that the object has and hides the others.

PresetShows
AllEvery node type the object has, including the ones hidden by default.
Data modelThe Data types: fields, keys, field groups and values.
LayoutThe Layout types: controls, actions, views, data items, columns, filters, layouts, the request page, report labels, elements and attributes.
CodeProcedures, event publishers, event subscribers, events, triggers and trigger events.
EventsEvent publishers, event subscribers, events and trigger events.
API surfacePublic and protected procedures, event publishers and events. Event publishers show whatever their access, since a local event can still be subscribed to.

When you change a check box yourself, no preset is selected.

Node types

GroupNode typesHidden by default
CodeProcedures, Event publishers, Event subscribers, Events, Triggers, Trigger events, Variables, Used global variables, Parameters, LabelsVariables, Used global variables, Parameters, Labels
DataFields, Keys, Field groups, ValuesNone
LayoutControls, Actions, Views, Data items, Columns, Filters, Layouts, Request page, Report labels, Elements, AttributesNone
MetadataProperties, AnnotationsProperties, Annotations

Hiding a type hides its nodes and everything under them. Nodes of no type in the list, such as namespaces and groups, always show. An event publisher is filtered as an event publisher, not as a procedure.

Used global variables are the global variables each procedure and trigger uses. Prism finds them only while Show used global variables is on, on the Settings page. It is off by default.

Procedure access and obsolete members

  • Procedure access: select Public, Internal, Protected or Local to show or hide procedures of that access. The count is the number of such procedures in the object. Event publishers are not affected.
  • Obsolete (n), where n is the number of obsolete members: Any (the default) shows all members, Hide hides obsolete members and everything under them, and Only shows only obsolete members, with the nodes above them.

Only changes from extensions

Only changes from extensions shows only the fields, controls, actions and code that extensions add to or change in this object. It is offered only when the outline contains such changes, that is, in the Extended view of an object that extensions extend, and it never empties the outline of an object without them.

Prism for AL outline of an extended table showing only the items extensions add
The outline filtered to the items an extension adds.
#NameDescription
1Added fieldA field an extension adds to the table.
2Filter and displayFilled and accent colored while the filter differs from the default.

Display and search syntax

The Display switches and the Search syntax apply at once, to every outline.

OptionDefaultEffect
KindsOnShows each node's kind beside it, such as Local Procedure or Field.
TypesOffShows the data type of fields, variables, parameters and return values.
Property valuesOffShows the values of properties. Available while Properties are shown.
Field numbersOffShows field numbers. Available while Fields are shown.
GroupsOffShows groups such as Procedures and Fields as nodes, with their members under them.
Search syntaxSubstringHow the search box matches: Substring matches anywhere in a name, Whole name matches the whole name, and Fuzzy matches names that contain the typed characters in order, with anything between them. In Substring and Whole name, * matches any run of characters and ? any single character; see Filter/search syntax.

What Prism remembers

  • Prism remembers the node types, procedure access, obsolete choice and Only changes from extensions per object type: what you choose for a table applies to every table, and a codeunit keeps its own choice. A type the current object lacks keeps its saved choice.
  • The Display switches and the Search syntax are the same for every outline.
  • Reset to default in the popup, or Reset under the search box, returns the current object type to the defaults.

Overloaded procedures

Overloaded procedures carry a counter and navigation arrows that show whether more overloads come before or after a procedure. Select an arrow to go to the previous or next overload.

Prism for AL outline with three overloads of a procedure and their counters
Overloaded procedures, with parameters and types shown.
#NameDescription
1Overloaded procedureThe first of the overloads, with its counter and the arrow to the next one.

Show only the fields of a table

Use this to read a table's data model without its triggers and code.

  1. Open the table and select Filter and display in the outline.
  2. Select the Data model preset for fields, keys and field groups, or point at Fields and select Only for fields alone.
  3. Optionally, switch on Field numbers and Types under Display.

The outline shows only those nodes, and every table you open afterwards does the same until you select Reset.

See what a codeunit offers other objects

Use this to see what other objects can call in a codeunit, and which events they can subscribe to.

  1. Open the codeunit and select Filter and display in the outline.
  2. Select the API surface preset.

The outline lists the public and protected procedures and the event publishers.