qlikview proyecto

Download Qlikview Proyecto

If you can't read please download the document

Upload: eduardo-luque

Post on 03-Jul-2015

8.111 views

Category:

Documents


11 download

TRANSCRIPT

Desarrollo de Script QV Enterprise

Noviembre 2005 QV Versin 7.0 Espaol

copyright 1996-2005 QlikTech International

PJB/2005-04-01

QlikView Enterprise Script

Copyright 1994-2005 QlikTech International AB, Suecia. Las leyes internacionales de la Propiedad Intelectual prohben copiar, fotocopiar, reproducir, traducir o convertir, en parte o en su totalidad, por cualquier medio electrnico o formato electrnicamente legible, tanto la documentacin como el software, sin la previa autorizacin por escrito de QlikTech International AB, a excepcin del modo definido en la licencia de software. QlikView es una marca comercial registrada de QlikTech International AB. En los Estados Unidos de Amrica y Canad, QlikView es una marca comercial registrada de QlikTech, Inc. Microsoft, MS-DOS, Windows, Windows NT, Windows 95, Windows 98, Windows ME, Windows 2000, Windows XP, SQL Server, FoxPro, Excel, Access, ActiveX, el logotipo de Internet Explorer y MS Query son marcas registradas de Microsoft Corporation. IBM, AS/400 y PowerPC son marcas registradas de International Business Machines Corporation. Borland, Paradox y dBASE son marcas registradas de Borland International. ORACLE y SQL*Net son marcas registradas de Oracle Corporation. Apple, TimeType, Macintosh, PowerMacintosh y MacOS son marcas registradas de Apple Computer, Inc.

Documento original en ingls: Abril 2005

copyright 1996-2005 QlikTech International

Page 2

QlikView Enterprise Script

Indice1. INTRODUCCIN ......................................................................................................................... 6 1.1. ACERCA DE ESTE CURSO ........................................................................................................... 6 1.2. ARCHIVOS DE DATOS EMPLEADOS EN EL CURSO........................................................................ 7 1.3. INSTALACIN ............................................................................................................................ 7 1.4. GUARDAR ARCHIVOS ................................................................................................................ 7 1.5. FORMATO DE TEXTO DEL MATERIAL DE CURSO ......................................................................... 8 2. EL PLAN DE PROYECTO BI QLIK WHOLESALE TRADE (QWT)................................... 9 2.1. INTRODUCCIN AL PLAN DE PROYECTO..................................................................................... 9 2.2. PLAN DE PROYECTO: VISIN GENERAL ..................................................................................... 9 3. UNA BREVE INTRODUCCIN A LAS ESTRUCTURAS DE DATOS............................... 11 3.1. ACERCA DE LAS ESTRUCTURAS DE DATOS............................................................................... 11 3.2. BASES DE DATOS RELACIONALES ............................................................................................ 11 3.3. OTRAS ESTRUCTURAS DE DATOS ............................................................................................. 11 4. ESTRUCTURAS DE DATOS QLIKVIEW .............................................................................. 12 4.1. COMPARACIN ENTRE ESTRUCTURAS DE DATOS Y ESTRUCTURAS DE DATOS QLIKVIEW ........ 12 4.2. ESTRUCTURAS DE DATOS EN QLIKVIEW ................................................................................. 13 5. CARGAR DATOS EN QLIKVIEW .......................................................................................... 14 5.1. EDICIN DE SCRIPT ................................................................................................................. 14 Barra de Herramientas del Editor de Script ............................................................................ 15 Comandos de men del Editor de Script .................................................................................. 16 Panel de Herramientas del Editor de Script ............................................................................ 17 5.2. SINTAXIS ................................................................................................................................. 20 5.3. CONNECT ................................................................................................................................ 20 5.4. SELECT.................................................................................................................................... 22 5.5. LOAD ...................................................................................................................................... 23 5.6. RENOMBRAR UN CAMPO.......................................................................................................... 24 6. ARCHIVOS FUENTE................................................................................................................. 26 6.1. LA BASE DE DATOS DE LOS PEDIDOS ........................................................................................ 26 6.2. CREACIN DE UNA CONEXIN ODBC ..................................................................................... 27 7. CREACIN DEL SCRIPT......................................................................................................... 30 7.1. GENERACIN DE SCRIPT .......................................................................................................... 30 7.2. GENERACIN DE SCRIPT PASO A PASO .................................................................................. 30 7.3. SU PRIMER SCRIPT BSICO....................................................................................................... 36 7.4. EJECUCIN DEL SCRIPT ........................................................................................................... 38 8. ESTRUCTURA DE LOS DATOS CARGADOS ...................................................................... 39 8.1. CAMPOS DE SISTEMA ............................................................................................................... 39 8.1.1. La pestaa sistema ......................................................................................................... 39 8.1.2. Utilizacin de los campos de sistema ............................................................................. 40

copyright 1996-2005 QlikTech International

Page 3

QlikView Enterprise Script

8.2. EL VISOR DE TABLAS ............................................................................................................... 40 8.3. LA TABLA DE SISTEMA ............................................................................................................ 41 8.4. PROPIEDADES DE DOCUMENTO: LA PGINA TABLAS .............................................................. 43 9. AADIR DATOS DE TEXTO ................................................................................................... 44 9.1. EMPLEADOS ............................................................................................................................ 44 9.2. OFICINAS ................................................................................................................................ 44 9.3. PROVEEDORES ........................................................................................................................ 45 9.4. GENERACIN DE SCRIPT MEDIANTE EL ASISTENTE DE ARCHIVO .............................................. 45 9.5. REFERENCIAS CIRCULARES ..................................................................................................... 48 9.6. CAUSAS DE LAS REFERENCIAS CIRCULARES ............................................................................ 49 9.7. RENOMBRAR CAMPOS PARA EVITAR LAS REFERENCIAS CIRCULARES ...................................... 51 9.8. TABLAS PARCIALMENTE DESCONECTADAS ............................................................................. 52 10. EJERCICIOS............................................................................................................................. 54 11. CREACIN DE DATOS EN QLIKVIEW.............................................................................. 55 11.1. CARGA RESIDENTE ................................................................................................................ 55 11.2. TABLAS DE CLAVE SINTTICA ............................................................................................... 56 11.3. CMO ELIMINAR UNA TABLA DE CLAVE SINTTICA ............................................................... 57 11.4. AVANZADO CMO VALERSE DE ORDERS (PEDIDOS) PARA DETERMINAR SALES PERSON (VENDEDOR).................................................................................................................................. 58 12. CMO CARGAR UN ARCHIVO DIF ................................................................................... 60 12.1. ARCHIVOS DE TEXTO EN FORMATO DE INTERCAMBIO DE DATOS .......................................... 60 13. CAMPOS CLAVE ..................................................................................................................... 63 13.1. UN EJEMPLO DE PROBLEMA QUE PUEDE SURGIR .................................................................... 63 13.2. EN QU ME AFECTA ESTO?................................................................................................... 63 13.3. CMO RESOLVER EL PROBLEMA DE LOS CAMPOS CLAVE....................................................... 64 13.4. EL GRFICO MUESTRA REALMENTE LO QUE DESEO MOSTRAR?............................................ 64 14. EJERCICIOS............................................................................................................................. 66 15. CAMPOS DE DIMENSIN DE TIEMPO ADICIONALES................................................. 67 15.1. TABLAS INLINE ..................................................................................................................... 67 15.2. AUTOGENERAR TABLAS ........................................................................................................ 68 15.3. TABLAS MAPPING O TABLAS DE CORRESPONDENCIAS .......................................................... 69 15.4. MES EN CURSO ACTUALIZADO .............................................................................................. 70 16. TABLA CRUZADA Y CARGA GENRICA......................................................................... 72 16.1. TABLA CRUZADA .................................................................................................................. 72 16.2. GENERIC LOAD (CARGA GENRICA)..................................................................................... 76 17. INCLUDE................................................................................................................................... 78 18. ARCHIVOS DE DATOS QLIKVIEW: ARCHIVOS QVD................................................... 80 18.1. EL FORMATO DE ARCHIVO QVD ........................................................................................... 80 18.2. PARA QU SIRVEN LOS ARCHIVOS QVD? ............................................................................ 80 18.3. CREACIN DE ARCHIVOS QVD ............................................................................................. 81

copyright 1996-2005 QlikTech International

Page 4

QlikView Enterprise Script

18.4. CREACIN MANUAL DESDE EL SCRIPT ................................................................................... 82 18.5. CREACIN AUTOMTICA DE UN ARCHIVO QVD EN EL SCRIPT .............................................. 84 18.6. FUNCIONES DE SCRIPT DE ARCHIVOS QVD ........................................................................... 85 19. EJERCICIOS............................................................................................................................. 87 20. SCRIPT AVANZADO 1 PARTE ......................................................................................... 88 20.1. UNIR DATOS PROCEDENTES DE MLTIPLES TABLAS .............................................................. 88 20.2. AGREGAR DATOS .................................................................................................................. 90 20.3. CMO CALCULAR LOS DATOS ENTRE REGISTROS .................................................................. 91 20.4. UTILIZACIN DE LAS VARIABLES EN EL SCRIPT ..................................................................... 92 21. EJERCICIOS............................................................................................................................. 95 22. SCRIPT AVANZADO 2 PARTE ......................................................................................... 97 22.1. CONCATENACIN .................................................................................................................. 97 Concatenacin automtica....................................................................................................... 97 Concatenacin forzada ............................................................................................................ 97 Impedir la concatenacin......................................................................................................... 98 Ejemplo .................................................................................................................................... 98 23. SEGURIDAD ........................................................................................................................... 101 23.1. CONTROL DE ACCESSO ........................................................................................................ 101 23.2. NIVELES DE ACCESO ........................................................................................................... 101 23.3. LA BASE DE DATOS DE CONTROL DE ACCESO ...................................................................... 101 23.4. RESTRICCIONES DE ACCESO HEREDADAS ............................................................................ 103 23.5. SECCIN DE ACCESO EN EL SCRIPT ...................................................................................... 103 Script Oculto .......................................................................................................................... 103 Adicin de la Seccin de Acceso ............................................................................................ 104 23.6. CONTROL DE ACCESO PARA CIERTOS COMANDOS................................................................ 106 23.7. MS CONTROL DE ACCESO .................................................................................................. 106 Otras consideraciones de lneas de comando desatendidas................................................... 108 23.8. RESTRICCIONES DE ACCESO EN VALORES DE CAMPO SELECCIONADOS ................................ 108 Sentencias de control de script............................................................................................... 109 Limitacin del valor de campo en la seccin de acceso......................................................... 111 24. EJERCICIOS........................................................................................................................... 114 25. DEPURACIN ........................................................................................................................ 115 25.1. EL ARCHIVO DE REGISTRO DE EJECUCIN DE SCRIPT ........................................................... 117 25.2. INFORMES DE ERRORES EN QLIKVIEW ................................................................................ 118 25.3. MATERIALES DE REFERENCIA QLIKVIEW............................................................................ 119 26. APNDICE 1: TIPOS DE DATOS EN QLIKVIEW ........................................................... 121 26.1. ALMACENAMIENTO DE DATOS EN QLIKVIEW...................................................................... 121 26.2. DATOS QUE CONTIENEN INFORMACIN SOBRE TIPOS DE DATOS .......................................... 121 26.3. DATOS SIN INFORMACIN SOBRE EL TIPO DE DATOS ........................................................... 122 26.4. FECHAS Y HORAS ................................................................................................................ 124 27. APNDICE 2: EL SCRIPT FINAL ....................................................................................... 126

