Informes en varios idiomas con Web Intelligence

Cómo cambiar el idioma de visualización de un informe:

Entrando en las preferencias del portal web BO Launchpad arriba a la derecha y haciendo clic en la pestaña Configuraciones regionales y zona horaria. Aparecerán tres listas desplegables. La primera de ellas permite cambiar el idioma de Web Intelligence y la segunda permite cambiar el idioma en el que se cargan los informes. Si se elige inglés (Reino Unido) los informes se cargarán en inglés si están disponibles en ese idioma.

Cómo modificar un informe para que esté disponible en varios idiomas:

Los informes de Web Intelligence se pueden traducir con la herramienta Translation Management Tool que se instala en Windows al instalar el paquete SAP BusinessObjects.

Esta herramienta permitirá traducir nombres de informes, nombres de variables, nombres de formatos condicionales, etc. Pero no cualquier texto que haya en el informe. Por ello, el primer paso para traducir un informe es cambiar textos como puede ser el nombre de la empresa y recogerlos dentro de la función ObtenerLocalizados(). De esta forma al importar el informe en Translation Management Tool aparecerá el texto disponible para ser traducido.

Ej. En una celda =”Nombre de la empresa: MyBusiness” se sustituye por =GetLocalized(“Business name”) + “: MyBusiness”

La forma de proceder es como sigue:
1. Importar un informe para traducirlo bien sea desde el archivo .wid o accediendo al CMS (Servidor de BO). Tras la importación en la herramienta aparece la lista de cadenas de texto en el idioma en el que se ha diseñado el informe.
2. Desde la parte inferior se añaden las configuraciones regionales a los que se quiere traducir la herramienta y para cada una se marca la casilla Visible.
3. Para cada idioma, se traducen las cadenas que se quieran. Quizás no interese traducir el nombre de las variables porque puede que los usuarios no lo vayan a ver.
4. Para cada cadena traducida a un idioma hay que cambiar el estado a TRANSLATED. En la parte inferior se puede ver cuánto porcentaje se ha traducido de cada idioma.
5. Exportar la traducción que se guardará automáticamente dentro del informe. Justo entonces se podrá abrir el informe con Web Intelligence y comprobar si las traducciones se aplican correctamente.

Pueden haber otros aspectos del informe que dependan del locale (idioma y zona geográfica), para estos casos se puede utilizar la función GetPreferredViewingLocale() que devuelve la configuración regional del usuario. Si se utiliza esta función en una condición se puede condicionar el resultado de una variable dependiendo del locale:

Ej. Variable Info =If GetPreferredViewingLocale() = “en_GB” Then”English message” Else”Mensaje en castellano”

De esta manera, si la fuente de datos también está traducida, otros usuarios que no sepan castellano no tendrán problema en leer el informe.

Para concluir, la internacionalización de los informes es un requisito que hay que tener en cuenta en la fase de análisis ya que como se ha indicado, un informe disponible en varios idiomas requiere incluir funciones específicas para este fin.

Anuncios

Agrupaciones en Web Intelligence

Las agrupaciones son ciudadanos de segunda en Web Intelligence, no son muy conocidas pero en ocasiones pueden sernos muy útiles ya que permiten clasificar los valores de una dimensión dentro de diferentes grupos.

Con una dimensión Mobile con los siguientes valores:
LG G3
LG V10
Samsung Galaxy S5
Samsung Galaxy S6

Sony Xperia Z3

Puede crearse una agrupación Brand con los siguientes grupos:
LG { LG G3, LG V10 }
Samsung { Samsung Galaxy S5, Samsung Galaxy S6 }

Sony { Sony Xperia Z3 }

Para cada grupo los indicadores se agregarán como se haya especificado en el origen de datos, por ejemplo, sumando los valores de la dimensión Mobile de cada grupo.

