Estructuras de Datos

Tablas y Tipos de Datos

Dificultad: 3/10

Una tabla es el objeto fundamental de Business Central donde se almacenan los datos. Cada tabla representa una entidad del negocio (clientes, artículos, préstamos...) y está compuesta por campos, claves y triggers.

Un registro puede tener hasta 500 campos (8.000 bytes). Puede haber hasta 40 claves por tabla.

Estructura base de una tabla

AL
table <id> "<NombreTabla>"
{
    fields
    {
        field(<id>; "<NombreCampo>"; <TipoDato>) { }
    }
    keys
    {
        key(PK; "<Campo>") { }
    }
}

Tipos de dato principales

Numéricos

Tipo Descripción
Integer Entero entre -2.147.483.648 y 2.147.483.647
Decimal Número decimal de hasta 999.999.999.999.999,99
Boolean Verdadero o falso (0/1)
BigInteger Entero de 8 bytes
Option Lista cerrada de opciones (0 hasta 2.147.483.646)

Cadena

Tipo Descripción
Text[n] Hasta 250 caracteres alfanuméricos
Code[n] Entre 1 y 250 caracteres, siempre en mayúsculas y sin espacios al inicio/fin

Fecha y hora

Tipo Descripción
Date Días desde 01/01/1574 hasta 31/12/9999
Time Reloj de 24h en milisegundos
DateTime Fecha y hora combinadas en UTC
Duration Diferencia entre dos DateTime

Propiedades destacadas de los campos

Code y Text

Propiedad Descripción
InitValue Valor inicial del campo
NotBlank Impide dejar el campo vacío
TableRelation Vincula el campo con otra tabla
ExtendedDataType Validaciones especiales (email, teléfono, URL...)

Integer y Decimal

Propiedad Descripción
MinValue / MaxValue Rango permitido
BlankZero Oculta el cero en pantalla
AutoIncrement Se incrementa automáticamente con cada registro
DecimalPlaces Posiciones decimales para guardado y visualización

Ejemplo: Tabla de vehículos

AL
table 50101 "Vehiculo"
{
    fields
    {
        field(1;  "No.";              Code[20])    { NotBlank = true; }
        field(2;  "Matricula";        Code[10])    { NotBlank = true; }
        field(3;  "Marca";            Text[50])    { }
        field(4;  "Modelo";           Text[50])    { }
        field(5;  "Año Fabricacion";  Integer)
        {
            MinValue = 1900;
            MaxValue = 9999;
        }
        field(6;  "Kilometros";       Decimal)
        {
            MinValue = 0;
            DecimalPlaces = 0:2;
        }
        field(7;  "Fecha Alta";       Date)        { }
        field(8;  "Activo";           Boolean)
        {
            InitValue = true;
        }
        field(9;  "Estado";           Enum "Estado Alquiler") { }
    }
    keys
    {
        key(PK; "No.") { }
        key(SK1; "Matricula") { Unique = true; }
    }
}

💡 Tips

  • Usa Code para identificadores que se buscan y filtran frecuentemente (matrículas, códigos de cliente...).
  • Usa Text para descripciones o nombres que no se usan como clave.
  • AutoIncrement = true en un campo Integer es la forma más sencilla de generar IDs automáticos, aunque no garantiza secuencia contigua si hay borrados.
← Volver a Teoría