sábado, 23 de octubre de 2010

Botón derecho, cuadrar y validar

El título de este artículo sería la funcionalidad más maravillosa que podría ofrecer la informática profesional en lo que a gestión de información numérica se refiere.
Lamentablemente, me temo que esta funcionalidad no estará disponible en esta vida, lo que tiene su parte positiva para no aumentar el paro entre los técnicos informáticos que en algún momento de su vida pasan horas y horas validando datos.
Hoy quiero rendir homenaje a este colectivo (entre los que me incluyo) con una historia verídica que da que pensar.

"La fabulosa historia del dato que nunca cuadrará o de cómo usar Essbase como calculadora carísima para realizar sumas sencillas de datos que no existen"
Como supongo que no hay tanta gente que conozca Essbase, diré que es una base de datos multidimensional con dimensiones jerarquizadas en estructuras arborescentes (hala, cuanto palabro) como puede ser Microsoft Analysis Services, SAP BW o Palo.
Una de las funcionalidades más potentes que posee es que se puede llegar a personalizar el cálculo de cualquier elemento de cualquier dimensión incluyendo una fórmula en ese elemento. El cubo, al procesarse, realiza el cálculo (que puede ser más o menos complejo).
A la hora de poner una fórmula en un miembro, hemos de considerar que si este miembro se calcula a partir de otros es posible que debamos ponerlos entre comillas siempre que pueda dar lugar a error. Por ejemplo, miembros con nombres numéricos o bien con espacios en su nombre.

Así pues, imaginad una estructura como la siguiente:
Total
+1
+2
+3
+4
+5
Los números que aparecen bajo el miembro 'Total' no son una suma: son miembros que se llaman 1, 2, 3, etc y son lo que se conoce como 'hijos' de 'Total'.
Ahora imaginemos que el miembro 'Total' ha de hacer la suma de estos miembros. Podría hacerlo directamente mediante la consolidación estándar del outline, pero entonces acabaríamos aquí la historia y no tendría gracia, así que utilizaremos una fórmula.
Pregunta de examen: ¿Cuál es la fórmula correcta?
a) Total=1+2+3+4+5;
b) Total="1"+"2"+"3"+"4"+"5";

(Redoble de tambores).
Si habéis contestado la primera os recomiendo la lectura del DBAG de Essbase. Hala, castigados al rincón.
Si habéis contestado la segunda, habéis acertado.
El caso es que las dos son correctas sintácticamente, pero el primer caso hace que 'Total' siempre siempre siempre (incluso aunque falle) sume 15.
El segundo caso, sumará el valor cargado en cada uno de los miembros.

¿Y qué pasó con ésto?
a) Pasó que el que desarrolló el outline y le puso la fórmula no estaba muy inspirado ese día.
b) Aparte de no estar inspirado desarrollando, hizo una validación de Premio Nobel
c) Encima lo entregó
d) Y el cliente no se dio cuenta... Durante varios años.

¿Y qué conclusiones sacamos de esta situación?
a) Que por mucho que queramos, las validaciones nunca son fáciles para el que no conoce al dedillo el negocio y los datos... E incluso para el que los conoce.
b) Que habitualmente almacenamos mucha más información y a un nivel de detalle muchísimo mayor del que realmente se va a utilizar, complicando sobremanera las bases de datos o los cubos.
c) Que en la vorágine de datos de millones de trillones de valores de euros o cantidades, un valor que sume 15 o 5000 pasa fácilmente inadvertido, corrompiendo la sagrada integridad de los datos.
y d) Que debería haber una pena de cortar al menos un dedo de cada mano con movimiento rápido y contacto del pie en la entrepierna al lumbreras que programó, validó y liberó tamaño pecado mortal contra las buenas prácticas de Essbase y de cualquier desarrollo informático.

... Y bueno, el que lo hizo vivió feliz porque no estaba cuando se descubrió el error y además no había pena capital por ello, el cliente miró hacia otro lado y el cubo comenzó varios años más tarde a funcionar como debiera en el final más feliz que podía tener un cuento como éste.

Fin.

No hay comentarios:

Publicar un comentario