copyright 1996-2005 QlikTech International

Page 5

QlikView Enterprise Script

1. Introduccin1.1. Acerca de este cursoEl presente curso se ha diseado con el propsito de introducir a los desarrolladores de aplicaciones QlikView en las tcnicas fundamentales de creacin y mantenimiento de scripts de carga QlikView, utilizando QlikView Enterprise. En este curso se aprende a integrar datos procedentes de muy diversas fuentes en un documento QlikView, a fin de poder presentar la informacin de una manera completa y fcil de comprender por cualquier persona de la organizacin. Este curso da respuesta a las siguientes preguntas: Cmo interpretar un plan de proyecto reflejado en un documento QlikView? Cmo acceder a las fuentes de datos e integrarlos con otros datos empleando QlikView? Cules son las tcnicas de desarrollo de estructuras de datos en QlikView? Qu herramientas hay disponibles para ver la estructura de datos en un documento QlikView? Por qu y de qu manera creo datos a travs del script de carga de QlikView? Qu tipo de estndares debera emplear para hacer mi aplicacin QlikView eficaz, fcil de comprender y mantener? Cmo hago para que mi aplicacin QlikView sea segura? Qu hacer cuando me surjan dudas? Qu hacer cuando surge un problema?

El material del curso se ha diseado siguiendo un enfoque modular. Su instructor puede preferir dar el material de una forma ms personalizada para acercarse as a las necesidades particulares de cada alumno. En otras palabras, su formacin especfica puede hacer ver la necesidad de incluir otros temas, o eliminar parte de los que aqu se incluyen. Al igual que sucede con cualquier otro producto, para convertirse en un desarrollador avanzado, necesitar trabajar con casos reales. Este curso trata de emular un escenario corporativo real trabajando con un enfoque de diseo de proyectos factibles, que posibilite al alumno el acceso a una experiencia de tipo prctico, en la creacin de un documento QlikView a partir de la descripcin de los requisitos de un proyecto que se propone a modo de muestra. Puede que tambin le sea de utilidad volver sobre este material en un futuro. El material del curso est diseado de tal forma que se pueda utilizar con o sin la presencia de un instructor.

copyright 1996-2005 QlikTech International

Page 6

QlikView Enterprise Script

1.2. Archivos de datos empleados en el cursoEl material del curso incluye los archivos de datos necesarios para crear los documentos que utilizar durante el curso. Aqu tiene una breve descripcin de los archivo de datos que se incluyen y cmo se instalan. QWT EmpOff Employees_New Suppliers Email Budget SalesSecurity SalesInitials Access02 - Base de datos en Access - Archivo Excel - Archivo Excel - Archivo DIF - Archivo de texto - Archivo Excel - Archivo de texto - Archivo de texto - Archivo de texto

1.3. InstalacinHallar estos archivos en el CD del curso, o por otros medios que su instructor le facilite. Cuando ejecute el programa de instalacin, los archivos se instalarn en el directorio: C:\QlikView\ QlikView Training\ QVCourse_EnterpriseScript a menos que especifique un directorio distinto. Tras la instalacin, encontrar un documento con el nombre QVE_Script_Course_Solution.qvw en la carpeta QVCourse_EnterpriseScript. Este documento contiene las soluciones a los ejercicios que se le irn planteando durante el curso.

1.4. Guardar archivosCuando cree un documento de su propiedad durante el curso, podr guardarlo en la carpeta QVCourse_EnterpriseScript. Cualquier archivo nuevo de datos que cree durante el curso puede guardarse en la carpeta QVCourse_EnterpriseScript \Files\Datasources donde tambin encontrar otras fuentes de datos en las que se basa el documento final.

copyright 1996-2005 QlikTech International

Page 7

QlikView Enterprise Script

1.5. Formato de texto del material de cursoLos extractos de script se representan con el siguiente estilo y tamao de letra:SQL SELECT CustomerID,

Las palabras clave en el script se escriben del siguiente modo:Load

Los comandos, mens y botones se representan as: Editor de Script Los nombres de hojas, cuadros de lista, campos y expresiones, etc. se representan con el siguiente estilo y tamao de letra: Salesperson Los nombres de archivo aparecen del siguiente modo: QVCourse_EntScr.qvw

copyright 1996-2005 QlikTech International

Page 8

QlikView Enterprise Script

2. El plan de proyecto BI Qlik Wholesale Trade (QWT)2.1. Introduccin al plan de proyectoEl plan de proyecto de Inteligencia de Negocio (o Business Intelligence, BI) QWT ha sido incluido en el presente curso a modo de ejemplo de un plan de proyecto que podra recibir en su entorno de trabajo. No se trata de un plan completamente configurado, con sus cuadros de planificacin del tiempo y asignacin de responsabilidades, etc. Est ms bien diseado para proporcionarle un objetivo general que cumplir durante el curso. Utilizaremos este plan de proyecto como una gua para desarrollar el script de carga necesario para la creacin del documento QlikView. Haremos referencia constante al documento del plan de proyecto durante el curso, as que puede que desee mantenerlo abierto en su PC para un acceso ms rpido al mismo. Encontrar el plan de proyecto, entre los materiales del curso, con el siguiente nombre: QWT BI Project Plan.doc.

2.2. Plan de Proyecto: Visin generalSi abre el documento con el plan de proyecto BI QWT, ver que contiene las siguientes secciones: Mediciones clave: aqu hallar algunas de las expresiones que se utilizarn en el documento QlikView. Algunos de estos clculos se emplearn en el script de carga, mientras que otros se utilizarn en los objetos de hoja (grficos, cuadros de texto, etc.) incluidos en el diseo de la interfaz de usuario Indicadores Clave de Rendimiento (ICRs): esta seccin contiene los indicadores de rendimiento de alto nivel que pueden presentarse desde una perspectiva de cuadro de mando en el documento QlikView. Dimensiones clave: esta seccin incluye una lista con las dimensiones clave que se emplearn a lo largo de la aplicacin. Tendencias: proporciona un listado de los campos de dimensin de tiempo ms relevantes, que se irn solicitando para anlisis de histricos. Filtros clave de seleccin: incluye una lista de los campos requeridos en el documento QlikView para seleccin y filtrado de los datos. Seguridad: contiene los requisitos de seguridad de acceso del documento QlikView.

copyright 1996-2005 QlikTech International

Page 9

QlikView Enterprise Script

Descripciones de los datos de origen: suministra la ubicacin y las descripciones a nivel de campo para cada una de las fuentes de datos. Cada una de estas secciones puede incluir una o ms Reglas de Negocio para ayudar al desarrollador a comprender y crear la funcionalidad ms adecuada y las caractersticas ms tiles para el usuario de este documento QlikView.

copyright 1996-2005 QlikTech International

Page 10

QlikView Enterprise Script

3. Una breve introduccin a las estructuras de datos3.1. Acerca de las estructuras de datosPara facilitarle las cosas, si no ha trabajado anteriormente gran cosa con bases de datos, le ofrecemos una breve introduccin a los conceptos bsicos en cuanto a estructuras y bases de datos. Esta introduccin le ayudar a crear documentos QlikView basados en sus propios datos. Si ya est familiarizado con este tipo de trminos puede saltarse este captulo.

3.2. Bases de datos relacionalesLos datos a menudo se guardan en bases de datos relacionales. Bases de datos relacionales son, por ejemplo, Microsoft SQL Server, Microsoft Access, Oracle, DB2, Sybase, Informix, y Teradata. Una base de datos relacional se fundamenta en una serie de reglas. Una de tales reglas consiste en representar la informacin de la base de datos mediante valores contenidos en tablas, los cuales a su vez constituyen la base de datos. Otra regla supone que la base de datos debe ser capaz de manejar al menos un lenguaje estructurado. Un ejemplo de lenguaje estructurado lo encontramos en el Structured Query Language (SQL), que se emplea para definir y manipular los datos.

3.3. Otras estructuras de datosOtro formato muy comn de fuentes de datos para QlikView es el constituido por los archivos de texto delimitados por caracteres. Los archivos de texto han de tener una estructura especfica para que QlikView sea capaz de interpretarlos correctamente, sin una manipulacin adicional del script de carga. La primera lnea de este tipo de archivos de texto suele ser, aunque no siempre, un nombre de archivo o etiqueta. Las lneas subsuguientes contienen datos que pertenecen a los diversos campos. Los campos en el archivo estn delimitados, o separados, por caracteres, normalmente comas, tabuladores, o un punto y coma. Un archivo de texto estndar, por lo tanto, equivale a una tabla completa, con filas y columnas.

copyright 1996-2005 QlikTech International

Page 11

QlikView Enterprise Script

4. Estructuras de datos QlikView4.1. Comparacin entre estructuras de datos y estructuras de datos QlikView

Figura 1. Estructura de tabla

En este ejemplo observamos una estructura de datos tomada de la base de datos de Access con la que estaremos trabajando durante el curso. La figura muestra seis tablas que tienen definidas unas relaciones o lo que es lo mismo, estn asociadas mediante campos (clave) comunes. Descubriremos a lo largo del curso que, a diferencia de las bases de datos convencionales, QlikView no permite la definicin explcita de relaciones entre tabla. QlikView define de forma automtica relaciones de tabla o asociaciones mediante campos denominados de manera similar. En este ejemplo, los campos clave se han denominado todos de idntica manera en sus respectivas tablas. Por supuesto, esto no es as siempre en una base de datos, as que explicaremos durante el curso cmo crear las asociaciones apropiadas entre tablas en QlikView. Aprenderemos tambin cmo evitar asociaciones indebidas entre tablas en QlikView basndonos en campos con nombres similares. Se ver tambin as mismo cmo asociar otros datos, que no tienen por qu estar necesariamente en un formato de base de datos (por ejemplo archivos de texto).

