Beruflich Dokumente
Kultur Dokumente
Noviembre 2012
Qu es Script Logic?
Lenguaje de scripting que permite realizar clculos
a nivel de miembros base de dimensin.
Puede ser ejecutado:
De forma manual
De forma automtica, incluyendo el script en el
Default.lcg del modelo.
Despus de un Jornal de envo de datos usando
el Default.lcg o el Journal.lcg si lo hubiera.
Sintaxis: MDX
MDX solo deber ser utilizado solo cuando se utilicen
en miembros de dimensin que estn limitadas a
ratios o bien cuentas de anlisis donde la frmula
tenga que aplicarse a todos los niveles de las
dimensiones del cubo.
Ejemplos: Abs(<numericexpression>),
Ascendants(<member>), <level>.Members
Sintaxis: SQL
Se ejecuta directamente en la tabla de hechos
haciendo que la consulta se realice de forma ms
eficiente que MDX.
Scope / Entrada
Scope
El scope ser el conjunto de dimensiones y
miembros de las mismas SOBRE las que se
ejecutar el script.
En el caso de ejecutarlo manualmente el scope se
en las propiedades del script estableciendo las
dimensiones sobre las que se preguntar al
usuario.
Scope: automtico
En el caso de ser una ejecucin automtica (default
journal), el entorno vendr dado por la ejecucin:
los datos modificados y el contexto en el que se
ejecuta .
Scope: automtico
Scope en el script
Una vez en la ejecucin del script podemos limitar /
ampliar el scope mediante varias instrucciones:
*XDIM_MEMBERSET
*XDIM_ADDMEMBERSET
*XDIM_FILTER
Ejecucin
Ejecucin
Seleccionar qu se ejecutar sobre qu miembros y
de que forma se cambia el registro seleccionado:
*WHEN
*ELSE
*REC
EXPRESSION
FACTOR
*COMMIT
*FOR / *NEXT
*ENDWHEN
Ejecucin: *ELSE
Es un aadido a *WHEN *IS. Hace que en caso de
no cumplirse la condicin de la instruccin *WHEN
se ejecuten las instrucciones que aparecen en la
instruccin *ELSE
Sintaxis:
*IS {Miembro},{Miembro}
*ELSE
*ENDWHEN
Ejecucin: *ELSE
Ejecucin: *ELSE
Ejecucin: *REC
La instruccin *REC permite grabar el registro que
estamos tratando o bien crear uno nuevo
El registro tendr las propiedades dependiendo del
scope sobre el que se est ejecutando el script as
como las condiciones del *WHEN que lo anteponga.
Ejecucin: *ELSE
Ejecucin: *REC
Podemos modificar el registro que se est
escribiendo por ejemplo cambiando el miembro de
la dimensin en la que se escribe.
Sintaxis
*REC([FACTOR]/[EXPRESION], DIMENSION =
MIEMBRO,)
Ejecucin: *ELSE
Ejecucin: *REC(EXPRESSION=)
Con este parmetro establecemos la expresin
matemtica con la que modificaremos o crearemos
el registro.
Ejecucin: *REC(FACTOR=)
Si tan solo queremos aplicar un factor al valor del
registro obtenido podemos usar el parmetro
FACTOR.
*NEXT
Para establecer la lista de miembros lo podemos hacer
indicando esos miembros o mediante la instruccin
*SELECT
Instruccin de escritura
*DESTINATION_APP
Best Practices
Best Practices
Estas reglas muestran la forma de desarrollar script
logics intentando que su impacto sea el menor en el
tiempo de ejecucin.
*WHEN ACCOUNT
*IS A
*REC(ACCOUNT=X)
*ENDWHEN
*WHEN ACCOUNT
*IS B
*REC(ACCOUNT=X)
*ENDWHEN
*WHEN ACCOUNT
*IS C
*REC(ACCOUNT=Y)
*ENDWHEN
*WHEN ACCOUNT
*IS D
*REC(ACCOUNT=Y)
*ENDWHEN
*WHEN ACCOUNT
*IS A
*REC(ACCOUNT=X)
*IS B
*REC(ACCOUNT=X)
*IS C
*REC(ACCOUNT=Y)
*IS D
*REC(ACCOUNT=Y)
*ENDWHEN
*WHEN ACCOUNT
*IS A,B
*REC(ACCOUNT=X)
*IS C,D
*REC(ACCOUNT=Y)
*ENDWHEN
Fin