Reutilizar Scripts en Qlikview

09.11.2014 00:11

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