Esta es una especie de preguntas frecuentes de un grupo de noticias, pero como alguien me hizo una nueva pregunta al respecto recientemente, pensé en escribir la respuesta para la posteridad: en una consulta MDX, ¿cómo maneja el problema de una consulta abortada porque los miembros que estaban una vez presentes en un cubo ya no están presentes? Por ejemplo, tiene una consulta que hace referencia al miembro [Time].[2002].[Q1].[M1] pero en un accidente de procesamiento de dimensión anormal, de repente descubre que este miembro ya no existe en su cubo. En este escenario, intentar ejecutar su consulta generará un error.

Ahora, en cualquier almacén de datos bien administrado, esto no debería suceder, pero en el mundo real sucede. En AS2K MDX no hay una solución elegante para este problema: debe usar la función VBA ESERROR de la siguiente manera:

CON
MEDIDAS DE LOS MIEMBROS. PRUEBA COMO
‘IIF(VBA!ISERROR(STRTOVALUE(«MEDIDAS.[UNIT SALES]»)), 1.0)’
MIEMBROS MEDIDAS.PRUEBA2 COMO
‘IIF(VBA!ISERROR(STRTOVALUE(«MEDIDAS.[THIS WONT WORK]»)), 1.0)’
SELECCIONE {MEDIDAS.PRUEBA, MEDIDAS.PRUEBA2} DE 0 DE VENTAS

En el Yukón, sin embargo, se maneja mucho mejor: las dimensiones tienen una propiedad llamada MDXMissingMemberMode, que puede configurar como «Error», que replica el comportamiento de AS2K, o como «Ignorar», lo que significa que el miembro se ignora si la dimensión es parte del único, el nombre es válido pero el nombre o la parte clave no lo es. El comportamiento predeterminado es ‘Ignorar’.

Debo decir que causó algunos dolores de cabeza aquí cuando lo encontramos por primera vez: al escribir manualmente MDX, a veces no se da cuenta de que un miembro no aparece en los resultados porque escribió mal su nombre. Sin embargo, en general, creo que los beneficios de esta nueva función superan cualquier posible confusión.