Reutilizar Scripts en Qlikview
Reutilizar Scripts en Qlikview
Al desarrollar documentos QlikView, a menudo tenemos que aplicarle el mismo set de lógica o transformaciones a información diferente.
A menudo los desarrolladores QlikView realizan un copy- paste para reutilizar un script. Aunque esta solución inicialmente puede surtir efecto, eso hace al
script bastante más difícil de mantener. Cuándo algo necesita variarse, se necesita cambiarlo en cada instancia delScript, corriendo el riesgo de versiones diferentes del mismo proceso de transformación.
Subrutinas
Una subrutina es un bloque reusable de un script que puede ser llamado desde otros lugares en QlikView usando la sentencia CALL.
Este bloque se forma usando las sentencias SUB y END SUB Las subrutinas pueden contener parámetros a fin de que el procesamiento puede hacerse en una manera flexible.
Por Ejemplo:
Si declaramos la subrutina siguiente:
SUB TraceRowCount (SourceTable)
// Writes the number of rows in SourceTable
// to the Script Execution Progress window.
IF '$(SourceTable)' <> ''
LET vNoOfRows = NoOfRows('$(SourceTable)');
TRACE >>> Number of rows in $(SourceTable):
$(vNoOfRows);
LET vNoOfRows = Null();
ELSE
TRACE >>> No table name specified;
END IF
END SUB
Y la llamamos posteriormente con la sentencia CALL
CALL TraceRowCount('Aircraft Types');
Se ejecutara la instrucción para cada tabla que le pasemos como parámetro
Incluir archivos de Script
Es posible incluir todo el código que hemos desarrollado en otro script, con la finalidad de no duplicar
el código y evitar errores por cambios que no se reproduzcan en todos los casos que deban hacerlo
Para ello copiaremos nuestro script anterior en el NotePad y lo guardaremos con la extensión .qvs: TraceRowCount.qvs.
Una vez tengamos el archivo podemos incluirlo en cualquier script mediante la sentencia:
$(Include=tracerowcount.qvs);
El mismo principio puede aplicarse a cadenas de conexión a bases de datos y rutas de archivos y directorios, por
ejemplo:
Si guardamos la siguiente ruta en la variable
SET vFolderSourceData = '..\Data Files\';
Y la guardamos en un documento exclusivo como Config.qvs, cada vez que llamemos al archivo con la sentencia include desde otro script, tendremos la
misma conexión
Por ultimo recomiendo una visita al sitio:
https://github.com/RobWunderlich/Qlikview-Components
Donde se pueden encontrar numerosos archivos qvs con subrutinas y complementos interesantes