Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Curso Script
Curso Script
Parte 1 Script
Derechos reservados
Gmez Portas Intranet, S.C.
Realizacin de modelos
Metodologa:
Definicin de requerimientos Quin lo quiere
saber? Definiciones, prioridades y Qu se
quiere saber? Preguntas a responder con el
modelo, entrevistas
Definicin de indicadores Qu indicadores me
ayudan a saber lo que quiero?
Obtencin y concentrado de datos A partir de
qu datos operativos se pueden construir los
indicadores?
Realizacin del Modelo de Anlisis
Pruebas y validacin
Entrega
Realizacin de modelos
Metodologa:
Definicin de requerimientos Quin lo quiere
saber? Definiciones, prioridades y Qu se quiere
saber? Preguntas a responder con el modelo,
entrevistas
Definicin de indicadores Qu indicadores me
ayudan a saber lo que quiero?
Obtencin y concentrado de datos A partir de qu
datos operativos se pueden construir los
indicadores?
Documento de definiciones
Realizacin de modelos
Modelo de anlisis
1.
2.
3.
4.
5.
6.
Documento de definiciones
Se utilizar el documento de definiciones
del proyecto
QWTProject Plan.pdf
En l estn indicadas las variables que se
utilizarn y la informacin que se debe de
incluir en el modelo.
Documento de definiciones
Ver documento
Key Measures:
Key Performance Indicators (KPIs):
Key Dimensions: .
Trends:
Key Selection Filters:
Security:
Source Data Descriptions:
Estructura de datos
Pueden estar en mltiples fuentes: Access,
SQL, Excel, etc.
Las tablas tienen mltiples campos
Las tablas se relacionan automticamente si
tiene dos campos con el mismo nombre
Veremos como forzar una relacin y cmo
impedir que se establezca una.
El conjunto de tablas relacionadas forma la
base de datos asociativa de Qlikview
Cargado de datos
Cargado de datos
Editor de script
Cargado de datos
Editor de script
Recargar Ejecuta el script, cierra la ventana de dilogo y abre la
venta de propiedades de la hoja
Depurar Ejecuta el script en modo de depurador, de manera que
cada paso puede ser monitoreado y los valores de las
variables tambin puedan ser examinadas.
Guardar Guarda todo el documento en un archivo incluyendo datos,
script y los objetos que muestran los datos y su disposicin
en las hojas
Imprimir pestaa Permite imprimir la pestaa actual de entre las
varias en que puede dividirse un script (Main, etc).
Cortar Corta el texto seleccionado y lo guarda en el clipboard.
Copiar Copia el texto seleccionado y lo guarda en el clipboard.
Pegar Pega el texto guardado en el clipboard en la posicin donde
est el cursor.
Cargado de datos
Editor de script
Buscar Busca el texto especificado en el cuerpo del script pero solo
en la pestaa activa
Aadir nueva pestaa Agrega una nueva pestaa. El script es
ejecutado pestaa a pestaa de izquierda a
Visor de tablas Muestra el visor grfico de tablas y las relaciones
entre campos
Cargado de datos
Editor de script
Cargado de datos
Editor de script
Cargado de datos
Editor de script
Cargado de datos
Editor de script
Cargado de datos
Editor de script
Cargado de datos
Editor de script
Cargado de datos
Editor de script
Cargado de datos
Editor de script
Cargado de datos
Datos del ejercicio
Cargado de datos
Datos del ejercicio
Notar que
Hay campos comunes a diferentes tablas que se quieren relacionar:
OrderID
Hay campos comunes a diferentes tablas que NO se quieren relacionar:
City
Cargado de datos
Conexin a Base de Datos
Fuente OLE DB
Seleccionar en Base de Datos, OLE DB, Forzar a 32 bits y pulsar el botn
Conectar
Seleccionar Microsoft Jet 4.0 OLE DB Provider y pulsar botn Siguiente
Cargado de datos
Conexin a Base de Datos
Fuente OLE BD
Buscar a directorio Curso-Archivos
Seleccionar QWT.mdb y pulsar botn Aceptar
Cargado de datos
Conexin a Base de Datos
Cada lnea de script termina con un punto y coma ;
Los comentarios en script
Anteponiendo REM a una o varias lneas es un comentario hasta el punto y coma
final
// El comentario es una sola lnea y no necesita ;.
/* */ comentar el texto, as sean varias lneas , que exista entre los
caracteres /* y los */
Escribir:
Rem este es un comentario de
dos lneas;
// este es un comentario de una sola lnea
/* este es mi primer script
en Qlikview
hasta ahora todo ha sido muy fcil */
Cargado de datos
Seleccin de campos
Cargado de datos
Seleccin de campos
Ver contenido de las bases de datos
Cargado de datos
Seleccin de campos
Ver contenido de las bases de datos
Cargado de datos
Conexin a Base de Datos
Seleccionar Load Precedente
Seleccionar la tabla Customers
En la caja Campos seleccionar todos los campos
arrastrando el apuntador del ratn dentro de la caja de
seleccin.
Se pueden seleccionar varios campos haciendo click en
el nombre de cada campo y manteniendo apretada la
tecla Cntrl
En la ventana de Script se puede ver el cdigo de script
que se generar
Pulsar el botn Aceptar
Escribir antes del Load el nombre de la tabla, Clientes:.
con este nombre se referir QlikView a esta tabla
Guardar el modelo con el nombre Prctica Script.qvw
Cargado de datos
Conexin a Base de Datos
OLEDB CONNECT 2 TO [Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=C:\Curso script QV10 ];
Rem este es un comentario de
dos lneas;
// este es un comentario de una sola lnea
/* este es mi primer script
Clientes:
LOAD Address,
City,
CompanyName,
ContactName,
Country,
CustomerID,
Fax,
Phone,
PostalCode,
StateProvince;
SQL SELECT Address,
City,
CompanyName,
ContactName,
Country,
CustomerID,
Fax,
Phone,
PostalCode,
StateProvince
FROM Customers;
Cargado de datos
Conexin a Base de Datos
Poner etiqueta Clientes: y Recargar
Cargado de datos
Conexin a Base de Datos
Seleccionar City, CompanyName y Country
Cargado de datos
Conexin a Base de Datos
Resultado. Seleccionar Argentina
Cargado de datos
Cambio de nombres de campos
Al momento de cargar de una fuente de datos es
posible renombrar cualquier campo utilizando una
etiqueta. Esto permite dos cosas:
Forzar un enlace entre campos que sabemos que estn
relacionados al ponerle a los dos un mismo nombre
Evitar que dos campos con el mismo nombre original se
enlacen, al cambiarle a alguno de ellos el nombre
Cargado de datos
Cambio de nombres de campos
Clientes:
LOAD Address as ClienteDireccion,
City as ClienteCiudad,
CompanyName as ClienteCompania,
ContactName as ClienteContacto,
Country as ClientePais,
CustomerID as ClienteID,
Fax as ClienteFax,
Phone as ClienteTelefono,
PostalCode as ClienteCP,
StateProvince as ClienteEstado;
Cargado de datos
Cambio de nombres de campos
Resultado. Seleccionar Argentina
Cargado de datos
Cambio de nombres de campos
dos lneas;
Clientes:
City as ClienteCiudad,
CompanyName as ClienteCompania,
ContactName as ClienteContacto,
Country as ClientePais,
CustomerID as ClienteID,
Fax as ClienteFax,
Phone as ClienteTelefono,
PostalCode as ClienteCP,
StateProvince as ClienteEstado;
City,
CompanyName,
ContactName,
Country,
CustomerID,
Fax,
Phone,
PostalCode,
StateProvince
FROM Customers;
Cargado de datos
Carga de hojas de Excel
Es posible utilizar datos que se encuentren en hojas de
Excel. El archivo se llama EmpOff.xls y tiene los datos de
oficinas y empleados. Son dos hojas, Employee y Office. La
de empleados contiene los campos:
Id del empleado, Apellidos, Nombre, Ttulo, Fecha de ingreso, ID
Oficina, Extensin Tel., A quin reporta y Salario Anual
Cargado de datos
Carga de hojas de Excel
Para cargar la hoja active el botn ficheros planos en la
hoja de script
Cargado de datos
Carga de hojas de Excel
Cargado de datos
Carga de hojas de Excel
Cargado de datos
Carga de hojas de Excel
Script generado:
LOAD EmpID,
[Last Name],
[First Name],
Title,
[Hire Date],
Office,
Extension,
[Reports To],
[Year Salary]
FROM ..\Archivos\EmpOff.xls (biff, embedded labels, table is
Employee$);
Note los parntesis cuadrados para enmarcar los campos que tienen
espacios en el nombre. Tambin se pueden utilizar comillas dobles
Cargado de datos
Cambio de nombres de campos
Pasar a:
Empleados:
LOAD EmpID as EmpleadoID,
[Last Name] as EmpleadoApellido,
[First Name] as EmpleadoNombre,
Title as EmpleadoTitulo,
[Hire Date] as EmpleadoFechaIng,
Office as EmpleadoOficina,
Extension as EmpleadoExtTel,
[Reports To] as EmpleadoReporta,
[Year Salary] as EmpleadoSalario
FROM ..\Archivos\EmpOff.xls (biff, embedded labels, table is
Employee$);
Cargado de datos
Carga de hojas de Excel
Cargar el script y mostrar
Cargado de datos
Carga de hojas de Excel
Cargar el script y mostrar
Cargado de datos
Carga de hojas de Excel
Hasta ahora tenemos dos tablas sin relacin entre ellas, es
decir seleccionar un campo en la tabla Clientes no nos
selecciona nada en la tabla Empleados
Cargado de datos
Esquema general de datos
Para ver cmo se relacionan, veamos el esquema general. Es la tabla
de Ordenes la que relaciona a los Clientes con los Empleados
(vendedores)
Cargado de datos
Carga de Tabla Ordenes
Carguemos entonces la tabla de rdenes. Como ya tenemos
una conexin definida a la Base de Datos donde est la tabla
Orders, solo requerimos seleccionarla mediante el botn
Select
Cargado de datos
Carga de Tabla Ordenes
Seleccionamos todos los campos y nos aseguramos que la
opcin Load Precedente est marcada.
Cargado de datos
Carga de Tabla Ordenes
Script generado:
Ordenes:
LOAD CustomerID,
EmployeeID,
Freight,
OrderDate,
OrderID,
ShipperID;
SQL SELECT CustomerID,
EmployeeID,
Freight,
OrderDate,
OrderID,
ShipperID
FROM Orders;
Cargado de datos
Carga de Tabla Ordenes
Cargar el script y mostrar
Cargado de datos
Carga de Tabla Ordenes
Cargar el script y mostrar
Cargado de datos
Carga de Tabla Ordenes
Hasta ahora tenemos tres tablas, qu tenemos que hacer
para que se relacionen entre s?
Cargado de datos
Carga de hojas de Excel
Relacionar
1. ClienteID de Clientes con CustomerID de Ordenes
2. EmpleadoID de Empleados con EmployeeID de Ordenes
Cargado de datos
Carga de Tabla Ordenes
Script generado:
Ordenes:
LOAD CustomerID as ClienteID,
EmployeeID as EmpleadoID,
Freight as OrdenPeso,
OrderDate as OrdenFecha,
OrderID as OrdenID,
ShipperID as OrdenEmbarque;
SQL SELECT CustomerID,
EmployeeID,
Freight,
OrderDate,
OrderID,
ShipperID
FROM Orders;
Cargado de datos
Carga de Tabla Ordenes
Cargar el script Practica Script 3.qvw y mostrar
Cargado de datos
Relaciones de Tabla Ordenes
Ahora tenemos tres tablas relacionadas
Cargado de datos
Agregar datos de Tabla Ordenes
Pasar EmpleadoApellido y OrdenFecha. Notar el smbolo de la llave en
los campos que relacionan las tablas.
Cargado de datos
Datos relacionados
Pasar EmpleadoApellido y OrdenFecha. Notar el smbolo de la llave en
los campos que relacionan las tablas.
Cargado de datos
Mapeo de datos
El mapeo de datos nos permite cambiar los datos de una tabla por otros.
Es necesario
Tener un diccionario de datos con las equivalencias y
Aplicar estas equivalencias (mapear) a un campo
Los datos del campo a cambiar se revisan al momento de correr el script, y
si el dato se encuentra en el diccionario se reemplaza por su equivalente.
Si no est se deja intacto el dato original. Deben de especificarse antes de
la seccin donde se cargan los datos, en una pestaa que concentre todos
los mapeos y que est a la derecha de la pestaa Main.
Esto nos permite:
Hacer ms legibles los datos de algn campo: si los datos de la
ciudades son 1,2,3, etc. mapeando podemos cambiar el 1 por Tampico,
el 2 por Colima, etc.
Agrupar datos que son lo mismo pero se escribieron diferente. Ej. Si en
la tabla de ventas aparecen vendidos lpiz, lapiz, lapis no es porque
se trate de artculos diferentes sino que lapiz est mal escrito.
Cargado de datos
Mapeo de datos
Ir a la pgina del editor de script, recargar datos y cambiar el campo
EmpleadoApellido por EmpleadoOficina.
Cargado de datos
Mapeo de datos
Queremos cambiar el campo EmpleadoOficina para que en lugar de
que aparezcan nmeros no muestren los nombres de la oficina, En
EmpOff.xls, pestaa Office se puede ver:
Cargado de datos
Mapeo de datos
1. Ir al editor de script y en la opcin
Pestaa activar Aadir pestaa
Cargado de datos
Mapeo de datos
Agregar la sentencia Mapping, en la pestaa Mapeos
Oficinas:
Mapping Load * inline [
1, Estocolmo
2, Lund
3, Paris
4, Niza
5, Seattle
];
Cargado de datos
Mapeo de datos
Ahora tendremos:
Cargado de datos
Referencias circulares
Supongamos que tenemos tres tablas de una compaa que
vende en todo Mxico. Tres tablas tienen entre otros campos los
siguientes.
Clientes
ClienteID
Telefono
Ordenes Proveedores
ClienteID ProductoID
ProductoID Telefono
Cargado de datos
Referencias circulares
Cargar el script Practica Script 2, el cual tiene las siguientes tablas relacionadas.
Note que existe una relacin circular a igualar el campo Telefono de Proveedores con el
mismo campo en la tabla Clientes.
Cargado de datos
Referencias circulares
Al cargar QlikView avisa de que existe una referencia circular y que ha desconectado una
o varias tablas . Estas se muestran con los enlaces con lnea punteada. Generalmente se
desconectan las tablas ms grandes, en nuestro caso en la tabla DetallesOrd.
Cargado de datos
Referencias circulares
Hemos incluido el campo ProductoID de la tabla DetallesOrd. Ntese que al estar
desconectada la tabla no se filtra su contenido al seleccionar un valor de cualquiera de las
otras tablas.
Qu tenemos que hacer para remediar este problema?
Cargado de datos
Referencias circulares
Debemos renombrar alguno de los campos Telefono, o mejor, seguir las mejores prcticas
e incluir en el nombre de los campos los nombres de las tablas.
Editar el script comentando las lneas de Telefonos y quitando el comentario de la lnea
inmediata superior correspondiente, de las tablas Clientes y Proveedores.
Cargado de datos
Referencias circulares
Quitando la referencia circular, la tabla DetallesOrd se vincula con las dems y el campo
ProductoID se incluye en los filtrados.
Cargado de datos
Tablas sintticas
Cuando dos o ms tablas contienen campos con el mismo
nombre, QlikvView generar enlaces sintticos para relacionar
las tablas. Estos enlaces alentan al modelo y lo hacen ms
difcil de entender y de mantener.
Proveeddores Oficinas
Direccin Direccin
Ciudad Ciudad
Dos tablas contienen dos enlaces que no deberas de estar
relacionados, ya la direccin y ciudad de un proveedor no
estn relacionados con los mismos campos de la oficinas de la
compaa. Otra razn por la que las mejores prcticas dictan
que cada campo de las tablas a utilizar contengan el nombre
de la tabla origen. Cargar y correr Practica Script 3.qvw
Cargado de datos
Tablas sintticas
Cargar el script y mostrar
Cargado de datos
Tablas sintticas
Dado que tanto la tabla Proveedores como la de Oficinas tienen en comn los campos
Direccin y Ciudad, QlikView gener la tabla sinttica SSyn 1. Adems la tabla Oficinas
est aislada de la de Empleados.
Cmo corregimos esta situacin?
Cargado de datos
Tablas sintticas
Debemos renombrar los campos Direccin y Ciudad de las tablas Proveedores y Oficinas.
Y en la tabla Oficinas cambiar de nombre al campo Oficina por EmpleadoOficina
.
Cargado de datos
Carga de tablas en pginas Web
Es posible utilizar datos que se encuentren en tablas de
acceso pblico en un sitio Web.
http://en.wikipedia.org/wiki/List_of_capitals_and_largest_cities_by
_country
Cargado de datos
Carga de tablas en pginas Web
Una vez que se corra el script se mostrar el campo
Capital. Note que ahora hay muchos ms pases que
antes, pero no todos contienen datos sobre ventas.
Cargado de datos
Depuracin de script
QlikView ofrece un mtodo de correr el script de carga de
datos en forma de depuracin, permitiendo encontrar
errores.
Cargado de datos
Depuracin de script
Aparecer la siguiente ventana
Cargado de datos
Depuracin de script
Podremos correr el script entres formas diferentes:
Ejecutar: Correr el script de forma continua hasta terminarlo o hasta que llegue a un
punto de interrupcin
Animar. Similar a la forma anterior pero se da una pequea pausa despus de cada
sentencia, de forma que se pueda ver ms detalladamente cmo corre el script.
Paso a paso: El script se corre sentencia por sentencia, detenindose despus de
ejecutarla.
Cargado de datos
Que ver y que no ver en el curso
Ver
Cargar bases de datos, cargar Excel
Ver contenidos de bases de datos
Mostrar algunos modelos del objeto
Mappings
Referencias circulares, tablas sintticas
Cargar pgina Web
http://www.banxico.org.mx/SieInternet/consultarDirectorioInternetAction.do?
accion=consultarSeries&series=SF43717&formatoDeSalida=1
Debugeo
Mejores prcticas
Linking fields no buenos para contar o list boxes (al curso de objetos)
No ver
Buffer, Resident, Drop table
Load qvd
Manipulacin de excell, pivotable, etc
Join
Aggregation, Concatenation
Order by
Previous (accessing data from the previous loaded record)
Variables
Seguridad