Table of Contents

Evitar caracteres no válidos en las descripciones

Resumen

Esta regla de buenas prácticas identifica objetos cuyas descripciones contienen caracteres de control no válidos (caracteres no imprimibles, excepto los espacios en blanco estándar). Estos caracteres pueden provocar problemas de visualización, corrupción de metadatos y fallos de implementación.

  • Categoría: Prevención de errores
  • Gravedad: Alta (3)

Se aplica a

  • Tablas
  • Medidas
  • Jerarquías
  • Niveles
  • Perspectivas
  • Particiones
  • Columnas de datos
  • Columnas calculadas
  • Columnas de tablas calculadas
  • KPI
  • Roles del modelo
  • Grupos de cálculo
  • Elementos de cálculo

Por qué es importante

Los caracteres de control en las descripciones provocan varios problemas:

  • Corrupción de la visualización: Las descripciones emergentes y los paneles de documentación pueden mostrar texto ilegible
  • Problemas de metadatos: La exportación TMSL/XMLA puede generar XML no válido
  • Fallos de despliegue: Power BI Service o Analysis Services pueden rechazar el modelo
  • Problemas de documentación: La documentación generada puede romper el formato
  • Errores de codificación: Problemas de sincronización multiplataforma
  • Confusión del usuario: Los caracteres invisibles generan descripciones confusas o dañadas

El espacio en blanco estándar (espacios, saltos de línea, tabulaciones) es aceptable, pero deben eliminarse los caracteres de control no imprimibles.

Cuándo se activa esta regla

La regla se activa cuando la descripción de un objeto contiene caracteres de control que no sean espacios en blanco estándar:

Description.ToCharArray().Any(char.IsControl(it) and !char.IsWhiteSpace(it))

Esto detecta caracteres problemáticos y, a la vez, permite un formato de espacio en blanco válido.

Cómo corregir

Corrección automática

Esta regla incluye una corrección automática que reemplaza los caracteres no válidos por espacios:

Description = string.Concat(
    it.Description.ToCharArray().Select(
        c => (char.IsControl(c) && !char.IsWhiteSpace(c)) ? ' ' : c
    )
)

Para aplicarla:

  1. En Best Practice Analyzer, selecciona los objetos marcados
  2. Haz clic en Aplicar corrección

Corrección manual

  1. En el Explorador TOM, selecciona el objeto
  2. En el panel Propiedades, localiza el campo Descripción
  3. Edita la descripción para eliminar los caracteres no válidos
  4. Guarda los cambios

Causas habituales

Causa 1: Copiar y pegar desde texto enriquecido

Copiar descripciones desde documentos de Word, páginas web o correos electrónicos puede introducir caracteres de formato ocultos.

Causa 2: Generación automática de documentación

Los scripts que generan descripciones pueden incluir caracteres de control procedentes de los sistemas de origen.

Causa 3: Importación de datos desde orígenes externos

Importación de metadatos que contienen artefactos de codificación o códigos de control.

Ejemplo

Antes de la corrección

Measure: [Total Revenue]
Description: "Calculates\x00total\x0Brevenue"  (contains NULL and vertical tab)

La información sobre herramientas muestra: "Calcula□los□ingresos totales" (con corrupción visible)

Después de la corrección

Measure: [Total Revenue]
Description: "Calculates total revenue"  (control characters replaced with spaces)

El tooltip se muestra correctamente: "Calcula los ingresos totales"

Nivel de compatibilidad

Esta regla se aplica a modelos con nivel de compatibilidad 1200 o superior.

Reglas relacionadas