Reference manual

Universal Search

Universal Search is one box that finds objects, members, Prism Paths, lines of the open object, menu commands, workspace pages and the places you have recently been, with a preview of the selected result's source. You open it with the Search Everywhere command.

Opening Universal Search

Universal Search opens as a popup over the Workspace window. The popup closes when it loses focus or when you open a result. The Search menu items marked below open it pinned into a window of its own, which stays open.

HowOpens
Search › Search Everywhere…, Ctrl+T, or the Search button in the title barThe popup with an empty box.
Ctrl+Shift+SThe popup in the Members mode: a k:member pill.
Ctrl+Shift+PThe popup with >: menu commands.
Ctrl+Shift+OThe popup with @: the members of the open object.
Search › Symbols…A pinned window with k:member.
Search › Fields by Name…A pinned window with k:field.
Search › Procedures by Name…A pinned window with k:procedure.
Search › Event Publishers…A pinned window with is:publisher.

The title bar button hides when the window is too narrow to show it beside the menus. In the workspace window, Ctrl+Shift+G opens the separate Go to Prism Path dialog; see Go to path and position.

Search box and results

Prism for C/AL Universal Search with a k:table pill, tables matching cust, and a source preview
1 2 3 4 5 6 7
Universal Search listing tables that match cust.
#NameDescription
1PillsFinished filter tokens. See Filter tokens.
2Search boxType a name, an id, a type and a name, or any form in Query syntax.
3Pin into a windowMoves the search into a window of its own (Ctrl+Enter). Shown in the popup only. See Pinning into a window.
4Search mode and KindsNarrow the search to objects, members or chosen kinds. See Search modes and kinds.
5GroupGroups the results by kind or by object, or lists them as one. Select it to cycle Group: Kind, Group: Object and Group: None.
6Results and previewThe matches in groups, and the source of the selected one. See Results and grouping and Opening results and actions.
7StatusHow many objects and members match and how many are shown, such as 20 of 1,204 objects · 50 of 9,876 members, or why nothing is listed. See Status messages.

Before you type

With an empty box, Universal Search lists two groups. Select a row and press Enter to use it.

Prism for C/AL Universal Search with an empty box, listing the Shortcuts and Recent groups
1 2 3
Universal Search before you type.
#NameDescription
1ShortcutsEach row puts its prefix or pill in the box. The key caps show the shortcut that does the same from the workspace window.
2RecentUp to ten places from the navigation history, newest first, each listed once. Opening one goes back there.
3StatusType a name, an id such as 18, or a type and a name such as cu sales; ? lists the rest
Shortcut rowPuts in the boxKey
Membersk:memberCtrl+Shift+S
This object@Ctrl+Shift+O
Commands>Ctrl+Shift+P
Prism Pathprism:–
Go to line:–
Search codeOpens Code Lines over all objectsCtrl+Shift+F
Filters and more?–

Query syntax

Prism for C/AL Universal Search with a question mark typed, listing the Help group of query forms and filter tokens
1 2 3
Universal Search with ? typed: the syntax help.
#NameDescription
1?Lists the help in place of results.
2Query formsEach row shows an example and what it finds: names, quoted text, ids, types, pasted forms, Prism Paths, lines and members of the open object. See Prefixes and Names, ids and types.
3Filter tokensEach row shows a token and what it keeps. Select a row or press Enter on it: a whole token becomes a pill, and a key alone, such as of:, goes into the box to list its values. See Filter tokens.

Type ? in the box to list the syntax in Universal Search itself. A plain name is matched letter by letter, so cust finds Customer and Cust. Ledger Entry.

Prefixes

A prefix at the start of the text, after any pills, changes what Universal Search lists.

PrefixLists
?The syntax help.
>Menu commands of the workspace window, as Menu › Item…, matched letter by letter; enabled commands only, up to 50. Enter runs the command.
prism:Prism Path completion: up to 20 objects, then up to 30 members of the object the path names. Tab puts the selected path in the box. When the text is a whole path, the first row is Go to that path.
@The members of the open object, up to 500, such as @post.
: and a numberGo to line of the open object, such as :120.

Names, ids and types

