Table of Contents

Limitaciones conocidas

Important

La CLI de Tabular Editor se encuentra en vista previa pública limitada. Se ofrece para su evaluación con una cuenta de Tabular Editor; no se requiere ninguna licencia durante la vista previa. Los comandos, las opciones y las salidas pueden cambiar antes de la disponibilidad general. La versión preliminar deja de funcionar después de 2026-09-30. No recomendamos usar la CLI en pipelines de CI/CD de producción durante la vista previa. Consulta nuestro acuerdo de licencia.

En esta página se enumeran las limitaciones conocidas de la CLI de Tabular Editor (te) para que puedas planificar en consecuencia y evitar errores habituales. Se actualiza con cada versión; si encuentras un problema que no figura aquí, abre una incidencia en el repositorio público TabularEditor/CLI.

Note

Las limitaciones se agrupan por área. Cada entrada describe la restricción y, cuando existe, una solución alternativa o la alternativa recomendada compatible con la CLI.

Scripts

La CLI ejecuta C# Scripts (te script) sobre el mismo objeto Model que usas en Tabular Editor 2 y 3, pero funciona como un host de consola sin interfaz gráfica. Todo lo que dependa de una interfaz de usuario de Windows Forms, de la selección del Explorador TOM o de un servicio en ejecución del lado de la interfaz (registro de macros, DAX Formatter en línea, Analizador VertiPaq en tiempo real) se comporta de forma diferente; por lo general, queda vacío, no hace nada o devuelve un error.

Limitación Notas / Solución alternativa
System.Windows.Forms no se ha cargado La CLI usa una compilación multiplataforma de TOMWrapper que elimina todo el código acoplado a WinForms; el ensamblado de WinForms nunca se carga en el AppDomain. Los scripts que hacen referencia a tipos de System.Windows.Forms (MessageBox, Form, selectores de archivos, cuadros de diálogo personalizados, …) no se pueden compilar. Reestructura cualquier interacción con la interfaz de usuario en argumentos del script, variables de entorno o stdin.
Selected.<Plural> devuelve un enumerable vacío Selected.Tables, Selected.Measures, Selected.Columns, Selected.Hierarchies, etc. no devuelven nada en la CLI: no hay error de compilación ni de ejecución; simplemente no hay filas. Sustituye por búsquedas explícitas: Model.AllMeasures.Where(...), Model.Tables["Sales"].Measures, o pasa rutas de objetos mediante te script --args.
Selected.<Singular> genera un error en tiempo de ejecución Selected.Table, Selected.Measure, Selected.Column, Selected.Hierarchy, etc. devuelven un error porque requieren exactamente un objeto seleccionado de ese tipo y la selección de la CLI siempre está vacía. Haz referencia al objeto directamente, por ejemplo, Model.Tables["Sales"].
Selected.ActivePerspectives y Selected.ActiveCulture Siempre devuelven una colección vacía y null, respectivamente. Establece la perspectiva o la configuración regional explícitamente en el script si es necesario.
Los cuadros de diálogo Select<Object> lanzan NotSupportedException SelectTable, SelectColumn, SelectMeasure, SelectObject, SelectObjects (y todas las sobrecargas) devuelven el siguiente error: "Los cuadros de diálogo de selección de objetos … no están disponibles en los scripts de la CLI. Preselecciona el objeto por nombre o por ruta antes de ejecutar el script." Resuelve los objetivos de antemano a partir de los argumentos del script, la configuración o consultando el modelo.
Info / Warning / Error / Output escriben en la consola Estos siguen funcionando, pero se envían a stdout/stderr en lugar de abrir un cuadro de diálogo. Nunca bloquean ni muestran un aviso para "ignorar más ventanas emergentes". Se pueden usar con seguridad en CI.
ShowPrompt(...) siempre devuelve Cancel No es posible realizar una confirmación interactiva. Decide la respuesta de antemano mediante argumentos del script o la configuración.
SuspendWaitForm / WaitFormVisible no hacen nada El indicador giratorio de "Please wait" es un elemento de la interfaz de TE3. WaitFormVisible es una bandera configurable sin efecto Visual, y SuspendWaitForm se ignora silenciosamente; los scripts existentes siguen compilando.
host.Macro(...) / CustomAction(...) lanzan un error La CLI no carga %APPDATA%/TabularEditor3/MacroActions.json, por lo que invocar una macro desde dentro de un script devuelve un error. Inserta la lógica de la macro en línea o llama directamente al archivo de script subyacente de la macro.
table.GetCardinality() / column.GetTotalSize() devuelven 0 Los auxiliares de cardinalidad de VertiPaq dentro del script no tienen un VPA en vivo en el host de la CLI. Para obtener estadísticas de VPA, carga explícitamente un VPAX y usa host.Vpa.*, o ejecuta te vertipaq.

