Table of Contents

Tabular Editor 3.26.2

Descargas de Tabular Editor 3.26.2:

Si aún no has usado Tabular Editor 3, tienes derecho a una prueba de 30 días, que puedes activar después de la instalación. También puedes comprar una licencia.

Echa un vistazo a nuestro blog del lanzamiento para obtener una breve visión general de las actualizaciones más importantes de este lanzamiento.

Mejoras en la versión 3.26.2

  • Se añadió el submenú contextual de clic derecho Mover a grupo para las tablas del Explorador TOM. El submenú muestra los grupos de tablas existentes, una opción (Nuevo...) que crea un grupo nuevo con las tablas seleccionadas y abre el editor de nombres, y una opción (Ninguno) que quita la asignación del grupo de tablas.

  • Se actualizaron los preajustes de modelos en las preferencias del Asistente de IA con las últimas versiones, para que los usuarios puedan elegir modelos actuales sin escribir un ID de modelo personalizado. Se agregaron claude-fable-5 y claude-opus-4-8 de Anthropic, y gpt-5.5/gpt-5.5-pro de OpenAI, junto con otras variantes actuales de GPT-5. Se eliminaron las entradas obsoletas (como las variantes antiguas de Codex) y el modelo predeterminado de OpenAI ahora es gpt-5.5.

  • Mejoras del analizador semántico

    • Se agregó compatibilidad con parámetros opcionales con expresiones predeterminadas en las UDF de DAX.
    • El analizador semántico ahora emite mensajes de advertencia o error adecuados cuando se llama a una UDF con un parámetro que no coincide con su tipo declarado (por ejemplo, al pasar un valor escalar a un parámetro TABLEREF, etc.)
    • El analizador semántico ahora informa de un error cuando IGNORE se usa en cualquier lugar que no sea directamente como argumento de expresión de SUMMARIZECOLUMNS, en consonancia con el comportamiento del motor.
    • El analizador semántico ahora admite el nuevo componente opcional y los parámetros de escape introducidos para la función NAMEOF en Power BI Desktop de abril de 2026. Las palabras clave de componente válidas son TABLE, COLUMN, MEASURE, CALENDAR, FULL, SELF, PARENT; las palabras clave de escape válidas son ESCAPED, UNESCAPED, MINIMALLYESCAPED. El tipo de valor devuelto no cambia (cadena escalar). Por ejemplo, EVALUATE { NAMEOF([MyMeasure], TABLE, MINIMALLYESCAPED) } devuelve el componente del nombre de la tabla de una referencia de medida totalmente calificada.

  • Mejoras de Semantic Bridge

    • Al importar una Databricks Metric View, ahora se incorporan los metadatos de la vista al modelo semántico.
      • comment pasa a ser la descripción del modelo, las dimensiones y las medidas.
      • display_name pasa a ser el nombre visible para el usuario en el modelo TOM, con name como alternativa si no se ha definido ningún display_name.
      • El format de medidas y dimensiones se traduce a FormatString de TOM, y el DataType de la columna o medida resultante se infiere a partir del formato (moneda, porcentaje, fecha, etc.). Las especificaciones de formato sin un equivalente claro en TOM recurren a un valor predeterminado razonable y generan una advertencia.
    • Se ha mejorado la traducción de SQL a DAX: los recuentos de filas (COUNT(*)), las referencias MEASURE(name), las operaciones binarias, los literales (incluido NULL -> BLANK()), la asignación de / al DIVIDE seguro frente a valores en blanco y la precedencia de los paréntesis ahora se traducen correctamente.
      • Las expresiones fuera del conjunto reconocido siguen recurriendo al SQL literal, con una advertencia.
      • La traducción a DAX se hace con el mejor esfuerzo posible; revísala y valídala antes de implementarla.
    • Se agregó soporte para esquemas en copo de nieve con uniones anidadas.
    • La deserialización de YAML acepta tanto fields: como dimensions: en el nivel superior: la especificación Databricks v1.1 los trata como alias. El recorrido de ida y vuelta conserva la palabra clave que haya usado el YAML de origen. Las vistas creadas en TE3 (sin YAML de origen) usan dimensions: de forma predeterminada para v1.1 y anteriores: el alias fields: se introdujo después de que se publicara la especificación v1.1, así que mantenemos la compatibilidad con las herramientas que usan la especificación 1.1 original. Aparece una advertencia de deserialización cuando una vista v1.1+ usa dimensions: (la especificación marca fields: como opción preferida a partir de v1.1), y aparece una advertencia equivalente cuando una vista anterior a v1.1 usa fields:.
      • En la superficie de scripting de C# Script, Dimension pasa a llamarse Field (view.Fields, view.AddField, Dimension -> Field, MakeValidationRuleForDimension -> MakeValidationRuleForField, ctx.DimensionNames -> ctx.FieldNames).
      • Los nombres heredados se mantienen como alias obsoletos que siguen compilando y ejecutándose con advertencias de desuso, por lo que los scripts existentes y las rutas almacenadas como Model.Dimensions["x"] siguen funcionando.
    • Las medidas de ventana (incluido el campo offset: de v1.1) se conservan en la deserialización y serialización de YAML. Aún no traducimos las características que la especificación marca como experimentales; el round-trip de YAML las conserva para que no se pierdan.
    • Las uniones ahora admiten dos propiedades nuevas en la especificación v1.1 actualizada:
      • Se admite el mapa rely:
      • El campo cardinality: se conserva en la ida y vuelta tanto para los dos valores de la especificación (many_to_one, one_to_many) como cuando se omite. Un valor desconocido usa many_to_one como valor predeterminado, con una advertencia.
        • Las uniones declaradas con cardinality: one_to_many se siguen importando, pero la relación con el origen se omite intencionadamente: la especificación v1.1 trata estas uniones como orígenes de hechos independientes, agregados por separado a la granularidad del origen. La tabla combinada se sigue creando para que aparezca en el modelo TOM resultante, pero sin las relaciones definidas. Se muestra una advertencia que señala esta diferencia en cada unión afectada.