copyright 1996-2005 QlikTech International

Page 12

QlikView Enterprise Script

El campo CustomerID enlaza las tablas Customers y Orders. Si sigue las flechas podr ver qu campos enlazan la estructura total. Si dos registros de tablas diferentes tienen el mismo valor en alguno de los campos comunes, quedarn asociadas. La asociacin en QlikView es esencialmente la misma que en outer join de SQL.

4.2. Estructuras de datos en QlikViewCada columna de una tabla de datos, que es cargada en QlikView, se convierte en un campo de la base de datos asociativa de QlikView (tambin conocida como base de datos AQL). Los campos que aparecen en ms de una tabla y que tienen idnticas etiquetas quedarn asociados. Cada campo puede presentarse en forma de cuadro de lista en el documento QlikView. Ciertos campos no se muestran; su nica funcin es enlazar diferentes tablas. Cuando hace una seleccin en un cuadro de lista, QlikView busca las conexiones lgicas por toda la base de datos asociativa. Como resultado de dicha bsqueda se identifican los valores asociados a sus selecciones.

copyright 1996-2005 QlikTech International

Page 13

QlikView Enterprise Script

5. Cargar datos en QlikViewPara poder cargar datos en QlikView, es necesario crear instrucciones para el manejo y recuperacin de la informacin. Estas instrucciones es lo que compone y se conoce como el script de carga. El script puede detallar instrucciones sobre la forma en que QlikView debe interpretar los diferentes conjuntos de datos. QlikView puede cargar e interpretar los siguientes tipos de datos de entrada: Cualquier tipo de archivo de texto separado por caracteres, por ejemplo archivos separados por comas. El resultado de una consulta a una base de datos, realizada por SQL mediante conexin OLE DB/ODBC. Archivos QlikView creados con anterioridad (archivos binarios). Archivos de datos QlikView (archivos qvd). Archivos Excel en cdigo BIFF estndar. Archivos de formato fijo. Archivos dif (formato de exportacin comn desde AS/400). Tablas HTML. Tablas XML.

5.1. Edicin de ScriptAhora examinaremos el dilogo Editor de Script, que puede utilizarse para generar, introducir y editar sentencias de script de carga QlikView. 1. Comience por crear un nuevo documento seleccionando el comando Nuevo del men Archivo o empleando la barra de herramientas. 2. Elija Editor de Script en el men o en la barra de herramientas. El dilogo que tiene ms abajo le aparecer en pantalla. Como podr observar, hay numerosos comandos en forma de comandos de men, botones de la barra de herramientas y botones de dilogo. Aunque la ventana de edicin ocupa la mayor parte del cuadro de dilogo. CONSEJO: Para una descripcin completa de todos los dilogos y opciones de configuracin actualmente disponibles en el Editor de Script, por favor acuda al documento ReferenceManual.pdf. Este documento de referencia se instalar sin problema durante la fase de instalacin habitual de QlikView.

copyright 1996-2005 QlikTech International

Page 14

QlikView Enterprise Script

Figura 2. Cuadro de dilogo Editor de Script

Barra de Herramientas del Editor de Script La barra de herramientas contiene los siguientes controles: Ejecutar Script Ejecuta el script, cierra el dilogo Editor de Script y abre la pgina Propiedades de Hoja: Campos. Depurar Inicia la ejecucin de script en el Depurador. El depurador busca errores en el script. Cada sentencia de script puede ser monitorizada y los valores de las variables examinados a la vez que se ejecuta el script. Guardar todo el Documento Guarda el documento activo en un archivo. Los datos, el script y el formato de diseo son guardados. Imprimir Pestaa Le permite imprimir los contenidos de la pestaa actualmente activa. Cortar Corta el texto de script seleccionado y lo almacena en el Portapapeles.

copyright 1996-2005 QlikTech International

Page 15

QlikView Enterprise Script

Copiar Copia el texto de script seleccionado. Pegar Pega el texto de script almacenado en el Portapapeles. Buscar Busca en el script la cadena de texto especificada en la pestaa actual nicamente. Aadir nueva pestaa Aade una nueva pestaa en el script. El script es ejecutado pestaa a pestaa, de izquierda a derecha. Visor de Tablas Muestra el visor grfico de tablas de los datos actuales. Tambin hay disponibles muchos comandos de utilidad en los cinco mens superiores:

Comandos de men del Editor de Script El men ARCHIVO contiene una opcin para guardar el documento sin tener que cerrar el Editor de Script. Aqu hallar tambin la opcin para exportar el script como un archivo de script especfico (extensin de archivo .qvs) o como una copia impresa. El men EDITAR tiene todos los comandos necesarios para editar los contenidos del panel de edicin de texto. Adems de los comandos hbaituales de seleccin, copiado, corte e insercin de texto, hallar las funciones Insertar Archivo que se emplea para insertar un archivo de script, as como Buscar/Reemplazar que le permite buscar cadenas de texto especficas. Muchas de estas opciones se pueden ejecutar mediante combinaciones de teclas (teclas de mtodo abreviado), por ej. si pulsa Ctrl+A se seleccionar todo el texto. El men PESTAA contiene los comandos necesarios para hacer posible la gestin de las pestaas en el script. El men CONFIGURACIN incluye el comando Configurar, que abre el dilogo Preferencias de Usuario: Editor donde puede fijar el tipo de letra y el color de letra de los diversos tipos de texto del script.

copyright 1996-2005 QlikTech International

Page 16

QlikView Enterprise Script

Los comandos del men AYUDA abren los archivos de la ayuda de QlikView. (Para ms informacin sobre el cuadro de dilogo Editor de Script, puede acudir a la Ayuda en este mismo momento.) El grfico Statements (Sentencias) muestra un cuadro para cada sentencia de la pestaa de script activa. El cuadro seala las caractersticas ms importantes y proporciona una manera ms sencilla de navegacin por el script.

Panel de Herramientas del Editor de Script El Panel de Herramientas tiene tres pestaas-pgina con funciones para generacin de script: Datos, Funciones y Configuraciones. La pgina Datos

La pgina Datos contiene los comandos bsicos para la carga de datos en QlikView. Los comandos del grupo Base de Datos se utilizan para crear una conexin y seleccionar campos de una fuente de datos. Si est utilizando una DBMS comercial, puede emplear ODBC o OLE DB como interfaz entre QlikView y la base de datos. OLE DB: Marque esta alternativa para acceder a las bases de datos mediante OLE DB. ODBC Marque esta alternativa si desea acceder a las bases de datos mediante ODBC. Use el botn Conectar para abrir el dilogo Propiedades de Enlace de Datos, seleccionar una fuente de datos OLE DB o ODBC y generar la sentencia de enlace adecuada en el script de carga. Use el botn Seleccionar para abrir el dilogo Crear Sentencia Select para especificar campos y tablas desde la fuente de datos escogida y generar la sentencia select adecuada en el script de carga.

copyright 1996-2005 QlikTech International

Page 17

QlikView Enterprise Script

Las opciones del grupo Datos desde Archivos se emplean para generar las sentencias de script de Carga necesarias para leer los datos desde los archivos. Marque la casilla de verificacin Rutas Relativas para emplear rutas relativas en lugar de rutas abolutas para sentencias generadas en el script. Marque la casilla de verificacin FTP para disponer de un dilogo que le permita seleccionar archivos desde un servidor ftp cuando elija Ficheros Planos, Archivos QlikView, o Incluir sentencias de script. Marque la casilla de verificacin Asistente para hacer uso del asistente de archivos de tabla cuando haga clic en Abrir del cuadro de dilogo Abrir Archivos Locales. Pulse el botn Ficheros Planos para abrir el dilogo Abrir Archivos Locales con un listado de los diversos formatos de archivo de texto, incluidos datos de Excel y datos QlikView (archivos .qvd). Si selecciona uno o varios archivos y pulsa Aceptar generar una o ms sentencias de carga basndose en las opciones seleccionadas en el asistente. Haga clic en el botn Archivo QlikView para abrir el cuadro de dilogo Abrir Archivo QlikView con una lista de los archivos QlikView (*.qvw). Si selecciona un archivo y pulsa Aceptar generar una sentencia binaria. Slo se permite una sentencia binaria en un script de carga QlikView, y sta debe ser la primera sentencia del script de carga. Haga clic en el botn Archivos Web para abrir el cuadro de dilogo Asistente para Tablas: Fuente e introducir una URL como fuente de su tabla de datos. Los comandos del grupo Datos Inline se utilizan para generar las sentencias de script que generarn datos inline en el script. Haga clic en el botn Asistente Inline para abrir el dilogo Asistente para Datos Inline que le ayudar en la creacin de una sentencia Cargar Inline empleando un contrl del tipo de hoja de clculo. Haga clic en el botn Acceso de Usuario para abrir el dilogo Asistente de Tablas Restriccin de Acceso que le ayudar en la creacin de una sentencia especial Cargar Inline para emplearla en una seccin de acceso (seguridad). La pgina Funciones

copyright 1996-2005 QlikTech International

Page 18

QlikView Enterprise Script

La pgina Funciones se puede utilizar como ayuda para generar funciones QlikView que se emplearn en las sentencias de script. El cuadro desplegable Categora de Funcin contiene un listado con las categoras de funciones. Seleccione una categora de la lista para ver las correspondientes funciones en la lista Nombre de Funcin que encontrar un poco ms abajo. El desplegable Nombre de Funcin lista las funciones de script estndar en QlikView. Esta lista se puede filtrar (o limitar) seleccionando previamente una categora de la lista Categora de Funcin. Haga clic en el botn Pegar una vez que haya seleccionado el nombre de funcin que necesite. La funcin se introducir en el script, en la posicin actual del cursor. Pgina Configuracin

