Getting not-out-of-the-box information with the out-of-the-box web client

A few days ago, I saw this tweet:

And that reminded me about a question I had a few weeks ago from my consultants on how to get more object-formation from the Web Client.  More in detail: in Belgium, we have 2 languages for a tiny country (NLB, FRB) that differ from the language used by developers (ENU).  Meaning: consultants speak another language than the developers, resulting in misunderstandings.

I actually had a very simple solution for them:

The Fields Table

For developers, a well known table with information about fields.  But hey, since we can “run tables” in the web client (and since this is pretty safe to do since these are not editable (and shouldn’t be – but that’s another discussion :D)), it was pretty easy to show the consultants an easy way to run tables.  It’s very well described by Microsoft on Microsoft Docs.  Just add “table=<tableid>” in the URL the right way, and you’re good to go.  So for running the “Fields table”, you could be using this URL: https://businesscentral.dynamics.com/?table=2000000041

And look at that wealth of information:

  • Data types
  • Field names
  • Field captions depending on the language you’re working in
  • Obsolete information
  • Data Classification information
  • ..

All a consultant could dream of to decently describe change requests and point developers to the right data, tables and fields.

This made me wonder though:

And can we easily even more from the web client?

Not all of the Business Central users, customers, consultants, … are developers.  So, can we still access this kind of information, without the access to code, VSCode or anything like that?

Yes we can. 

In fact, the starting point should be: how do I find objects?  Is there a list with objects?  And therefore also a list with these so-called system tables?

Well, you’ll need to …

learn how to find “AllObj”, and you’ll find it all!

AllObj is a system table that houses all objects (including the objects from Extensions), so if you go to this “kind of” url, you’ll find all objects in your system:

https://businesscentral.dynamics.com/?table=2000000038

You’ll see a very simple list of objects, and you can even see the app (package Id) it belongs to (not if that is important though …):

So – now you know how to find all objects and how to run objects.  You can run tables, reports, queries and pages, simply by constructing the right URL (pretty much the same as explained here).

System/Virtual tables

To find these special tables with system information, simply filter the “AllObj” table on “TableData” and scroll down to the system tables number range (ID range of 2.000.000.000 and above) and start browsing :-).  You’ll see that you don’t always have permission to read the content .. but if you do, you’d be surprised of the data that you can get out of the system.

Just a few pointers

Session information https://businesscentral.dynamics.com/?table=2000000009
All Objects https://businesscentral.dynamics.com/?table=2000000038
Fields https://businesscentral.dynamics.com/?table=2000000041
License Permission https://businesscentral.dynamics.com/?table=2000000043
Key https://businesscentral.dynamics.com/?table=2000000063
Record link https://businesscentral.dynamics.com/?table=2000000068
API Webhook Subscription https://businesscentral.dynamics.com/?table=2000000095
API Webhook Notification https://businesscentral.dynamics.com/?table=2000000096
Active Session https://businesscentral.dynamics.com/?table=2000000110
Session Event https://businesscentral.dynamics.com/?table=2000000111
Table Metadata https://businesscentral.dynamics.com/?table=2000000136
Codeunit Metadata https://businesscentral.dynamics.com/?table=2000000137
Page Metadata https://businesscentral.dynamics.com/?table=2000000138
Event Subscription https://businesscentral.dynamics.com/?page=9510

What if I get an error?

Well, that happens – like this one:

I don’t know why it does that – but do know you can always turn to a developer, that can try to apply the C/AL trick: just create a page in an extension and add all fields from the table and simply run that page.

5.00 avg. rating (98% score) - 3 votes

Permanent link to this article: https://www.waldo.be/2020/05/26/getting-not-out-of-the-box-information-with-the-out-of-the-box-web-client/

2 pings

  1. […] Getting not-out-of-the-box information with the out-of-the-box web client […]

  2. […] the BC16 Web Client, Waldo shows us we can run any object by simply typing a URL in Getting Not-Out-of-the-Box Information with the Out-of-the-Box Web Client. Here's the Fields table—for instance, a system […]

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: