Statical Prism for AL is our analysis tool and code browser for Microsoft Dynamics 365 Business Central.
Total solution overview
Module details and dependency graph, table relations graph and more.
Extensive code graph
Run powerful code queries on your workspace-as-a-graph — leave no stone unturned.
Semantic search
Find usages, find system function usages, semantic filtering, and much more.
Rich code browsing experience
Extended object view with inlined extensions, semantic code coloring, Visual Studio Code integration, etc.
Read more on https://stati-cal.com/PrismForAL.
History:
4.0:
- ID-2364 Feature Fluent Theme (Dark and Light modes)
- ID-2467 Feature Open from BC
- ID-1692 Feature Event subscriber source generator
- ID-2499 Feature From Prism, open object from symbol file in Visual Studio Code as .dal file
- ID-2630 Feature Show static analysis for database trigger events
- ID-2682 Feature Show object bookmark in object index and provide filter options
- ID-2681 Feature Show object ObsoleteState in object index and provide filter options
- ID-2680 Feature Show object history mark in object index and provide filter options
- ID-2622 Feature Show object numbers in declaration tooltips (use it to disambiguate search results)
- ID-2670 Feature BC26 (runtime 15): More app metadata
- ID-2648 Feature BC26 (runtime 15): Support for fields moved between extensions - take field obsoletion into account
- ID-2619 Feature BC26 (runtime 15): Multiline text literals
- ID-2719 Feature BC26 (runtime 15): Support for 'continue' keyword in loops
- ID-2733 Feature BC26 (runtime 15): Support for data types HttpRequestType, TestHttpRequestMessage and TestHttpResponseMessage
- ID-2732 Feature BC26 (runtime 15): Support for TestHttpRequestPolicy property
- ID-2657 Feature Memory settings for graph loading
- ID-871 Feature Find Field Usages: Categorize function call with field as actual parameter as an Assign if formal parameter is by reference (VAR)
- ID-2609 Feature All options (Options expander) in the control panel should have a corresponding setting
- ID-2645 Feature Support for properties ClearActions, ClearLayout and ClearViews
- ID-2635 Feature Merge triggers in report extensions for data items
- ID-2713 Feature Object outline should have expand/collapse buttons like object index
- ID-2685 Feature Focus on search fields in Field Search, Procedure Search and Event Publisher Search
- ID-2622 Feature Show object numbers in declaration tooltips (use it to disambiguate search results)
- ID-2615 Bugfix Graph server fails to start on some machines
- ID-2701 Bugfix UnsatisfiableVersionConstraintException: Unexpected unsatisfiable new version constraint for already resolved module with module ref Application
- ID-2700 Bugfix TransferFields mapping wrongly shows merge/extension symbol when target is missing
- ID-2697 Bugfix On-prem usages report requires the full graph and should warn about it
- ID-2678 Bugfix Parse error on Enum value range in CalcFormula filter
- ID-2677 Bugfix Regression: Prism for AL Connector blocks while opening workspace
- ID-2624 Bugfix Free text search does not (always) navigate to actual result
- ID-2598 Bugfix Graph translation error when On{Before|After}Validate triggers are added in field modifications of an unresolved field
- ID-2673 Bugfix Free text search result order: Unnatural order for match in header
- ID-2668 Bugfix Regression: When workspace is opened from Visual Studio Code with "View in Prism for AL", "Start action" setting must be ignored
- ID-2666 Bugfix Object index "Go to module" context menu item does nothing (internal?)
- ID-2655 Bugfix When graph loading finishes, object reloading should not trigger page change
- ID-2604 Bugfix Conditional compilation symbols are ignored, when not at line start
- ID-2599 Bugfix Graceful handling of unexpected graph server process exit during graph server startup
- ID-2631 Bugfix Static analysis fails when initiated from declarations in extensions
- ID-2616 Bugfix Wrong indentation when code contains TAB characters
- ID-2592 Bugfix RecentItems shortcut keys are out of order
- ID-2718 Bugfix Error opening workspace: Null reference error when parsing invalid XLIFF files
- ID-2701 Bugfix UnsatisfiableVersionConstraintException: Unexpected unsatisfiable new version constraint for already resolved module with module ref Application
- ID-2700 Bugfix TransferFields mapping wrongly shows merge/extension symbol when target is missing
- ID-2697 Bugfix On-prem usages report requires the full graph and should warn about it
- ID-2678 Bugfix Parse error on Enum value range in CalcFormula filter
- ID-2677 Bugfix Regression: Prism for AL connector, navigateTo blocks while opening workspace
- ID-2624 Bugfix Free text search does not (always) navigate to actual result
- ID-2598 Bugfix Graph translation error when On{Before|After}Validate triggers are added in field modifications of an unresolved field
- ID-2730 Bugfix Properties Subtype and ObsoleteState must be case insensitive like other properties
3.1.0:
- ID-2544 Feature Show inbound flow-graph
- ID-2580 Feature Procedural flow-graph visualization enabled for database and page event triggers
- ID-2548 Feature Prism Path (custom URI scheme for specifying declaration links)
- ID-1689 Feature Find usages tree view
- ID-2566 Feature BC25 (runtime 14): SymbolReference.json omits zero valued attributes, e.g. "Kind" for control and action areas
- ID-2547 Feature Free text search tree view
- ID-2538 Feature Moved 'extends' and 'customizes' from object header to first group in object view
- ID-2537 Feature Moved namespace and usings further down in object view
- ID-2564 Feature File | Explorer menu: Order items by name
- ID-2516 Feature RIMD overview window should show original declaration
- ID-2533 Feature BC25 (runtime 14): Support for conditional expressions (condition ? ifTrue : ifFalse)
- ID-2532 Feature BC25 (runtime 14): Support for new PageStyle type
- ID-2529 Feature BC25 (runtime 14): Code graph flow logic for Query.SaveAsJson
- ID-2521 Feature BC25 (runtime 14): Support for .alpackages subfolders
- ID-2513 Feature BC25 (runtime 14): Support for new OptimizeForTextSearch property
- ID-2502 Feature BC25 (runtime 14): Support for ProfileExtensions
- ID-2496 Feature BC25 (runtime 14): Support for <interface> as <interface> expressions
- ID-2495 Feature BC25 (runtime 14): Support for <interface> is <interface> expressions
- ID-2494 Feature BC25 (runtime 14): Support for interface extending interfaces
- ID-2468 Feature BC25 (runtime 14): Resolution of 'this'
- ID-2582 Bugfix Find inbound flow to enum value fails with message "Unexpected empty tree context" when referred from table relation filter expression
- ID-2579 Bugfix Inbound and outbound flow to/from OnValidate trigger in extension object failed
- ID-2569 Bugfix Fixed resolution of objects that have ObsoleteState Moved or Removed
- ID-2546 Bugfix Parse error when AllowedFileExtensions property has multiple comma-separated values
- ID-2545 Bugfix Tooltips sometimes lack information
- ID-2541 Bugfix Prism cache optimization script uses wrong path
- ID-2531 Bugfix Parse error when ColumnSpan property value is negative
- ID-2530 Bugfix Graph loading - name resolution error when codeunit has TableNo property and record function is implicitly scoped
- ID-2525 Bugfix Setting "Confirm Closing Workspace" does not work when closing the control panel window
- ID-2515 Bugfix Setting "Confirm Closing Workspace" should also apply when reloading a workspace
- ID-2487 Bugfix Procedural graph Commit node does not have a tooltip
3.0.0:
- ID-2465 Feature Procedural graph visualization (outgoing procedural flows)
- ID-2469 Feature Immediate insights: RIMD analysis for procedure and triggers in object
- ID-2471 Feature RIMD overview for a procedure/trigger
- ID-2478 Feature Reachable RIMDing procedures, triggers and dispatch nodes
- ID-2102 Feature Immediate insights: Commit analysis for procedure and triggers in object
- ID-2479 Feature Reachable commiting procedures and triggers
- ID-2477 Feature Build compact or full graph
- ID-2461 Feature Generate graph on startup
- ID-2506 Feature Graph views can be saved to a PNG image file
- ID-2505 Feature Graph views are touch sensitive (pan and zoom in module relations, table relations and procedural graph)
- ID-1020 Feature TransferFields mapping should include extended fields
- ID-2501 Feature Solution overview export to Excel
- ID-2498 Feature Module graph - export as image (png/jpg/svg)
- ID-2486 Feature BC25 (runtime 14): Parsing support for properties FileUploadAction and FileUploadRowAction
- ID-2462 Feature Flows from and Flows to: Enable also when compact graph is available
- ID-2455 Feature Show TransferFields Mapping (context menu item)
- ID-2452 Feature Unresolved modules should have tabs in row details
- ID-2451 Feature Show related module discoveries for resolved modules
- ID-2450 Feature Show related module discoveries for unresolved modules
- ID-2428 Feature Workspace troubleshooting (reproduce workspace without .al code)
- ID-2363 Feature Search procedure and event publishers: Find all when search field is empty
- ID-2497 Bugfix Graph loading: Name Resolution - The given key was not present in the dictionary
- ID-2460 Bugfix Runtime package not detected
- ID-2436 Bugfix Do not crash when feature metrics file is corrupted; transactionally save feature metrics file
- ID-2435 Bugfix Cannot open .code-workspace when al.packageCachePath is not found on disk
- ID-2427 Bugfix Error opening workspace (UnsatisfiableVersionConstraintException)