ExampleFinds
custNames matched letter by letter. Matches at word starts and capitals rank first.
"sales line"Names that contain the quoted text, ignoring case; no letter-by-letter matches.
18, 50000..59999, 18|21, 18 21 36Objects by id, id range or alternatives. Ids separated by spaces read as alternatives. Ids match objects only.
Sales*, Post?Names by wildcard: * any run of characters, ? one character. Name patterns match objects and members.
cu 80, t18, form 21, cu salesAn object type, then a name or an id. Type matches rank first, and the whole text is also matched as a name, so report selections still finds table Report Selections.
TypeWordAbbreviationLetter, before an id
Tabletabletabt
Formformfrmf
Pagepagepagp
Reportreportrepr
Codeunitcodeunitcuc
Dataportdataportdpd
XMLportxmlportxpx
Queryquery–q
MenuSuitemenusuitems–

A single letter counts as a type only when digits follow, as in t18 or t 18, so t shirt is an ordinary name search.

Pasted forms

Paste an object the way code, an export or a client address names it, and Universal Search finds that object.

FormExample
An object as codeCODEUNIT::"Sales-Post", CODEUNIT::Sales-Post, DATABASE::Customer (a table)
An export headerOBJECT Codeunit 80 Sales-Post
A client addressA URL containing ?page=22 or &table=18; also report, query, codeunit, xmlport and form
A Prism Pathprism:Table/Customer/Field/Name; pasting into a box that holds only prism: replaces it

Filter tokens

k:field of:18 "credit" 1 Filter token, now a pill 2 The object it is limited to 3 Quoted, exact text MEMBERS · 3 Credit Limit (LCY) field · Customer Credit Amount field · Customer Credit Amount (LCY) field · Customer 3 members k:field of:18 "credit" 1 2 3 MEMBERS · 3 Credit Limit (LCY) field · Customer Credit Amount field · Customer Credit Amount (LCY) field · Customer 3 members
  1. k:field Filter token, now a pill A key, a colon and a value. The space after it turns it into a pill. k: keeps one kind; field keeps fields.
  2. of:18 The object it is limited to Keeps the members of the object with id 18. With k:field, that is table 18 Customer. A name or an id range works too.
  3. "credit" Quoted, exact text Matches names that contain the text, ignoring case, with no letter-by-letter matches. It stays text in the box.
One query, part by part: the fields of table 18 whose names contain credit.
Prism for C/AL Universal Search with a k:codeunit pill and is: typed, listing the Roles and Flags values
1 2 3 4
A k:codeunit pill, with is: typed and its values listed.
#NameDescription
1PillA finished token. Select its × to remove it, or press Backspace in an empty box to remove the last pill.
2Key being typedA key with no value yet lists the values it takes.
3RolesThe is: roles: publisher, subscriber and procedure.
4FlagsThe is: flags. Select a value and press Tab or Enter to make it a pill.

A filter token is a key, a colon and a value, such as k:table. Type a space after it and it becomes a pill; pills combine. Values can be quoted (of:"Sales Header"), listed with commas (k:table,cu) and written in the plural (k:fields).

Type a key alone, such as k:, to list its values; select one and press Tab. A value Universal Search does not know shows Not understood in the status line.

TokenKeepsValues
k:KindsAn object type (table, cu, …), field, procedure, trigger, key, variable, event, property, object or member.
is:Roles and flagsRoles publisher, subscriber, procedure. Flags obsolete, local, singleton (SingleInstance codeunits), global (tables with DataPerCompany = No), noprint (ProcessingOnly reports), norequest (reports without a request page).
in:Scopein:view: the objects the object index filter shows.
of:One object's membersA name, an id or an id range, open ends allowed: of:Customer, of:50100, of:50000..59999. Offers up to 12 matches while you type.
v:Version ListA wildcard over the Version List tags, such as v:NAVW1*. Keeps the matching objects and their members. Offers up to 12 matches while you type.
subtype:Codeunits by SubTypeThe subtypes the workspace has, most common first.
pagetype:Pages by PageTypeThe page types the workspace has, most common first.

