Agregando datos de entrada
En diversas ocasiones necesitamos incorporar al modelo O3 un catálogo ó una codificación que no existe en ninguna fuente de datos. En la mayoría de los casos la solución que encontramos es generar un archivo txt o incluso crear una tabla en la BD para que el dataamrt se ajuste a las necesidades. Pero es cierto que ambas alternativas pueden generarnos inconvenientes, la ubicación del archivo, la posibilidad de poder crear una tabla, etc.
O3 Designer incluye un tipo especial de fuente de datos que ofrece una excelente alternativa al problema.
El nuevo tipo de fuente de datos se identifica con el nodo de etiqueta "Script". El mismo no requiere configuración de ningún tipo por lo que simplemente se deben agregar las fuentes de datos deseadas.
A continuación se ofrecen algunos ejemplos de fuentes de datos generados a través de scripts:
Ejemplo de catálogo simple
ArrayList list = new ArrayList(); list.add(new Object[]{0, "Activos"}); list.add(new Object[]{1, "Pasivos"}); iterator = list.iterator();
Esta consulta nos permite tener una fuente de datos con los valores:
0 | Activos |
1 | Pasivos |
Se debe desmarcar el checkbox "Verificar antes de construir" para evitar errores durante la construcción.
Ejemplo de datos de entrada de tipo fecha
ArrayList list = new ArrayList(); list.add(new Object[]{new Date(2008-1900, 0, 1)}); iterator = list.iterator();
Esta consulta nos permite tener una fuente de datos con los valores:
01/01/2008 |
El año es base 1900, el mes es base 0 (0 es enero, 1 febrero, etc) y el dia es normal. El orden de los argumentos es: año, mes, dia
A partir del uso de scripts como consultas, se comprende que su potencial permite realizar procedimientos mucho más complejos y elaborados.
Ejemplo de datos de entrada de tipo fecha, generación automática a la fecha de hoy
El ejemplo anterior indica como generar una tabla de dimensión de datos fechas en forma estática. Dicha solución debe ser acompañada con una de las dos siguientes acciones:
- Indicar en el modelo que el "Modo de Error" asociado a la dimensión fecha es AGREGAR. Esta indicación puede ser global para todas las dimensiones, si se modifica el "Modo de Error" del modelo.
- Si no se opta por la opción anterior, en cada nuevo año se deberíamos modificar la fuente de datos en el modelo para obtener el nuevo año.
A continuación se facilita otra opción que no requiere las particularidades recién mencionadas, que consiste en una fuente de datos de tipo script para generar los valores de fecha en forma automática, desde una fecha de comienzo hasta la fecha de generación del cubo. En este ejemplo generamos a partir del año 1996
ArrayList list = new ArrayList(); int currentYear = Calendar.getInstance().get(Calendar.YEAR); for (int year=1996; year <= currentYear; year++) { list.add(new Object[]{new Date(year-1900, 0, 1)}); } iterator = list.iterator();