Today I would like to talk about how to view the all object details in Business Central and how to find out what extension an object belong to without using VS Code.
Since we switched to Extensions development (From C/AL to AL), there are many Extensions in the environment. (Extensions are a programming model where functionality is defined as an addition to existing objects and defines how they are different or modify the behavior of the solution)
It takes a while to get the list of objects used in the extension by VS Code. And in VS Code you can only view the Object list of each Extension separately. If there are multiple PTEs in the system at the same time, assigning Object IDs will become difficult. So is there any way to directly view the Object details of all installed Extensions in the system?
PS: All functionality in Business Central is coded in objects. The extension model is object-based; you create new objects, and extend existing objects depending on what you want your extension to do. For example, Table objects define the table schema that holds data, page objects represent the pages seen in the user interface and codeunits contain code for logical calculations and for the application behavior.
Yes, this time we can focus on the following standard objects.
page 9174 “All Objects with Caption”
table 2000000058 AllObjWithCaption
Let’s take a look at page 9174 “All Objects with Caption”.
You can force Business Central to run the “All Objects with Caption” page by adding the ?page=9174 parameter to the URL, such as in the following example:
You can find all object details on this page. Object Type, Object ID, Object Name, App Name…
For example, you can see all Object IDs used and which Extension the Object belongs to based on the Object Type.
There is a small problem here, since App Name field on this page is a variable and calculated in OnAfterGetRecord(), this field cannot be filtered and sorted.
So if you want to find the objects of a certain extension, an easy way to do this is to export into Excel first and then filter App Name in Excel.
Then you can get all the Objects for that Extension.
Another way to filter Extensions is to use the Package ID.
What is Package ID? You can find the answer in table 2000000206 “Published Application”.
“Package ID”: The package identifier. Belongs to the input package and is uniquely generated upon compiling.
For example: You can find the Package ID of the app in the Page Inspection of Extension Management.
- Runtime Package ID (1, GUID, PK): e1fa775d-d41d-46ba-8783-6ce6740d965f
- Package ID (2, GUID): 348cc600-7ff9-42f7-9fef-bd637a7bc0cf
- ID (3, GUID): 437dbf0e-84ff-417a-965d-ed2bb9650972
- Name (4, Text): Base Application
Now you can easily filter the Package ID on the page 9174 “All Objects with Caption”. (348cc600-7ff9-42f7-9fef-bd637a7bc0cf = Base Application)
1. You start page inspection from the Help & Support page. Choose the question mark in the top right corner, choose Help & Support, and then choose Inspect pages and data. Or, you can just use the keyboard shortcut Ctrl+Alt+F1. More details: Inspecting Pages in Business Central
2. You can also force Business Central to run the “AllObjWithCaption” table by adding the ?table=2000000058 parameter to the URL, such as in the following example:
The basic usage is similar to the above page, but there is no App Name here.
3. The application objects, table ‘Published Application’, and page ‘Extension Management’ cannot be used for ‘Extension’ development.
4. There are three scopes of extensions:
Global (Global Scope): AppSource Extensions (Including Microsoft standard extensions)
PTE (Tenant Scope): PTEs published by Upload Extension on the Extension Management page.
Dev (Development Scope): PTEs published by VS Code.
More details: The scope of extensions (Global, PTE, Dev)
Update 2023.04.24: Find out which extension the field belongs to
Hope this will help.
Thanks for reading.