En Business Central existen tablas del sistema que no almacenan datos de negocio como una tabla normal, sino informacion tecnica y metadatos del entorno. Este desarrollo crea una coleccion de paginas AL para consultar esas tablas virtuales de forma directa desde el cliente.

¡Vamos manos a la obra! 📚


Configuracion del proyecto

La extension esta en .Desarrollos/AL/virtual_tables/ y se define como OnPrem, con runtime 10.0 y rango de objetos 90000+:

{
  "id": "8f80241f-b325-4aad-8aeb-49b87a8dcdc9",
  "publisher": "Esteve Sanpons Carballares",
  "name": "Virtual Tables",
  "version": "1.0.0.0",
  "application": "21.0.0.0",
  "platform": "21.0.0.0",
  "idRanges": [
    {
      "from": 90000,
      "to": 900100
    }
  ],
  "target": "OnPrem",
  "runtime": "10.0"
}

Con esta base, el proyecto expone distintas tablas virtuales mediante paginas de tipo List con UsageCategory = Administration.


Patron que siguen las paginas

Todas las paginas siguen el mismo patron: seleccionar la SourceTable, declarar un repeater y exponer campos informativos con su ToolTip.

Ejemplo real con la pagina de AllObj:

page 90006 "AllObj"
{
    ApplicationArea = All;
    Caption = 'AllObj';
    PageType = List;
    SourceTable = AllObj;
    UsageCategory = Administration;

    layout
    {
        area(content)
        {
            repeater(General)
            {
                field("App Package ID"; Rec."App Package ID")
                {
                    ToolTip = 'Specifies the GUID of the app from which the object originated.';
                    ApplicationArea = All;
                }
                field("Object ID"; Rec."Object ID")
                {
                    ToolTip = 'Specifies the ID of the object.';
                    ApplicationArea = All;
                }
                field("Object Name"; Rec."Object Name")
                {
                    ToolTip = 'Specifies the name of the object.';
                    ApplicationArea = All;
                }
                field("Object Type"; Rec."Object Type")
                {
                    ToolTip = 'Specifies the type of the object.';
                    ApplicationArea = All;
                }
            }
        }
    }
}

Ejemplos utiles de tablas virtuales incluidas

1) Tabla virtual Field: para inspeccionar metadatos de campos (tipo, longitud, PK, relacion, clasificacion, etc.).

page 90008 "Field"
{
    ApplicationArea = All;
    Caption = 'Field';
    PageType = List;
    SourceTable = "Field";
    UsageCategory = Administration;
}

2) Tabla virtual Event Subscription: para auditar suscriptores, objeto publicador y numero de llamadas.

page 90012 "Event Subscription"
{
    ApplicationArea = All;
    Caption = 'Event Subscription';
    PageType = List;
    SourceTable = "Event Subscription";
    UsageCategory = Administration;
}

3) Tabla virtual Token Cache: para revisar datos de cache de autenticacion y trazas de tenant/usuario.

page 90035 "Token Cache"
{
    ApplicationArea = All;
    Caption = 'Token Cache';
    PageType = List;
    SourceTable = "Token Cache";
    UsageCategory = Administration;
}

Paginas incluidas en el desarrollo

El proyecto contiene 36 paginas AL de consulta sobre tablas virtuales y de sistema:

  • All Control Fields
  • AllObj
  • Application Dependency
  • Application Object Metadata
  • Application Resource
  • Database Locks
  • Event Subscription
  • Extension Execution Info
  • Field
  • Installed Application
  • Intelligent Cloud Status
  • Isolated Storage
  • License Information
  • License Permission
  • NAV App Capabilities
  • NAV App Extra
  • NAV App Installed App
  • NAV App Object Prerequisites
  • NAV App Setting
  • NAV App Tenant Operation
  • Object
  • Object Metadata
  • Object Options
  • Page Table Field
  • Permission
  • Permission Range
  • Published Application
  • Record Link
  • Scheduled Task
  • System Object
  • Table Field Types
  • Table Metadata
  • Table Relations Metadata
  • Table Synch. Setup
  • Tenant Feature Key
  • Token Cache

Conclusión

Este desarrollo es una caja de herramientas tecnica para administracion y diagnostico en BC OnPrem. En lugar de consultar metadatos desde SQL o herramientas externas, puedes abrir paginas AL y revisar informacion de objetos, eventos, permisos, aplicaciones instaladas y mas tablas virtuales directamente en Business Central.

Si quieres ver el código completo, está en GitHub.