Best Practice Analyzer

Limitación Notas / Solución alternativa
Las fuentes de reglas de BPA deben ser URL HTTPS o rutas de archivos locales Solo se aceptan las URL https:// y las rutas de archivo locales sin esquema. http:// se reconoce, pero se rechaza deliberadamente en tiempo de carga con un error claro; como las reglas de BPA son expresiones de reglas ejecutables, obtenerlas a través de un canal no autenticado supondría un riesgo de manipulación. Otros esquemas de URL (file://, ftp://, …) no se admiten. Se aplica tanto a te bpa run --rules como a la lista de reglas configurada mediante te config set.
La validación de las URL de las reglas se realiza en el gate, no en te config set Un error tipográfico como http:// lo acepta te config set y solo sale a la luz cuando BPA se ejecuta realmente. Después de editar las fuentes de reglas configuradas, ejecuta te bpa run (o te validate) una vez para comprobar que cada URL se carga correctamente.
--rules no desactiva las reglas integradas Cuando se pasa te bpa run --rules <path-or-url>, las reglas proporcionadas sustituyen las entradas de bpa.rules y TE_BPA_RULES para esa invocación, pero los valores predeterminados integrados siguen cargándose también. Para ejecutar solo el archivo de reglas explícito, pasa también --no-defaults.
No hay ninguna opción por invocación para omitir la configuración de bpa.rules Una vez configurado bpa.rules, cada te bpa run carga esas reglas además de las integradas. Actualmente no hay ninguna opción para omitir los archivos de reglas configurados en una sola ejecución. Solución alternativa: pasa --rules <path-or-url> explícitamente; esta opción sustituye por completo bpa.rules y TE_BPA_RULES para esa invocación.

Validación

Limitación Notas / Solución alternativa
te validate no puede corregir automáticamente las infracciones de Code Action te validate genera un Report de infracciones de Code Action, pero no ofrece ningún parámetro de la CLI para aplicar la corrección sugerida. Aplica la corrección en Tabular Editor 3, o usa te bpa run --fix para el subconjunto de Code Actions que se solapan con las reglas de BPA.

E/S del modelo

Limitación Notas / Solución alternativa
--serialization no puede combinar una serialización con un contenedor PBIP La opción --serialization en te save trata bim, tmdl, te-folder y pbip como mutuamente excluyentes, por lo que actualmente no se puede generar un contenedor PBIP alrededor de un modelo serializado con TMSL (.bim). Guarda TMDL dentro de un contenedor PBIP, o guarda .bim fuera de un contenedor PBIP.

Autenticación

Limitación Notas / Solución alternativa
Solo una identidad almacenada en caché por método de autenticación La CLI almacena en caché una identidad UPN (interactiva) y una identidad SPN (entidad de servicio) a la vez. Cambiar a otro usuario o inquilino con el mismo método de autenticación requiere te auth logout y después volver a ejecutar te auth login, lo que invalida la caché anterior.

Entrada en la línea de comandos

Limitación Notas / Solución alternativa
Las rutas de objetos DAX con espacios deben ir entre comillas del shell Cuando el nombre de una tabla o columna contiene espacios, toda la referencia al objeto DAX debe ir entre comillas del shell desde el terminal: te get "'My Table'[My Column]". Sin las comillas externas, el shell divide la ruta en varios argumentos y el análisis sintáctico falla. Dentro de te interactive no se necesitan comillas del shell porque el REPL recibe la entrada sin procesar antes de que el shell la divida en argumentos.

Paridad con TE2

Limitación Notas / Solución alternativa
te schemacheck todavía no se ha implementado La opción -SC / -SCHEMACHECK de TE2 no tiene hoy por hoy ningún equivalente en te; la detección de deriva del esquema con respecto a las Data source de origen está prevista para una versión futura. Consulta Migración desde la línea de comandos de TE2 para ver la tabla completa de equivalencias de opciones entre TE2 y te.

Enviar un Report de una limitación no documentada

Si algún comportamiento te sorprende y no aparece aquí, abre una incidencia en TabularEditor/CLI e incluye el comando que ejecutaste, la salida que viste y la salida que esperabas. Las limitaciones confirmadas se añaden a esta página en la siguiente versión.

Páginas relacionadas