La pgina Configuracin se puede utilizar para seleccionar ciertos privilegios y opciones en el script de carga. Utilice el grupo Privilegios de Script para fijar el comando ejecutar y el calificador en modo de escritura en sentencias select. Si su script contiene estos elementos y no ha activadoo estos parmetros, las respectivas sentencias fallarn. Tras haber habilitado el uso de una o de ambas funciones, al usuario se le pedir que apruebe el script la primera vez que ste se ejecuta en un ordenador. Dicha comprobacin se puede ignorar mediante la conmutacin de la lnea de comando /nosecurity o mediante una opcin de la pgina Seguridad en Preferencias de Usuario. Utilice el grupo Configuracin para habilitar o deshabilitar el parmetro Encriptar Credenciales de Conexin de Usuario y controlar as si el nombre de usuario de la base de datos y la contrasea estn cifrados en sentencias connect.

Consejo: No es necesario que las sentencias de script de carga se creen y almacenen en el documento QlikView, pero debe haber una referencia a las mismas si se almacenan en un archivo externo. Esto se realiza con la funcin Incluir disponible en el editor de script.

copyright 1996-2005 QlikTech International

Page 19

QlikView Enterprise Script

5.2. SintaxisEn esta seccin, analizaremos las sentencias de script ms comunes (connect, select, load) para identificar y cargar datos en QlikView. Cada una de ellas puede generarse mediante el uso de asistentes. Practicaremos esto en las prximas secciones, pero antes vamos a considerar diversos ejemplos de tales sentencias, cmo y dnde pueden utilizarse en un script de carga QlikView. Tambin analizaremos algunas de las opciones disponibles para renombrar un campo, que es un tema de gran importancia cuando trabajamos con QlikView. Para detalles ms completos y actualizados acerca de la sintaxis de sentencias de script, siempre le remitiremos a los Manuales de Referencia de QlikView, o al subsistema de Ayuda. Todas las sentencias de script del presente curso se describen con detalle en el Libro I del Manual de Referencia de QlikView 7.

5.3. ConnectLa sentencia connect se emplea para establecer una conexin con una base de datos mediante una interfaz ODBC o OLE DB. Una vez establecida dicha conexin, sta se utiliza entre tanto no se defina una nueva sentencia connect. Se pueden definir mltiples sentencias connect en un mismo script de carga QlikView, pero slo puede haber una conexin abierta a la vez. Si la sentencia connect es generada por el asistente suministrado, cualquier ID de usuario y contrasea se encriptarn con sintaxis xuserid is / xpassword is, siempre y cuando se haya seleccionado Encriptar Credenciales de Conexin de Usuario en la pgina General del dilogo Preferencias de Usuario. Si introduce la sentencia connect manualmente, deber utilizar la sintaxis no encriptada userid is / password is para proporcionar ID de usuario y contrasea. La encriptacin total slo es posible actualmente para sentencias ODBC connect. Algunas partes de la cadena OLEDB connect no pueden encriptarse. El delimitador codepage is se puede emplear si experimenta problemas con los caracteres nacionales en determinados drivers ODBC/OLE DB. Si en modo de escritura est especificado en access_info (info de acceso) la conexin se abrir en modo de lectura-escritura. En todos los dems casos la conexin se abrir en modo de lectura nicamente. El uso de en modo de escritura debe hallarse habilitado en la seccin Configuracin, del dilogo Editor de Script. Si se sita ODBC antes de connect, se emplear la interfaz ODBC, si no, utilizar OLE DB.

copyright 1996-2005 QlikTech International

Page 20

QlikView Enterprise Script

Ejemplos de connect:ODBC connect to [SQLDATA;database=SQL1] (UserId is sa, Password is admin); ODBC CONNECT TO [MS Access Database;DBQ=data\sampledata.mdb]; ODBC connect to [COSQL01;DATABASE=SALESDATA;Trusted_Connection=Yes];

La fuente de datos especificada por esta sentencia es utilizada por todas las sentencias select subsiguientes, hasta que se encuentren con una nueva sentencia connect.

copyright 1996-2005 QlikTech International

Page 21

QlikView Enterprise Script

5.4. SelectLa sentencia SQL select se utiliza para identificar campos y tablas que han de cargarse desde la conexin actual a la base de datos. Se puede utilizar cualquier sentencia select que sea vlida, pero tenga en cuenta que los drivers ODBC pueden imponer ciertas limitaciones de sintaxis a una conexin de base de datos en particular. Asimismo, las sentencias select no pueden hacer uso de la funcionalidad QlikView dentro de la sentencia. Los nombres de campo y de tabla deben ir delimitados por comillas o corchetes si contienen espacios o caracteres especiales. Cuando QlikView genere automticamente el script, el signo de entrecomillado empleado es el preferido por el driver ODBC especificado en la definicin de fuente de datos de la sentencia connect. Adems, se pueden concatenar varias sentencias select en una, mediante el empleo de un operador union: sentenciaselect union sentenciaselect La sentencia select es interpretada por el driver ODBC, as que se pueden producir desviaciones de la seintaxis SQL general, dependiendo de las capacidades de los drivers ODBC. Por ejemplo:as en ciertas ocasiones no se acepta, por ej. aliasname debe ir

inmediatamente tras fieldname. as es a veces de uso obligatorio, cuando se emplee un aliasname. distinct, as, where, group by, order by, o union no reciben soporte en algunas ocasiones. El driver ODBC a veces no acepta ciertos tipos de comillas. Ejemplos de select:SQL SELECT * FROM FACILITIES; SQL SELECT DISTINCT I.AddressID, Name, Address, PostalCode FROM [Invoice] I, [Address] A WHERE I.InvoiceType is not null and I.InvoiceDate >= '2001-01-01' and I.AddressID = A.AddressID;

copyright 1996-2005 QlikTech International

Page 22

QlikView Enterprise Script

5.5. LoadLa sentencia Load puede cargar datos segn diversos mtodos: Cargar directamente desde un archivo de texto, Excel, qvd, xml, etc. Cargar desde otra sentencia select o load subsiguiente. Dicha sentencia select o load debe ir inmediatamente a continuacin de esta sentencia load. Cargar desde una tabla previamente cargada (residente) Cargar directamente desde datos en el script de carga por medio de una Carga Inline. Cargar desde datos generados. Todas las funciones de script de QlikView estn disponibles para su uso en una sentencia load. Los nombres de campo y de tabla deben ir delimitados por comillas o corchetes cuando contengan espacios o caracteres especiales. Ejemplos de load:Load * from 'c:\userfiles\data2.txt' (ansi, txt, delimiter is '\t', embedded labels); Load A, B, if(C>0,'+','-') as X, weekday(D) as Y; Select A,B,C,D from Table1; Load A, B, A*B+D as E Resident tab1; Load * Inline [CatID, Category 0,Regular 1,Occasional 2,Permanent]; Load RecNo() as A, rand() as B Autogenerate(10000);

copyright 1996-2005 QlikTech International

Page 23

QlikView Enterprise Script