Object kinds alone list objects only; member kinds alone list members only; a role or of: lists members only. Properties are listed only with k:property. An event member reads Variable :: Event, and a trigger on a field or control reads No. :: OnValidate.

Search modes and kinds

Prism for C/AL Universal Search with the Kinds checklist open and Table and Page checked
1 2 3 4 5
The search mode and the Kinds checklist with two kinds checked.
#NameDescription
1Search modeAll, Objects, Members, Fields, Procedures or Publishers.
2KindsOpens the checklist. Reads Kinds · N when N kinds are checked.
3Object kindsTable, Page, Codeunit, Report, Query, XmlPort, Form, MenuSuite, Dataport.
4Member kindsField, Procedure, Trigger, Variable, Key, Event, Property.
5ClearUnchecks every kind.

The search modes are shorthand for pills: choosing one replaces the other mode pills, and the selector shows the last mode pill in the box.

ModePill
AllNone
Objectsk:object
Membersk:member
Fieldsk:field
Proceduresk:procedure
Publishersis:publisher

Checking kinds writes one k: pill with all of them, such as k:table,page, in place of any other k: pill. A k: pill you type yourself checks its kinds in the list.

Results and grouping

Prism for C/AL Universal Search results grouped by kind, with the selected object's source in the preview
1 2 3 4 5
The results list and the preview of the selected result.
#NameDescription
1Group headerThe group's title and count, such as Objects · 20 of 1,204 when the list is capped.
2ResultIcon, name with the matched letters in bold, and a caption such as the object number. Pills on the right show flags such as obsolete; more than fit fold into +N. Select the row or press Enter to open it.
3More actionsLists what you can do with the selected result (Tab). Shown on the selected row when it has actions. See Opening results and actions.
4PreviewThe first 40 lines of the selected result's source: the start of an object, or a member's declaration.
5Preview ownerThe type, number and name of the object the previewed source belongs to.

For a search, Universal Search lists these groups in order:

  1. Completions, while you type the value of a filter token.
  2. The results: Objects and Members with Group: Kind; one group per object, such as Codeunit Sales-Post, then More, with Group: Object; one Results group with Group: None.
  3. Commands: the five best-matching menu commands, when no filter token is set.
  4. Pages: workspace pages whose title matches, when no filter token is set.
  5. Search further: Search code for "…" runs Code Lines over all objects.
GroupingObjects shownMembers shown
Group: Kind (default)2050
Group: Object, Group: None50100

Results rank by how well they match, then by shorter name, object type and id. A capped list ends in a Show more row naming how many are not shown; each press lists five times as many. When a search leaves exactly one result, its actions are listed under it.

Opening results and actions

Prism for C/AL Universal Search listing the actions of table Customer
1 2 3 4
The actions of a table, listed with Tab.
#NameDescription
1ResultThe result whose actions are listed, as the group header.
2OpenOpens the result, as Enter on the result does.
3ActionsThe commands of the object's context menu that your license offers. Type to narrow the list; select one or press Enter to run it.
4StatusActions of … · Escape returns to the results.
ResultOpening it
ObjectSwitches to the Objects page and opens the object.
Member or Prism PathSwitches to the Objects page and goes to the declaration.
Recent placeGoes back to that place.
PageSelects that page in the workspace window.
CommandRuns the menu command.
Search codeOpens Code Lines and, when there is text, searches for it.
Go to lineMoves the caret to that line of the open object.

To act on a result without opening it, select it and press Tab, type > after moving to it with the arrow keys, or select its More actions button. The status line reads Actions of … · Escape returns to the results.

ResultActions
ObjectOpen, then the commands of the object's context menu, such as Find Usages and Explore Table Relations. Your license decides which are offered, as in the context menu.
MemberOpen, Find Usages (when the member supports it and your license includes it) and Copy Prism Path.

Shift+Tab or Escape returns to the results with the same result selected.

Pinning into a window

Prism for C/AL pinned Universal Search window with procedures grouped by object
1 2 3 4 5 6
Universal Search pinned from Search › Procedures by Name…, grouped by object.
#NameDescription
1PillThe k:procedure pill the menu item set.
2Expand allExpands every group.
3Collapse allCollapses every group.
4Copy resultsCopies the results as tab-separated text with the columns Kind, Name, Object and Prism Path, one line per object or member.
5Group: ObjectOne group per object.
6Object groupThe object the procedures below it belong to, with their count.

Select Pin into a window or press Ctrl+Enter to move the search into a window of its own. The query, the pills, the grouping and the selected result carry over. The window is titled Search, followed by the query, such as Search: k:procedure post*.

BehaviorPopupPinned window
Opening a resultCloses the popup.Leaves the window open.
EscapeCloses the popup.Clears the text.
Losing focusCloses the popup.Leaves the window open.
SizeResizable; see Behavior.1100 × 750 to start; the list and preview fill the window.
Results shownAs in Results and grouping.Once you pause typing, up to 5,000 objects and 10,000 members; Show more multiplies those by five.
List tools–Expand all, Collapse all and Copy results.

Keyboard shortcuts

KeyAction
Down / UpNext or previous result; group headers and collapsed groups are skipped.
Page Down / Page UpTen results down or up.
EnterOpens the selected result.
Ctrl+EnterPins the popup into a window.
TabCompletes: a token value becomes a pill, a Prism Path goes into the box; otherwise lists the result's actions.
Shift+TabFrom the actions back to the results.
EscapeFrom the actions back to the results; in a pinned window, clears the text; otherwise closes the popup, whatever the Escape closes window setting.
Backspace in an empty boxRemoves the last pill.
> after moving to a resultLists that result's actions.
Ctrl+TClears the pills and the text.
Ctrl+Shift+SSelects the Members mode.
Ctrl+Shift+PSets the text to >.
Ctrl+Shift+GSets the text to prism:.
Ctrl+Shift+FSearches the text in Code Lines, all objects.

Status messages

StatusMeaning
Nothing matchesNo result for the text and pills.
Not understood: …A filter token's value is not one Universal Search knows, such as k:tabel.
The objects are still being gathered; the list fills in when they are readyThe workspace is still loading; the results appear when it is done.
Search failed: …The search stopped with the error shown.
Open an object to search its members@ with no object open.
Nothing in this object matches@ found no member of the open object.
Open an object to go to one of its lines: with no object open.
Type a line number: with no number after it.

Open an object by name or number

Use this when you know an object's name, part of it, or its number.

  1. Press Ctrl+T.
  2. Type the type and the number, such as cu 80, or part of the name, such as sales post.
  3. Press Enter to open the first result, or move to another with the arrow keys first.

The object opens on the Objects page and Universal Search closes.

Find a field by name across tables

Use this to find which tables have a field with a given name.

  1. Choose Search › Fields by Name…. A pinned window opens with a k:field pill.
  2. Type the field name, such as "posting date" for names that contain it, or Posting* for a wildcard.
  3. Select Group until it reads Group: Object to see the fields table by table.
  4. Select a field to go to its declaration; the window stays open for the next one.

List the event publishers of an object

Use this to see which events an object publishes before you write a subscriber.

  1. Press Ctrl+T.
  2. Type is:publisher and then of:"Sales-Post" , each followed by a space so it becomes a pill.
  3. Read the publishers in the list, or type part of a name to narrow it.

Use is:subscriber in the same way to list an object's event subscribers.

Run a menu command from the keyboard

  1. Press Ctrl+Shift+P. The box starts with >.
  2. Type part of the command's name, such as code lines.
  3. Press Enter to run the selected command.

Copy a list of results to a spreadsheet

Use this to hand a list of objects or members to a colleague or a spreadsheet.

  1. Search as usual, then press Ctrl+Enter to pin the search into a window.
  2. Wait for the list to widen once you stop typing, and select Show more if the list is still capped.
  3. Select Copy results and paste into the spreadsheet.

Behavior

  • Position: the popup opens centered on the workspace window, near its top, never above the title bar.
  • Size: drag the popup's left, right or bottom edge, or a lower corner, to resize it; the top edge is fixed. Prism keeps the size for next time. Double-click an edge to restore the default size.
  • Preview: appears once the selection rests for a moment, colored at once, with semantic coloring after about half a second. The preview column is shown only when the list holds objects or members.
  • Recent: the list follows the workspace window's navigation history.