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:

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:

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 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
All Objects
License Permission
Record link
API Webhook Subscription
API Webhook Notification
Active Session
Session Event
Table Metadata
Codeunit Metadata
Page Metadata
Event Subscription

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.

Comment List