Prism for AL Preview
Latest information about Prism for AL and download of preview version.

Download
Statical Prism for AL Standard Edition (SE) Preview 0.9.6 | Release notesFile caching performance and anti-virus programs
When Prism for AL meets a package for the first time,
the individual source files are cached in the file system. Anti-virus programs can
slow down this process significantly, so you may consider excluding Prism's cache path (%TEMP%\.prism-package-cache
)
from being scanned.
If you are using Windows Defender, here is how you can inspect current settings and exclude Prism's cache path using PowerShell. You must run these commands as administrator.
Check exclusion path - perhaps nothing needs to be done:
(Get-MpPreference).ExclusionPath
Add exclusion for Prism's cache folder:
$PrismPackageCachePath = Join-Path -Path $env:TEMP -ChildPath '.prism-package-cache' Add-MpPreference -ExclusionPath $PrismPackageCachePath
Getting Started
- Install Prism for AL from the Download section
- Open a VS Code folder or workspace file
-
During opening, Prism will:
- Analyze module dependencies
- Unpack and cache module dependencies (from .alpackages folder), so subsequent store opening is quicker
- Analyze and index source code residing in the VS code project itself (single folder or multiple folders in case of workspace file)
- Analyze and index source code in dependencies when ShowMyCode=true, otherwise index symbol file
- Browse code of whole solution (for dependencies with ShowMyCode false, we cannot access the source code)
- Use unique features for Prism for AL
-
Use 'good old' Prism functionality across the whole code base, e.g.:
- Find usages of objects, procedures (including event publishers), triggers, variables, parameters
- Find field usages including (where is field updated/read)
- Find system function usages on objects, e.g. Insert/Modify
- Procedure and Field name search
- …
Feedback
Your feedback is more than welcome!
Please send your feedback via Prism's built-in feedback facility or by email to feedback@stati-cal.com.
Supported versions
- Business Central 15
- Business Central 16
- Business Central 17
Major features unique to Prism for AL (compared to Prism for C/AL)
- Merged object view (shows extension declarations inline)
- Module dependency graph
- Object outline
Known preview limitations
-
Unsupported object types (only source code view supported):
- Enum (issue #1034)
- EnumExtension (issue #1035)
- PageCustomization (issue #1036)
- Profile (issue #1038)
- ControlAddIn (issue #1039)
- DotNet (issue #1040)
- New outline view: Some texts are wrong
- Transfer field mapping must include extended fields (issue #1020)
- Name resolution: respect protected keyword (issue #982)
- Name resolution: respect app.json InternalsVisibleTo (issue #981)
Planned features
Our top priority is to eliminate known preview limitations.
Further features planned:
- Open solution from server (issue #975)
- VS Code integration, so Prism functionality can be invoked directly from VS Code
Release notes
Prism for AL 0.9.6 (released November 19th, 2020)
ID | Type | Description |
---|---|---|
1163 | Feature | Redesign control panel window |
1162 | Feature | Redesign workspace window |
1181 | Feature | Workspace start page: Solution overview |
1196 | Feature | Workspace file cache (snapshots workspace files, so changes done in VS Code do not influence Prism until reload) |
1200 | Feature | Workspace reload command |
1157 | Feature | Package cache window (accessible from Control Panel) |
1119 | Feature | Display module fields introduced in BC17: PreprocessorSymbols, SuppressWarnings, KeyVaultUrls, ApplicationInsightsKey |
1193 | Feature | Upgrade to .NET 5 |
1158 | Bugfix | Support JSON comments in *.code-workspace, app.json and SymbolReference.json files |
1147 | Bugfix | .code-workspace file support: paths with .. (dotdot/parent) |
1173 | Bugfix | Page extension UI fails when add{after|before|first|last} section is empty |
1183 | Bugfix | Find object usages did not find page referenced in page part controls |
1190 | Bugfix | Installation wrongly requires .NET Framework 4.8 (and with error message in Danish) |
1178 | Bugfix | Provider property value always displays 'Provider' |
1166 | Bugfix | Module resolution window cannot resize |
1165 | Bugfix | Parse error when variable of name "Actions" is used in code as Actions (without double quotes) |
1175 | Bugfix | Parse error when dotnet type is declared without an alias |
1090 | Bugfix | Symbol file parsing of Query and XmlPort objects incomplete |
1176 | Bugfix | Symbol file parse error on System Application table "Reten. Pol. Filtering Param" |
1185 | Bugfix | Objects from symbol files - visualization issues |
1198 | Bugfix | Conditional compilation directives get truncated |
1161 | Bugfix | Close all workspaces doesn't close windows |
Prism for AL 0.9.5 (released October 20th, 2020)
ID | Type | Description |
---|---|---|
1151 | Bugfix | Load error when report lacks data set, request page, and labels |
Prism for AL 0.9.4 (released October 19th, 2020)
ID | Type | Description |
---|---|---|
1148 | Bugfix | Startup error (cache directory does not exist) |
Prism for AL 0.9.3 (released October 18th, 2020)
ID | Type | Description |
---|---|---|
1023 | Feature | Module dependencies via app.json property 'application' (support for base application aliasing) |
1070 | Feature | Module dependency proparation via app.json property 'PropagateDependencies' |
1120 | Feature | Package diff resolution: use package 'signature' for uniqueness |
1115 | Feature | Module dependency version behavior: MinVersion vs Version |
1142 | Feature | Workaround for BC17 System Application SymbolReference.json being end-padded by NULs |
1139 | Feature | Report "Save Object Dependencies" - added ControlAddIn dependency from pages |
1138 | Feature | Report "Save Object Dependencies" - added interface dependency from Enum and EnumExtensions |
1003 | Feature | Add extension name to 'Object Dependencies and 'Unreferenced Objects' reports |
1136 | Feature | BC17: DataAccessIntent property |
1134 | Feature | BC17: Conditional compilation (#if, #elif, #endif, #define, #undef) support (preliminary) |
1133 | Feature | BC17: #pragma compiler directive support (preliminary) |
1132 | Feature | BC17: #region compiler directive support (preliminary) |
1129 | Feature | Diagnostic workspace resolution window |
1128 | Feature | Friendly workspace address display |
1137 | Bugfix | Parse error when last line of file is line comment without newline |
1107 | Bugfix | Parse error when pageextension contains views |
1106 | Bugfix | Parse error when table relation uses some specific const values |
1095 | Bugfix | Parse error when XmlPort has property InlineSchema |
1093 | Bugfix | Indexing error during load for certain scope (::) expressions |
1131 | Bugfix | System module dependency missing in module graph visualization |
1111 | Bugfix | Integration event properties (IncludeSender, GlobalVarAccess) show opposite boolean values |
1104 | Bugfix | Find field usages: Table relation condition left-hand side resolved in relation table instead of source table |
1103 | Bugfix | Open in Text Editor failed to open |
1100 | Bugfix | Descriptive watermark text not shown in Prism fields |
1096 | Bugfix | Enum is usage and dependency of a table field of type Enum |
1105 | Bugfix | Installation issue: 'An assembly specified in the application dependencies manifest (StaticalPrism.deps.json) was not found' |
Prism for AL 0.9.2 (released September 2nd, 2020)
ID | Type | Description |
---|---|---|
1033 | Feature | Support for XMLPort objects |
1032 | Feature | Support for Query objects |
1015 | Feature | UI: Reports to show RequestPage when present |
1059 | Feature | .NET Core Migration |
1080 | Feature | Improved error message when workspace contains two modules with the same id |
1068 | Feature | Logging of parse errors: only log fragment of code, not full object |
1066 | Feature | Disable command line argument support. |
1065 | Feature | Verbose log level user switch |
1085 | Bugfix | Parse error on properties APIVersion, CharAllowed, SignDisplacement, SqlTimestamp and SqlDataType |
1092 | Bugfix | Parse error when flowfield has empty CONST expression: CONST() |
1091 | Bugfix | Parse error when ApplicationArea is empty |
1074 | Bugfix | Parse error when in enum expressions when value is a keyword, e.g. MyEnum::Actions |
1072 | Bugfix | Parse Exception 'syntax error'. Last token was 'T_SEMICOLON' - happens when source has an 'empty property', i.e. extra ';' between properties |
1078 | Bugfix | Report top level properties and triggers not displayed |
1086 | Bugfix | "Save Object Dependencies" report missed entries and did not print object id |
1084 | Bugfix | Table dependency in AccessByPermission property not found |
1083 | Bugfix | Installer language changed to English (was mixed Danish and English) |
1079 | Bugfix | Navigation to report data item fails |
Prism for AL 0.9.1 (released July 10th, 2020)
ID | Description |
---|---|
987 | Use symbol file when package manifest has ShowMyCode=false setting |
1041 | Procedure overloading (resolution and find usages) |
1037 | Full support for Interface objects |
1057 | Allow higher memory usage (enabled 64-bit processes) |
1058 | Object outline: added 'using' and 'used by' sections |
1042 | Explore table relations enabled (was disabled in previous preview) |
979 | System function resolution completed including links to Microsoft's documentation |