Correcciones de errores en 3.26.2

  • Se corrigió un error por el que el chat de IA fallaba con un error BadRequest ("temperature is deprecated for this model") en Anthropic Claude Opus 4.7+ y Fable 5, que dejaron de admitir el parámetro de muestreo temperature. La lógica de reintento que reenvía la solicitud de forma transparente sin indicar explícitamente temperature ahora también reconoce la redacción de este proveedor, además de los casos que ya se contemplaban.

  • Ahora se sugieren calendarios en el autocompletado para las funciones NAMEOF y TABLEOF, junto con tablas, columnas y medidas. Esto incluye calendarios que no tienen configuradas columnas de unidad de tiempo (como un calendario recién agregado y aún sin configurar), que antes se omitían. Al escribir un prefijo entre comillas simples (por ejemplo, 'My Cal), ahora se limitan las sugerencias a los calendarios coincidentes, igual que ocurre con las tablas.

  • La ordenación y la paginación en la Vista previa de datos de la tabla ahora son más fiables en todos los modos de almacenamiento:

  • La ordenación por una columna que no tiene jerarquía de atributos ya no devuelve las filas en un orden incorrecto. Cuando es posible, la paginación ahora usa la función WINDOW (en motores que la admiten, para tablas con clave primaria); de lo contrario, la vista previa muestra las primeras filas e indica que el desplazamiento está desactivado.

  • La disponibilidad de la jerarquía de atributos ahora se lee directamente del servidor, por lo que sigue siendo correcta incluso después de que el modelo se procese fuera de Tabular Editor.

  • Las tablas DirectQuery ahora muestran correctamente las primeras filas (la paginación no es posible con DirectQuery), junto con un mensaje informativo.

  • Los metadatos de la vista previa se almacenan en caché durante la sesión y solo se actualizan cuando haces clic en Actualizar, lo que evita viajes de ida y vuelta innecesarios al servidor (incluidas las consultas repetidas de recuento de filas).

  • El formateador de DAX ya no elimina el calificador de tabla de los bloques DEFINE MEASURE cuando la tabla principal no se puede resolver en el modelo. Antes, esto podía convertir un MEASURE 'Sales'[Amount] = ... válido en el inválido MEASURE [Amount] = ..., lo que invalidaba la instrucción.

  • El analizador semántico ya no informa de un error espurio cuando se usa una función de eliminación de filtros (ALL, ALLSELECTED, REMOVEFILTERS o ALLCROSSFILTERED) como expresión principal del cuerpo de una función DAX definida por el usuario; por ejemplo: FUNCTION F = () => REMOVEFILTERS('Sales'). Estas UDF son válidas cuando se invocan como argumento de filtro de CALCULATE. El uso incorrecto se sigue notificando en los puntos de invocación, y los modificadores de relación (CROSSFILTER / USERELATIONSHIP) y KEEPFILTERS siguen siendo inválidos como cuerpos de UDF, en consonancia con el comportamiento del motor.

  • Al cambiar el nombre de una tabla a la que se hace referencia dentro de una llamada a la función NAMEOF, la corrección de fórmulas ahora actualiza correctamente la referencia a esa tabla.

  • El analizador semántico ya no informa de un error espurio cuando TABLEOF(...) se pasa como argumento de referencia de tabla a ALL, ALLEXCEPT, ALLSELECTED, ALLNOBLANKROW, ALLCROSSFILTERED o REMOVEFILTERS.

  • La acción Actualizar esquema de tabla ahora se comporta correctamente cuando se invoca en una combinación de tipos de objetos o cuando se invoca en un Grupo de tablas.


¿Vienes de Tabular Editor 2.x?

Mira este vídeo para hacer un recorrido rápido por las principales funcionalidades de Tabular Editor 3. Además, asegúrate de consultar nuestra guía de inicio.

Descripción general de las principales características de Tabular Editor 3:

  • IDE totalmente personalizable, con compatibilidad con múltiples monitores, soporte HiDPI y temas
  • Nuevo y potente editor de código DAX con autocompletado, comprobación de sintaxis, plegado de código y mucho, mucho más
  • *Modo del área de trabajo, que permite guardar los cambios en disco y sincronizar simultáneamente los metadatos del modelo con Analysis Services
  • *Previsualizar datos de tablas con desplazamiento infinito, crear PivotGrids o escribir consultas DAX para explorar el modelo o probar la lógica de cálculo
  • *Programar actualizaciones de datos
  • Actualizar los esquemas de las tablas tanto en Data sources de proveedor como en orígenes de datos estructurados (sí, ¡incluso para consultas M!)
  • Crear diagramas del Data model
  • Crear scripts DAX que permiten editar varias medidas u otros objetos calculados en un solo documento
  • Grabar C# Scripts y guardarlos como macros (antes conocidas como "Custom Actions")
  • Integración con el Analizador VertiPaq
  • Depurador de DAX
  • Integración del Optimizador de DAX
  • Acciones de código para refactorizar fácilmente tus expresiones DAX.

*=Solo disponible cuando se está conectado a una instancia de Analysis Services o Power BI