Crear una agrupación es tan fácil como arrastrar la dimensión al informe y pulsar botón derecho sobre los valores y Agrupar > Administrar grupos… En este ventana se puede marcar los valores de un grupo y después pulsar en Añadir para asignarles el nombre del grupo. A un valor sólo se le puede asignar un grupo dentro de una agrupación.

Agrupar

La principal ventaja es obvia: Proporciona un nivel de agregación superior, una dimensión nueva cuando los datos en el origen de datos no están correctamente desagregados: En este caso, de la base de datos no se puede extraer una dimensión Brand que es necesaria para el diseño del informe.

Se pueden crear tantas agrupaciones como se quiera para seguir agregando los datos en diferentes dimensiones. Si se tiene como valores de Mobile:
LG G3 Spain
LG V10 Germany
Samsung Galaxy S5 Germany
Samsung Galaxy S6 Germany

Sony Xperia Z3 Spain

Se puede volver a crear la agrupación anterior Brand y además una nueva agrupación Sold in con los grupos:
Spain { LG G3 Span, Sony Xperia Z3 Spain }
Germany { LG V10 Germany, Samsung Galaxy S5 Germany, Samsung Galaxy S6 Germany }
 Objetos
Ya se pueden utilizar en una tabla cruzada la dimensión Brand como filas y la dimensión Sold in como columnas.
Tabla

No hay que olvidar crear las agrupaciones con las claves de los valores en lugar de crearlas con los propios valores que pueden cambiar en diferentes configuraciones regionales y la agrupación no funcionaría correctamente. En castellano, por ejemplo, la dimensión Sold in sería Vendido en con los valores España y Alemania.

El único inconveniente de las agrupaciones es que la creación se realiza de manera gráfica y no tienen equivalente en código. Por ello, en cada informe habría que crear la misma agrupación manualmente y no valdría con copiar y pegar el código de la variable.

Lo mejor es tener la dimensión directamente en el origen de datos pero si esto no es posible (en general no lo es) y la dimensión no se necesita en demasiados informes, las agrupaciones son una herramienta muy rápida y limpia para tener nuevos niveles de agregación y mostrar la información de manera mejor agrupada y más intuitiva.

Desarrollando informes más mantenibles

Web Intelligence no ofrece la mejor funcionalidad para que el usuario sea capaz de desarrollar informes mantenibles, fáciles de corregir y de extender. Ya no hablemos de informes fáciles de probar sin datos de la fuente.

Siendo así, es el usuario el que debe adoptar la metodología necesaria para que sus informes no se pierdan en una montaña de fórmulas e IDs imposible de mantener.

SAP Web Intelligence

Por ello, cuando creo un informe, tengo algunas reglas muy sencillas para asegurar hasta cierto punto la mantenibilidad del código del informe:

1. Cada campo del informe debe contener una variable y no una fórmula: Puede ocurrir que haga falta revisar todas las fórmulas para hacer alguna modificación. Si las fórmulas están desperdigadas entre pestañas y variables la revisión puede ser tediosa. Por ello, cada celda del informe debe contener una variable y no una fórmula por muy fácil que sea.

2. Los Ids encapsulados en variables: Es más fácil leer una fórmula

=[Importe] Donde([Concepto - Clave] = [Transporte])

Siendo

[Transporte]="1"

Que leer

=[Importe] Donde([Concepto - Clave] = "1")

Además, almacenando el Id en una variable sólo habrá que cambiarla en un solo lugar si es necesario.

Lamentablemente no se puede incluir una variable en la función EnLista() y dentro sólo se pueden especificar cadenas de texto:

=[Importe] Donde([Concepto][Concepto - Clave] EnLista("1";"2";"3"))

3. Un control de versiones es completamente necesario y si no existe la posibilidad de usarlo para los informes, una alternativa es hacerlo a mano: Crear un repositorio con un archivo de texto por cada informe. Cada vez que se modifique una variable en Web Intelligence, se copia al archivo de texto y se actualiza el repositorio. No es divertido pero ayudará para entender cómo ha evolucionado el código con el tiempo y por qué se ha escrito así.