Hi, Readers.
Today I would like to briefly talk about System tables, Virtual tables in Business Central and Virtual tables (entities) in Dataverse. Why do I bring this up? Recently, due to the new Business Central Integration with Dataverse, there have been some misunderstandings about Virtual tables.
First, let’s take a look at the System tables. Microsoft does not provide MS Learn (Docs) about the System tables, but we can find some instructions from the link below.
Table extensibility limitations:
System and virtual tables can’t be extended. System tables are created in the ID range of 2.000.000.000 and above. For more information about object ranges, see Object ranges.
Table object – Business Central | Microsoft Learn
So, System tables are created in the ID range of 2.000.000.000 (2 billion) and above. For example, (One part is Virtual tables)
Next, let’s look at Virtual tables. Microsoft provides MS Learn (Docs) for this.
Virtual tables: A virtual table contains system information. You can’t change the data in virtual tables. You can only read the information. Virtual tables aren’t stored in the database, but are computed by Business Central at runtime.
The virtual tables provide such information as:
- Integers in the range –1,000,000,000 to 1,000,000,000
- Dates in a given period
- Overview of the operating system files
- Overview of the logical disk drives
- Overview of the operating system files that store the database
For example, you can use filters to get subsets or ranges of integers or dates from the Integer
virtual table or the Date
virtual table.
table 2000000026 Integer:
Like the system tables, their ID range is 2.000.000.000 (2 billion) and above as well.
Note:
The system or virtual table ‘Expanded Permission’ cannot be extended. AL AL0525
So how do you distinguish which are system tables and which are virtual tables? This is not in the table properties. There is actually a simple way. When you download symbol files in VS Code, the following file is automatically downloaded, Microsoft_System_24.0.20409.0.app.
We can unzip this file. Then you can find System Tables and Virtual Tables folders in the folder below.
~.alpackages\Microsoft_System_24.0.20409.0\src
System Tables:
Virtual Tables:
I organized it briefly.
All the 2.000.000.000 (2 billion) tables (175) in Version: W1 24.3 (Platform 24.0.21879.0 + Application 24.3.21374.21517)
System tables: 117
Virtual tables: 58
Type | Id | Name | Type |
Table | 2000000001 | Object | System table |
Table | 2000000004 | Permission Set | System table |
Table | 2000000005 | Permission | System table |
Table | 2000000006 | Company | System table |
Table | 2000000007 | Date | Virtual table |
Table | 2000000009 | Session | Virtual table |
Table | 2000000020 | Drive | Virtual table |
Table | 2000000022 | File | Virtual table |
Table | 2000000026 | Integer | Virtual table |
Table | 2000000028 | Table Information | Virtual table |
Table | 2000000029 | System Object | Virtual table |
Table | 2000000038 | AllObj | Virtual table |
Table | 2000000039 | Printer | Virtual table |
Table | 2000000040 | License Information | Virtual table |
Table | 2000000041 | Field | Virtual table |
Table | 2000000043 | License Permission | System table |
Table | 2000000044 | Permission Range | Virtual table |
Table | 2000000045 | Windows Language | Virtual table |
Table | 2000000048 | Database | Virtual table |
Table | 2000000049 | Code Coverage | Virtual table |
Table | 2000000050 | Language Selection | Virtual table |
Table | 2000000053 | Access Control | System table |
Table | 2000000055 | SID – Account ID | Virtual table |
Table | 2000000058 | AllObjWithCaption | Virtual table |
Table | 2000000063 | Key | Virtual table |
Table | 2000000065 | Send-To Program | System table |
Table | 2000000066 | Style Sheet | System table |
Table | 2000000067 | User Default Style Sheet | System table |
Table | 2000000068 | Record Link | System table |
Table | 2000000069 | Add-in | System table |
Table | 2000000071 | Object Metadata | System table |
Table | 2000000072 | Profile | System table |
Table | 2000000073 | User Personalization | System table |
Table | 2000000074 | Profile Metadata | System table |
Table | 2000000075 | User Metadata | System table |
Table | 2000000076 | Web Service | System table |
Table | 2000000078 | Chart | System table |
Table | 2000000080 | Page Data Personalization | System table |
Table | 2000000081 | Upgrade Blob Storage | System table |
Table | 2000000082 | Report Layout | System table |
Table | 2000000083 | Tenant Profile Setting | System table |
Table | 2000000084 | Tenant Profile Extension | System table |
Table | 2000000086 | Profile Configuration Symbols | System table |
Table | 2000000095 | API Webhook Subscription | System table |
Table | 2000000096 | API Webhook Notification | System table |
Table | 2000000097 | API Webhook Entity | Virtual table |
Table | 2000000098 | API Webhook Notification Aggr | System table |
Table | 2000000100 | Debugger Breakpoint | System table |
Table | 2000000101 | Debugger Call Stack | Virtual table |
Table | 2000000102 | Debugger Variable | Virtual table |
Table | 2000000103 | Debugger Watch Value | Virtual table |
Table | 2000000104 | Debugger Watch | System table |
Table | 2000000107 | Isolated Storage | System table |
Table | 2000000110 | Active Session | System table |
Table | 2000000111 | Session Event | System table |
Table | 2000000112 | Server Instance | System table |
Table | 2000000114 | Document Service | System table |
Table | 2000000115 | Document Service Scenario | System table |
Table | 2000000120 | User | System table |
Table | 2000000121 | User Property | System table |
Table | 2000000130 | Device | System table |
Table | 2000000132 | Entity Text | System table |
Table | 2000000135 | Table Synch. Setup | Virtual table |
Table | 2000000136 | Table Metadata | Virtual table |
Table | 2000000137 | CodeUnit Metadata | Virtual table |
Table | 2000000138 | Page Metadata | Virtual table |
Table | 2000000139 | Report Metadata | Virtual table |
Table | 2000000140 | Event Subscription | Virtual table |
Table | 2000000141 | Table Relations Metadata | Virtual table |
Table | 2000000142 | Query Metadata | Virtual table |
Table | 2000000143 | Page Action | Virtual table |
Table | 2000000144 | Power BI Blob | System table |
Table | 2000000145 | Power BI Default Selection | System table |
Table | 2000000146 | Intelligent Cloud | System table |
Table | 2000000150 | NAV App Object Metadata | System table |
Table | 2000000151 | NAV App Tenant App | System table |
Table | 2000000152 | NAV App Data Archive | System table |
Table | 2000000153 | NAV App Installed App | System table |
Table | 2000000154 | Database Locks | Virtual table |
Table | 2000000155 | NAV App Publish Reference | System table |
Table | 2000000156 | NAV App Published App | System table |
Table | 2000000157 | NAV App Extra | Virtual table |
Table | 2000000159 | Data Sensitivity | System table |
Table | 2000000160 | NAV App | System table |
Table | 2000000161 | NAV App Dependencies | System table |
Table | 2000000162 | NAV App Capabilities | System table |
Table | 2000000163 | NAV App Object Prerequisites | System table |
Table | 2000000164 | Time Zone | Virtual table |
Table | 2000000165 | Tenant Permission Set | System table |
Table | 2000000166 | Tenant Permission | System table |
Table | 2000000167 | Aggregate Permission Set | Virtual table |
Table | 2000000168 | Tenant Web Service | System table |
Table | 2000000169 | NAV App Tenant Add-In | System table |
Table | 2000000170 | Configuration Package File | System table |
Table | 2000000171 | Page Table Field | Virtual table |
Table | 2000000172 | Table Field Types | Virtual table |
Table | 2000000173 | Intelligent Cloud Status | System table |
Table | 2000000175 | Scheduled Task | System table |
Table | 2000000176 | NAV App Resource | System table |
Table | 2000000177 | Tenant Profile | System table |
Table | 2000000178 | All Profile | Virtual table |
Table | 2000000179 | OData Edm Type | System table |
Table | 2000000180 | Media Set | System table |
Table | 2000000181 | Media | System table |
Table | 2000000182 | Media Resources | System table |
Table | 2000000183 | Tenant Media Set | System table |
Table | 2000000184 | Tenant Media | System table |
Table | 2000000185 | Tenant Media Thumbnails | System table |
Table | 2000000186 | Profile Page Metadata | System table |
Table | 2000000187 | Tenant Profile Page Metadata | System table |
Table | 2000000188 | User Page Metadata | System table |
Table | 2000000189 | Tenant License State | System table |
Table | 2000000190 | Entitlement Set | System table |
Table | 2000000191 | Entitlement | System table |
Table | 2000000192 | Page Control Field | Virtual table |
Table | 2000000193 | Api Web Service | Virtual table |
Table | 2000000194 | Webhook Notification | System table |
Table | 2000000195 | Membership Entitlement | System table |
Table | 2000000196 | Object Options | System table |
Table | 2000000197 | Token Cache | System table |
Table | 2000000198 | Page Documentation | System table |
Table | 2000000199 | Webhook Subscription | System table |
Table | 2000000200 | NAV App Tenant Operation | System table |
Table | 2000000201 | NAV App Setting | System table |
Table | 2000000202 | All Control Fields | Virtual table |
Table | 2000000203 | Report Data Items | Virtual table |
Table | 2000000204 | Page Info And Fields | Virtual table |
Table | 2000000205 | Object Access Intent Override | System table |
Table | 2000000206 | Published Application | System table |
Table | 2000000207 | Application Object Metadata | System table |
Table | 2000000208 | Application Resource | System table |
Table | 2000000209 | Application Dependency | System table |
Table | 2000000210 | Tenant Feature Key | Virtual table |
Table | 2000000211 | Feature Key | System table |
Table | 2000000212 | Installed Application | System table |
Table | 2000000213 | Designed Query | System table |
Table | 2000000214 | Designed Query Caption | System table |
Table | 2000000215 | Designed Query Category | System table |
Table | 2000000216 | Designed Query Column | System table |
Table | 2000000217 | Designed Query Column Filter | System table |
Table | 2000000218 | Designed Query Data Item | System table |
Table | 2000000219 | Designed Query Filter | System table |
Table | 2000000220 | Designed Query Join | System table |
Table | 2000000221 | Designed Query Order By | System table |
Table | 2000000222 | Designed Query Permission | System table |
Table | 2000000223 | Designed Query Obj | Virtual table |
Table | 2000000224 | Designed Query Group | System table |
Table | 2000000225 | Designed Query Management | Virtual table |
Table | 2000000226 | Query Navigation | System table |
Table | 2000000227 | Extension Execution Info | Virtual table |
Table | 2000000228 | Report Settings Override | System table |
Table | 2000000229 | Report Printer | Virtual table |
Table | 2000000230 | Page Usage State | System table |
Table | 2000000231 | Report Layout Definition | System table |
Table | 2000000232 | Tenant Report Layout | System table |
Table | 2000000233 | Tenant Report Layout Selection | System table |
Table | 2000000234 | Report Layout List | Virtual table |
Table | 2000000235 | Database Wait Statistics | Virtual table |
Table | 2000000236 | Database Missing Indexes | Virtual table |
Table | 2000000237 | Privacy Notice | System table |
Table | 2000000238 | Privacy Notice Approval | System table |
Table | 2000000239 | Tenant Application Storage | System table |
Table | 2000000240 | External Event Subscription | System table |
Table | 2000000241 | External Event Log Entry | System table |
Table | 2000000242 | External Event Notification | System table |
Table | 2000000243 | Ext. Business Event Definition | Virtual table |
Table | 2000000244 | Extension Database Snapshot | Virtual table |
Table | 2000000245 | External Event Activity Log | System table |
Table | 2000000250 | Metadata Permission Set | Virtual table |
Table | 2000000251 | Metadata Permission | Virtual table |
Table | 2000000252 | Metadata Permission Set Rel. | Virtual table |
Table | 2000000253 | Tenant Permission Set Rel. | System table |
Table | 2000000254 | Expanded Permission | Virtual table |
Table | 2000000255 | Signup Context | System table |
Table | 2000000400 | Inplace Installed Application | System table |
Finally, let’s take a look at Virtual tables in Microsoft Dataverse.
Virtual tables in Microsoft Dataverse: Virtual tables (also known as virtual entities) enable the integration of data residing in external systems by seamlessly representing that data as tables in Microsoft Dataverse, without replication of data and often without custom coding.
A virtual table is a custom table in Microsoft Dataverse that has columns containing data from an external data source. Virtual tables appear in your app to users as regular table rows, but contain data that is sourced from an external database, such as an Azure SQL Database. Rows based on virtual tables are available in all clients including custom clients developed using the Dataverse web services. More details: Get started with virtual tables (entities) and Business Central Virtual Table for Microsoft Dataverse Admin Reference
So this kind of tables (virtual tables) is not a table in Business Central (Although there may be an intermediate table, TableType=CDS).
Business Central Virtual Table in AppSource:
Microsoft Dynamics 365 Business Central Virtual Tables for Microsoft Dataverse.
Microsoft Dynamics 365 Business Central Virtual Table is a virtual data source in Microsoft Dataverse allowing Create, Read, Update and Delete operations from Microsoft Dataverse against Dynamics 365 Business Central. Data for virtual tables do not reside in Microsoft Dataverse, but continues to reside in Business Central. Virtual tables are enabled for Business Central APIs, by making them available in Microsoft Dataverse as virtual tables. Custom and Standard APIs exposed in Business Central are consumable on Microsoft Dataverse and can be exposed as virtual tables. The new version adds support for data change events (CUD events) so Dataverse virtual tables can be used in Power Automate flows.
And after you complete the Set up a connection to Dataverse, you can view all available virtual tables in Available Virtual Tables – Dataverse.
And in Power Apps:
For example, account:
All the Virtual tables in Microsoft Dataverse (78) in Version: W1 24.3 (Platform 24.0.21879.0 + Application 24.3.21374.21517)
Name | Display Name | API Route |
account | Account | v2.0 |
accountingPeriod | Accounting Period | v2.0 |
agedAccountsPayable | Aged Accounts Payable | v2.0 |
agedAccountsReceivable | Aged Accounts Receivable | v2.0 |
applyVendorEntry | Apply Vendor Entry | v2.0 |
attachment | Attachment | v2.0 |
balanceSheet | Balance Sheet | v2.0 |
bankAccount | Bank Account | v2.0 |
cashFlowStatement | Cash Flow Statement | v2.0 |
companyInformation | Company Information | v2.0 |
contact | Contact | v2.0 |
contactInformation | Contact Information | v2.0 |
countryRegion | Countries Region | v2.0 |
currency | Currency | v2.0 |
currencyExchangeRate | Currency Exchange Rate | v2.0 |
customer | Customer | v2.0 |
customerContact | Customer Contact | v2.0 |
customerFinancialDetail | Customer Financial Detail | v2.0 |
customerPayment | Customer Payment | v2.0 |
customerPaymentJournal | Customer Payment Journal | v2.0 |
customerReturnReason | Customer Return Reason | v2.0 |
customerSale | Customer Sale | v2.0 |
defaultDimension | Default Dimension | v2.0 |
dimension | Dimension | v2.0 |
dimensionSetLine | Dimension Set Line | v2.0 |
dimensionValue | Dimension Value | v2.0 |
disputeStatus | Dispute Status | v2.0 |
documentAttachment | Document Attachment | v2.0 |
employee | Employee | v2.0 |
fixedAsset | Fixed Asset | v2.0 |
fixedAssetLocation | Fixed Asset Location | v2.0 |
generalLedgerEntry | General Ledger Entry | v2.0 |
generalLedgerSetup | General Ledger Setup | v2.0 |
generalProductPostingGroup | General Product Posting Group | v2.0 |
incomeStatement | Income Statement | v2.0 |
inventoryPostingGroup | Inventory Posting Group | v2.0 |
item | Item | v2.0 |
itemCategory | Item Category | v2.0 |
itemLedgerEntry | Item Ledger Entry | v2.0 |
itemVariant | Item Variant | v2.0 |
journal | Journal | v2.0 |
journalLine | Journal Line | v2.0 |
location | Location | v2.0 |
opportunity | Opportunity | v2.0 |
paymentMethod | Payment Method | v2.0 |
paymentTerm | Payment Term | v2.0 |
pdfDocument | PDF Document | v2.0 |
picture | Picture | v2.0 |
project | Project | v2.0 |
purchaseCreditMemo | Purchase Credit Memo | v2.0 |
purchaseCreditMemoLine | Purchase Credit Memo Line | v2.0 |
purchaseInvoice | Purchase Invoice | v2.0 |
purchaseInvoiceLine | Purchase Invoice Line | v2.0 |
purchaseOrder | Purchase Order | v2.0 |
purchaseOrderLine | Purchase Order Line | v2.0 |
purchaseReceipt | Purchase Receipt | v2.0 |
purchaseReceiptLine | Purchase Receipt Line | v2.0 |
retainedEarningsStatement | Retained Earnings Statement | v2.0 |
salesCreditMemo | Sales Credit Memo | v2.0 |
salesCreditMemoLine | Sales Credit Memo Line | v2.0 |
salesInvoice | Sales Invoice | v2.0 |
salesInvoiceLine | Sales Invoice Line | v2.0 |
salesOrder | Sales Order | v2.0 |
salesOrderLine | Sales Order Line | v2.0 |
salesQuote | Sales Quote | v2.0 |
salesQuoteLine | Sales Quote Line | v2.0 |
salesShipment | Sales Shipment | v2.0 |
salesShipmentLine | Sales Shipment Line | v2.0 |
shipmentMethod | Shipment Method | v2.0 |
taxArea | Tax Area | v2.0 |
taxGroup | Tax Group | v2.0 |
timeRegistrationEntry | Time Registration Entry | v2.0 |
trialBalance | Trial Balance | v2.0 |
unitOfMeasure | Unit Of Measure | v2.0 |
vendor | Vendor | v2.0 |
vendorPayment | Vendor Payment | v2.0 |
vendorPaymentJournal | Vendor Payment Journal | v2.0 |
vendorPurchase | Vendor Purchase | v2.0 |
PS: Microsoft Power Platform integration with Business Central via virtual tables and Business Central Virtual Tables FAQ
The new virtual tables are named after the ones in Power Platform, but Business Central already has virtual tables. This is what makes it confusing. Hopefully this post will help you make this clear.
END
Hope this will help.
Thanks for reading.
ZHU
コメント