Fuentes de Datos de Script
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();