5.6. Renombrar un campoSe pueden renombrar uno o ms campos en el script de carga. Tambin es posible nombrar campos que no tengan nombre en la fuente de datos. Existen diversas maneras de hacer esto en el script: Renombrar empleando as en una sentencia load, lo cual implica que otorgar un nuevo nombre a un campo especfico de esa sentencia especfica. Si est utilizando el Asistente de Archivos de Tabla para crear una sentencia load, puede hacer clic en cualquier nombre de campo, en el rea de Etiqueta, e introducir un nuevo nombre. La sentencia load generada incluir la sintaxis as automticamente. Renombrar empleando alias, lo cual implica que dar nuevo nombre a todas las ocurrencias de aquellos campos que tengan sus nombres especificados en el script. Renombrar uno o ms campos existentes empleando la sentencia Rename Field. Esta sentencia puede utilizar, de modo opcional, una tabla de mapeo (o indicacin de las correspondencias), que almacene datos de conversin del nombre antiguo (oldname) al nuevo (newname). Ms adelante en este mismo curso se analizan las tablas de correspondencias (o mapeadas) con ms detalle. Ejemplo de as:Load Capital as Capital city, Cntry as Country, Pop as Population from Country.csv (ansi, txt

La sintaxis de una sentencia alias es:Alias as , as , Ejemplo de alias:Alias ProdId as ProductID, Mon as Month, Cname as Customer;

La sintaxis de una sentencia rename field es:rename field[s] (using mapname | oldname to newname {, oldname to

newname} ) donde mapname es el nombre de una tabla con un mapa de correspondencias cargada anteriormente, que contenga uno o ms pares de nombres de campo, tanto antiguos como nuevos.

copyright 1996-2005 QlikTech International

Page 24

QlikView Enterprise Script

oldname es el nombre antiguo de campo y newname es el nuevo nombre de campo.

Nota: Tanto rename field como rename fields son formas admitidas, sin diferencia alguna en el efecto final que producen. Ejemplo rename field :Rename field XAZ0007 to Sales; FieldMap: Mapping select oldnames, newnames from datadict; Rename fields using FieldMap;

copyright 1996-2005 QlikTech International

Page 25

QlikView Enterprise Script

6. Archivos fuenteEn una primera parte del curso, cargaremos datos de tres fuentes diferentes, de acuerdo al plan de proyecto inicial. Los datos principales provendrn de una base de datos en Access, denominada QWT. Para estos datos, aadiremos tablas desde hojas de clculo en Excel y desde un archivo de texto en formato DIF, que se ha extraido de un sistema AS/400.

Figura 3. Archivos fuente

Las fuentes de datos estn lgicamente conectadas entre s por campos comunes (tambin denominados campos clave). En el caso de las tablas que contienen informacin sobre empleados y pedidos de la empresa, tenemos los campos comunes de EmployeeID y EmpID. No obstante, hay que renombrar uno de los campos, para que QlikView pueda asociar dichos campos en nuestra aplicacin. Tambin tenemos SupplierID que es un campo comn en la base de datos QWT y la tabla que contiene informacin sobre los proveedores (DIF). Tambin podr observar que existen campos con nombres parecidos en las tablas y que no queremos asociar. Estos campos habrn de ser remombrados tambin, a fin de evitar un asociacin indeseada por parte de QlikView.

6.1. La base de datos de los pedidosSegn nuestro plan de proyecto y como se puede observar en la figura 3, la base de datos QWT.mdb contiene las tablas Customers, Suppliers, Products, Categories, Orders, y Order Details. Vamos a cargar cada

copyright 1996-2005 QlikTech International

Page 26

QlikView Enterprise Script

una de estas tablas, pero primero necesitamos crear una conexin ODBC a la base de datos.

6.2. Creacin de una conexin ODBCPara obtener acceso a la base de datos desde QlikView, es necesaria una conexin ODBC a la fuente de datos. sta se crea a travs de Panel de Control Herramientas Administrativas Fuentes de Datos (ODBC) en Windows. A continuacin se detallan unos pantallazos para guiarse por los diferentes pasos que habr de seguir. Consejo: Tambin se puede definir una fuente de datos a travs del dilogo Conectar en el Editor de Script de QlikView. 1. Ejecute el Pograma Administrador de ODBC mediante el Panel de Control a fin de abrir el cuadro de dilogo ODBC Administrador de Fuentes de Datos.

Figura 4. ODBC Administracin de las fuentes de datos

2. Determine si precisa definir una fuente de datos a nivel de Usuario o a nivel de Sistema. Una fuente de datos de Usuario slo estar disponible para el usuario actual de esta mquina. Una fuente de datos de Sistema estar disponible para cualquier usuario de esta mquina. Para nuestro curso en concreto, aadiremos una fuente de datos de Sistema. Para ello, haga clic en la pestaa Sistema DSN del cuadro de dilogo.

copyright 1996-2005 QlikTech International

Page 27

QlikView Enterprise Script

3. Aada una fuente de datos de sistema pulsando el botn Aadir... A continuacin deber elegir un driver adecuado para acceder a la fuente de datos. Puede contemplar diversos drivers en la figura que se muestra a continuacin. Si est utilizando una base de datos comercial, pero no tiene sus drivers instalados, los encontrar seguramente en los discos de instalacin de la base de datos. Si los discos de instalacin no se hallan disponibles o los drivers estn pasados de fecha, o no sirven por cualquier otra razn, contacte con su proveedor habitual o bien bsquelos por Internet.

Figura 5. Seleccin del driver

4. Seleccione Microsoft Access Driver (*.mdb) y pulse Finalizar. 5. Pulse Seleccionar. 6. Navegue hasta hallar la carpeta en la que se almacena la base de datos QWT (FuentesdeDatos), y seleccione QWT.mdb. Pulse Aceptar.

copyright 1996-2005 QlikTech International

Page 28

QlikView Enterprise Script

Figura 6. Seleccin de la fuente de datos

7. Introduzca un ttulo adecuado para su fuente de datos. Se recomienda rellenar los campos Nombre de la Fuente de Datos y Descripcin segn se detalla en la figura a continuacin. Tenga en cuenta que la ubicacin de su base de datos puede encontrarse en otra unidad.

Figura 7. Dar nombre a la base de datos

8. Pulse Aceptar para aceptar los cambios y cerrar el dilogo. Ahora ya debera poder acceder a la fuente de datos sin problema desde QlikView. Si por alguna razn la conexin a la fuente de datos se rompiera, utilice el botn Repair (Reparar) del cuadro de dilogo que contempla en la figura anterior a este prrafo para reestablecer la conexin.

copyright 1996-2005 QlikTech International

Page 29

QlikView Enterprise Script

7. Creacin del scriptEl script que crearemos en este curso carga datos desde una base de datos en Access. Se cargarn los campos de una serie de tablas mediante sentencias select. La sintaxis empleada es SQL estndar.

7.1. Generacin de scriptLa ventaja de utilizar el editor de script de QlikView reside en que muchas de las sentencias de script se generan de forma automtica seleccionando los campos que se desea cargar en los asistentes de archivo. A veces es necesario realizar algunos cambios manualmente, por ej. a la hora de asignar nuevos nombres de campo. El editor de script tambin puede sealar algunos errores obvios, mediante una codificacin de color, por ej. unos parntesis no simtricos en una funcin.

7.2. Generacin de script paso a paso1. Inicie QlikView Enterprise, si es que no se encuentra ya activo. 2. Seleccione Nuevo en el men Archivo o en el correspondiente botn de la barra de herramientas, para crear un documento nuevo. 3. Seleccione Propiedades de Documento en el men Configuracin y abra la pestaa General del cuadro de dilogo. Asegrese de que Generar Archivo log est activo. Esto generar un archivo de registro de ejecucin de script cada vez que se ejecuta el script de carga. Tambin puede habilitar la opcin Preferencias de Usuario en la pestaa Diseo para que Utilizar Siempre Archivos de Log para Nuevos Documentos de modo que esta opcin est siempre disponible para usted de forma automtica en el futuro. 4. Seleccione Guardar en el men Archivo o pulse el botn correspondiente de la barra de herramientas para guardar un documento. Navegue hasta encontrar el directorio del curso y guarde su archivo con un nombre apropiado en Archivos. Consejo: Normalmente es recomendable guardar un documento nuevo antes de editar el script, para que se puedan generar las rutas relativas correctas. Esto normalmente es necesario para mejorar la portabilidad del documento QlikView.

copyright 1996-2005 QlikTech International

Page 30

QlikView Enterprise Script

5. Seleccione Editor de Script en el men Archivo o en la barra de herramientas. Ahora ha creado un nuevo archivo de script y, como podr observar, ya contiene algunas lneas de script. stas son las variables de formato, las cuales son generadas automticamente por QlikView. Las variables se basan en los parmetros de su sistema operativo en cuanto a fecha, hora, etc. 6. Marque la casilla de verificacin Rutas Relativas, si es que no se encuentra ya marcada. Esto generar rutas relativas para carga de Datos desde Archivos desde la ubicacin guardada del documento QlikView en nuestras sentencias de script. Esto no ser aplicable a nuestra sentencia connect (ver abajo), pero ser til ms tarde, cuando leamos archivos de texto. 7. Seleccione ODBC y haga clic en Conectar para abrir el cuadro de dilogo Conectar a una Fuente de Datos.

Figura 8. Seleccionar la fuente de datos

8. Seleccione EnterpriseScript y pulse Aceptar. Debera ver ahora la siguiente sentencia aadida a su script (con una ruta absoluta).ODBC CONNECT TO [EnterpriseScript;DBQ=Datasources\QWT.mdb];

La ruta generada en la sentencia connect es en realidad la ruta absoluta. Sin embargo, es recomendable que cambie la ruta a una relativa, como se muestra arriba. Le resultar mucho ms fcil mover archivos de un PC a otro si emplea rutas relativas.

copyright 1996-2005 QlikTech International

Page 31

QlikView Enterprise Script

9. A continuacin aadiremos datos de la tabla Customers (Clientes). Antes de generar la sentencia select, aadiremos un comentario para documentar el script a medida que lo vamos creando. QlikView admite tres tipos de comentarios diferentes:REM precediendo a una sentencia, comenta dicha sentencia

hasta el final; // este smbolo comenta todo el texto que le sigue en una nica lnea. /* */ comenta todo el texto que haya entre los delimitadores. Consejo: Asegrese de no emplear el comentario // para una funcin Include, dado que eso slo comentar la lnea inicial del archivo Include.

Figura 9. Adicin de comentarios en el script de carga

Puede aadir libremente cualquier comentario que desee. La sugerencia que se indica en la figura anterior emplea texto del documento del plan de proyecto, es la descripcin de los datos de la tabla Customers. (Fue necesario retocar un poco el formato para alinear las columnas de la tabla Record Layout).

copyright 1996-2005 QlikTech International

Page 32

QlikView Enterprise Script

Figura 9. Seleccin de todos los campos de la tabla Customers

10. Pulse SELECT en el dilogo Editor de Script, y seleccione la tabla Customers en Tablas de la Base de Datos. 11. Seleccione todos los campos de la tabla marcndolos con el ratn. Tambin puede seleccionar * para marcar los archivos, pero en ese caso los nombres de los campos no se registrarn en el script, lo cual acarrear trabajo ms adelante. En el marco que hay bajo los nombres de tabla y campos puede previsualizar el script que se generar automticamente. 12. Pulse OK. Las tablas y campos seleccionados se incluirn ahora en el script. La sentencia select habr de tener ms o menos el siguiente aspecto:Customers: SQL SELECT Address, City, CompanyName, ContactName, Country, CustomerID, Fax, Phone, PostalCode, StateProvince FROM Customers;

13. Aada el nombre de tabla Customers: inmediatamente antes de SQL SELECT a fin de otorgar el nombre adecuado a esta tabla

copyright 1996-2005 QlikTech International

Page 33

QlikView Enterprise Script

lgica en QlikView. QlikView utilizar por defecto el nombre de tabla asignado como nombre de la tabla lgica, pero es conveniente dar siempre nombre a sus cargas de tabla, para poder controlar despus cmo referirse a ellas. QlikView pondr automticamente en cursiva el nombre de tabla una vez que haya aadido los dos puntos (:) tras el nombre. 14. Haga clic en el icono Guardar del Editor de Script. Esto guardar su documento QlikView completo, incluyendo el script de carga. 15. A continuacin, repita este mismo procedimiento para cargar los campos de las tablas Shippers, Products y Categories de la misma manera descrita anteriormente. Cambie el nombre del campo CompanyName por Shipper en la tabla Shipper para que los exportadores (shippers) no se mezclen con nuestras empresas cliente. Adems, no cargue el campo UnitPrice de la tabla Products, ya que esos datos se extraern desde la tabla Order Details./* Shippers Table comments */ Shippers: SQL SELECT ShipperID, CompanyName as Shipper FROM Shippers; /* Products Table comments */ Products: SQL SELECT CategoryID, ProductID, ProductName, QuantityPerUnit, SupplierID, UnitCost, UnitsInStock, UnitsOnOrder FROM Products; /* Categories Table comments */ Categories: SQL SELECT CategoryID, CategoryName, Description FROM Categories;

16. Pulse SELECT nuevamente y cargue la tabla Orders. Edite manualmente el script para copiar el campo OrderDate tal como se muestra ms adelante, para generar nuevos campos para ao, mes y da. Cargaremos estos datos con una sentencia load precedente a fin de utilizar las funciones de fecha de QlikView, incluyendo el

copyright 1996-2005 QlikTech International

Page 34

QlikView Enterprise Script

formateado de mes. (La diferencia est en que el mes se representa como valor numrico cuando se emplea la sentencia select y como una combinacin de texto y nmero con la sentencia load.) Observe que las cadenas de texto que se utilizan para representar los meses dependen de los parmetros regionales de su sistema operativo (como se ve en las sentencias de script iniciales). Si sus configuraciones estuvieran en ingls, los meses aparecern en ingls. Segn el plan de proyecto, en la seccin Trends, necesitaremos finalmente ofrecer un anlisis de tiempos acerca del Mes, Trimestre y Ao. El siguiente script proporcionar el Ao, el Mes y el Da del mes. Ampliaremos informacin sobre esto mismo ms adelante, a fin de aadir el Mes & Trimestre actualizado. Tenga presente que la sentencia Load no tiene clusula From o Resident, dado que la fuente es la siguiente sentencia que se indica a continuacin SQL SELECT./* Orders Table comments */ Orders: Load CustomerID, EmployeeID, Freight, OrderDate, Year(OrderDate) as Year, Month(OrderDate) as Month, Day(OrderDate) as Day, OrderID, ShipperID; SQL SELECT * FROM Orders;

17. Finalmente, cargaremos la tabla OrderDetails. Aqu crearemos un nuevo campo NetSales que es la primera Medida Clave (Key Measure) identificada en el plan de proyecto, en la seccin Medidas Clave (Key Measures). NetSales es el resultado de un clculo basado en UnitPrice*Quantity*(1-Discount). El script de carga es como sigue:/* Order Details Table comments */ Order_Details: SQL SELECT OrderID, ProductID, Quantity, UnitPrice, UnitPrice*Quantity*(1-Discount) as NetSales FROM `Order Details`;

copyright 1996-2005 QlikTech International

Page 35

QlikView Enterprise Script

Consejo: No se permiten espacios en la etiqueta del nombre de la tabla. Asegrese de guardar su aplicacin, bien mediante el dilogo Editor de Script, o en la interfaz de QlikView, mediante Archivo Guardar.

7.3. Su primer script bsicoSu script debiera tener ahora ms o menos el siguiente aspecto:SET ThousandSep=','; SET DecimalSep='.'; SET MoneyThousandSep=','; SET MoneyDecimalSep='.'; SET MoneyFormat='$#,##0.00;($#,##0.00)'; SET TimeFormat='h:mm:ss TT'; SET DateFormat='M/D/YYYY'; SET TimestampFormat='M/D/YYYY h:mm:ss[.fff] TT'; SET MonthNames='Jan;Feb;Mar;Apr;May;Jun;Jul;Aug;Sep;Oc t;Nov;Dec'; SET DayNames='Mon;Tue;Wed;Thu;Fri;Sat;Sun'; ODBC CONNECT TO [EnterpriseScript;DBQ=DATASOURCES\QWT.mdb]; /* Customers Table comments */ Customers: SQL SELECT Address, City, CompanyName, ContactName, Country, CustomerID, Fax, Phone, PostalCode, StateProvince FROM Customers; /* Shippers Table comments */ Shippers: SQL SELECT ShipperID, CompanyName as Shipper FROM Shippers; /* Products Table comments */ Products: SQL SELECT CategoryID, ProductID, ProductName,

copyright 1996-2005 QlikTech International

Page 36

QlikView Enterprise Script

QuantityPerUnit, SupplierID, UnitCost, UnitsInStock, UnitsOnOrder FROM Products; /* Categories Table comments */ Categories: SQL SELECT CategoryID, CategoryName, Description FROM Categories; /* Orders Table comments */ Orders: Load CustomerID, EmployeeID, Freight, OrderDate, Year(OrderDate) as Year, Month(OrderDate) as Month, Day(OrderDate) as Day, OrderID, ShipperID; SQL SELECT * FROM Orders; /* Order Details Table comments */ Order_Details: SQL SELECT OrderID, ProductID, Quantity, UnitPrice, UnitPrice*Quantity*(1-Discount) as NetSales FROM `Order Details`;

copyright 1996-2005 QlikTech International

Page 37

QlikView Enterprise Script

7.4. Ejecucin del scriptPara eliminar un posible riesgo de prdida de su script, por una u otra causa, es importante guardarlo con cierta frecuencia, y especialmente antes de la ejecucin de un script de carga. A continuacin, haga clic en el icono Ejecutar Script de la barra de herramientas. El script se ejecutar y los datos se cargarn en la aplicacin. Seleccionar Campos en el men Diseo o Configuracin Propiedades de Hoja Campos lista todos los campos cargados:

Figura 10. La pgina de dilogo Propiedades de Hoja: Campos

copyright 1996-2005 QlikTech International

Page 38

QlikView Enterprise Script

8. Estructura de los datos cargadosEn este captulo se analizan los campos de sistema creados y mantenidos por QlikView de manera automtica, y que se pueden emplear para comprender la estructura interna de nuestro documento QlikView. El captulo nos introduce as mismo en una serie de mtodos para monitorizar y analizar la estructura de los datos QlikView. Estas tcnicas y herramientas nos resultarn tiles a la hora de crear el script de carga y la estructura del documento, y sern esenciales cuando tratemos de verificar la integridad de un documento, o de depurar errores.

8.1. Campos de sistemaDurante el proceso de carga, se generan seis campos especiales que contienen informacin sobre la estructura de la base de datos asociativa de QlikView, es decir, contienen meta-datos sobre la base de datos AQL. stos son los que reciben el nombre de campos de sistema y a continuacin veremos cmo se pueden utilizar al trabajar con QlikView. 1. 2. 3. 4. 5. $Field $Table $Rows $Fields $FieldsNo Muestra los nombres de todos los campos cargados Muestra los nombres de todas las tablas cargadas Muestra el nmero de filas que hay en las tablas Muestra el nmero de campos en las diversas tablas Muestra las posiciones de los campos en las tablas (nmero de columna) Muestra los nombres de las tablas de informacin cargadas

6. $Info

8.1.1. La pestaa sistema Cuando est desarrollando un documento, una hoja de sistema le resultar muy til, ya que le mostrar cmo se relacionan entre s las tablas lgicas en el documento. Es una prctica muy conveniente la de crear una hoja de sistema como primer paso tras haber cargado los datos. A continuacin crearemos una hoja de sistema: de 1. Cree una nueva hoja, haciendo clic en el botn Aadir Hoja la barra de herramientas Diseo o seleccionando Aadir Hoja en el men Diseo. 2. Haga clic con el botn derecho en la hoja nueva, y seleccione Propiedades. Introduzca el Ttulo de la hoja como Sistema en la pestaa General.

copyright 1996-2005 QlikTech International

Page 39

QlikView Enterprise Script

3. En la pestaa Campos, marque la casilla de verificacin Mostrar Campos de Sistema y seleccione a continuacin todos los campos que contengan un signo dlar $ frente a ellos. 4. Pulse Aadir, a continuacin Aceptar. Disponga los campos en la hoja y a continuacin seleccione Propiedades, General, Mostrar Campos de Sistema para el cuadro de lista $Field, a fin de poder ver cuntas veces aparecen los diversos campos en las tablas de la base de datos asociativa. En la pestaa Ordenar podr clasificarlos en orden descendente segn su frecuencia de aparicin, de modo que los campos que aparezcan un mayor nmero de veces se siten en la parte superior de la lista. 8.1.2. Utilizacin de los campos de sistema Si selecciona CustomerID en $Field ver en qu tablas aparece el campo, adems de otra informacin relativa a los campos de sistema.

Figura 112. Resultado de seleccionar CustomerID en el cuadro de lista $Field

8.2. El visor de tablasOtra forma de mostrar la estructura lgica de las tablas disponibles en un documento QlikView y las conexiones entre las mismas, consiste en emplear el visor de tablas grfico integrado. La opcin Archivo Visor de Tablas (o -T) abre una ventana que muestra todas las tablas cargadas y sus campos de conexin clave. Puede reorganizar sus componentes haciendo clic y arrastrando, o seleccionando Auto-Diseo. Asegrese de pulsar Aceptar cuando haya finalizado, para guardar su diseo.

copyright 1996-2005 QlikTech International

Page 40

QlikView Enterprise Script

Figura 13. Una vista de tabla a modo de ejemplo

8.3. La tabla de sistemaEn QlikView se pueden crear mltiples tablas de diversa ndole, que contengan tipos de datos muy dispares, as pues, por qu no emplear la misma tcnica para investigar las relaciones entre las tablas de nuestra base de datos? La tabla de sistema es una tabla pivotante que ilustra las relaciones y conexiones que se dan entre tablas y campos de la base de datos asociativa de QlikView. Empezaremos por crear dicha tabla en nuestra hoja de sistema. Todo desarrollador de sistemas debiera contar con una tabla de sistema. Cuanto ms complicada sea la estructura de datos, mayor la necesidad y el uso que se har de dicha tabla. 1. En su aplicacin QlikView, asegrese de que se halla en la hoja Sistema. 2. Haga clic con el botn derecho en la hoja y seleccione nuevo objeto de hoja, Tabla de Sistema. Se crear una Tabla Pivotante con las dimensiones $Field y $Table. La expresin del grfico ser Only($Field). Ambas dimensiones se ordenan segn el orden de carga.

copyright 1996-2005 QlikTech International

Page 41

QlikView Enterprise Script

Figura 14. Una tabla de sistema

copyright 1996-2005 QlikTech International

Page 42

QlikView Enterprise Script

8.4. Propiedades de Documento: la pgina TablasEsta pgina de dilogo le ofrece otra forma ms de contemplar la estructura de datos. Todas las tablas y campos incluidos en el documento QlikView se listan aqu, junto con unas estadsticas de cada entidad. Haga clic en el botn Exportar Estructura para exportar diversos archivos de texto delimitados por tabulador, que contienen dicha informacin. Estos archivos pueden importarse de nuevo a QlikView bien este mismo documento, u otro distinto para un anlisis adicional.

Figura 15. Propiedades de Documento: el dilogo Tablas

Volveremos a este cuadro de dilogo ms adelante, en un captulo posterior, cuando analicemos las referencias circulares en la estructura de datos y como se puede hacer un seguimiento de las mismas empleando el dilogo Propiedades de Documento: Tablas. Ms concretamente, analizaremos las casillas de verificacin Parcialmente Desconectado para las Tablas, y sus posibilidades de utilizacin.

copyright 1996-2005 QlikTech International

Page 43

QlikView Enterprise Script

9. Aadir Datos de TextoSegn nuestro plan de proyecto, hay tablas adicionales de datos que cargar. Estas no se encuentran en formato de base de datos, as que comenzaremos a utilizar el Asistente para Tablas a fin de crear las sentencias de Carga de QlikView. Las fuentes esta vez sern dos hojas de clculo Excel y un archivo DIF. Estos archivos contienen datos acerca de los empleados, las oficinas y los proveedores. Comencemos analizando las fuentes de datos.

9.1. EmpleadosTomamos los datos sobre los empleados del archivo Excel EmpOff.xls y la hoja de clculo Employee (empleado) en la carpeta DataSources (Fuentes de Datos). Primero abrimos el archivo Excel y echamos un vistazo a su contenido.

Figura 16. La tabla Employee (Empleado)

La clave de esta tabla se halla en el campo EmpID, que conecta la tabla con los dems datos que hemos cargado.

9.2. OficinasLos datos relativos a las oficinas de la compaa tambin se toman del archivo Excel: EmpOff.xls pero de la hoja de clculo Office (Oficina), que es la segunda hoja de clculo del archivo Excel EmpOff.xls.

Figura 17. La tabla Office (Oficina)

La clave de esta tabla es Office y los valores de este campo se asociarn a los valores del campo Office de la tabla Employee.

copyright 1996-2005 QlikTech International

Page 44

QlikView Enterprise Script

9.3. ProveedoresLos datos sobre los proveedores se tomarn de un archivo DIF llamado suppliers.dif (carpeta DataSources). Este formato es en cierto modo diferente, como podr observar si echa un vistazo al archivo en un editor de texto normal, por ejemplo en el Bloc de notas. El archivo DIF tendr el siguiente aspecto:TABLE 0,1 "EXCEL" VECTORS 0,30 "" TUPLES 0,9 "" DATA 0,0 "" -1,0 BOT 1,0 "SupplierID" 1,0 "CompanyName" 1,0 "ContactName" 1,0 "Address" 1,0 "City" 1,0

En cambio, el mismo archivo, pero en Excel, resulta bastante ms legible:

Figura 18. El archivo DIF Suppliers (Proveedores)

Cargaremos datos desde este archivo ms adelante, en otro captulo posterior.

9.4. Generacin de script mediante el asistente de archivoAhora continuamos con la generacin de nuestro script de carga, aadiendo sentencias de Carga QlikView para los tres archivos que acabamos de ver.

copyright 1996-2005 QlikTech International

Page 45

QlikView Enterprise Script

Para crear estas sentencias, emplearemos el Asistente para Tablas del cuadro de dilogo Editor de Script. 1. Abra el dilogo Editor de Script desde el men, o la barra de herramientas. 2. Asegrese de que la casilla de verificacin Rutas Relativas est marcada. 3. Asegrese de que la casilla de verificacin Asistente est marcada y a continuacin haga clic en el botn Ficheros Planos para abrir el dilogo Abrir Archivos Locales. 4. Navegue hasta encontrar el archivo EmpOff.xls en la carpeta DataSources y haga clic en Abrir.

Figura 19. El Asistente de Archivos

Compruebe que las configuraciones sugeridas por el asistente sean las correctas. Debiera mostrarse lo siguiente: Type: Excel files (BIFF), Table: Employee$, Embedded Labels 5. Haga clic en el nombre del campo EmpID y cambie el nombre por el de EmployeeID.

copyright 1996-2005 QlikTech International

Page 46

QlikView Enterprise Script

6. Pulse Finalizar para volver al cuadro de dilogo Editor de Script y visualice la nueva sentencia Load generada para los datos de Employee... 7. Ahora, aada sus comentarios a esta carga de datos, y nombre la tabla como Employee. Tambin puede borrar la sentencia Directorio, generada debido a la especificacin de Rutas Relativas. No necesitaremos estas sentencias en nuestro script. 8. Adems, segn nuestro plan de proyecto, necesitaremos aadir un campo [Employee Hire Year]. Incluya dicho campo ahora, empleando la funcin year en el campo [Hire Date]. 9. Las sentencias de script debieran ofrecer el siguiente aspecto:/* Employee Table comments */ Employee: Load EmpID as EmployeeID, [Last Name], [First Name], Title, [Hire Date], Year([Hire Date]) as [Employee Hire Year], Office, Extension, [Reports To], [Year Salary] FROM Datasources\EmpOff.xls (biff, embedded labels, table is [Employee$]);

10. A continuacin, siga el mismo procedimiento para los datos de la tabla Office. Esta se encuentra en la segunda hoja de clculo del archivo Excel EmpOff.xls. Cuando abra el Asistente para Tablas, asegrese de cambiar a la hoja de clculo Excel Office$ en el cuadro denominado Table (Tabla) en la primera pgina del asistente. 11. Aada los comentarios a la tabla y denomine la sentencia de Carga con el nombre Office. Las siguientes sentencias deberan incluirse en su script:/* Office Table comments */ Office: Load Office, Address, [Postal Code], City, StateProvince, Phone, Fax, Country

copyright 1996-2005 QlikTech International

Page 47

QlikView Enterprise Script

FROM Datasources\EmpOff.xls (biff, embedded labels, table is [Office$]);

Observe que los nombres de campo que contienen espacios se encierran entre corchetes (tambin se pueden emplear comillas " "), por ejemplo, [Cdigo Postal]. 12. Pulse Aceptar en el Editor de Script, y guarde el documento. A continuacin recargue los datos desde los mens o desde la barra de herramientas.

Figura 20. Advertencia acerca de referencias circulares

13. QlikView le avisa si encuentra referencias circulares, o bucles, en la estructura de tabla. Pulse Aceptar. Cuando trabaje con estructuras de datos muy complejas, que contengan gran cantidad de tablas, es posible que se vea en una situacin en la que la interpretacin de los datos sea incierta. QlikView ha sido desarrollado de tal manera que pueda manejar las estructuras ms complejas, e interpretarlas automticamente de forma correcta, no obstante existen ciertas limitaciones. Es importante que sea consciente de cules son estas limitaciones y sepa cmo resolver el problema de los bucles cuando ste se plantee. Pronto volveremos a la generacin de nuestro script, pero primero analicemos las referencias circulares y sus consecuencias.

9.5. Referencias circularesObserve el siguiente ejemplo, que consiste en una estuctura de datos simple, con tres tablas: Clientes IDCliente Pas Pedidos IDCliente IDProducto ValorPedido Presupuesto Pas IDProducto

copyright 1996-2005 QlikTech International

Page 48

QlikView Enterprise Script

Como puede ver, es posible literalmente ir en crculos. En este ejemplo, es fcil detectar una referencia circular, pero esto puede complicarse mucho ms en estructuras ms complejas. Las estructuras de datos de este tipo debieran evitarse, ya que pueden llevar a una interpretacin ambiga de los datos. Desgraciadamente, las referencias circulares son algo habitual, y no es raro encontrrselas a lo largo de la vida laboral. A menudo se deben a un diseo pobre de la base de datos, pero en algunas ocasiones son inevitables. En ciertos casos, un campo (o tabla) puede cumplir diversos roles, por ejemplo, una compaa puede ser cliente y proveedor a la vez. El campo, o tabla, debe entonces cargarse dos veces en QlikView, bajo nombres diferentes. QlikView resuelve el problema de las referencias circulares empleando una tabla parcialmente desconectada. Si QlikView encuentra un bucle mientras se ejecuta el script de carga, se mostrar un dilogo de advertencia y una o ms tablas se configurarn como parcialmente desconectadas. QlikView tratar de desconectar parcialmente la tabla de mayor longitud. Esta ser a menudo una tabla de transaccin. Si desea desviarse de la opcin prederminada por defecto en QlikView, puede definir la tabla como parcialmente desconectada empleando una sentencia loosen table (desconectar tabla) en el script. Tambin es posible modificar los parmetros de configuracin de las tablas parcialmente desconectadas de forma interactiva tras la ejecucin de script mediante la pestaa Tablas en Propiedades de Documento. Tambin puede determinar qu tablas de su estructura estn establecidas como parcialmente esconectadas empleando la utilidad Visor de Tabla. Las tablas parcialmente desconectadas mostrarn lneas de puntos a modo de conectores. Para evitar las referencias circulares y las tablas parcialmente desconectadas, debe renombrar los campos que ocasionan los bucles y eliminar las tablas parcialmente desconectadas en la pestaa Tablas en Propiedades de Documento.

9.6. Causas de las referencias circularesCon frecuencia, las estructuras circulares son resultado de la existencia de campos clave incluidos de manera no intencional en la carga de datos. En nuestro documento QlikView, hemos recibido un mensaje de advertencia ante referencias circulares porque muchos campos de tablas diferentes tenan el mismo nombre. Esto ocasiona asociaciones indebidas de campos QlikView. Puede verse ms claramente analizando la hoja de sistema.

copyright 1996-2005 QlikTech International

Page 49

QlikView Enterprise Script

1. Vaya a la hoja de sistema y haga clic con el botn derecho en el cuadro de lista $Table y seleccione Propiedades. 2. Seleccione Mostrar Frecuencia en la pestaa General y ordene por frecuencia. 3. Ahora podemos ver la frecuencia en ambos cuadros de lista $Field y $Table. Ahora seleccionamos todos los que tengan una frecuencia mayor que 1 en $Field y a continuacin hacemos lo mismo para $Table. 4. Elimine todos los valores de $Field que tengan la frecuencia 1, y luego proceda igual en $Table. Contine de la misma manera hasta que ya no le sea posible eliminar los valores con frecuencia 1. Si no es posible obtener la frecuencia 1 para todas las tablas posibles restantes en el cuadro de lista $Table, entonces tenemos una referencia circular en alguna parte de la aplicacin.

Figura 21. Todos los valores posibles tienen una frecuencia mayor que 1

Si examinamos ahora ms de cerca los valores posibles del cuadro de lista $Field, veremos que algunos de estos campos probablemente no deberan estar conectados. Un ejemplo de ello lo tenemos en el campo Fax. 1. Seleccione Fax en el cuadro de lista $Field.

copyright 1996-2005 QlikTech International

Page 50

QlikView Enterprise Script

2. Compruebe en qu tablas aparece el campo Fax. Fax se encuentra en las tablas Customers y Office. No queremos que los nmeros de fax de nuestros clientes se mezclen con los nmeros de fax de nuestras oficinas. Por lo tanto, debemos renombrar este campo en la tabla Office, que fue la que se carg ms recientemente. Los dems campos de esta tabla tambin debieran ser renombrados.

9.7. Renombrar campos para evitar las referencias circularesPodemos evitar las referencias circulares modificando el script. 1. Abra el cuadro de dilogo Editor de Script y renombre los campos de la tabla Office tal y como se muestra ms adelante. Observe que no queremos renombrar el campo clave intencional Office, dado que an necesitamos un enlace con la tabla Employee. Tambin aprovechamos la oportunidad para renombrar el campo City como [Sales Office] segn nuestro plan de proyecto.Office: Load Office, Address as OfficeAddress, [Postal Code] as OfficePostalCode, City as [Sales Office], StateProvince as OfficeStateProvince, Phone as OfficePhone, Fax as OfficeFax, Country as OfficeCountry FROM Datasources\EmpOff.xls (biff, embedded labels, table is [Office$]);

2. Haga clic en Aceptar en el Editor de Script, y guarde el documento. A continuacin recargue los datos desde los mens o la barra de herramientas. No debera haber ninguna advertencia ms sobre referencias circulares, lo cual quiere decir que todas han sido eliminadas.

copyright 1996-2005 QlikTech International

Page 51

QlikView Enterprise Script

Figura 22. Las tablas posibles tienen ahora la frecuencia 1

Como puede ver en la figura superior, ya no hay ningn campo que asocie las tablas Office y Customers. QlikView eliminar automticamente la designacin de parcialmente desconectado de la tabla Orders (Pedidos) una vez que la referencia circular haya sido corregida.

9.8. Tablas parcialmente desconectadasEn una tabla parcialmente desconectada, la lgica asociativa de QlikView est internamente desconectada. Esto significa que las selecciones en los campos no clave de una tabla no afectarn a otras tablas. En ciertos casos, esto puede resultar muy eficaz, aunque en nuestro caso no queremos implementar esta funcin. Para entender el concepto de parialmente desconectado, observe el siguiente ejemplo: Aqu vemos cuadros de tabla creados por tres tablas diferentes.

Si elegimos el valor 2 del campo B, ocurre lo siguiente:

copyright 1996-2005 QlikTech International

Page 52

QlikView Enterprise Script

La seleccin afecta a todas las tablas. Ahora conservemos este valor, pero haciendo la Tabla 2 parcialmente conectada. Esto implica que la lgica entre los campos A y C est desconectada. El resultado es:

Observe que la Tabla 2 mostrada arriba es un cuadro de tabla y no la tabla real. El cuadro de tabla muestra todas las combinaciones posibles de columnas. Como no existe una conexin lgica entre los campos A y C, todas las combinaciones posibles entre sus valores se muestran. Como la Tabla 2 est parcialmente conectada, las selecciones realizadas en la Tabla 1 no se propagarn a la Tabla 3.

copyright 1996-2005 QlikTech International

Page 53

QlikView Enterprise Script

10. Ejercicios1. Use el botn Exportar Estructura situado en el dilogo Propiedades de Documento: Tablas para exportar la estructura de tabla desde su documento QlikView. 2. Cree un nuevo documento QlikView, y cargue los datos desde las tablas que export en el paso 1. 3. Muestre los campos de esta carga en una o ms hojas.

copyright 1996-2005 QlikTech International

Page 54

QlikView Enterprise Script

11. Creacin de datos en QlikViewEn nuestro plan de proyecto, una de las Dimensiones Clave que aparecen listadas es Sales Person. Dado que no existe ningn campo en nuestros datos fuente para Sales Person, necesitaremos generar este campo en QlikView durante el proceso de carga de datos. En este captulo, practicaremos con las cargas residentes y condicionales, tambin se introducir al lector en el concepto de creacin de mltiples tablas lgicas en QlikView, basadas en una nica tabla de datos fuente. Tambin nos iniciaremos en la tabulacin de script.

11.1. Carga residenteEn esta seccin, aprenderemos cmo crear una nueva tabla lgica en QlikView, basada en una tabla (residente) previamente cargada. Tambin se ver cmo segregar el script de carga en distintas pestaas para facilitar la lectura y el mantenimiento. 1. Abra el dilogo Editor de Script. 2. Aada una nueva tabla al script haciendo clic en el icono Aadir nueva pestaa o seleccionando Aadir Pestaa del elemento de men Pestaa. Otorgue el nombre de Sales Person a la nueva pestaa. 3. Ahora aadiremos otra carga de tabla al script, pero esta vez, en lugar de utilizar un asistente para crear el cdigo, copiaremos cdigo ya existente, y lo modificaremos. Primeramente localice la carga de la tabla Employee en la pespaa de script Principal. Copie (pulsando -C, o mediante Editar Copiar) todas las lneas de esta sentencia. A continuacin vuelva a la pestaa Sales Person, y pegue (pulsando -V, o mediante Editar Pegar). Ahora debera tener un duplicado de la carga de la tabla Employee en la nueva pestaa. 4. A continuacin, edite la sentencia de carga tal y como se le indica: - Cambie el nombre de tabla por el de Sales_Person - Elimine el renombrado de EmpID, y cambie al nombre de campo QlikView: EmployeeID (ya no estamos leyendo de la fuente de datos). - Elimine los campos [Hire Date], Office, Extension, [Reports To], y [Year Salary] de la sentencia load. - Elimine la coma del campo Ttulo (ahora es el ltimo campo de esta carga) y renombre este campo con el nombre de SalesTitle. - Elimine la especificacin Desde, dado que no se leer desde un archivo de disco para esta carga.

copyright 1996-2005 QlikTech International

Page 55

QlikView Enterprise Script

- Aada la especificacin Residente, apuntando al archivo residente del que deseamos cargar, en la misma ubicacin en la que se hallaba Desde. 5. Su script debera tener ahora el siguiente aspecto:/* Sales Person Table comments */ Sales_Person: Load EmployeeID, [Last Name], [First Name], Title as SalesTitle Resident Employee; 6. Ahora queremos limitar la carga de todos los registros de datos de

Employee nicamente a aquellos que podamos identificar como vendedores (Salesperson). Para hacer esto, necesitamos hacer otro cambio al cdigo de script. Primero, elimine el punto y coma (;) situado tras Resident Employee. A continuacin, aada la condicin where tras la lnea Resident, tal como se indica:where Left(Title,3) = 'Sal' OR Title = 'President';

7. Pulse Aceptar en el Editor de Script, y guarde el documento. A continuacin recargue los datos desde los mens o mediante la barra de herramientas. 8. Aada cuadros de lista para [Last Name], Title, y SalesTitle a la hoja Principal. Elija Seleccionar Todo en el campo SalesTitle, y observe que slo algunos de los valores [Last Name] y Title se muestran como posibles (es decir, en blanco). Para que un valor de la tabla Employee original sea incluido en la nueva tabla lgica Sales_Person, debe satisfacer al menos una de las condiciones ya definidas. La primera de ellas, que los tres primeros caracteres del campo Title deben ser Sal. La segunda, que el campo sea igual a President. 9. Guarde el documento.

11.2. Tablas de clave sintticaNo es algo deseable el tener varias claves comunes a lo largo de diversas tablas en una estructura de datos QlikView. Esto puede ocasionar que QlikView tenga que utilizar claves complejas (tambin conocidas como claves sintticas) para generar las conexiones de la estructura de datos. Las claves sintticas generalmente consumen muchos recursos y pueden ralentizar los clculos o incluso, en casos

copyright 1996-2005 QlikTech International

Page 56

QlikView Enterprise Script

extremos, sobrecargar las aplicaciones. Tambin dificultan la comprensin y el mantenimiento de los documentos. Existen varios casos en los que las claves sintticas son imposibles de evitar (por ejemplo en las Tablas de Correspondencia de Intervalos), pero, en general, las claves sintticas deberan eliminarse en todos los casos, siempre, si ello es posible. Cuando anteriormente cargamos la tabla que genera el campo SalesTitle, sin querer estbamos creando una clave sinttica entre las tablas Employee y Sales_Person. La clave sinttica se genera en una nueva tabla de clave sinttica ($ Syn 1 Table) la cual puede verse desde el Visor de Tablas en el men Archivo.

Figura 23. Las tablas de clave sinttica vistas desde el Visor de Tablas

11.3. Cmo eliminar una tabla de clave sintticaComo se puede deducir por lo expuesto en el Visor de Tablas ahora mismo tenemos una tabla de clave sinttica que se compone de los campos First Name, Last Name y EmployeeID. En este caso, no hay razn por la que necesitaemos emplear los campos de nombre como una clave adicional entre estas tablas, dado que EmployeeID ya cumple este propsito. Para corregir esta situacin, emplearemos de nuevo la tcnica de renombrar campos. Para eliminar las conexiones redundantes, deberamos renombrar los campos que no deseamos utilizar como campos clave. Podemos aprovechar la oportunidad para introducir un cambio ms combinando los campos First Name y Last Name en nuevos campos Name por concatenacin. As mismo, nuestro plan de proyecto nos exige que proporcionemos un campo Sales Person consistente en nombre de pila y apellido.

copyright 1996-2005 QlikTech International

Page 57

QlikView Enterprise Script

Efecte los siguientes cambios en las lneas de script que sirven para cargar los campos First Name y Last Name para que el script que carga las dos tablas implicadas ahora sea as:Employee: Load EmpID as EmployeeID, [First Name] & ' ' & [Last Name] as Name, [Last Name], [First Name], Title, [Hire Date], Year([Hire Date]) as [Employee Hire Year], Office, Extension, [Reports To], [Year Salary] FROM Datasources\EmpOff.xls (biff, embedded labels, table is [Employee$]); Sales_Person: Load EmployeeID, Name as [SalesPerson], Title as SalesTitle Resident Employee Where Left(Title,3) = 'Sal' OR Title = 'President';

Tras ejecutar el script, puede constatar que la clave compleja se ha ido, empleando de nuevo para ello la utilidad Visor de Tablas. Tambin puede aadir el nuevo cuadro de lista [Sales Person] a la hoja Principal para visualizar los resultados.

11.4. Avanzado Cmo valerse de Orders (pedidos) para determinar Sales Person (Vendedor).Acabamos de emplear un mtodo bastante simple, que nos ha permitido probar los valores de campo requeridos para el campo SalesPerson. Este es un mtodo perfectamente vlido y adecuado, pero tambin podramos haber obtenido el mismo resultado utilizando una solucin ms elegante. Comenzamos observando que todos los vendedores (sales people) estn incluidos en nuestros datos de ventas. De ah se deduce que deben estar incluidos en el campo EmployeeID en la tabla Orders. Comenzamos por crear un campo nuevo EmployeeSales en el script, en el que Orders se est cargando. Haciendo referencia a este campo posteriormente en el script, podemos asegurarnos de que todos los empleados que han sido

copyright 1996-2005 QlikTech International

Page 58

QlikView Enterprise Script

acreditados por las ventas aparecern listados en el campo [Sales Person]. 1. Para hacer esto, introduzca la siguiente lnea en la sentencia load de la tabla Orders inmediatamente despus de la carga del campo EmployeeID.EmployeeID as EmployeeSales,

2. A continuacin, camb