You are on page 1of 199

Desarrolloyexplotacinde

indicadoresdegestin.
Uncasodeestudioenelcontextode
unERP.










ProyectoFindeCarrera
PresentadoporMartaLunaPozo
DirigidoporPatricioLetelierTorres
Valencia,Juniode2010

2
Agradecimientos
Estosdosltimosaoshansidoparam,losmsimportanteseintensosdemitrayectoria
profesional. En este tiempo he tenido la enorme suerte de conocer y trabajar con
personas que me han ayudado en la consecucin del presente proyecto y motivado a
seguiradelanteconmisobjetivos.Atodasellasmilgraciasperoenespecialquisierahacer
mencindeagradecimientoalassiguientespersonas.
En primer lugar quisiera mencionar a mi director de proyecto Patricio Letelier, al cual
admiro como persona y como profesional. Me gustara agradecerle la gran oportunidad
quemehadado,laconfianzaquehadepositadoenmysobretodoeltiempoyelesfuerzo
quemehadedicado.
TambinmegustaraagradeceralossociosdeADDInformticaelapoyoqueherecibido
eneldesarrollodeestetrabajoyhaberconfiadoenmparallevarloacabo.
Amispadresymihermanalesagradezcoquemehayanayudado,apoyadoymotivadoen
los momentos ms duros. Sobretodo a mis padres, gracias por haberme escuchado y
aconsejado,porestarahsiempre.

4
ndice
Captulo1.Introduccin..................................................................................................................................................7
1.1.Motivacin...............................................................................................................................................................7
1.2.Objetivodelproyecto..........................................................................................................................................7
1.3.Organizacindelamemoria............................................................................................................................8
Captulo2.BusinessIntelligence.................................................................................................................................9
2.1.QuesBusinessIntelligence?........................................................................................................................9
2.2.ComponentesdelBusinessIntelligence...................................................................................................10
2.3.SeleccindeherramientasdeBusinessIntelligence..........................................................................13
2.4.reasfuncionalesybeneficiosdelBusinessIntelligence.................................................................13
2.5.ProtagonistasdelBusinessIntelligence...................................................................................................15
Captulo3.DataWarehouse.......................................................................................................................................17
3.1.DataWarehousingyDataWarehouse......................................................................................................17
3.2.VentajaseinconvenientesdeunDataWarehouse..............................................................................18
3.3.DiferenciasentreunDataWarehouseyunabasededatosoperacional....................................20
3.4.ArquitecturadeunDataWarehouse.........................................................................................................20
3.5.DiseodeunDataWarehouse.....................................................................................................................24
3.6.ExplotacindeunDataWarehouse:HerramientasOLAP................................................................28
Captulo4.Procesodedesarrollodeindicadores.............................................................................................37
4.1.QuesTUNEUP?.............................................................................................................................................37
4.2.TUNEUPProcessTool....................................................................................................................................39
4.3.Workflowdedesarrollodeindicadores...................................................................................................41
Captulo5.MarcotecnolgicodeunasolucinBI.............................................................................................49
5.1.Componentesdelmarcotecnolgico.........................................................................................................49
5.2.MicrosoftBusinessIntelligence...................................................................................................................50
Captulo6.Casodeestudio..................................................................................................................................53
6.1.QuesResiPlusBI?.........................................................................................................................................53
6.2.FuncionamientodeResiPlusBI...................................................................................................................53
6.3.Consideracionespreviasaldesarrollodereports................................................................................53
6.4.Desarrolloeimplementacindeindicadores........................................................................................56
Captulo7.Conclusiones............................................................................................................................................129
Referencias......................................................................................................................................................................131
Anexos...............................................................................................................................................................................133
AnexoA:PlantillaIndicador................................................................................................................................135
AnexoB:DocumentodeAyudadelIndicador..............................................................................................137
AnexoC:DocumentodeAnlisis.......................................................................................................................143
AnexoD:DocumentodeDiseo.........................................................................................................................145

5
AnexoE:DesarrollodepaquetesETLenMicrosoftIntegrationServices........................................147
AnexoF:DesarrollodecubosOLAPenMicrosoftAnalysisServices..................................................163
AnexoG:CreacindetrabajosconelAgenteSQLServer........................................................................175
AnexoH:ExplotacindeindicadoresycreacindeinformesusandoMicrosoftOfficeExcel...183
AnexoI:DesarrollodedashboardsenMicrosoftOfficeSharePointServer.....................................189

6
Captulo1. Introduccin

1.1. Motivacin

Gestionar la informacin en las empresas es, hoy en da, un factor clave para poder
sobrevivir en un mercado cambiante, dinmico y global. Aprender a competir con esta
informacin es fundamental para la toma de decisiones, el crecimiento y la gestin de
nuestra empresa. La disciplina denominada Inteligencia de Negocios (Business
Intelligence) nos acerca a los sistemas de informacin que nos ayudan a la toma de
decisiones en nuestra organizacin. Toda empresa dispone, no importa su tamao, de
sistemas de informacin ms o menos sofisticados que son convenientes de analizar y
optimizarmediantesolucionesBusinessIntelligence.
Sin embargo, el desarrollo de una solucin de Business Intelligence conlleva todas las
dificultades de un proyecto de ingeniera; complejidad de la implementacin, requisitos
voltiles, desafos tecnolgicos, desarrollo colaborativo, dificultad para asegurar la
calidad, etc. Adems, el mercado cada vez exige plazos de entrega ms reducidos y
presupuestosmsajustados.Portodoesto,pareceobvioqueesnecesarioyfundamental
elusodemetodologasyestndaresquesecentrenenlamejoradeprocesodeestetipo
desoluciones.
TUNEUP es una metodologa que encaja perfectamente en aquellas soluciones de
BusinessIntelligencequeofrecenunvalordenegocioalclientemedianteentregascortas
ycontinuas,yqueportanto,requierenundesarrolloiterativoeincremental.
El presente trabajo se ha realizado en el contexto de un convenio universidadempresa
durante 2 aos. La PYME es una empresa de desarrollo de software que tiene un ERP
pertenecientealsectorsociosanitarioycuentaconmsde700clientes.Laautoradeeste
proyecto ha participado en el desarrollo y mejora de ResiPlus BI (ResiPlus Business
Intelligence),suitedeInteligenciadeNegociosofertadaporestaempresa.

1.2. Objetivodelproyecto

El objetivo de este proyecto es proponer un marco tecnolgico para una solucin de


BusinessIntelligence,contextualizadoenelserviciodeInteligenciadeNegociosResiPlus
BI,quepermitailustrarcmoseabordaeldesarrollodeindicadoresdegestin.
Concretamente,losobjetivosespecficosson:
Validarqueelmarcotecnolgicopropuestoparaeldesarrollodeindicadoresesel
adecuado.
ValidarlautilidaddelametodologaTUNEUPysusworkflowseneldesarrollode
indicadores.
Desarrollar diferentes tipos de indicadores con sus correspondientes informes
paraverlasdiferenciasentreellosalahoradelaimplementacin.
Desarrollar un dashboard que muestre informacin relativa a cada uno de los
indicadoresdesarrolladospreviamente.

7
1.3. Organizacindelamemoria

Acontinuacinsepresentalaestructuradelproyecto:
Elcaptulo1incluyeunaintroduccinalamotivacindenuestrotrabajoyelobjetivoque
persigueesteproyectoenelreadelBusinessIntelligence.
En el captulo 2 se ha realizado una introduccin al concepto de Business Intelligence,
viendo cada uno de los componentes que lo forman, reas funcionales, beneficios y los
actualesprotagonistas.
En el captulo 3 se analizan todos los aspectos de un Data Warehouse y se habla de las
herramientasOLAPutilizadasparasuexplotacin.
El captulo 4 explica los aspectos bsicos de la metodologa TUNEUP e ilustra un
workflowespecficoparasolucionesdeBusinessIntelligence.
Enelcaptulo5seproponeunmarcotecnolgicoparaunasolucinBusinessIntelligence,
describiendocadaunodeloscomponentesqueloforman.
Elcaptulo6ilustracmodesarrollarindicadoresenelmarcotecnolgicopropuestoenel
captuloanterior,contextualizadoenelcasodeestudioResiPlusBI.
Finalmente,elcaptulo7concluyeelproyectoconunresumendeltrabajorealizado.
Adicionalmente,hayunaseriedeanexosqueincluyenejemplosdedocumentosutilizados
duranteeldesarrollo deindicadoresyunostutorialesquepermitenintroducirnosenel
usodelastecnologiaspropuestas.

8
Captulo2. BusinessIntelligence
Noesposiblegestionarloquenosepuedemedir,decaWilliamHewlet.Enestesentido,y
enlostiemposquenosocupan,hayunanecesidadanmayordeconocerelalcancedelos
principales indicadores del negocio. Para una correcta gestin es necesario tener la
posibilidad de analizar rpidamente los puntos crticos, establecer tendencias, as como
poder determinar relaciones causa efecto ante el cambio en determinados parmetros
externos o internos. As, el establecimiento de los denominados sistemas de Business
Intelligence y el uso del potencial actual de las herramientas TIC 1 permiten un
tratamientocadavezmsrpido,complejoeinmediatodelosdatos,delainformaciny,
endefinitiva,delconocimiento.
Los antiguos sistemas de informacin para la Direccin, que convertan datos
operacionales en indicadores de gestin (la mayor parte de las veces de naturaleza
econmicofinanciera), se han visto absorbidos y superados por un nuevo concepto del
tratamientodelainformacinparalatomadecisiones:BusinessIntelligence.
EnestecaptuloserealizaunaintroduccinalconceptodeBusinessIntelligence,viendo
cadaunodeloscomponentesqueloforman,reasfuncionales,beneficiosylosactuales
protagonistasenelmundodelBusinessIntelligence.
Elmaterialpresentadoenestecaptulohasidoextradode[5]y[12].

2.1. QuesBusinessIntelligence?

BusinessIntelligence(BI)eslahabilidadparatransformarlosdatoseninformacin,yla
informacin en conocimiento, de forma que se pueda optimizar el proceso de toma de
decisionesenlosnegocios(Figura2.1.).


Figura2.1.Datos,InformacinyConocimiento
Desdeunpuntodevistamspragmtico,yasocindolodirectamenteconlastecnologas
de la informacin, podemos definir Business Intelligence como el conjunto de
metodologas, aplicaciones y tecnologas que permiten reunir, depurar y transformar
datosdelossistemastransaccionaleseinformacindesestructurada(internayexternaa
lacompaa)eninformacinestructurada,parasuexplotacindirecta(reporting,anlisis
OLAP 2 ,etc.)oparasuanlisisyconversinenconocimiento,dandoassoportealatoma
dedecisionessobreelnegocio.

1 Las tecnologas de la informacin y la comunicacin (TIC o NTIC para Nuevas Tecnologas de la Informacin y de la

ComunicacinoITparaInformationTechnology)agrupanloselementosylastcnicasutilizadaseneltratamientoyla
transmisindelasinformaciones,principalmentedeinformtica,Internetytelecomunicaciones.
2OLAPeselacrnimoeninglsdeprocesamientoanalticoenlnea(OnLineAnalyticalProcessing).

9
La inteligencia de negocio acta como un factor estratgico para una empresa u
organizacin, generando una potencial ventaja competitiva, que no es otra que
proporcionar informacin privilegiada para responder a los problemas de negocio:
entradaanuevosmercados,promocionesuofertasdeproductos,eliminacindeislasde
informacin, control financiero, optimizacin de costes, planificacin de la produccin,
anlisisdeperfilesdeclientes,rentabilidaddeunproductoconcreto,etc.

2.2. ComponentesdelBusinessIntelligence

Durantelossiguientespuntossevanaestudiarlosdistintoscomponentesdeunasolucin
BI. Para comenzar, se observar cal es el tpico esquema de una solucin de este tipo,
pasando a continuacin a ofrecer las definiciones y caractersticas de los distintos
componentesqueloforman.

2.2.1. EsquemadeunasolucindeBusinessIntelligence
UnasolucindeBusinessIntelligence(Figura2.2.)partedelossistemasdeorigendeuna
organizacin (bases de datos, ERPs3, ficheros de texto, etc.), sobre los que suele ser
necesarioaplicarunatransformacinestructuralparaoptimizarsuprocesoanaltico.
Para ello se realiza una fase de extraccin, transformacin y carga de datos. Esta etapa
sueleapoyarseenunalmacnintermedio,llamadoODS 4 ,queactacomopasarelaentre
los sistemas fuente y los sistemas destino (generalmente un Data Warehouse), y cuyo
principal objetivo consiste en evitar la saturacin de los servidores funcionales de la
organizacin.
Lainformacinresultante,yaunificada,depuradayconsolidada,sealmacenaenunData
Warehouse corporativo, que puede servir como base para la construccin de distintos
Datamartsdepartamentales.
UnDatamartesunabasededatosespecializada,departamental,orientadaasatisfacerlas
necesidades especficas de un grupo particular de usuarios. En otras palabras, un
Datamart es un subconjunto del Data Warehouse corporativo con transformaciones
especficasparaelreaalaquevadirigido.EstosDatamartssecaracterizanporposeerla
estructuraptimaparaelanlisisdelosdatosdeesareadelaempresa,yaseamediante
basesdedatostransaccionales(OLTP 5 )omediantebasesdedatosanalticas(OLAP).

3Lossistemasdeplanificacinderecursosempresariales,oERP(porsussiglaseningls,Enterpriseresourceplanning)

sonsistemasdeinformacingerencialesqueintegranymanejanmuchosdelosnegociosasociadosconlasoperaciones
deproduccinydelosaspectosdedistribucindeunacompaacomprometidaenlaproduccindebienesoservicios.
4ODSeselacrnimoeninglsdealmacnoperacionaldedatos(OperationalDataStore).

5OLTPeselacrnimoeninglsdeprocesamientodetransaccionesenlnea(OnLineTransactionProcessing).

10

Figura2.2.EsquemadeunasolucinBI
Los datos albergados en el Data Warehouse o en cada Datamart se explotan utilizando
herramientas comerciales de anlisis, reporting, etc. En estas herramientas se basa
tambinlaconstruccindeproductosBImscompletos,comolossistemasdesoportea
la decisin (DSS), los sistemas de informacin ejecutiva (EIS) y los cuadros de mando
(CMI)oBalancedScorecard(BSC).

2.2.2. Diseoconceptual
PararesolvereldiseodeunmodeloBIsedebencontestaratrespreguntasbsicas:cul
eslainformacinrequeridaparagestionarytomardecisiones;culdebeserelformatoy
composicin de los datos a utilizar; de dnde proceden esos datos y cul es la
disponibilidad y periodicidad requerida. En otras palabras, el diseo conceptual tiene
diferentesmomentoseneldesarrollodeunaplataformaBI:enlafasedeconstruccindel
Data Warehouse y los Datamarts primarn los aspectos de estructuracin de la
informacin segn potenciales criterios de explotacin. En la fase de implantacin de
herramientasdesoportealaaltadireccinsedesarrollaelanlisisdecriteriosdirectivos:
misin,objetivosestratgicos,factoresdeseguimiento,indicadoresclavederendimiento
oKPIs 6 ,modelosdegestin,endefinitiva,informacinparaelqu,cmo,cundo,dnde
yparaqudesusnecesidadesdeinformacin.Estosmomentosnoson,necesariamente,
correlativos,sinoquecadaunadelasetapasdeldiseocondicionayescondicionadapor
elresto.

6KPI,delinglsKeyPerformanceIndicators,oIndicadoresClavedeRendimiento,midenelniveldeldesempeodeun

proceso, enfocndose en el "cmo" e indicando qu tan buenos son los procesos, de forma que se pueda alcanzar el
objetivofijado.

11
2.2.3. ConstruccinyalimentacindelDataWarehousey/odelosDatamarts
Un Data Warehouse es una base de datos corporativa que replica los datos
transaccionales una vez seleccionados, depurados y especialmente estructurados para
actividadesdequeryyreporting.
La vocacindelDataWarehouseesaislarlossistemasoperacionalesdelasnecesidades
de informacin para la gestin, de forma que cambios en aqullos no afecten a stas y
viceversa (nicamente cambiarn los mecanismos de alimentacin, no la estructura,
contenidos,etc.).
NodisearyestructurarconvenientementeydesdeunpuntodevistacorporativoelData
Warehouse y los Datamarts generar problemas que pueden condenar al fracaso
cualquier esfuerzo posterior: informacin para la gestin obtenida directamente a los
sistemas operacionales, florecimiento de Datamarts descoordinados en diferentes
departamentos,etc.
Endefinitiva,segnlaestructuracinyorganizacindecadacompaa,puedenoriginarse
situaciones no deseadas y caracterizadas generalmente por la ineficiencia y la falta de
calidadenlainformacinresultante.

2.2.4. Herramientasdeexplotacindelainformacin
Es el rea donde ms avances se han producido en los ltimos aos. Sin embargo, la
proliferacindesolucionesmgicas y su aplicacin coyunturalparasolucionaraspectos
puntuales ha llevado, en ocasiones, a una situacin de desnimo en la organizacin
respectoalosbeneficiosdeunasolucinBI.Sinentraradetallarlasmltiplessoluciones
que ofrece el mercado, a continuacin se identifican los modelos de funcionalidad o
herramientas bsicas (cada producto de mercado integra, combina, potencia, adapta y
personalizadichasfunciones):
Query & Reporting. Herramientas para la elaboracin de informes y listados,
tanto en detalle como sobre informacin agregada, a partir de la informacin de
losDataWarehousesyDatamarts.Desarrolloamediday/oherramientasparauna
explotacinlibre.
Cuadro de mando analtico (EIS tradicionales). Elaboracin, a partir de
Datamarts, de informes resumen e indicadores clave para la gestin (KPI) que
permitanalosgestoresdelaempresaanalizarlosresultadosdelamismadeforma
rpida y eficaz. En la prctica es una herramienta de query orientada a la
obtencinypresentacindeindicadoresparaladireccin(frentealaobtencinde
informesylistados).
Cuadro de mando integral o estratgico (Balanced Scorecard). Este modelo
parte de que la estrategia de la empresa es el punto de referencia para todo
procesodegestininterno.Conl,losdiferentesnivelesdedireccinygestinde
laorganizacindisponendeunavisindelaestrategiadelaempresatraducidaen
unconjuntodeobjetivos,iniciativasdeactuacineindicadoresdeevolucin.Los
objetivosestratgicosseasocianmedianterelacionescausaefectoyseorganizan
en cuatro reas o perspectivas: financiera, cliente, procesos y formacin, y
desarrollo. El cuadro de mando integral es una herramienta que permite alinear
losobjetivosdelasdiferentesreasounidadesconlaestrategiadelaempresay
seguirsuevolucin.

12
OLAP (online analytical processing). Herramientas que manejan cuestiones
complejas de bases de datos relacionales, proporcionando un acceso
multidimensional a los datos, capacidades intensivas de clculo y tcnicas de
indexacin especializadas. Permiten a los usuarios trocear sus datos, planteando
queries sobre diferentes atributos o ejes. Utilizan un servidor intermedio para
almacenar los datos multidimensionales precalculados, de forma que la
explotacinsearpida.
Minera de Datos (Data Mining). Son autnticas herramientas de extraccin de
conocimiento til, a partir de la informacin contenida en las bases de datos de
cualquier empresa. El objetivo que se persigue es descubrir patrones ocultos,
tendencias y correlaciones, y presentar esta informacin de forma sencilla y
accesible a los usuarios finales para solucionar, prever y simular problemas del
negocio. El Data Mining incorpora la utilizacin de tecnologas basadas en redes
neuronales,rbolesdedecisin,reglasdeinduccin,anlisisdeseriestemporales
yvisualizacindedatos.

2.3. SeleccindeherramientasdeBusinessIntelligence

La seleccin de una u otra herramienta estar en funcin de mltiples aspectos a


considerar:
Qu informacin se necesita. Es importante no complicarse, sobre todo al
principio, con indicadores y modelos complejos: indicadores selectivos, sencillos,
admitidos por todos los usuarios, etc. son una buena frmula en las primeras
etapasdelBI.
Paraqusequierelainformacin.Bajoelconceptogeneralsoportealatomade
decisionesseescondenmltiplesnecesidadesparticulares:contrastarquetodova
bien, analizar diferentes aspectos de la evolucin de la empresa, presentar
informacindeformamsintuitiva,compararinformacinendiferentesperiodos
de tiempo, comparar resultados con previsiones, identificar comportamientos y
evoluciones excepcionales, confirmar o descubrir tendencias e interrelaciones,
necesidad de realizar anlisis predictivos, etc., son todas ellas necesidades
parcialesdentrodelconceptogeneral.
A quin va dirigida. Organizacin en general, gestin, direccin, direccin
estratgica,etc.
Aspectos meramente tcnicos (tiempos de respuesta, integracin, seguridad,
etc.)yfuncionales(navegacin,entornogrfico,etc.).

2.4. reasfuncionalesybeneficiosdelBusinessIntelligence

Originariamente, los sistemas de informacin a la direccin aportaban bsicamente


informacin econmicofinanciera. Con la extensin de las herramientas de Business
Intelligence, este concepto abarca ahora todas las reas funcionales de la empresa:
recursoshumanos,logstica,calidad,comercial,marketing,etc.

13
En la actualidad, estas visiones funcionales han sido superadas por el concepto de CPM
(CorporatePerformanceManagement),queaportainformacinintegraldelaempresaen
todassusreasyatravsdetodossusciclosdegestin:planificacin,operacinyanlisis
deresultados.
Entre los obstculos tradicionales a la implantacin BI se encuentra la dificultad para
calcularsuROI(ReturnOnInvestment).Lamayorpartedelosbeneficiosproducidosson
intangibles,derivadosdelamejoradelagestindelacompaa.
En trminos econmicos, se evidencia una reduccin de costes por incremento de la
eficienciadelainfraestructuraTICyunincrementodelaproductividaddelosempleados,
directamente derivado de la disponibilidad de informacin; estas magnitudes son
difcilmentecuantificables,aunquediferentesfuenteslassitanentornoal5%y1015%,
respectivamente.
Cualitativamente,losbeneficiossederivan,obviamente,delincrementodelaeficienciaen
el proceso de toma de decisiones: mayor informacin, de mejor calidad, ms fiable,
compartida por toda la organizacin, menores tiempos de respuesta en su obtencin,
mejoradelacomunicacinenlaempresaycreacindeunlenguajehomogneo.
En el debe de las implantaciones BI hay que destacar la dificultad de integracin con el
restodesistemasdelacompaay,sobretodo,ladificultadparaconjugarlasexpectativas
de los usuarios con las soluciones implementadas, por lo que los aspectos de definicin
conceptualyseleccindeplataforma,juntoalagestindelcambioenlaimplantacinde
losproyectos,adquierenunaimportanciarelevante.Laexperienciadicequelosfactores
puramenteorganizativosoriginanmsdelamitaddelosfracasosdeproyectosBI.
Portodoello,paraelxitodeunaestrategiaBIpodemosidentificarlossiguientesfactores
crticos:
Importanciadeldiseo.
Importancia de seleccionar y disponer de una plataforma tecnolgica y de
herramientasadecuadas.
Alineacin de los objetivos del departamento de sistemas de informacin y los
usuarios.
Importanciadeconsensuarconlosusuarios.
Importanciadecontarconapoyoeimpulsodesdeladireccingeneral.
Importanciadecontarconpersonalcualificado,tantoenlasfasesdediseocomo
deimplantacin.



14
2.5. ProtagonistasdelBusinessIntelligence

A continuacin se muestra un informe publicado por Gartner Inc. 7 [2] sobre las mejores
plataformas de Business Intelligence (Figura 2.3.). El estudio est organizado en tres
categorasdefuncionalidad:integracin,suministrodeinformacinyanlisis.


Figura2.3.PlataformasdeBusinessIntelligence
Los lderes son definidos como aquellos proveedores que pueden ofrecer grandes
implementacionesempresarialesysoportarunaampliaestrategiadeBI.Segnelgrfico,
estos lderes son SAP, Oracle, Microsoft, IBM, SAS, Information Builders y
Microstrategy. Adems, se observa que no aparecen compaas habituales de dicho
informecomoHyperion,CognosoBusinessObjects,yaquetodasellasfueronadquiridas
en los ltimos aos por parte de las compaias lderes. Concretamente, Hyperion fue
adquirida por Oracle en 2007, Cognos fue adquirida por IBM en 2008 y finalmente
BusinessObjectsfueadquiridaporSAPen2008.
Elrestodecompetidoressonsolucionesdenicho,queofrecensolucionesdevisualizacin
avanzada (tpicamente para cuadros de mando y anlisis OLAP). Estos "pequeos"
proveedores tienen hueco debido a la complejidad, limitaciones y costes que tienen los
grandesproveedoresenestesegmentodelmercadoBI.

7ElCuadranteMgicodeGartneresunarepresentacingrficadelmercadoduranteunperiodoespecficodetiempo.

MuestraelanlisisdesarrolladoporGartnerInc.,sobrecmosecomportanciertosactoresdelmercadoenfuncinde
diferentes criterios de evaluacin. El informe de Gartner no apoya a ninguno de los productos o proveedores
mencionadosnitampocoaconsejaelusoolaseleccindelosproveedorescolocadosenelcuadrantedelderes.

15

16
Captulo3. DataWarehouse
En el esquema de una solucin de Business Intelligence, un Data Warehouse viene
determinadoporsusituacincentralcomofuentedeinformacinparalasherramientas
deanlisis.
En el actual captulo se explicar con ms detalle los conceptos de Data Warehousing y
DataWarehouse,cmosediseasteltimoyenquconsistesuprocesodeextraccin,
transformacinycargallamadoETL 8 .
El materialpresentadoenestecaptulohasidoextradodelassiguientesfuentes:[1],[3],
[9]y[13].

3.1. DataWarehousingyDataWarehouse

Para llevar a cabo BI, es necesario gestionar datos guardados en diversos formatos,
fuentesytipos,paraluegodepurarloseintegrarlos,ademsdealmacenarlosenunsolo
destino o base de datos que permita su posterior anlisis y exploracin. Por esto, es
imperativo y de vital importancia contar con un proceso que satisfaga todas estas
necesidades.EsteprocesosedenominaDataWarehousing.
DataWarehousingeselprocesoencargadodeextraer,transformar,consolidar,integrary
centralizarlosdatosquelaempresageneraentodoslosmbitosdesuactividaddiariade
negocios (compras, ventas, produccin, etc) y/o informacin externa relacionada.
Permitiendodeestamaneraelaccesoyexploracindelainformacinrequerida,atravs
de una amplia gama de posibilidades de anlisis multivariables, con el objetivo final de
darsoportealprocesodetomadedesicionesestratgicoytctico.
Data Warehousing posibilita la extraccin de datos de sistemas operacionales y fuentes
externas, permite la integracin y homogeneizacin de los datos de toda la empresa,
proveeinformacinquehasidotransformadaysumarizada,paraqueayudeenelproceso
detomadedecisionesestratgicasytcticas.
Data Warehousing, convertir entonces los datos operacionales de la empresa en una
herramientacompetitiva,debidoaquepondradisposicindelosusuariosindicadosla
informacinpertinente,correctaeintegrada,enelmomentoquesenecesita.
Pero para que Data Warehousing pueda cumplir con sus objetivos, es necesario que la
informacin que se extrae, transforma y consolida, sea almacenada de manera
centralizada en una base de datos con estructura multidimensional denominada Data
Warehouse.
Un Data Warehouse (DW) 9 es un repositorio central o coleccin de datos, en el cual se
encuentra integrada la informacin de la organizacin que se usa como soporte para el
procesodetomadedecisionesgerenciales.
ElconceptodeDWcomenzasurgircuandolasorganizacionestuvieronlanecesidadde
usarlosdatosquecargabanatravsdesussistemasoperacionalesparaplaneamientoy
toma de decisiones. Para cumplir estos objetivos se necesitan efectuar consultas que

8ETLeselacrnimoeninglsdeextraer,transformarycargar(Extract,TransformandLoad).

9A partir de este momento utilizaremos la sigla DW o el trmino almacn de datos para hacer referencia al Data
Warehouse.

17
sumarizanlosdatos,yquesisehacensobrelossistemasoperacionalesreducenmuchoel
rendimiento de las transacciones que se estn haciendo al mismo tiempo. Fue entonces
cuando se decidi separar los datos usados para reportes y toma de decisiones de los
sistemasoperacionalesydisearyconstruirDWsparaalmacenarestosdatos.
LasprincipalescaractersticasqueposeeunDWsedetallanacontinuacin:
Orientadoaltema:orientadoalainformacinrelevantedelaorganizacin.Enun
DWlainformacinseclasificaenbasealosaspectosdeintersparalaempresa,es
decir, se disea para consultar eficientemente informacin relativa a las
actividades bsicas de la organizacin, como ventas, compras y produccin, y no
para soportar los procesos que se realizan en ella, como gestin de pedidos,
facturacin,etc.
Integrado: integra datos recogidos de diferentes sistemas operacionales de la
organizacin y/o fuentes externas. Esta integracin se hace estableciendo una
consistencia en las convenciones para nombrar los datos, en la definicin de las
claves,yenlasmedidasuniformesdelosdatos.
Variableeneltiempo:losdatossonrelativosaunperiododetiempoydebenser
incrementadosperidicamente.Lainformacinalmacenadarepresentafotografas
correspondientesaciertosperiodosdetiempo.
No voltil: la informacin no se modifica despus de que se inserta, slo se
incrementa.ElperiodocubiertoporunDWvarade2a10aos.

3.2. VentajaseinconvenientesdeunDataWarehouse

La utilizacin de un DW por parte de una organizacin conlleva una serie de ventajas.


Algunasdelasventajasmssobresalientessonlassiguientes:
Transformadatosorientadosalasaplicacioneseninformacinorientadaalatoma
dedecisiones.
Integra y consolida diferentes fuentes de datos (internas y/o externas) y
departamentos empresariales, que anteriormente formaban islas, en una nica
plataformaslidaycentralizada.
Provee la capacidad de analizar y explotar las diferentes reas de trabajo y de
realizarunanlisisinmediatodelasmismas.
Permitereaccionarrpidamentealoscambiosdelmercado.
Aumentalacompetitividadenelmercado.
Elimina la produccin y el procesamiento de datos que no son utilizados ni
necesarios,productodeaplicacionesmaldiseadasoyanoutilizadas.
Mejora la entrega de informacin, es decir, informacin completa, correcta,
consistente, oportuna y accesible. Informacin que los usuarios necesitan, en el
momentoadecuadoyenelformatoapropiado.
Logra un impacto positivo sobre los procesos de toma de decisiones. Cuando los
usuarios tienen acceso a una mejor calidad de informacin, la empresa puede
lograr por s misma: aprovechar el enorme valor potencial de sus recursos de

18
informacin y transformarlo en valor verdadero; eliminar los retardos de los
procesos que resultan de informacin incorrecta, inconsistente y/o inexistente;
integrar y optimizar procesos a travs del uso compartido e integrado de las
fuentesdeinformacin;permitiralusuarioadquirirmayorconfianzaacercadesus
propiasdecisionesydelasdelresto,ylograras,unmayorentendimientodelos
impactosocasionados.
Aumentodelaeficienciadelosencargadosdetomardecisiones.
Los usuarios pueden acceder directamente a la informacin en lnea, lo que
contribuye a su capacidad para operar con mayor efectividad en las tareas
rutinarias o no. Adems, pueden tener a su disposicin una gran cantidad de
valiosa informacin multidimensional, presentada coherentemente como fuente
nica,confiableydisponibleensusestacionesdetrabajo.Asmismo,losusuarios
tienen la facilidad de contar con herramientas que les son familiares para
manipular y evaluar la informacin obtenida en el DW, tales como: hojas de
clculo,procesadoresdetexto,softwaredeanlisisdedatos,softwaredeanlisis
estadstico,reportes,tableros,etc.
Permitelatomadedecisionesestratgicasytcticas.
Noobstante,elusodelosalmacenesdedatosnoestexentodedesventajas,siendolas
mscomuneslassiguientes:
Requiere una gran inversin, debido a que su correcta construccin no es tarea
sencilla y consume muchos recursos, adems, su misma implementacin implica
desdelaadquisicindeherramientasdeconsultayanlisis,hastalacapacitacin
delosusuarios.
Existeresistenciaalcambioporpartedelosusuarios,yaquelaformadeconsultar
lainformacinparaelaborarinformesotomardecisionesvara.
Los beneficios del almacn de datos son apreciados en el mediano y largo plazo.
Estepuntoderivadelanterior,ybsicamenteserefiereaquenotodoslosusuarios
confiarn en el DW en una primera instancia, pero s lo harn una vez que
compruebensuefectividadyventajas.Adems,sucorrectautilizacinsurgedela
propiaexperiencia.
Si se incluyen datos propios y confidenciales de clientes, proveedores, etc, el
depsito de datos atentar contra la privacidad de los mismos, ya que cualquier
usuariopodrteneraccesoaellos.
Infravaloracindelosrecursosnecesariosparalacaptura,cargayalmacenamiento
delosdatos.
Infravaloracindelesfuerzonecesarioparasudiseoycreacin.
Incrementocontinuodelosrequerimientosdelusuario.
SubestimacindelascapacidadesquepuedebrindarlacorrectautilizacindelDW
ydelasherramientasdeBIengeneral.

19
3.3. Diferenciasentre:DataWarehouseybasededatosoperacional

Lamayoradelossistemasoperacionalesestndirigidosalacargadedatos,concientoso
miles de transacciones diarias y repetitivas, que adems requieren un tiempo de
respuesta muy corto por parte de los usuarios. Ejemplos de este tipo de operaciones lo
sonlasreservasdevuelos,depsitosbancarios,yreservacionesdehotel.
Las bases de datos operacionales deben estar diseadas con el objetivo de hacer esta
tarealomseficienteposible.
SisecontraponenlascaractersticasdeunabasededatosoperacionalyunDW,sepuede
deducir que se est ante conceptos totalmente distintos a pesar de actuar los dos como
contenedores de informacin. En la siguiente tabla se pueden apreciar algunas de las
diferenciasexistentesentrelasdos:


Tabla1ComparativaentreBasedeDatosOperacionalyDWs

3.4. ArquitecturadeunDataWarehouse

Enestepuntoyteniendoencuentaqueyasehandetalladolascaractersticasgenerales
delDataWarehousing,sedefinirnydescribirntodosloscomponentesqueintervienen
ensuarquitecturaoambienteutilizandoelgrficodelaFigura3.1.

20

Figura3.1.ArquitecturaDataWarehouse

Tal y como se puede apreciar, el ambiente est formado por diversos elementos que
interactan entre s y que cumplen una funcin especfica dentro del sistema.
Concretamente, en una arquitectura Data Warehouse encontramos los siguientes
componentes:
Datosoperacionalesprocedentesdelasbasesdedatostransaccionalesydeotras
fuentesdedatosquegeneralaempresaensuaccionardiario.
Sistema ETL que realiza las funciones de extraccin de las fuentes de datos
(transaccionales o externas), transformacin (limpieza, consolidacin, etc.) y la
cargadelalmacn,realizandolassiguientesacciones:
- Extraccindelosdatos.
- Filtradodelosdatos:limpieza,consolidacin,etc.Unejemplodelimpiezade
datosseraeliminarlosdatosconvaloresnulosoincorrectos.
- Cargainicialdelalmacn:ordenacin,agregaciones,etc.
- Refresco del almacn: operacin peridica que propaga los cambios de las
fuentesexternasalalmacndedatos.
Repositoriopropiodedatosquecontieneinformacinrelevanteymetadatos 10 .
InterfacesyGestoresdeConsultaquepermitenaccederalosdatosysobrelosque
seconectanherramientasmssofisticadas(OLAP,mineradedatos).
SistemasdeIntegridadySeguridadqueseencargandeunmantenimientoglobal,
copiasdeseguridad,etc.

10Losmetadatossondatosquedescribenodaninformacindeotrosdatos,queenestecaso,existenenlaarquitectura

delDataWarehousing.Brindaninformacindelocalizacin,estructuraysignificadodelosdatos,bsicamentemapean
losmismos.

21
3.4.1. SistemaETLdeunDataWarehouse
LamigracindelosdatosdesdelasfuentesoperacionalesalDWrequierelanecesidadde
procesosparaextraer,transformarycargarlosdatos,actividadqueseconocecomoETL.
Extraer(Extract)
La primera tarea del proceso ETL consiste en extraer los datos almacenados en los
distintos sistemas de origen. En un nmero elevado de casos, en los proyectos de
almacenamiento de datos se fusionan datos que provienen de distintos sistemas de
origen. Cada sistema puede usar una organizacin distinta de los datos, o formatos
diferentes.Dichasfuentespuedenserbasesdedatos,ficherosplanos,etc.,seacualseasu
estructura. La tarea de extraccin convierte todos estos datos a un formato preparado
paracomenzarconelprocesodetransformacin.
El requerimiento imprescindible a la hora de realizar la tarea de extraccin es que la
misma cause un impacto mnimo en los sistemas de origen. Si la cantidad de datos a
extraeresmuyelevada,elsistemasepuederalentizar,oinclusocolapsarse,porloquelas
grandes operaciones de extraccin se suelen realizar en momentos donde el impacto
sobreelsistemaseaelmnimoposible.
Transformar(Transform)
Enlatareadetransformacinseaplicanunaseriadefuncionessobrelosdatosextrados
alobjetodeconvertirlosendatospreparadosparasucarga.Algunasfuentesdedatostan
solo requerirn mnimas transformaciones, mientras que otras necesitaran de un gran
nmerodeellas.
Entrelasoperacionesdetransformacinpodemosencontrarlassiguientes:
Traduccinycodificacindecdigos.
Obtencindevalorescalculados.
Generacindenuevoscampos.
Divisindelainformacin.
Unindedatosdemltiplesfuentes.
Cargar(Load)
Eslatareamediantelacuallosdatosyatransformadosenlafaseanteriorsoncargadosen
elsistemadedestino.Duranteestafaseseinteractadirectamenteconlasbasesdedatos
de destino, por lo que se aplicaran todas las restricciones y disparadores que se hayan
definidoenlamisma,contribuyendoestehechoaquesegaranticelacalidaddelosdatos
duranteelprocesointegro.

3.4.2. Datamarts
Las corporaciones de hoy se esfuerzan por conducir sus negocios hacia una base
internacional. Vemos compaas que surgieron en Estados Unidos y se expandieron a
Europa, Asia y frica. La expansin del negocio crea la necesidad de acceder a datos
corporativos que estn ubicados en diferentes puntos geogrficos. Por ejemplo, un
ejecutivodeventasdeunacompaaconorigenenBrasilqueestsituadoenChilepuede
necesitaraccesoalabasededatosdelaempresaparaidentificarlosclientespotenciales
queresidenenChile.

22
EsteproblemasesolucionacreandoversionesmspequeasdelDW,losDatamarts.Estas
versionessecreanusandoalgncriterioparticular,comoporejemploellugargeogrfico.
Enelejemploanteriorlosdatos delosclientesqueresidenenChilesedebenalmacenar
enelDatamartdelasucursalenesepas.
La existencia de los Datamarts crea nuevas formas de pensar cuando se disean los
repositorioscorporativosdedatos.Algunascorporacionesreemplazancompletamenteel
conceptodetenerunDWcentral,porvariosDatamartsmspequeosquesealimenten
directamentedelossistemasoperacionales(Figura3.2.).


Figura3.2.ArquitecturaDatamarts
Otras compaas usan Datamarts para complementar sus DWs (Figura 3.3.). Mueven
datosdesdeelDWhaciavariosDatamartsconelfindepermitirunanlisismseficiente.
La separacin de los datos se determina segn criterios como departamentos, reas
geogrficas,periodosdetiempo,etc.


Figura3.3.ArquitecturaDatamartscomocomplementoalDataWarehouse
Finalmente, algunas organizaciones usan sus Datamarts como el primer paso de
almacenamiento de datos operacionales. Luego los datos de todos los Datamarts se
replicanenunDWcorporativocentral(Figura3.4.).

23

Figura3.4.ArquitecturaDatamartscomoalmacenamientointermedioalDW

3.5. DiseodeunDataWarehouse

Debido a las diferencias en el propsito y objetivos de las bases de datos operacionales


conlasbasesorientadasaanlisisseoriginarontcnicasdediseodiferentesparaestas
ltimas.
Aligualqueelrestodeproyectosdedesarrollosoftware,laconstruccindeunDWsigue
unaseriedefases:
1. Recogidayanlisisderequisitos:Setratadediscernirlasfuentesnecesariasdel
sistema de informacin de la organizacin (OLTP) y analizar los requisitos de
usuarioparadetectarlasconsultasdeanlisisnecesarias,niveldeagregacin,etc.
Enestaetapasedebentenerclaroculessonlosdiferentesfocossobrelosquese
vaacentrarelalmacndedatos.
2. Diseoconceptual:Semodelaelsistemahaciendousodemodelostalescomoel
EntidadRelacin.
3. Diseolgico: Apartirdeunodelosesquemasmultidimensionalesexistentes,se
realizaelmodeladomultidimensionaldelabasededatos.
4. Diseofsico:SedefineelesquemaaseguirenlaorganizacinfsicadelDWylas
herramientasOLAP(ROLAP,MOLAPuHOLAP 11 )ysediseaelETL.
5. Implementacin: Se realiza la carga del almacn (ETL) y la preparacin de las
vistasdeusuario(herramientasOLAP).
Dado que ya conocemos las principales caractersticas de este tipo de base de datos, a
continuacinveremosculessonlosrequerimientosencuantoaldiseolgicoyfsicode
lasmismas.

11 ROLAP, MOLAP y HOLAP hacen referencia a las distintas formas existentes de almacenar datos dndoles la

estructuraadecuadaparaelanlisisenlnea.Estossistemassernanalizadosenunpuntoposterior.

24
3.5.1. Diseolgico
Laspremisasbsicaseneldiseolgicoson:
Lamayoradelosanalistasdenegociosvanaquererverdatostotalizados.Estos
datosenloposibledebenprecalcularseyalmacenarsedeantemanoparaqueesta
recuperacin sea rpida y eficiente. Es importante adems discutir el nivel de
granularidadydedetalleesperadoporlosanalistascuandohacenoperacionesde
DrillDown.
Eldiseodebeestardirigidoporelaccesoyporeluso,esdecir,teniendoencuenta
qu tipo de reportes o resmenes son los ms frecuentes, y cuales los ms
urgentes.
Un diseo normalizado no es bueno porque no resulta demasiado intuitivo para
unapersonadenegocios,ypodravolversedemasiadocomplejo.
Todos los datos que se incluyan ya deben existir en las fuentes de datos
operacionales,oserderivablesapartirdeellos.
Las dos tcnicas de diseo ms populares y utilizadas son el esquema en estrella y el
esquemaencopodenieve.Estastcnicassiguenunesquemamultidimensionaldedatos,
elcualhanadoptadolasherramientasdeexplotacin.Deestaformaseofrecealusuario
unavisinmultidimensionaldelosdatosquesonobjetodeanlisis.
EsquemaEstrella(Star)
Este esquema est formado por un elemento central que consiste en una tabla llamada
TabladeHechos,queestconectadaavariasTablasdeDimensiones.
Lastablasdehechoscontienenlosvaloresprecalculadosquesurgendetotalizarvalores
operacionalesatmicossegnlasdistintasdimensiones,talescomoclientes,productoso
periodosdetiempo.
Representanuneventocrticoycuantificableenelnegocio,comoventasocostos.Suclave
est compuesta por las claves primarias de las tablas de dimensin relacionadas (las
foreignkeys).Puedenexistirvariastablasdehechosconinformacinredundante,porque
podrancontenerdistintosnivelesdeagregacindelosmismosdatos.Porejemplopodra
existirunatabladehechosparalasVentasporSucursal,ReginyFecha,otraparaVentas
porProductos,SucursalyFecha,yotratablaquealmacenelasVentasporCliente,Regin
y Fecha. En general las tablas de hechos tienen muchas filas y relativamente pocas
columnas.
Las tablas de dimensin representan las diferentes perspectivas desde donde se ven y
analizanloshechosdelatabladehechos.Adiferenciadelasanteriores,suclaveprimaria
est formada por un solo atributo, y su caracterstica principal es que estn
desnormalizadas. Esto significa que si la dimensin incluye una jerarqua, las columnas
queladefinensealmacenanenlamismatabladandolugaravaloresredundantes,locual
esaceptableenesteesquema.
En general suelen tener muchas columnas pero pocas filas. Siempre que sea posible, es
convenientecompartirlastablasdedimensinentredistintastablasdehechos.
Una delasdimensionesmscomuneses laquerepresenta eltiempo, con atributos que
describen periodos para aos, cuatrimestres, periodos fiscales, y periodos contables.
Otras dimensiones comunes son las de clientes, productos, representantes de ventas,
regionesysucursales.

25
En la Figura 3.5. vemos un ejemplo de esquema Estrella, donde la tabla de hechos es la
tablaVentas,yelrestosonlastablasdedimensiones.


Figura3.5.EsquemaEstrella
El esquema estrella es el ms usado porque maneja bien el rendimiento de consultas y
reportesqueincluyenaosdedatoshistricos,yporsusimplicidadencomparacincon
unabasededatosnormalizada.
EsquemaCopodeNieve(Snowflake)
Esunavariantealesquemaestrellaenelcuallastablasdedimensinestnnormalizadas,
esdecir,puedenincluirclavesqueapuntanaotrastablasdedimensin.


Figura3.6.EsquemaCopodeNieve
Enla3.6.vemosunesquemasimilaralanterior,dondelatabladedimensinSucursalse
expande en las tablas Distrito y Regin. Ahora la tabla Sucursal contiene una columna
claveDistritoIdqueapuntaalatablaDistrito,yestaasuveztieneunacolumnaRegionId
queapuntaalatabladedimensinRegin.
Las ventajas de esta normalizacin son la reduccin del tamao y redundancia en las
tablasdedimensin,yunaumentodeflexibilidadenladefinicindedimensiones.

26
Sin embargo, el incremento en la cantidad de tablas hace que se necesiten ms
operacionesdeJOINspararesponderalasconsultas,loqueempeoraelrendimiento.Otra
desventajaeselmantenimientoadicionalquerequierenlastablasadicionales.
Una vez seleccionado el esquema multidimensional, para construir el almacn de datos
seguiremosalgunadelasmetodologasdediseodealmacenesdedatosexistentes.Una
de las metodologas ms conocidas es la de Kimball [6][7], la cual est basada en el
modelorelacional.Segnestametodologa,lospasosaseguireneldiseodeunalmacn
dedatossonlossiguientes:

1. Elegirunprocesodelaorganizacinparamodelar.
UnprocesoesunaactividaddelaorganizacinsoportadaporunOLTPdelcualse
puede extraer informacin con el propsito de construir el almacn de datos. Es
decir,escadaunodelosfocosquehemosidentificadoenlaetapadeanlisis.
Ejemplos de estos procesos podran ser las ventas de productos, los pedidos de
clientesolascomprasalosproveedores.

2. Decidirelgrnulooniveldedetallederepresentacin.
El grnulo es el nivel de detalle al que se desea almacenar informacin sobre la
actividadamodelar(informacindiaria,semanal,mensual,etc.).Permitedefinirel
nivel atmico de datos en el almacn de datos, determina el significado de las
tuplasdelatabladehechosydeterminalasdimensionesbsicasdelesquema.
En un almacn de datos se almacena informacin a un nivel de detalle fino, no
porque se vaya a interrogar el almacn a ese nivel sino porque ello permite
clasificaryanalizarlainformacindesdemuchospuntosdevista.
Sin embargo es importante hacer un esfuerzo para no almacenar ms detalle del
necesario, o el consumo de espacio se disparar y pueden surgir problemas de
rendimientocuandoseaccedaalosdatos.

3. Identificarlasdimensionesquecaracterizanelproceso.
Seidentificanlasdimensionesquecaracterizanlaactividadalniveldedetalleque
se ha elegido. De cada dimensin se debe decidir los atributos relevantes para el
anlisisdelaactividad.
Sientrelosatributosdeunadimensinexistieranjerarquasnaturales,stasdeben
seridentificadas.
Enelcasodeladimensintiempo,existeunajerarquaentrelosatributosdames
ao.

4. Decidirlainformacinaalmacenarsobreelproceso.
Se decide la informacin que se desea almacenar en cada tupla de la tabla de
hechosyqueserobjetodeanlisis.
Dicha informacin podra ser el importe total de las ventas de un producto en el
daoelnmerototaldeclientesdistintosquehancompradoelproductoenelda.

3.5.2. Diseofsico
DebidoaquelosDWstrabajantantocondatosdetalladoscomocondatosresumidos,y
frecuentementealmacenanalgunosdatosenformaredundante,eltamaodeestasbases

27
dedatospuedeserenorme.Lasbasesdedatosqueseacercanoexcedenelterabyteson
llamadasVLDBs(VeryLargeDatabases).Disearunabasededatosdeestetipoesungran
desafoylatareademantenerlasescostosa.
Entre las decisiones de implementacin que se deben tomar se incluyen el tamao del
espaciolibre,eltamaodelbuffer,eltamaodelbloque,ysiseusaonounatcnicade
compactacin de la base de datos. Todas estas cuestiones afectarn el rendimiento del
DW.
Los motores de base de datos estn basados en reglas internas intrincadas, que deben
entenderseyseguirse.Unasituacincomnesquesedejeeldiseodelabasededatosa
losprogramadores,quienesquiznoestndeltodofamiliarizadosconelfuncionamiento
interno del motor, y como consecuencia creen un diseo pobre que no aproveche al
mximolascaractersticasquebrindaelproducto.

3.6. ExplotacindeunDataWarehouse:HerramientasOLAP

LasherramientasOLAPseusanparaconvertirlosdatoscorporativos,almacenadosenla
basededatosorientadaalanlisis(DW),enconocimientotilparalatomadedecisiones.
MientrasqueelDWalmacenalainformacinasecas,esdecir,talycomohasidoobtenida
delabasededatosoperacional,lossistemasOLAPhacenagregacionesysumarizaciones
deestosdatos,ylosorganizanencubosoalmacenamientosespecialesparapermitiruna
rpidarecuperacinanteunaconsulta.

3.6.1. QuesOLAP?
OLAP se define como el anlisis multidimensional e interactivo de la informacin de
negociosaescalaempresarial.Elanlisismultidimensionalconsisteencombinardistintas
reas de la organizacin, y as ubicar ciertos tipos de informacin que revelen el
comportamientodelnegocio.
Porqusedicequeelanlisisesinteractivo?
LosusuariosdelaherramientaOLAPsemuevensuavementedesdeunaperspectivadel
negocioa otra, porejemplo, puedenestar observando las ventas anuales por sucursal y
pasaraverlassucursalesconmsgananciasenlosltimostresmeses,yademsconla
posibilidaddeelegirentrediferentesnivelesdedetalle,comoventasporda,porsemana
o por cuatrimestre. Es esta exploracin interactiva lo que distingue a OLAP de las
herramientassimplesdeconsultayreportes.
Porquestillamultidimensionalidad?
Esloquepermitealosanalistasdenegociosexaminarsusindicadoresclaveomedidas,
comoventas,costos,yganancias,desdedistintasperspectivas,comoperiodosdetiempo,
productos y regiones. Estas perspectivas constituyen las dimensiones desde las que se
exploralainformacin.
Porquaescalaempresarial?
OLAP es robusto y escalable, al punto de permitir satisfacer completamente las
necesidadesdeanlisisdeinformacindelaorganizacin.Setrabajaconfuentesdedatos
corporativas, que contienen datos de toda la empresa, y se comparte y cruza la
informacinexistenteentodaslasreasdelamisma.

28
Para proveer estas caractersticas, toda herramienta OLAP tiene tres principales
componentes:
Un modelo multidimensional de la informacin para el anlisis interactivo: cubo
multidimensional.
Un motor OLAP que procesa las consultas multidimensionales sobre los datos:
arquitecturaROLAP,MOLAPoHOLAP.
Un mecanismo de almacenamiento para guardar los datos que se van a analizar:
DataWarehouse.
LosusuariosdeOLAPsecentranenlosconceptosdenegocios,trabajandointuitivamente
conellos,sinnecesidaddeconocercuestionestcnicastalescomoelformatofsicodelos
datos,instruccionesdelenguajescomoSQL,nombresdetablasocolumnasenlabasede
datos,olaarquitecturaOLAPsubyacente.

3.6.2. DiferenciasentreprocesamientoOLAPyOLTP
La compra, venta, produccin, y distribucin son ejemplos comunes de actividades de
negocios del da a da. Estas actividades constituyen el llamado procesamiento
operacional u OLTP (Online Transactional Processing), y las aplicaciones que soportan
esteprocesamientosediseanconorientacinalacargadedatos.
Elplaneamientoderecursos,planeamientofinanciero,alianzasestratgicas,einiciativas
de mercado son ejemplos de actividades que generan y usan informacin basada en
anlisisyorientadaalatomadedecisiones.Estetipodeactividadessonsoportadaspor
lasaplicacionesdetipoOLAP.
Si se contraponen las caractersticas de OLAP y OLTP podemos apreciar las siguientes
diferencias:

OLAP OLTP
Define el comportamiento de un sistema de Define el comportamiento habitual de un
anlisisdedatos entornooperacionaldegestin
SloConsulta Altas/Bajas/Modificaciones/Consultas
Consultaspesadasynopredecibles Consultasrpidasyescuetas
Granvolumendeinformacinhistrica Pocovolumendeinformacin
Operacioneslentas Transaccionesrpidas
Bajo nivel de concurrencia. Usado a nivel Granniveldeconcurrencia
gerencialyanalistasdenegocio

Tabla2ComparativaentreOLAPyOLTP

Todasestasdiferenciassereflejanenlascaractersticasdelasbasesdedatossubyacentes
a ambos tipos de aplicaciones, y hacen que no sea posible la convivencia en una nica
basededatosdelosentornosOLAPyOLTP.

29
3.6.3. Cubos,Dimensiones,MedidasyOperacionesaplicables
Cubomultidimensional
Un cubo es un subconjunto de datos de un almacn, que provee un mecanismo para
buscarinformacinconrapidezyentiemposderespuestauniformeindependientemente
delacantidaddedatosqueloformenolacomplejidaddelprocedimientodebsqueda.
Estos cubos multidimensionales o cubos OLAP se generan a partir de los esquemas en
estrella o copo de nieve diseados en el DW. Las tablas relacionadas en ste (tablas de
hechosydedimensiones)proporcionanlaestructuradedatosalcubo(Figura3.7.).


Figura3.7.Estructuracubomultidimensional
En un cubo, la informacin se representa por medio de matrices multidimensionales o
cuadros de mltiples entradas, que nos permite realizar distintas combinaciones de sus
elementos para visualizar los resultados desde distintas perspectivas y variando los
niveles de detalle. Esta estructura es independiente del sistema transaccional de la
organizacin, y facilita y agiliza la consulta de informacin histrica ofreciendo la
posibilidaddenavegaryanalizarlosdatos.
Aqu vemos como ejemplo un cubo multidimensional (Figura 3.8.) que contiene
informacin de ventas discriminadas por periodos de tiempo, productos y zonas
geogrficasdelassucursales.


Figura3.8.Ejemplocubomultidimensional
LosejesdelcubosonlasDimensiones,ylosvaloresquesepresentanenlamatriz,sonlas
Medidas. Si comparamos estos elementos con los componentes del esquema
multidimensional del DW, observamos que las dimensiones se corresponden con las

30
diferentestablasdedimensionesdefinidasendichoesquemamientrasquelasmedidasse
correspondenconlostiposdevaloresprecalculados contenidosenlatabladehechosdel
esquema.
Una instancia del modelo est determinada por un conjunto de datos para cada eje del
cuboyunconjuntodedatosparalamatriz.
Dimensiones
Sonobjetosdelnegocioconloscualessepuedeanalizarlatendenciayelcomportamiento
delmismo.Lasdefinicionesdelasdimensionessebasanenpolticasdelacompaaodel
mercado,eindicanlamaneraenquelaorganizacininterpretaoclasificasuinformacin
parasegmentarelanlisisensectores,facilitandolaobservacindelosdatos.
Para determinar las dimensiones requeridas para analizar los datos podemos
preguntarnos:
Cundo?Larespuestaaestapreguntapermiteestablecerladimensindeltiempo
yvisualizardemaneracomparativaeldesempeodelnegocio.
Dnde? Esta pregunta nos ubica en un rea fsica o imaginaria donde se estn
llevandoacabolosmovimientosquesedeseananalizar.Estoslugaressepueden
serzonasgeogrficas,divisionesinternasdelaorganizacin,sucursales,etc.
Qu?Eselobjetodelnegocio,oelobjetodeintersparadeterminadareadela
compaa.Paraestoscasossetienenlosproductosy/oservicios,lamateriaprima
comoelementodeintersparaladivisindeabastecimientos,losvehculosparala
seccindetransportes,lasmaquinariasparaelreadeproduccin,etc.
Quin?Enestadimensinseplanteaunaestructuradeloselementosqueinciden
directamentesobreelobjetodeinters.Enestoscasossehacereferenciaalrea
comercial o de ventas, o a los empleados de la organizacin si se est llevando a
cabounanlisisaniveldeltalentohumano,etc.
Cul? Habla de hacia dnde se enfoca el esfuerzo de la organizacin o una
determinada rea del negocio, para hacer llegar los productos o servicios. Una
dimensinquesurgedeestapreguntaesladeclientes.
Medidas
Soncaractersticascualitativasocuantitativasdelosobjetosquesedeseananalizarenlas
empresas.Lasmedidascuantitativasestndadasporvaloresocifrasporcentuales.
Porejemplo,lasventasendlares,cantidaddeunidadesenstock,cantidaddeunidades
deproductovendidas,horastrabajadas,elpromediodepiezasproducidas,elporcentaje
deaceptacindeunproducto,elconsumodecombustibledeunvehculo,etc.
JerarquasdeDimensionesyNiveles
Generalmente las dimensiones se estructuran en jerarquas, y en cada jerarqua existen
uno o ms niveles, los llamados Niveles de Agregacin o simplemente Niveles. Toda
dimensintieneporlomenosunajerarquaconunniconivel.
EnlaFigura3.9.vemosunejemplodeunadimensindevendedores,queconsistedeuna
nicajerarqua,ytresnivelesdeagregacinparaagruparlosporciudadesyporregiones.

31

Figura3.9.Ejemplodeunajerarquaytresnivelesdeagregacin
EnlaFigura3.10.podemosverunadimensinquecuentacondosjerarquas:


Figura3.10.Ejemplodedosjerarquas
Enestecaso,losnivelesZonasyGerencianoestnrelacionadosentres,apesardeque
ambosestnrelacionadosconladimensinAreas.
Operacionesmultidimensionales
UnaconsultaaunaherramientaOLAPconsistegeneralmenteenlaobtencindemedidas
sobre los hechos, parametrizadas por atributos de las dimensiones y restringidas por
condicionesimpuestassobrelasdimensiones.
Asporejemplo,podramostenerunaconsultaqueenunciarlosiguiente:Importetotal
de las ventas durante el ao 2010 de los productos del tipo limpieza, por trimestre y por
producto.Sileemosdetenidamentelaconsultapodemosenlazarlosdistintosconceptos
queaparecenenladefinicindeconsultaconlaenunciadaenelprrafoanterior.
Hecho:Ventas
Medida:Importe
Restricciones:TipodeproductoLimpieza,Ao2010
Parmetrosdelaconsulta:TrimestreyProducto
Unavezrealizadalaconsultaobtendramoselsiguienteresultado:
Trimestre
Producto
TrimestreI TrimestreII TrimestreIII TrimestreIV
Amoniaco 10000 12000 11000 12000
Friegasuelos 15000 16000 18000 20000
Limpiacristales 8000 7000 9000 8000

32
Adems de la posibilidad de realizar consultas tan flexibles (que con menor o mayor
complejidad se pueden realizar mediante selecciones, concatenaciones y agrupamientos
tradicionales),lorealmenteinteresantedelasherramientasOLAPsonsusoperadoresde
refinamiento o manipulacin de consultas. Estos operadores facilitan la agregacin
(consolidacin)yladisgregacin(divisin)delosdatos:
Agregacin (Roll): permite eliminar un criterio de agrupacin en el anlisis,
agregando los grupos actuales. Si hicisemos la agregacin de producto, el
resultadoseraelmostradoacontinuacin:
Trimestre
TipoProducto
TrimestreI TrimestreII TrimestreIII TrimestreIV
Limpieza 33000 35000 38000 40000

Disgregacin (Drill): permite introducir un nuevo criterio de agrupacin en el
anlisis, disgregando los grupos actuales. Si hicisemos disgregacin sobre el
trimestre,obtendramoselsiguienteinforme:
Mes
Producto
E F M A M J J A S O N D
Amoniaco 2k 4k 4k 5k 3k 4k 4k 4k 3k 4k 5k 3k
Friegasuelos 4k 5k 6k 5k 5k 6k 6k 7k 5k 4k 8k 8k
Limpiacristales 2k 3k 3k 3k 2k 2k 2k 3k 4k 3k 2k 2k

Si las operaciones de agregacin y disgregacin se hacen sobre atributos de una
dimensin sobre los que se ha definido una jerarqua, estas operaciones reciben el
nombredeDrillDown y RollUprespectivamente.Sinembargo,sidichasoperacionesse
hacensobreatributosdedimensionesindependientes,lasoperacionesrecibenelnombre
deDrillAcrossyRollAcross.
Proyectar(Slice&Dice):seleccionayproyectadatosenelinforme.Unejemplode
proyectarenelinformedepartidaseraelsiguiente:
Trimestre
Producto
TrimestreI TrimestreIII
Limpiacristales 8000 9000

Pivotar(Pivot):reorientalasdimensionesdelinforme.
Producto
Trimestre
Amoniaco Friegasuelos Limpiacristales
TrimestreI 10000 15000 8000
TrimestreII 12000 16000 7000
TrimestreIII 11000 18000 9000
TrimestreIV 12000 20000 8000

33
3.6.4. ROLAP,MOLAPyHOLAP
Los cubos, las dimensiones y las jerarquas son la esencia de la navegacin
multidimensionaldelOLAP.Aldescribiryrepresentarlainformacin en esta forma, los
usuariospuedennavegarintuitivamenteenunconjuntocomplejodedatos.Sinembargo,
el solo describir el modelo de datos en una forma ms intuitiva, hace muy poco para
ayudaraentregarlainformacinalusuariomsrpidamente.
UnprincipioclavedelOLAPesquelosusuarios deberanobtenertiemposderespuesta
consistentesparacadavistadedatosquerequieran.Dadoquelainformacinsecolecta
en el nivel de detalle solamente, el resumen de la informacin es usualmente calculado
por adelantado. Estos valores precalculados son la base de las ganancias de desempeo
delOLAP.
En los primeros das de la tecnologa OLAP, la mayora de las compaas asuma que la
nicasolucinparaunaaplicacinOLAPeraunmodelodealmacenamientonorelacional.
Despus, otras compaas descubrieron que a travs del uso de estructuras de base de
datos (esquemas de estrella y de copo de nieve), ndices y el almacenamiento de
agregados,sepodranutilizarsistemasdeadministracindebasesdedatosrelacionales
(RDBMS)paraelOLAP.
Estos vendedores llamaron a esta tecnologa OLAP relacional (ROLAP). Las primeras
compaas adoptaron entonces el trmino OLAP multidimensional (MOLAP), estos
conceptos, MOLAP y ROLAP, se explican con ms detalle en los siguientes prrafos. Las
implementacionesMOLAPnormalmentesedesempeanmejorquelatecnologaROLAP,
perotienenproblemasdeescalabilidad.Porotrolado,lasimplementacionesROLAPson
msescalablesysonfrecuentementeatractivasalosclientesdebidoaqueaprovechanlas
inversionesentecnologasdebasesdedatosrelacionalespreexistentes.
SistemasMOLAP
LaarquitecturaMOLAPusaunasbasesdedatosmultidimensionalesparaproporcionarel
anlisis, su principal premisa es que el OLAP est mejor implantado almacenando los
datos multidimensionalmente. Por el contrario, la arquitectura ROLAP cree que las
capacidadesOLAPestnperfectamenteimplantadassobrebasesdedatosrelacionalesUn
sistema MOLAP usa una base de datos propietaria multidimensional, en la que la
informacin se almacena multidimensionalmente, para ser visualizada en varias
dimensionesdeanlisis.
El sistema MOLAP utiliza una arquitectura de dos niveles: la bases de datos
multidimensionales y el motor analtico. La base de datos multidimensional es la
encargadadelmanejo,accesoyobtencindeldato.
El nivel de aplicacin es el responsable de la ejecucin de los requerimientos OLAP. El
niveldepresentacinseintegraconeldeaplicacinyproporcionauninterfazatravsdel
cual los usuarios finales visualizan los anlisis OLAP. Una arquitectura cliente/servidor
permiteavariosusuariosaccederalamismabasededatosmultidimensional.
Lainformacinprocedentedelossistemasoperacionales,secargaenelsistemaMOLAP,
medianteunaseriederutinasporlotes.UnavezcargadoeldatoelementalenlaBasede
Datosmultidimensional(MDDB),serealizanunaseriedeclculosporlotes,paracalcular
los datos agregados, a travs de las dimensiones de negocio, rellenando la estructura
MDDB.
Tras rellenar esta estructura, se generan unos ndices y algoritmos de tablas hash para
mejorarlostiemposdeaccesosalasconsultas.Unavezqueelprocesodecompilacinse

34
haacabado,laMDDBestlistaparasuuso.Losusuariossolicitaninformesatravsdela
interfaz,ylalgicadeaplicacindelaMDDBobtieneeldato.
La arquitectura MOLAP requiere unos clculos intensivos de compilacin. Lee de datos
precompilados,ytienecapacidadeslimitadasdecrearagregacionesdinmicamenteode
hallarratiosquenosehayanprecalculadosyalmacenadospreviamente.
Algunos fabricantes son: Oracles Hyperion Essbase, Microsoft Analysis Services, TM1,
SASOLAP,CognosPowerCubes.
SistemasROLAP
La arquitectura ROLAP, accede a los datos almacenados en un Data Warehouse para
proporcionarlosanlisisOLAP.LapremisadelossistemasROLAPesquelascapacidades
OLAPsesoportanmejorcontralasbasesdedatosrelacionales.
ElsistemaROLAPutilizaunaarquitecturadetresniveles(Figura3.11.).Labasededatos
relacional maneja los requerimientos de almacenamiento de datos, y el motor ROLAP
proporciona la funcionalidad analtica. El nivel de base de datos usa bases de datos
relacionalesparaelmanejo,accesoyobtencindeldato.Elniveldeaplicacineselmotor
queejecutalasconsultasmultidimensionalesdelosusuarios.
ElmotorROLAPseintegraconnivelesdepresentacin,atravsdelosculeslosusuarios
realizanlosanlisisOLAP.DespusdequeelmodelodedatosparaelDataWarehousese
hadefinido,losdatossecargandesdeelsistemaoperacional.Seejecutanrutinasdebases
de datos para agregar el dato, si as es requerido por el modelo de datos. Se crean
entonceslosndicesparaoptimizarlostiemposdeaccesoalasconsultas.


Figura3.11.SistemaROLAP
Losusuariosfinalesejecutansusanlisismultidimensionales,atravsdelmotorROLAP,
quetransformadinmicamentesusconsultasaconsultasSQL.Seejecutanestasconsultas
SQL en las bases de datos relacionales, y sus resultados se relacionan mediante tablas
cruzadasyconjuntosmultidimensionalesparadevolverlosresultadosalosusuarios.
LaarquitecturaROLAPescapazdeusardatosprecalculadossiestosestndisponibles,o
degenerardinmicamentelosresultadosdesdelosdatoselementalessiespreciso.Esta
arquitecturaaccededirectamentealosdatosdelDataWarehouse,ysoportatcnicasde
optimizacindeaccesosparaacelerarlasconsultas.Estasoptimizacionesson,entreotras,

35
particionado de los datos a nivel de aplicacin, soporte a la desnormalizacin y joins
mltiples.
Algunos fabricantes son: Oracles BI EE, SAP Netweaver BI, MicroStrategy, Cognos 8,
BusinessObjectsWebIntelligence.
SistemasHOLAP
Un desarrollo un poco ms reciente ha sido la solucin OLAP hbrida (HOLAP), la cual
combina las arquitecturas ROLAP y MOLAP para brindar una solucin con las mejores
caractersticas de ambas: desempeo superior y gran escalabilidad. Un tipo de HOLAP
mantiene los registros de detalle (los volmenes ms grandes) en la base de datos
relacional,mientrasquemantienelasagregacionesenunalmacnMOLAPseparado.
Algunos fabricantes son: Microsoft Analysis Services, SAS OLAP, Oracles Hyperion
Essbase.
Cada alternativa tiene sus ventajas y desventajas. Algunas de las ventajas ms
importantesdecadaenfoqueson:
MOLAP
Consultasrpidasdebidoalaoptimizacindelrendimientodealmacenamiento,la
indexacinmultidimensionalylamemoriacach.
Ocuparmenortamaoendiscoencomparacinconlosdatosalmacenadosenbase
dedatosrelacionaldebidoatcnicasdecompresin.
Automatizacindelprocesamientodelosdatosagregadosdemayornivel.
Muycompactoparaconjuntosdedatosdepocasdimensiones.
El modelo de almacenamiento en vectores/matrices proporciona una indexacin
natural.
Eficazextraccindelosdatoslogradagraciasalapreestructuracindelosdatos
agregados.
ROLAP
SoportananlisisOLAPcontragrandesvolmenesdedatos.
Lossistemaspuedencrecerhastaungrannmerodedimensiones.
Lostiemposdecargasonmuchomenores.
Los datos se almacenan en una base de datos relacional que puede ser accedida
porcualquierherramientadegeneracindeinformesSQL.
Esposiblemodelardatosconxitoquedeotromodonoseajustaranaunmodelo
dimensionalestricto.
Resumiendo,elsistemaROLAPesunaarquitecturaflexibleygeneral,quecreceparadar
soporte a amplios requerimientos OLAP. MOLAP es una solucin particular, adecuada
para soluciones departamentales con unos volmenes de informacin y nmero de
dimensionesmsmodestos.

36
Captulo4. Procesodedesarrollodeindicadores
Enestecaptulosepresentaunametodologaqueapoyaelprocesodedesarrollodelos
indicadoresobjetodeesteproyecto.
Elmaterialpresentadoenestecaptulohasidoextradodelasiguientefuente[8].

4.1. QuesTUNEUP?

TUNEUPesunametodologaqueincorporaaspectosgilesytradicionalesconunsentido
marcadamentepragmtico.TUNEUPsecaracterizafundamentalmenteporcombinarlos
siguienteselementos:
Modeloiterativoeincrementalparaeldesarrolloymantenimientodelsoftware.
El trabajo se divide en unidades de trabajo que son asignadas a versiones del
producto.Serealizancicloscortosdedesarrollo,entre3y6semanas,dependiendo
delproducto.
Workflows flexiblesparalacoordinacindeltrabajoasociadoacadaunidadde
trabajo. Los productos, segn sus caractersticas, tienen disponibles un conjunto
de workflows los cuales se asignan a cada una de las unidades de trabajo. Cada
unidaddetrabajosigueelflujodeactividadesdelworkflowparacompletarla.Bajo
ciertascondicionessepermitesaltarhaciaadelanteohaciaatrsenelworkflow,
as como cambios de agentes asignados e incluso cambio de workflow. Por
ejemplo, las tpicas situaciones de retrabajo en desarrollo de software
ocasionadaspordeteccindedefectosseabordanconsaltosatrsnoexplcitosen
elworkflow.
Procesodedesarrollodirigidoporlaspruebasdeaceptacin(TestDriven).
La definicin de una unidad de trabajo es bsicamente la especificacin de sus
pruebasdeaceptacinacordadasconelcliente.Apartirdeall,todoelprocesogira
en torno a ellas, se estima el esfuerzo de implementar, disear y aplicar dichas
pruebas, se disean e implementan y luego se aplican sobre el producto para
garantizarelxitodelaimplementacin.
Planificacinyseguimientocontinuocentradosenlagestindeltiempo.En
todomomentodebeestaractualizadoelestadodelasversiones,delasunidadesde
trabajo, y del trabajo asignado a los agentes. El jefe del proyecto puede actuar
oportunamente con dicha informacin, tomando decisiones tales como:
redistribuircargadetrabajoentreagentes,cambiarlosplazosdelaversin,mover
unidadesdetrabajoentreversiones,etc.
Controldetiempos.Losagentesregistraneltiempoquededicanalarealizacin
de las actividades, el cual se compara con los tiempos estimados en cada una de
ellas, detectando oportunamente desviaciones significativas. Esto permite a los
agentes gestionar ms efectivamente su tiempo, mejorar sus estimaciones y
ofreceraljefedelproyectoinformacinactualizadadelestadodelaversin.

37

Figura4.1.WFdedesarrollosimpleparaunidadesdetrabajo
LaFigura4.1.ilustraunworkflowsimpleparaeldesarrollodeunaunidaddetrabajo.Un
workflow,engeneral,incluyeactividadesasociadasatresfasesdelproceso:
PreAsignacin:actividadesrealizadashastalaasignacindelosRRHHyversin.
La unidad de trabajo ha sido identificada pero an no tiene una prioridad como
paraasignarlelosRRHHyversin.
Preparacin:sepuedenrealizarcuandolaunidaddetrabajohaalcanzadocierta
prioridadyselehanasignadolosRRHHyunaversin.Secomienzaatrabajarenla
preparacin de la unidad de trabajo, y debera concluirse antes del inicio de la
versin objetivo en la cual se implementar. Incluye el anlisis, las revisiones y
estimacionesparasuimplementacin.
Implementacin: se realizan durante la versin objetivo. Incluye la
implementacin,aplicacindepruebaseimplantacin.
Las actividades de cada workflow pueden variar significativamente dependiendo de
factorestalescomolacantidadyespecializacindeagentesparticipantes,validacioneso
negociacionespredeterminadasconelcliente,etc.
Cada unidad de trabajo en una iteracin del proyecto podra tener su propio workflow.
Sinembargo,enlaprcticabastacondisponerdeunreducidoconjuntodeworkflowsque
permitancubrirlostiposdeunidadesdetrabajoquesepresentanenelproyecto.

38
Salto hacia adelante sin haber sido finalizada antes

Asignacin al agente Omitida


Por Llegar

Se produce salto atrs hacia actividad previa


Finalizacin de actividad previa

Pendiente
Comenzar

Finalizar Se produce salto atrs hacia actividad previa


Continuar

Salto hacia adelante habiendo sido finalizada antes


Activa Pausada

Pausar

Finalizar
Finalizada


Figura4.2.Posiblesestadosdeunaunidaddetrabajoenunaactividad

LaFiguramuestralosposiblesestados(PorLlegar,Pendiente,Activa,Pausada,Finalizada
yOmitida)enlosquesepuedeencontrarunaactividadasociadaaunaunidaddetrabajo.

4.2. TUNEUPProcessTool

TUNEUP Process Tool es una herramienta de apoyo para la aplicacin efectiva de la


metodologa TUNEUP. La herramienta est formada por tres mdulos principales:
Planificador Personal, Gestor de Unidades de Trabajo, y Planificador de Versiones. A
continuacinsedescribecadaunodeestosmdulos.

4.2.1. PlanificadorPersonal
ElPlanificadorPersonal(PP)presentaeltrabajoquetieneunagente.Cuandounagente
iniciasujornadalaboral,accedealPP(Figura4.3.)paravereltrabajoquetieneasignado
actualmente,yseleccionarquvaarealizardeacuerdoasusprioridades.ElPPofreceuna
variedad de facilidades de filtrado y ordenamiento de informacin, adems de datos de
tiempos,paraqueelagentepuedadeterminarsueleccindeacuerdoasusprioridades.
La tabla de la izquierda de la figura resume las contabilizaciones de las unidades de
trabajo segn la actividad y estado en el que se encuentran, y la tabla de la derecha,
muestra informacin de dichas unidades de trabajo incluyendo: producto, versin,
descripcin de la unidad de trabajo, tiempos calculados, estado de la actividad actual
dentrodelworkflow,etc.

39

Figura4.3.FragmentodeinterfazdelPlanificadorPersonal

4.2.2. GestordeUnidadesdeTrabajo
Cuandoelagentedecidelaunidaddetrabajoquevaarealizar,accedeconellaalGestor
deUnidadesdeTrabajo(GUT)(Figura4.4.)comoapoyoesencialpararealizarsutarea.En
la parte superior se observan los datos generales de la unidad de trabajo, y en la parte
inferior, un conjunto de pestaas con la funcionalidad que ofrece el GUT. Entre la
funcionalidaddisponibletenemoslaposibilidaddeactivar/pausar/finalizarlaactividad,
mandarpeticiones,aadir/consultardocumentacinasociadaalaunidaddetrabajo,ver
lostiemposregistradosendichaunidad,etc.


Figura4.4.GestordeUnidadesdeTrabajo

40
4.2.3. PlanificadordeVersiones
El Planificador de Versiones (PV) (Figura 4.5.) permite gestionar los productos, sus
versiones, los workflows disponibles para cada producto, los agentes por defecto
asignadosalasactividadesdelosworkflowsyrealizarelseguimientocontinuodelestado
actualdelasversiones.


Figura4.5.PlanificadordeVersiones

4.3. Workflowdedesarrollodeindicadores

TUNEUPdisponedeunconjuntodeworkflowsparacadatipodeproducto.Enelcasode
un producto de Business Intelligence, se ha definido un workflow especfico para el
desarrollodeindicadores(Figura4.6.)basadoenlaconstruccindeinformesOLAP.
Tal y como se observa, este WF se compone de numerosas actividades asociadas a
diferentesfasesdelprocesosdedesarrolloqueseejecutandeformasecuencialoparalela.
Enlaprimerafase(parteizquierda)seincluyenlasactividadesrelacionadasconanlisis,
revisiones y estimaciones; la segunda (parte central delimitada por las lneas
discontinuas) abarca las actividades de implementacin, testeo e implantacin en el
cliente del producto final y la fase final (parte derecha) incluye la implantacin de
pruebasderegresin 12 .

12 Se denominan Pruebas de regresin a aquellas pruebas que intentan descubrir defectos producidos por cambios

recientementerealizadosenpartesdelaaplicacin.Pordefinicin,unapruebaaplicadadespusdelaprimeravezque
resultexitosa,esunapruebaderegresin.

41

Figura4.6.WFDesarrolloIndicador
Concretamente,lasactividadesquecomponendichoWFsonlassiguientes:
Introducir Indicador: Es la actividad de inicio del WF y en ella se rellenan los
datos bsicos relativos al indicador en el que se va a trabajar (Figura 4.7.). En
nuestrocaso,seponeunabrevedescripcindelindicadoradesarrollar.
Estaactividadvieneprecedidaporunaseriedenegociacionesentreelclienteyla
empresaencargadadeldesarrollodelindicador.Unavezfinalizadoelprocesode
negociacin, el cliente enva a la empresa desarrolladora una plantilla del
indicador deseado (Ver Anexo A) en la que indica la informacin que desea
conoceryesentoncescuandoseiniciaesteWF.


Figura4.7.GestordeUnidadesdeTrabajoActividadIntroducirIndicador

AsignarVersinyRR.HH.:Seasignaeldesarrollodelindicadoraunaversindel
producto dependiendo de la dificultad del mismo y del estado de la versin en
cuanto al trabajo pendiente de realizar, se valora el esfuerzo de implementacin
delindicadoryseasignarecursoshumanos.


Figura4.8.GestordeUnidadesdeTrabajoPestaaPlanificacin
PrepararAyudaIndicador:Serevisaeldocumentoenviadoporelclienteysihay
alguna cuestin que no est clara, nos ponemos en contacto con el cliente para
aclararla.Acontinuacin,seelaboraunapequeademodeloqueserelproducto
finalcondatosdepruebaysepreparaundocumentodeayuda(VerAnexoB)enel
queseindicadndehayqueintroducirlainformacinenelprogramaparaqueel
indicadormuestrelosdatoscorrectamente.
En lo que respecta a la construccin de la demo, se han de seguir los siguientes
pasos:
- Crearunabasededatosdepruebaconunaestructurasimilaralaquetendr
labasededatosdefinitiva.
- Introduciralgunosdatosenlabasededatoscreadaanteriomente.
- Crearelcubodedatospertinente.
- Construir el informe OLAP en Excel del indicador y definir un par de vistas
pordefecto.
El documento de ayuda es de vital importancia, ya que en muchas ocasiones es
posible introducir la informacin necesaria para calcular un indicador de varias
formas,todasellasvlidas.Sinembargo,enelprocesodedesarrollodelindicador,
el programador se decanta por una de las formas para obtener los datos porque
tratarlas todas sera muy complejo y por eso la necesidad de especificar en el
documentodeayudalaformacorrectadeintroducirlosdatos.Dadoesto,paraque
los datos que muestre el indicador sean correctos y se ajusten a la realidad, los
usuarios debern introducir la informacin tal y como se indica en dicho
documento.Denoseras,losdatosmostradosporelindicadornoserncorrectos
ypuedenllevarnosaerroresenlatomadedecisiones.
Analizar Incidencia: Se elabora el documento de anlisis de la incidencia (Ver
Anexo C) en base a la plantilla del indicador enviada por el cliente y al resto de
documentos (si los hay) en los que se especifiquen los requisitos del cliente con
respecto al indicador. Dicho documento incluye la definicin del hecho con sus
dimensiones,medidasyKPIs,yunarelacindelaspruebasdeaceptacinquedebe
superarelindicador.
Confirmar con Cliente: Se presenta al cliente la demo elaborada en actividades
anterioresparaconfirmarqueseajustaalindicadorsolicitadoporlmismoysele
explicadetenidamenteeldocumentodeayudaparadespejartodaslasdudascon
respecto a la forma correcta de introducir la informacin en el programa. Si el
clientedaelvistobuenoalademo,sesigueconelprocesonormaldedesarrollo
delindicador.Enotrocaso,silademonoseajustaaloqueesperabaelcliente,se
tomanotadelasmodificacionesquedesearealizarelcliente,serehacelademoy
semodificaeldocumentodeanlisisparaqueseajustenaloscambiossolicitados.
Unavezrealizadosloscambios,sevuelveapresentarlademoalcliente.
Este proceso se repetir hasta que el cliente d por buena la demo para evitar
hacer todo el proceso de desarrollo, con el coste de recursos y tiempo que eso
conlleva,yqueluegoelresultadonoseaelesperadoporelcliente.Deestaforma
tenemoslacertezadequecuandoelindicadorestfinalizado,elresultadovaaser
eldeseadoporelcliente.
DiseoPreliminaryEstimacin:Serealizaunestudiodeldocumentodeanlisis
cuestionandolaspruebasdeaceptacinysudefinicin.Acontinuacinseelabora

44
el documento de diseo (Ver Anexo D) y se realiza una estimacin del tiempo
necesarioparalaimplementacindelindicador.Eldocumentodediseotambin
incluye informacin de cul es el hecho con sus respectivas dimensiones con la
diferenciadequeensteseindicadequtablasdelabasededatosoperacional
sacamos la informacin para cada una de las dimensiones y cmo se van a
computarlasmedidasdelindicador.
EstimacindeTesteo:Sehaceunaestimacinconjunta,porpartedeltester,del
tiempo necesario para disear las pruebas y el tiempo necesario para aplicar
dichaspruebasalindicador.
Estimacin de Soporte: Se hace una estimacin, por parte del personal de
soporte, del tiempo necesario para probar los indicadores cuando se encuentren
implantadosenelcliente.
ConfirmarRR.HH.yVersin:Seconfirmalaversindelproductoenlaqueseva
adesarrollarelindicadorylosrecursoshumanosasociadosadichodesarrollo.En
caso de que la incidencia se volviera urgente o si por el contrario su prioridad
bajara,esenestemomentocuandolamoveramosaotraversinyrealizaramos
unajustedelosrecursoshumanosasociadosalamisma.
DiseoeImplementacin:SecreaelprocesoETLencargadodecrearelalmacn
de datos, extraer los datos de la base de datos operacional, transformarlos y
cargarlos en el almacn de datos. Tras esto, se crea el cubo correspondiente, las
plantillasdeExcelparapodervisualizarlosresultadosdelindicadorylosinformes
estticossolicitadosporelcliente.Unavezfinalizadastodasestastareas,sesuben
lasplantillasdeExcelylosreportsalportaldepruebasysecreaeldashboard,lo
quesuponeelfindelaimplementacin.
Automatizar Pruebas: Se crean los scripts encargados de interactuar con el
programa y con las plantillas de Excel y se introducen datos que pueden llevar a
erroresparacomprobarqueelindicadorfuncionacorrectamente.Acontinuacin,
selanzanlaspruebasdeformaautomticaysecomparasielresultadoobtenidoes
el esperado utilizando las imgenes de Excel generadas como resultado de la
prueba.Silapruebaessuperadaconxito,sepasaalaimplantacinperosinose
ha superado, el tester devuelve el indicador al programador, indicando dnde se
haproducidoelfallo,paraquesteresuelvaelproblema.Esteprocesoserepetir
hastaqueelindicadorpasetodaslaspruebas.
Implantacin en Cliente: Se suben los paquetes implementados al servidor del
clienteysecreanprogramacionesdelanzamientoparaqueselancendiariamente.
Seguidamente, se suben las plantillas de Excel, los informes y el dashboard al
portaldelclienteyseconfiguranlospermisosdeaccesoaestoselementossegn
lasindicacionesdelcliente.
Enloquerespectaallanzamientodepaquetes,disponemosdeunservicioquese
encargadeestatarea.Portanto,sielclientetienecontratadoesteservicio,enlugar
decrearlasprogramaciones,seconfiguraelservicioparaqueejecutelospaquetes,
indicndolelaubicacindelosmismos,elnombredelasbasesdedatos,etc.
ImplantarPruebasdeRegresin:Consisteencargarenelproyectolosscriptsde
automatizacin de las pruebas para que puedan ser ejecutadas en cualquier
momento. Concretamente estas pruebas se realizan cada vez que sale una nueva
versin del programa del que se extrae la informacin para los indicadores o
cuandoserealizaunamodificacindelindicadorparacomprobarque,pesealos

45
cambios introducidos en el programa base o en el indicador, el indicador sigue
funcionando correctamente. Concretamente, se lanzan todas las pruebas y si hay
alguna que no es superada, el tester informa del error al programador y ste lo
soluciona modificando la implementacin del indicador para que se ajuste a los
cambiosintroducidosenelprograma.
Deestaformasegarantizaelcorrectofuncionamientodelosindicadoresentodo
momento,apesardequeserealicenactualizacionesdelprograma.
UnavezfinalizadalaactividaddeImplantacinenCliente,elprocesodedesarrollodel
indicador se da por concluido. No obstante, en muchas ocasiones, tras un perodo de
tiempodeuso,elclientesolicitamodificacionesdelindicador.Dichasmodificacionesno
estn contempladas en el WF de desarrollo visto anteriormente y por lo tanto, es
necesariodisponerdeunnuevoWF(Figura4.9.).
Las modificaciones habituales solicitadas por el cliente que suelen llevarse a cabo
consisten en aadir o modificar las dimensiones o medidas del indicador, cambiar la
forma de calcular cierta medida, aadir medidas al cubo, modificar los KPIs, etc. Sin
embargo,enotrasocasiones,lasmodificacionesserealizanporqueelprogramadelquese
extraenlosdatossufrecambiosenlabasededatos(eliminacindecamposutilizadospor
elprocesoETL)obiencambialaformadeintroduciralgndatoyportanto,elproceso
ETLdebeatacaraotrastablasparaqueelindicadorfuncionecorrectamente.


Figura4.9.WFModificarIndicador
DichoWFsecomponede4actividades:
Introducir Incidencia: Es la actividad de inicio del WF y en ella se indica el
indicadoramodificaryloscambiosarealizar.

46
CorregirIndicador:Semodificanlosdocumentosgeneradosduranteeldesarrollo
delindicadorparaquereflejenloscambiosquesevanaintroducirenelindicador
y se modifica el proceso ETL, los cubos y los reports en la medida que sea
necesario.
AplicarPruebasdeRegresin:Seejecutanlaspruebasanterioresparaverqueel
indicadorlaspasaconxitoyencasodequeseanecesarioaadirnuevaspruebas
paraverificarelcorrectofuncionamientodelindicadortrasloscambiosrealizados,
se crean nuevos scripts y se lanzan nuevamente las pruebas. Si las pruebas son
superadasconxito,sepasaarevisarlatareaperosinosehansuperado,eltester
devuelveelindicadoralprogramadorindicandodndeestelfalloparaqueste
loresuelva.Esteprocesoserepetirhastaqueelindicadorpasetodaslaspruebas.
RevisarResultadoTarea:Secompruebaqueloscambioshansidorealizadosde
formasatisfactoriayquesehanpasadoconxitotodaslaspruebas.
Tras finalizar la ltima actividad, el proceso de modificacin del indicador se da por
concluido.

47

48
Captulo5. MarcotecnolgicodeunasolucinBI
En este captulo se presenta el marco tecnolgico en el que ha sido desarrollada la
solucin Business Intelligence objeto de este proyecto y se analiza cada una de las
tecnologasutilizadas.
Dado que este proyecto se centra fundamentalmente en la parte de diseo e
implementacin de los indicadores, a continuacin nicamente se van a analizar las
tecnologas utilizadas en esa parte del proceso de desarrollo. Por tanto, aunque en el
captuloanteriorseindicaqueeldesarrollodeindicadoresincluyeunapartedetesteo,el
estudiodelatecnologaespecficautilizadaparahacerlaspruebasestfueradelalcance
deesteproyecto.
Elmaterialpresentadoenestecaptulohasidoextradode[10]y[11].
Paranohacermuyextensoestecaptulo,enlosapartadoscorrespondientesacadaunade
lastecnologasutilizadassehacereferenciaaunanexoquecontieneunbrevetutorialde
esatecnologaparaentendermejorsufuncionamiento.

5.1. Componentesdelmarcotecnolgico

Elmarcotecnolgicopropuestoestformadoporlossiguientescomponentes:TUNEUP
Process Tool, como herramienta para la planificacin y seguimiento del proceso de
desarrollo, Microsoft BI, como suite de desarrollo de Inteligencia de Negocios, e IBM
Rational Functional Tester, como herramienta para el desarrollo de pruebas
automatizadasyderegresin.

Microsoft
Business
Intelligence

Solucin
BI
IBM
TUNEUP
Rational
Process
Functional
Tool
Tester


Figura5.1.Componentesdelmarcotecnolgicopropuesto
Dado que TUNEUP Process Tool fue descrita brevemente en el captulo anterior y la
parterelacionadaconlaspruebasautomatizadasyderegresinestfueradelalcancede
esteproyecto,slosedescribirnloscomponentesdeMicrosoftBI.

49
5.2. MicrosoftBusinessIntelligence

Microsoft Business Intelligence ofrece una suite completa de productos integrados,


proporcionando acceso continuo a aplicaciones de amplia difusin e informes, dando
coberturaatodoslosaspectosdelprocesodetomadedecisiones.Basadoenlaplataforma
deInteligenciadeNegociodeMicrosoftSQLServeryconunadifusinentreelpblicoa
travsdeMicrosoftOffice,esteenfoquecompletoeintegradopermitecrearyponeren
marchaaplicacionesdeinteligenciadenegocio.


Figura5.2.SolucindeBusinessIntelligencedeMicrosoft

5.2.1. MicrosoftSQLServer
Microsoft utiliza como plataforma de Inteligencia de Negocios la herramienta conocida
popularmentecomoSQLServer.Estesoftwareofreceunentornodedesarrollointegrado,
Business Intelligence Development Studio 13 , para desarrollar construcciones de
inteligencia empresarial, como cubos, orgenes de datos, informes y paquetes de
Integration Services. Concretamente, es Microsoft Visual Studio con tipos de proyecto
adicionales que son especficos de Business Intelligence, tales como proyectos de
Analysis Services, Integration Services y Reporting Services. Cada tipo de proyecto
proporciona plantillaspara crear los objetos necesariospara las soluciones deBusiness
Intelligenceyofrecevariosdiseadores,herramientasyasistentesparatrabajarconlos
objetos.
TodosestosproyectossonadministradosmedianteSQLServerManagementStudio,un
entornointegradoparaobteneraccesoatodosloscomponentesdeSQLServer,ascomo
paraconfigurarlosyadministrarlos.Dichoentornocuentaunmotordeplanificacionesy
alertas,AgenteSQLServerqueesdegranutilidadpararealizarlasprogramacionesde

13MicrosoftSQLServerconsolidalaadministracindeservidoresylacreacindeobjetoscomercialesendosentornos

integrados:SQLServerManagementStudioyBusinessIntelligenceDevelopmentStudio.

50
lanzamientodelospaquetesdelosindicadoresnecesariasenlasltimafase delproceso
dedesarrollodelosindicadores.
A continuacin se describe brevemente cada una de las tecnologas de SQL Server
utilizadasyenelapndiceseincluyenunaseriedeminitutorialesdecadaunadeestas
tecnologas. Dado que estas tecnologas ofrecen multitud de funcionalidades, en los
tutoriales slo se va a describir la funcionalidad usada a la hora de desarrollar los
indicadoresdeesteproyecto.
SQLServerIntegrationServices(SSIS)

Plataformaparalacreacindesolucionesempresarialesdetransformacionesdedatose
integracindedatosapartirdetareasytransformacionesfcilesderealizarparalosno
desarrolladores, empleando un modelo de objetos potente que soporta la creacin de
tareasytransformacionesdedatospersonalizadas.

Ms informacin en el apndice (Ver Anexo E.), donde se describe cmo construir


paquetesETLconSSIS.

SQLServerAnalysisServices(SSAS)
Servicio que ofrece funciones de procesamiento analtico en lnea (OLAP) y minera de
datosparaaplicacionesdeBusinessIntelligence.AnalysisServicesadmiteOLAPypermite
disear, crear y administrar estructuras multidimensionales que contienen datos
agregadosdesdeotrosorgenesdedatos,comobasesdedatosrelacionales.
Msinformacinenelapndice(VerAnexoF),dondesedescribecmoconstruircubos
OLAPconSSAS.

AgenteSQLServer
Motor de planificaciones y alertas que permite crear trabajos flexibles con mltiples
pasos y dependencias entre los distintos pasos de trabajo y configurar alertas que
realicenaccionesautomatizadasobienenvenmensajesaregistrosdeerrores.
Msinformacinenelapndice(VerAnexoG),dondesedescribecmoconstruirtrabajos
conelAgenteSQLServer.

5.2.2. MicrosoftOffice
Dos de las soluciones de Microsoft Office ms utilizadas como herramientas de difusin
entreelpublicodelaInteligenciadeNegociosson:MicrosftOfficeExcelyMicrosoftOffice
SharePointServer.

MicrosoftOfficeExcel
Microsoft Office Excel ofrece un entorno para los usuarios de negocios, incorporando
capacidades OLAP que permiten al usuario conectarse a cubos de Analysis Services y
explotarsuinformacinmediantetablasy/ogrficasdinmicas.
Adicionalmente,previalainstalacindeunaddin,tambinesposiblerealizarMinerade
Datos.

51
Ms informacin en el apndice (Ver Anexo H), donde se describe cmo construir
informesanalticos(reports)enMicrosoftOfficeExcel.

MicrosoftOfficeSharePointServer
Microsoft Office SharePoint Server (MOSS) es una plataforma web que ayuda a las
organizaciones a ofrecer capacidades de inteligencia empresarial a todos los empleados
para compartir, controlar y reutilizar informacin empresarial con el fin de tomar
mejores decisiones en la empresa. Las caractersticas de BI que ofrece MOSS son las
siguientes:
Acceso web y mediante programacin a las hojas de clculo de Microsoft Office
ExcelatravsdeExcelServices.LosServiciosdeExcelextiendenlascapacidades
deMicrosoftOfficeExcelypermitencompartirampliamentehojasdeclculo,con
una mejor administracin y seguridad y los modelos reutilizables de hojas de
clculo, utilizando un servicio de clculo escalable basado en el servidor y una
interfazdeusuariointeractivabasadaenWeb.
Desarrollo de cuadros de mandos (dashboards) basados en web que pueden
incorporar indicadores clave de rendimiento enriquecidos y enlazados a datos,
elementoswebylibrosquepuedenalojarsedentrodelanuevaplantilladelsitio
delCentrodeinformes.
Msinformacinenelapndice(VerAnexoI),dondesedescribecmo construir
dashboardsenMicrosoftOfficeSharePointServer.

52
Captulo6.Casodeestudio
ElsiguientecaptuloincluyeunadescripcindelcasodeestudioResiPlusBI,enmarcado
en ofrecer servicios de Inteligencia de Negocios al sector sociosanitario. El objetivo es
ilustrar cmo se desarrollan e implentan los indicadores de negocio en el marco
tecnolgico propuesto en el captulo anterior pero contextualizado en ResiPlus BI. Para
ellosedescribenunconjuntodeconsideracionespreviasenelentornodeResiplusBIyse
ejemplificadeformaprcticaeldesarrollodevariosreports.

6.1.QuesResiPlusBI?

ResiPlus es un programa informtico que permite a las residencias, centros de da y de


discapacitadosgestionarsuscentros.
ResiPlus ofrece una amplia gama de servicios a travs de su plataforma de servicios
ResiPlusPS(ResiPlusPlatformServices).Entrelosservicioscontratablesporloscentros,
podemos encontrarel servicio ResiPlus BI (ResiPlus Business Intelligence) encargado de
ofreceralclienteunserviciointegraldeInteligenciadeNegocio.LosServiciosBIentran
en la esencia del negocio del cliente. As, estos servicios estn orientados al personal
involucradoenlatomadedecisionesdemayornivel.Elclientepodrcontarconinformes
OLAP, cuadros de mandos, anlisis y predicciones de datos, etc. todo esto basado en
tecnologadeAlmacenesdeDatosyMineradeDatos.

6.2.FuncionamientodeResiPlusBI

Cuando los centros contratan el servicio BI y a medida que van solicitando reports o
indicadores 14 ,deformatransparentesedesarrollaincrementalmenteunDataWarehouse
que les permite contar con informacin preparada para el anlisis. De esta manera se
logra una independencia total del sistema transaccional de ResiPlus, dando lugar a un
nuevo almacn con una estructura mucha ms simple y cuya informacin puede ser
explotadarpidamenteporloscentros.
Mediante el servicio BI los centros acceden a los reports que van contratando y les
permiteanalizarlainformacindentrodeunaampliagamadeperspectivas.Loscentros
tambin disponen de la opcin de contratar dashboards para tener una vista
integrada/unificada de los reports con el fin de ilustrar el estado y rendimiento en un
mbitodeterminado(residente,empleado,rea,unidad,departamento,centroogrupo).

6.3.Consideracionespreviasaldesarrollodeindicadores

Antesdecomenzarconlaimplementacindeunindicador,hayquetenerencuentauna
serie de factoresexistentes cuando el desarrollo se realiza en un entorno multiempresa
(clientesconmsdeuncentrooresidencia).
El primero de ellos, y quizs el ms importante, es que los indicadores van a atacar a
distintas bases de datos, cada una correspondiente a una instalacin de ResiPlus

14
Utilizamoslostrminosreportoindicadorindistintamente,yaqueelclienteaveceshabladeindicadores
de negocio y otras de reports como si fueran la misma cosa. Esto es as porque para obtener un report,
previamentesenecesitaladefinicindeunindicador.

53

independiente.Estopareceunfactor no demasiadoimportante,peroesvitalahondarun
pocoenl.
Encadaunadeestasbasesdedatostendremosdatosquesernindependientesdeuna
residencia a otra, como por ejemplo los residentes. Dichos residentes tendrn su
identificadorpropioensubasededatosdeResiPlusperodadoqueestamosrealizandoun
proyectodealmacenesdedatos,loquesedeseaestenertodosesosdatosenunamisma
tabla,independientementedelcentrodelqueprovengan,ytenerlosidentificadosentodo
momento.
Porejemplo,sedaelcasodequeelresidenteconidentificador1delaresidencia001es
Vicente,mientrasqueelidentificador1delaresidencia002esJuan.Enelmomentoenel
que estos datos se introduzcan en la tabla de dimensin Residentes del almacn de
datos,suidentificadorseperderporquelosidentificadoresnopuedenrepetirseyyano
podremossaberdedndeprovienecadaresidente.
Porelloescruciallacreacindeunidentificadorpropiodelalmacn,queasuvezenlace
conelregistrocorrespondienteasubasededatosorigen.Aesteidentificadorselepasar
adenominarcdigounificado,queestarformadoenestoscasosporelidentificadordela
residenciaalaqueperteneceelregistro,unguinyelidentificadorpropiodelregistro.
Aspues,enelejemploenunciadoanteriormente,enelalmacnsetendrandosregistros:
Vicenteconcdigounificado0011,yJuanconcdigounificado0021.
Estecdigounificadodeberestarpresentetantoenelalmacndedatoscomoenlabase
de datos origen, para poder as en todo momento realizar un enlace entre estas dos
instancias.
En las siguientes figuras, podemos ver la variacin introducida y el efecto que este
produce:


Figura6.1.EjemplodelatablaResidentessincdigounificado

54


Figura6.2.EjemplodelatablaResidentesconcdigounificado
Elsegundofactoratenerencuentaesalahoraderellenartablasimportantesdelabase
de datos de ResiPlus, queriendo a posteriori crear un indicador con los datos de dichas
tablas.
Porejemplo,imagnesedosresidenciasparaunmismoclienteenlascualessetienenun
conjunto de caracteres de plaza distintos: en la residencia 001 se cuenta con los
caracteres de plaza pblico, semipblico, semiprivado y privado; mientras tanto, en la
residencia 002 se tienen los caracteres plaza pblico, cuasipblico, cuasiprivado y
privado.
Si se tiene en cuenta que existe una correspondencia entre los caracteres de plaza (es
decir, semipblico y cuasipblico son los mismos caracteres de plaza, as como
semiprivadoycuasiprivado),setendraungraveproblemayaqueconunaintroduccin
directadelosregistrosseobtendranseiscaracteresdeplazadistintos,apesardesertan
slocuatro:pblico,privadoylasunionesresultantesdesemipblicoycuasipublicoy
semiprivadoycuasiprivado.
Dadaestacircunstancia,paraquelainformacinmanejadaporlosindicadoressealoms
real posible, se introduce aqu tambin el concepto de cdigo unificado, pero con una
visinuntantodistintaalavistaanteriormente.
En primer lugar, se tiene en cuenta que cada residencia, de partida, tendr sus propios
caracteres de plaza previamente introducidos, con valores que podran ser distintos en
cadaresidencia.Porello,elencargadodelaempresaclienteparaelmantenimientodelos
indicadoresdebeocuparsederecopilartodoesteconjuntodevalores.
Una vez recopilados estos valores, requerir de una reunin con los responsables
correspondientes al objeto de unificar los criterios de todas las residencias del mismo
grupo.Unavezhechoesto,ymedianteResiPlusBI,elencargadodemantenimientodelos
indicadores deber rellenar la tabla maestra de la dimensin correspondiente con la
unificacinresultantedelareuninconlosresponsables,comunicandoacadaunadelas
residencias los cdigos unificados de cada uno de los caracteres de plaza que hay
introducidosenlasbasesdedatos.
Deestemodo,sehaconseguidocrearunenlaceentrelosregistrosdecarcterdeplazade
cadaunadelasresidenciasconelintroducidoenelalmacn,aligualqueanteriormente
seconsiguiconlosresidentes.

55

Enelsiguienteejemploseobservacomotresresidenciascondistintoscaracteresdeplaza
logranunificarloentanslouno:


Figura6.3.EjemplodelatablaCaracterPlazaconcdigounificado
Cabedestacarquelaaplicacindeestemtodoserposiblesiemprequeelcompromiso
entreresidenciasyadministracincentral(dondeestinstaladoResiPlusBI)seafuerte,y
hayaunabuenacomunicacin.
Apesardelopesadodelatarea,conellasepodrnconseguirlosmejoresresultados,ya
quelavariacinenelnombrederegistrosendistintasresidenciasesalgohabitualenel
entornoestudiado.

6.4.Desarrolloeimplementacindeindicadores

En este punto vamos a desarrollar e implementar una serie de indicadores de negocio


relacionados con el programa Resiplus. Concretamente, se van a implementar tres para
observar las diferencias en el proceso de implementacin dependiendo del tipo de
indicador.
Unavezfinalizados,utilizaremoslostresindicadoresimplementadosenestepuntojunto
conelindicadordeVisitasFamiliaresutilizadoenlostutorialesdelasherramientaspara
elaborar un posible dashboard para nuestro cliente y crearemos un trabajo que se
encarguedeactualizarlosdatosdelosindicadoresdiariamente.
Dado que el proceso de implementacin de un indicador consta de diversas tareas, en
cadaapartadodelossiguientestrataremosunadeellas.

6.4.1. Descripcindelosindicadores
Ladescripcindelosindicadoresvienedadaenlaplantilladelindicadorquenosenvael
cliente. Sin embargo, como lo que interesa en este captulo son los detalles de
implementacin de los indicadores, no se va a adjuntar esa plantilla ni el resto de
documentos originados durante el proceso de desarrollo: documento de ayuda,
documento de anlisis y documento de desarrollo. En lugar de estos documentos, a
continuacin se indica la informacin relevante de cada indicador, la cual incluye una

56

brevedescripcindelmismo,unalistadecosasquesedeseasaberacercadelindicadory
ladefinicindelasmedidasyKPIs.
Losindicadoresaimplementarsonlossiguientes:
IndicadorlcerasCuras
Muestraeltotaldecurasdelcerasquesehanrealizadoenunaresidencia.
Concretamentesedeseasaberlasiguienteinformacin:
Descripcindelalcera.
Fechaenlaqueseproducelacura.
Residentequepadecelalcerayalqueselerealizalacura.
Carcterplazadelresidenteenlafechadelacura.
Tipologadelresidenteenlafechadelacura.
Centroalqueperteneceelresidente.
Localizacindelacura.
Tipodelalcerapadecida.
Procedenciadelalcera,esdecir,dndeleaparecialresidente.
Estadio/Gravedaddelacura.
Tamaodelalcera.
Silalceraestcuradaono.
Enloquerespectaalasmedidas,sedeseasaberelnmerototaldecurasrealizadasyel
tamaomediodeunalcera.
Porotraparte,losKPIsdefinidosparaesteindicadorson:
El tamao medio de las lceras para la Residencia 1 se espera que sea menor o
iguala3.Losvalorescomprendidosentre3y4nosondeltodomalosylosvalores
apartirde4sonmalos.
El tamao medio de las lceras para la Residencia 2 se espera que sea menor o
iguala1.Losvalorescomprendidosentre1y2nosondeltodomalosylosvalores
apartirde2sonmalos.

IndicadorDiferenciaSeguimientosProfesionales
Muestra el nmero total de das transcurridos entre los seguimientos/evaluaciones de
cadatipodeprofesional(mdico,psiclogo,etc)aunresidente.
Concretamentesedeseasaberlasiguienteinformacin:
Residentealqueselerealizaunseguimiento.
Carcterplazadelresidenteenlafechadelseguimiento.
Tipologadelresidenteenlafechadelseguimiento.
Centroalqueperteneceelresidente.
Fechaenlaqueserealizaelseguimiento.

57

Profesionalquerealizaelseguimiento.
Dastranscurridosdesdeelltimoseguimientorealizadoporeseprofesional.
En lo que respecta a las medidas, se desea saber el nmero total de das transcurridos
entreseguimientosprofesionalesalosresidentes,eltiempomnimotranscurridoentre2
seguimientos de un mismo profesional, el tiempo mximo transcurrido entre 2
seguimientos de un mismo profesional y el tiempo medio transcurrido entre
seguimientos.
Porotraparte,losKPIsdefinidosparaesteindicadorson:
ElnmeromediodedastranscurridosentredosseguimientosparalaResidencia
1seesperaqueseamenoroiguala50.Losvalorescomprendidosentre50y75no
sondeltodomalosylosvaloresapartirde75sonmalos.
ElnmeromediodedastranscurridosentredosseguimientosparalaResidencia
2seesperaquesemenoroiguala30.Losvalorescomprendidosentre30y40no
sondeltodomalosylosvaloresapartirde40sonmalos.

IndicadorEstanciaUnidades
Muestraelnmerototaldedasquelosresidentespasanenlasdiferentesunidadesdela
residencia o de un hospital (enfermera, psiquiatra, etc.) y a su vez, permite consultar
paraunafechacualquiera,cantosdasllevaunresidenteenesaunidad.
Concretamentesedeseasaberlasiguienteinformacin:
Residentequeseencuentraenlaunidad.
Carcterplazadelresidenteenlafechaqueseencuentraenlaunidad.
Tipologadelresidenteenlafechaqueseencuentraenlaunidad.
Centroalqueperteneceelresidente.
Fechaenlaqueelresidenteseencuentraenlaunidad.
Unidadenlaqueseencuentraelresidente.Sedebeindicarsilaunidadesinternao
externa.
Tiempoquellevaelresidenteenlaunidadaesafecha.
En lo que respecta a las medidas, se desea saber el nmero totalde das deestancia en
unidades,eltiempomnimoqueunresidentepasaenunaunidad,eltiempomximoque
un residente pasa en una unidad y el tiempo medio de estancia de un residente en una
unidad.
Porotraparte,losKPIsdefinidosparaesteindicadorson:
EltiempomediodeestanciadeunresidenteenunaunidadparalaResidencia1se
esperaqueseamenoroiguala100.Losvalorescomprendidosentre100y200no
sondeltodomalosylosvaloresapartirde200sonmalos.
El tiempo el tiempo mximo que un residente pasa en una unidad para la
Residencia 1 se espera que sea menor o igual a 365. Los valores comprendidos
entre365y730nosondeltodomalosylosvaloresapartirde730sonmalos.
Dadaestainformacin,sededucequelosposibletiposdeindicadoresson:
Indicadoresquecalculantotalesenfuncindevariasdimensiones.

58

EnestegrupoincluimoselindicadordeUlcerasCurasyeldeVisitasFamiliares.La
mayoradelosindicadoressolicitadosporlosclientessondeestetipo.
Indicadores que calculan la diferencia de das transcurridos entre dos eventos
talescomoseguimientos,escalasdevaloracin,etc.
EnestegrupoincluimoselindicadordeDiferenciaSeguimientosProfesionales.
Indicadoresquemuestranunaevolucin.
EnestegrupoincluimoselindicadordeEstanciaUnidades.Estosindicadoresson
muy demandados, ya que con ellos el cliente est informado de lo que pasa
diariamenteenloscentros(residentesenelhospital,lcerasactivas,etc).

6.4.2. Hechosydimensionesdelosindicadores
Segn la informacin del punto anterior, la definicin de las tablas de hechos y
dimensiones necesarias para los indicadores sera la que aparece a continuacin. Se
indican las dimensiones que componen cada uno de los hechos, los atributos que
componen cada una de estas dimensiones, el nombre de las tablas de las que vamos a
extraerlainformacinyloscamposqueesnecesarioaadiralastablasdehechospara
podercalcularlasmedidas.
Puesto que los indicadores comparten algunas de sus dimensiones, a continuacin para
las dimensiones que son compartidas slo se indican sus atributos en uno de los
indicadores.EntreentasdimensionesseencuentranCentro,Tiempo,Residente,Carcter
PlazayTipologa.
Enloquerespectaalatcnicadediseoutilizada,usaremoselesquemaencopodenieve
porquealgunadelasdimensionesincluyeclavesqueapuntanaotrasdimensiones.
IndicadorlcerasCuras
a) Dimensiones:
Tiempo(UtilizaremoselcampoFechaHoradelatablaUlcerasCuras)
Atributos:IDTiempo,Fecha,Ao,MesID,Mes,Trimestre,Semana,NumDiaSemana,
DiaSemana,NombreCompleto.
Centro(UtilizaremoslatablaDatosResidencia)
Atributos:IDCentro,CodigoUnificado,Nombre,Ciudad,Provincia,Comunidad,Pais.
Carcter Plaza (Utilizaremos el campo IDResidente de la tabla UlcerasCuras para
posteriormente atacar a la tabla ResiHisCaracterPlaza con ese id y la fecha que
indicaelcampoFechaHorayobtenerelcarcterplazadelresidenteenesafecha)
Atributos:IDCaracterPlaza,CodigoUnificado,CaracterPlaza.
Tipologa (Utilizaremos el campo IDResidente de la tabla UlcerasCuras para
posteriormente atacar a la tablaResiHisTipologiasPlaza con ese id y la fecha que
indicaelcampoFechaHorayobtenerlatipologadelresidenteenesafecha)
Atributos:IDTipologia,CodigoUnificado,Tipologia.
Residente(UtilizaremoselcampoIDResidentedelatablaUlcerasCurasparaluego
obtenereliddelalmacncorrespondienteparaeseresidente)
Atributos:IDResidente,CodigoUnificado,Nombre,Sexo,FechaIngreso.

59

lcera(UtilizaremoselcampoIDUlceradelatablaUlcerasCurasparaenlazarcon
latablaUlceras)
Atributos:IDUlceras,CodigoUnificado,Nombre.
Tipolcera(UtilizaremoselcampoIDUlceraTipondelatablaUlcerasparaenlazar
conlatablaUlcerasTipos)
Atributos:IDUlcerasTipos,CodigoUnificado,UlcerasTipos.
Procedencia lcera (Utilizaremos el campo IDUlceraProcedencia de la tabla
UlcerasparaenlazarconlatablaUlcerasProcedencias)
Atributos:IDUlcerasProcedencias,CodigoUnificado,UlcerasProcedencias.
lceraCurada(UtilizaremoselcampoCuradodelatablaUlceras)
Atributos:IDUlceraCurada,UlceraCurada.
En este caso no precisamos de tener un cdigo unificado porque todas las
residencias tienen los mismos valores para ese campo y por tanto podemos
rellenarladimensinconlosvaloresutilizadosporelprograma.
Localizacin Cura (Utilizaremos el campo IDLocalizacion de la tabla Ulceras para
enlazarconlatablaCurasLocalizacion)
Atributos:IDCurasLocalizacion,CodigoUnificado,CurasLocalizacion.
Estadio Cura (Utilizaremos el campo IDEstadio de la tabla UlcerasCuras para
enlazarconlatablaCurasEstadio)
Atributos:IDCurasEstadio,CodigoUnificado,CurasEstadio.
b) Camposparalasmedidas:
Tamaolcera(UtilizaremoselcampoTamaodelatablaUlcerasCuras)
Por tanto la tabla de hechos del indicador se va a componer de los siguientes campos:
IDUlceras, IDTiempo, IDResidente, IDCaracterPlaza, IDTipologia, IDCentro,
IDCurasLocalizacion, IDUlcerasTipos, IDUlcerasProcedencias, IDCurasEstadio,
IDUlceraCuradayTamaoUlcera.

IndicadorDiferenciaSeguimientosProfesionales:
a) Dimensiones:
Tiempo (Utilizaremos el campo FechaHora de cada una de las tablas de
seguimientos. Dichas tablas son las siguientes: ResiPsiSeguimientos,
ResiFisSeguimientos, ResiDieSeguimientos, ControlesSeguimientos,
ResiEnfSeguimientos, ResiTsoSeguimientos, ResiAscSeguimientos,
ResiTocSeguimientos, ResiSupSeguimientos, ResiDirSeguimientos,
ResiAuxSeguimientos, ResiAesSeguimientos, ResiPedSeguimientos y
ResiPodSeguimientos)
Centro(UtilizaremoslatablaDatosResidencia)
Carcter Plaza (Utilizaremos el campo IDResidente de las tablas de seguimientos
para posteriormente atacar a la tabla ResiHisCaracterPlaza con ese id y la fecha
que indica el campo FechaHora y obtener el carcter plaza del residente en esa
fecha)

60

Tipologa (Utilizaremos el campo IDResidente de las tablas de seguimientos para


posteriormente atacar a la tablaResiHisTipologiasPlaza con ese id y la fecha que
indicaelcampoFechaHorayobtenerlatipologadelresidenteenesafecha)
Residente(UtilizaremoselcampoIDResidentedelastablasdeseguimientospara
luegoobtenereliddelalmacncorrespondienteparaeseresidente)
TipoProfesional(AsignaremosunIDTipoProfesionalalosdatossegnlatablade
seguimientosutilizada)
Atributos:IDTipoProfesional,TipoProfesional.
b) Camposparalasmedidas:
Tiempo Transcurrido (Pondremos el nmero de das transcurridos entre 2
seguimientosdeunmismoprofesionalaunmismoresidente)
Por tanto la tabla de hechos del indicador se va a componer de los siguientes campos:
IDTiempo, IDResidente, IDCaracterPlaza, IDTipologia, IDCentro, IDTipoProfesional y
TiempoTranscurrido.

IndicadorEstanciaUnidades:
a) Dimensiones:
Tiempo(UtilizaremoselcampoFechaIngresodelatablaResiUniEstancias)
Centro(UtilizaremoslatablaDatosResidencia)
Carcter Plaza (Utilizaremos el campo IDResidente de la tabla ResiUniEstancias
para posteriormente atacar a la tabla ResiHisCaracterPlaza con ese id y la fecha
que indica el campo FechaHora y obtener el carcter plaza del residente en esa
fecha)
Tipologa (Utilizaremos el campo IDResidente de la tabla ResiUniEstancias para
posteriormente atacar a la tablaResiHisTipologiasPlaza con ese id y la fecha que
indicaelcampoFechaHorayobtenerlatipologadelresidenteenesafecha)
Residente (Utilizaremos el campo IDResidente de la tabla ResiUniEstancias para
luegoobtenereliddelalmacncorrespondienteparaeseresidente)
Unidad(UtilizaremoselcampoIDUnidaddelatablaResiUniEstanciasparaenlazar
conlatablaUnidades)
Atributos:IDUnidad,CodigoUnificado,Unidad,IDTipoUnidad.
TipoUnidad(UtilizaremoselcampoTipodelatablaUnidades)
Atributos:IDTipoUnidad,TipoUnidad.
En este caso no precisamos de tener un cdigo unificado porque todas las
residencias tienen los mismos valores para ese campo y por tanto podemos
rellenarladimensinconlosvaloresutilizadosporelprograma.
Esta dimensin se considera una subdimensin, ya que no va a aparecer
directamente referenciada desde la tabla de hechos. De hecho, ser referenciada
desdeladimensinUnidadatravsdelcampoIDTipoUnidad.
b) Camposparalasmedidas:
TiempoEstancia(Pondremoselnmerodedasquellevaelresidenteenlaunidad
enciertafecha)

61

TotalEstancia(Pondremoselnmerototaldedasquepasaelresidentedurante
unaestanciaenunaunidad)
MinEstancia(Pondremoselperodomnimoquepasaunresidenteenunaunidad)
Por tanto la tabla de hechos del indicador se va a componer de los siguientes campos:
IDTiempo, IDResidente, IDCaracterPlaza, IDTipologia, IDCentro, IDUnidad,
TiempoEstancia,TotalEstanciayMinEstancia.

6.4.3. CreacinpaquetesETL
A continuacin vamos a crear los paquetes ETL necesarios para el desarrollo de los
indicadores. Concretamente, estos paquetes han de crear la estructura del almacn de
datos, rellenar los cdigos unificados de las dimensiones que lo requieran, rellenar las
dimensionesestticasquenocogeninformacindetablasmaestrasyfinalmenterellenar
lastablasdehechosdelosindicadores.
Adems, en ocasiones ser necesario disponer de tablas auxiliares para obtener
informacinqueesconsultadafrecuentemente(tipologadeunresidenteenciertafecha)
ylospaquetesETLtambinhandeencargarsedecrearyrellenarestastablas.
Dadoqueelnmerodetareasarealizareselevado,vamosacrearvariospaquetesETL.El
primerodeellosseencargardeconstruirelalmacndedatosyrellenarlasdimensiones
estticas; el segundo rellenar las dimensiones que utilizan cdigo unificado pero su
informacin no se introduce mediante tablas maestras (residentes, lceras) y luego
tendremosunoporcadaindicador.
Puesto que en el tutorial de Integration Services se detalla paso a paso cmo crear un
paqueteETL,enestepuntonoentraremosendetalleencmorealizarlasaccionesvistas
enesetutorial(crearunproyecto,crearunaconexin,etc).
Antes de comenzar la implementacin de los paquetes ETL comentados anteriormente
necesitamos crear un proyecto SSIS. Como ya creamos uno para el indicador de Visitas
Familiares,utilizaremosesemismoproyecto.
Aadimos 5 nuevos paquetes SSIS al proyecto y los renombramos para que tengan un
nombre significativo. Los nombres de dichos paquetes sern Almacen, Dimension,
HechoUlcerasCuras, HechoDiferenciaSeg y HechoEstanciaUnidades. Los pasos a seguir
son:
1. Seleccionamos la carpeta Paquetes SSIS en el Explorador de soluciones,
hacemos clic con el botn derecho y seleccionamos Nuevo Paquete SSIS.
Automticamentesecrearunnuevopaqueteconunnombrepordefecto.
2. Seleccionamoselpaqueterecincreadoylecambiamoselnombreenlaventana
Propiedades.
Elproyectoenelqueestamostrabajandoconstadedosconexiones,unaalabasededatos
operacionaldelaqueseextraenlosdatosparaelindicadoryotraalalmacndedatos.No
obstante, necesitamos aadir dos nuevas conexiones: una que se conecte a la base de
datosmasterdenuestramquinaparapodercrearlastablasdelalmacndedatosyotra
que se conecte a la base de datos DatosUsuarios para poder obtener el nombre del
centroparaelquelanzamoslospaquetes.
Despusdecrearlospaquetesnecesariosylasconexionesqueutilizarnuestroproyecto,
elExploradordesoluciones(Figura6.4.)mostrarlosiguiente:
62


Figura6.4.Exploradordesoluciones
Hayquetenerencuentaquesiqueremoslanzarlospaquetesparamsdeunaresidencia,
tendremosquecambiarlaconfiguracindelaconexinResidenciaparaqueapunteala
basededatosdelnuevocentroparaelquequeremoslanzarlospaquetesantesdelanzar
dichospaquetes.

PaqueteAlmacen
El paquete Almacen es el encargado de construir el almacn de datos y rellenar las
dimensionesestticas.Dadoqueeselencargadodecrearlastablasdelalmacndedatos,
eselpaquetequeprimeroseejecuta.Seejecutaalprincipiodelprocesoynosevuelvea
ejecutar hasta que no se necesita introducir cambios en el paquete para crear nuevas
tablasenelalmacnosedeseaborrarelcontenidodelalmacndedatos.
Endefinitiva,lastareasquedeberealizarestepaqueteson:
Eliminarlastablasauxiliares.
Eliminar las tablas de hechos y de las dimensiones cuyo cdigo unificado es
rellenadoporunpaqueteETL(residentes,lceras).
Crearlastablasdedimensiones.
Crearlastablasdehechos.
Crearlastablasauxiliares.
Rellenardimensionesestticas.
Reiniciarlassemillasdeaquellastablascuyocontenidoesborradoparaquelosid
empiecenen1.
LoprimeroquetenemosquehaceriralpaneldeAdministradoresdeconexin,hacer
clicenNuevaconexindesdeorigendedatosyaadirlossiguientesorgenesdedatos:
AlmacenyConexin.
Cuandotengamoslasconexionesconfiguradas,pasamosaconstruirelflujodecontrolde
nuestropaquete,elcualvaaestarcompuestodelastareasindicadaspreviamente.
Para construir el flujo de control utilizaremos contenedores de secuencias, ya que
agrupan tareas en una unidad lgica de trabajo. Dentro de estos contenedores de

63

secuenciasutilizaremostareasqueejecutanSQLparaintroducirlosscriptsdelabasede
datos.
Dichoesto,arrastramos6contenedoresdesecuenciasdesdeelcuadrodeherramientasa
la superficie de diseo de nuestro flujo de control y los conectamos unos con otros
arrastrandolasflechasverdes.
Acontinuacinsedetallanlasaccionesarealizarparacadaunodeestoscontenedores:
EliminarTablasAuxiliares
Esta tarea es la encargada de borrar las tablas auxiliares del almacn de datos. Se
componedetrestareas,tantascomotablasauxiliaresnecesitamosparalosindicadores,
cada una de las cuales contiene el cdigo SQL necesario para borrar una tabla auxiliar
(Figura6.5.).


Figura6.5.ContenedordesecuenciaEliminarTablasAuxiliares
Dadoquelosindicadoresnecesitaninformacinsobrelatipologa,carcterplazaoestado
deunresidenteparaunafechacualquierayestainformacinnosealmacenatalcualenel
programa, necesitamos tablas auxiliares para almacenar esta informacin. El hecho de
que sean tres tablas y no una solamente es porque preferimos tener la informacin
separada.
Pararellenarelcontenedordesecuenciahayquehacerlosiguiente:
1. ArrastramosunatareaqueejecutaSQLdesdeelcuadrodeherramientasalinterior
delcontenedordesecuencias.
2. Hacemosdobleclicsobrelatareaparaeditarlatarea(Figura6.6.)yrellenamosel
campo Nombre, seleccionamos la conexin que utiliza, pulsamos el botn que
aparece en el campo del comando SQL para introducir el cdigo SQL que debe
ejecutaryunavezintroducidopulsamosAceptar.
ElcdigoSQLquedebeejecutarcadaunadeellasdebecomprobarquelatablaen
cuestin existe y si existe, proceder a su borrado. A continuacin se muestra el
cdigodelatareaEliminarCarcterPlazaamododeejemplo:
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[CaracterPlaza]') AND type in (N'U'))
DROP TABLE [dbo].[CaracterPlaza]

64


Figura6.6.EditortareaSQL
3. Repetimoslospasos12conlasotrasdostareas.
4. Renombramos el nombre del contenedor de secuencias haciendo clic sobre el
nombre o haciendo clic con el botn derecho, seleccionando la ventana
Propiedadesycambiandoelnombre.

EliminarHechosyDimensiones
Estatarea(Figura6.7.)eslaencargadadeborrarlastablasdehechosylastablasdelas
dimensionescuyocdigounificadoesrellenadoautomticamenteconunpaqueteETL,ya
que dicho cdigo unificado es susceptible de cambios en su construccin. Estas
dimensionessonlceras,residenteycentro.


Figura6.7.ContenedordesecuenciaEliminarHechosyDimensiones

65

Pararellenarelcontenedordesecuenciahacemoslomismoqueantesconladiferenciade
queahoranecesitamosestablecerunarelacindeprecedenciaentreambastareas.Deno
hacerloseproduciraunerrorporquelas dimensionesnopuedenserborradasantesque
lastablasdehechos,yaquestasltimasreferencianalasdedimensiones.
El cdigo SQL a introducir en las tareas es similar al anterior y lo nico que hay que
cambiareselnombredelatablasqueseborran.

CrearDimensiones
Estatareaeslaencargadadecreartodaslastablasdedimensionesdelalmacndedatos.
Secomponedetantastareascomotablasdedimensionesnecesitamoscrear(Figura6.8.).


Figura6.8.ContenedordesecuenciaCrearDimensiones
Pararellenarelcontenedordesecuenciahacemoslomismoqueantes.Simembargo,en
estecasoelcdigoSQLaintroducirenlastareasdifiere,yaqueahoraloquehacemoses
crearlastablasconsusatributos.Ademsesposiblequehayarelacionesdeprecedencia
entre las dimensiones como la que se observa entre Dim Tipo Unidad y Unidad y eso
tambinhayqueindicarloendichocdigo.Enelcasodeestasdosdimensiones,DimTipo
Unidad ha de ser creada previamente porque se trata de una subdimensin de Dim
Unidad.
ElcdigoSQLdeladimensinUnidadseraelsiguiente.Enlaparecenenotrocolorlas
referenciasalasotrastablas:
if not exists (Select * From information_schema.tables where table_name='Dim_Unidad')
CREATE TABLE [dbo].[Dim_Unidad](
[IDUnidad] [int] IDENTITY(1,1) NOT NULL,
[CodigoUnificado] [nvarchar](19) NULL,
[Unidad] [nvarchar](50) NULL,
[IDTipoUnidad] [int] NOT NULL
PRIMARY KEY CLUSTERED
(
[IDUnidad] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON,
ALLOW_PAGE_LOCKS = ON) ON [PRIMARY],

66

CONSTRAINT [IX_Dim_Unidad_CodigoUnificado] UNIQUE NONCLUSTERED


(
[CodigoUnificado] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON,
ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[Dim_Unidad] WITH CHECK ADD FOREIGN KEY([IDTipoUnidad])
REFERENCES [dbo].[Dim_TipoUnidad] ([IDTipoUnidad])
GO
Elcdigodelrestodetareasessimilarperonoincluyelareferenciaaotratabla.

CrearHechos
Esta tarea es la encargada de crear todas las tablas de hechos del almacn de datos. Se
componedetantastareascomotablasdehechosnecesitamoscrear(Figura6.9.).


Figura6.9.ContenedordesecuenciaCrearHechos
Para rellenar el contenedor de secuencia, arrastramos las tareas de SQL al interior del
contenedoryeditamossuspropiedades.Enestecaso,elcdigoSQLdedichastareasdebe
crear las tablas de hechos indicando las referencias de estas tablas a las tablas de
dimensiones.
ElcdigoSQLdelatareaquecreaelhechoSeguimientosProfesionaleseselsiguiente:
if not exists (Select * From information_schema.tables where table_name='Fact_UlcerasCUras')
CREATE TABLE [dbo].[Fact_UlcerasCuras](
[IDUlceras] [int] NOT NULL,
[IDTiempo] [int] NOT NULL,
[IDResidente] [int] NOT NULL,
[IDCaracterPlaza] [int] NULL,
[IDTipologia] [int] NULL,
[IDCentro] [int] NOT NULL,
[IDCurasLocalizacion] [int] NULL,
[IDUlcerasTipos] [int] NULL,
[IDUlcerasProcedencias] [int] NULL,
[IDCurasEstadio] [int] NULL,
[TamanoUlcera] [float] NULL,
[IDUlceraCurada] [int] NULL

67

) ON [PRIMARY]
GO
ALTER TABLE [dbo].[Fact_UlcerasCuras] WITH CHECK ADD FOREIGN KEY([IDCaracterPlaza])
REFERENCES [dbo].[Dim_CaracterPlaza] ([IDCaracterPlaza])
GO

ALTER TABLE [dbo].[Fact_UlcerasCuras] WITH CHECK ADD FOREIGN KEY([IDCentro])


REFERENCES [dbo].[Dim_Centro] ([IDCentro])
GO

ALTER TABLE [dbo].[Fact_UlcerasCuras] WITH CHECK ADD FOREIGN KEY([IDCurasLocalizacion])


REFERENCES [dbo].[Dim_CurasLocalizacion] ([IDCurasLocalizacion])
GO

ALTER TABLE [dbo].[Fact_UlcerasCuras] WITH CHECK ADD FOREIGN KEY([IDCurasEstadio])


REFERENCES [dbo].[Dim_CurasEstadio] ([IDCurasEstadio])
GO

ALTER TABLE [dbo].[Fact_UlcerasCuras] WITH CHECK ADD FOREIGN KEY([IDResidente])


REFERENCES [dbo].[Dim_Residente] ([IDResidente])
GO

ALTER TABLE [dbo].[Fact_UlcerasCuras] WITH CHECK ADD FOREIGN KEY([IDTiempo])


REFERENCES [dbo].[Dim_Tiempo] ([IDTiempo])
GO

ALTER TABLE [dbo].[Fact_UlcerasCuras] WITH CHECK ADD FOREIGN KEY([IDTipologia])


REFERENCES [dbo].[Dim_Tipologia] ([IDTipologia])
GO

ALTER TABLE [dbo].[Fact_UlcerasCuras] WITH CHECK ADD FOREIGN KEY([IDUlceras])


REFERENCES [dbo].[Dim_Ulceras] ([IDUlceras])
GO

ALTER TABLE [dbo].[Fact_UlcerasCuras] WITH CHECK ADD FOREIGN KEY([IDUlcerasTipos])


REFERENCES [dbo].[Dim_UlcerasTipos] ([IDUlcerasTipos])
GO

ALTER TABLE [dbo].[Fact_UlcerasCuras] WITH CHECK ADD FOREIGN KEY([IDUlcerasProcedencias])


REFERENCES [dbo].[Dim_UlcerasProcedencias] ([IDUlcerasProcedencias])
GO

68

ALTER TABLE [dbo].[Fact_UlcerasCuras] WITH CHECK ADD FOREIGN KEY([IDUlceraCurada])


REFERENCES [dbo].[Dim_UlceraCurada] ([IDUlceraCurada])
GO

El cdigo del resto de tareas es similar pero cambian las referencias a las tablas de
dimensiones,yaquenotodosloshechostienenlasmismasdimensiones.

CrearTablasAuxiliares
Estatareaeslaencargadadecreartodaslastablasauxiliares.Secomponedetrestareas
porquedemomentoslosenecesitantrestablasauxiliares(Figura6.10).


Figura6.10.ContenedordesecuenciaCrearTablasAuxiliares
Para rellenar el contenedor de secuencia, arrastramos las tareas de SQL al interior del
contenedoryeditamossuspropiedades.Enestecaso,elcdigoSQLdedichastareases
comoelsiguiente:
if not exists (Select * From information_schema.tables where table_name='Tipologias')
CREATE TABLE [dbo].[Tipologias](
[IDResidenteAlmacen] [int] NULL,
[Fecha] [datetime] NULL,
[IDTipologiaAlmacen] [int] NULL,
) ON [PRIMARY]
Lastablasauxiliaresslovanaestarcompuestasdetrescolumnas:unaparaelresidente,
otra para la fecha y la ltima para almacenar la tipologa, carcter plaza o estado. Esta
ltimacolumnaeslaquevaradeunatablaauxiliaralaotra.

Rellenardimensiones
Estatarea(Figura6.11.)eslaencargadaderellenarlasdimensionesestticas,esdecir,las
dimensiones que no se rellenan por medio de las tablas maestras que proporciona la
interfaz del programa Resiplus BI. Estas dimensiones se caracterizan porque no tienen
cdigo unificado, ya que los valores son comunes para todas las residencias. Debido a
esto,lasdimensionesserellenanconlosvaloresutilizadosporelprogramaResipluspara
poder enlazar con las tablas directamente, sin necesidad de comparar ningn tipo de
cdigo.
Enestegrupotambinseincluyenlasdimensionesquesecreanconobjetodediferenciar
datos. Un ejemplo de este tipo de dimensiones es la Dim Tipo Profesional, la cual no se
enlaza con ninguna otra tabla, sino que se utiliza para identificar la tabla de la que
procedenciertosdatostalycomoveremosenelpaquetedeSeguimientosProfesionales.
Dichatablaserellenaconlosdiferentestiposdeprofesionalesquerealizanseguimientos.

69


Figura6.11.ContenedordesecuenciaRellenarDimensiones
Para rellenar el contenedor de secuencia, arrastramos las tareas de SQL al interior del
contenedoryeditamossuspropiedades.Enestecaso,elcdigoSQLdedichastareases
comoelsiguiente:
if not exists (Select * From Dim_EstadoResidente)
begin
DBCC CHECKIDENT ('Dim_EstadoResidente' ,RESEED,1)
INSERT INTO Dim_EstadoResidente
(EstadoResidente)
VALUES ('Baja Voluntaria')

INSERT INTO Dim_EstadoResidente


(EstadoResidente)
VALUES ('Expulsado')

INSERT INTO Dim_EstadoResidente


(EstadoResidente)
VALUES ('Fallecido')

INSERT INTO Dim_EstadoResidente


(EstadoResidente)
VALUES ('Hospital')

INSERT INTO Dim_EstadoResidente


(EstadoResidente)
VALUES ('Residencia')

INSERT INTO Dim_EstadoResidente


(EstadoResidente)
VALUES ('Ausente')

End

70

Aparecern tantas instrucciones de INSERT como valores queramos aadir a la


dimensin. Segn esto los posibles estados de un residente son: de baja voluntaria,
expulsado,fallecido,enelhospital,enla residenciaoausente.Adems,sehaaadidouna
instruccinparaquelosiddeestosestadosempiecenen1siempre.
Una vez hemos terminado de rellenar los contenedores de secuencia, para acabar el
desarrollodeestepaquetelonicoquefaltaesarrastrarunatareaqueejecuteSQLala
superficie de diseo del flujo de control. Dicha tarea ser la encargada de reiniciar las
semillasdeaquellastablasdedimensionescuyocontenidofueeliminadoalprincipiopara
quelosidempiecenen1.Elcdigodeestatareaseraelsiguiente:
DBCC CHECKIDENT ('Dim_Residente' ,RESEED,1)
DBCC CHECKIDENT ('Dim_Centro' ,RESEED,1)
DBCC CHECKIDENT ('Dim_Ulceras' ,RESEED,1)

PaqueteDimension
El paquete Dimension es el encargado de rellenar las dimensiones que utilizan cdigo
unificado pero su informacin no se introduce mediante tablas maestras (centro,
residentesylceras)ydecargarlosdatosenlastablasauxiliarescreadaspreviamente.
Se ejecuta tras el paquete Almacen y tantas veces como residencias queremos utilizar
paralosresultadosdenuestrosindicadores,esdecir,siqueremoslanzarlosindicadores
para dos centros, debemos lanzar este paquete para cada uno de los centros, previo
cambiodelaconfiguracindelaconexinResidencia.
Endefinitiva,lastareasquedeberealizarestepaqueteson:
Obtenerciertasvariablesquenosayudenaidentificarelnombredelcentroparael
quevamosalanzarelpaquete.
Crear y rellenar los cdigos unificados en las tablas de la base de datos
operacional.
Cargarlasdimensionesquenoserellenanatravsdelastablasmaestras.
Cargarlastablasauxiliares.
Antes de empezar con el desarrollo del paquete, debemos acceder a la interfaz del
ResiplusBIyrellenarlastablasmaestrasquenecesitamosparanuestrosindicadores.Las
tablas a rellenar son las que corresponden a las siguientes dimensiones:CarcterPlaza,
Tipologa, Curas Localizacin, Curas Estadio, lceras Procedencias, lceras Tipos y
Unidad.
Para todas estas tablas, el campo Cdigo Unificado ya ha sido creado y rellenado en su
tabla homnima en la base de datos operacional y por eso solamente tenemos que
rellenarlastablasdelalmacndedatos.
LaFigura6.12.muestralainterfazdelResiplusBIpararellenarlastablasmaestras.

71


Figura6.12.InterfazResiplusBIpararellenarlatablamaestraUlcerasProcedencias
A continuacin, vamos al panel de Administradores de conexin, hacer clic en Nueva
conexin desde origen de datos y aadir los siguientes orgenes de datos: Almacen,
ResidenciayDatosUsuarios.
Cuandotengamoslasconexionesconfiguradas,necesitamoscrearunaseriedevariables
(Figura6.13.)quevamosautilizarposteriormenteenelflujodecontrol.Estasvariables
seutilizanprincipalmenteenlastareasencargadasdeobtenerelnombredelcentropara
elquequeremoslanzarelpaquete.


Figura6.13.Variablesdefinidasenelpaquete
Ahoraconstruiremoselflujodecontroldenuestropaquete,elcualvaaestarcompuesto
delastareasindicadaspreviamente.
Para construir el flujo de control utilizaremos contenedores de secuencias, ya que
agrupan tareas en una unidad lgica de trabajo. Dentro de estos contenedores de
secuenciasutilizaremostareasqueejecutanSQLytareasdeflujodedatos.
Dichoesto,arrastramos4contenedoresdesecuenciasdesdeelcuadrodeherramientasa
la superficie de diseo de nuestro flujo de control y los conectamos unos con otros
arrastrandolasflechasverdes.
Lasaccionesarealizarparacadaunodeestoscontenedores:
Obtencindevariables
Estatareaeslaencargadadedarvaloralasvariablesdefinidasanteriormente.Constade
dos tareas de flujos de datos entre las que existe una relacin de precedencia (Figura
6.14.).

72


Figura6.14.ContenedordesecuenciaObtencinVariables
Pararellenarelcontenedordesecuenciahayquehacerlosiguiente:
1. Arrastramos una tarea de flujo de datos desde el cuadro de herramientas al
interiordelcontenedordesecuencias.
2. HacemosclicsobrelatareayseleccionamoslapestaaFlujodedatos.
3. Arrastramos un Origen OLE DB y un Componente de script a la superficie de
diseo del flujo de datos y los conectamos con la flecha verde (Figura 6.15.).
Utilizamos estas transformaciones porque son las que necesitamos en este caso
perostasserndistintassegnloquesevayaahacer.


Figura6.15.FlujodedatosasociadoalatareaAdquiereNombre
El funcionamiento de este flujo de datos es el siguiente: accede a la tabla
DatosResidencia utilizando la conexin Residencia para adquirir el nombre de la
residenciayrealizarciertoformateodelmismoyelnombreresultanteloguarda
enlavariableNombrepormediodeunsencilloscript.
4. Repetimoslospasos13conlaotratareayconstruimosunflujodedatossimilar
queaccedaalatablaBDsutilizandolaconexinDatosUsuariosyrellenelavariable
CodigoUnificado.
5. Renombramoselnombredelcontenedordesecuenciasydelastareasdeflujode
datosaccediendoalaventanadePropiedades.
Enestecasoconcreto,nosedetallaelcontenidodelosscriptsnidelasconsultasdelos
orgenesdedatosporquesondifcilesdecomprenderasimplevistayslounexpertoen
elprogramalasentendera.

CrearyRellenarCdigosUnificados
Estatarea(Figura6.16.)eslaencargadadecrearloscamposdecdigounificadoqueno
existenenlabasededatosoperacionalyrellenardichoscampos.Constadecuatrotareas

73

que ejecutan cdigo SQL entre las que se existen relaciones de precedencia, ya que
primerosecreaelcampoyluegoserellena.
Esta accin es necesaria para las dimensiones que no se rellenan a travs de tablas
maestras.Anteriormenteindicamosqueestasdimensioneserancentro,residenteylcera
peroparacentronosehaceporquenoexisteningunatablacontodalalistadecentros.


Figura6.16.ContenedordesecuenciaCrearyRellenarCodigosUnificados
Para rellenar el contenedor de secuencia, arrastramos las tareas de SQL al interior del
contenedor y editamos sus propiedades. Las tareas que crean el campo para el cdigo
unificadotienenuncdigosimilaraste:
if not exists (select * from information_schema.columns where Table_name='Residentes' and
column_name='CodigoUnificado')
alter table Residentes
add CodigoUnificado nvarchar(50)
Encambio,paralastareasquerellenanelcdigounificadosucdigoserasimilaraste:
declare @bd nvarchar(50)
select @bd=(select distinct replace(replace(table_catalog,'DatosResidencia','-'),'_','') from information_schema.tables)
UPDATE Residentes
SET CodigoUnificado=convert(nvarchar,IDResidente)+@bd
Conestecdigo,loscdigosunificadosdelosresidentesserndelaformaIDResidente
NombreBD.

CargarDimensiones
Esta tarea (Figura 6.17.) es la encargada de cargar datos en las dimensiones que no se
rellenanatravsdetablasmaestras.Constadetrestareasdeflujodedatos,cuyotrabajo
consisteensacarinformacindelabasededatosoperacionalyalmacenarlaenelalmacn
dedatos.


Figura6.17.ContenedordesecuenciaCargarDimensiones
Para rellenar el contenedor de secuencia, arrastramos las tareas de flujo de datos al
interior del contenedor y creamos el flujo de datos de cada una de ellas tal y como se
indicanteriormente.
74

A continuacinsedetallanicamente cmocrearel flujo dedatosdelatareaResidente


(Figura6.18.),yaqueelrestofuncionanexactamenteigualperocambiandolastablasde
origenydestino.
Elflujoaconstruireselsiguiente:


Figura6.18.FlujodedatosasociadoalatareaResidente
Para construir este flujo arrastramos un Origen OLE DB y un Destino OLE DB a la
superficiedediseodelflujodedatos.
Comoloquequeremosespasartodoslosdatosdelosresidentesdelatabladelabasede
datosoperacionalaladelalmacndedatos,hacemosdobleclicsobreelOrigenOLEDBy
lo configuramos tal y como se indica ms abajo (Figura 6.19.). Para ello, seleccionamos
como conexin Residencia porque es la que se conecta a la base de datos operacional,
introducimoselcomandoSQLypulsamosAceptar.

75


Figura6.19.VentanaconfiguracinOrigenOLEDBResidente
Ahora hacemos doble clic sobre el Destino OLE DB, seleccionamos como Modo de
accesoadatoslaopcindeCargarpidadetablaovistayseleccionamoslatablaque
vamosarellenar,queenestecasoesDim_Residente.LuegohacemosclicenAsignaciones
y hacemos corresponder las columnas de entrada con las columnas de destino
correspondientes.

76


Figura6.20.VentanaAsignacionesdelDestinoOLEDBDimResidente

CargarTablasAuxiliares
Estatarea(Figura6.21.)eslaencargadadecargardatosenlastablasauxiliares.Constade
trestareasdeflujodedatos,cuyotrabajoconsisteensacarinformacindelastablasdela
basededatosoperacional,procesarlaparaqueseajustealasnecesidadesdelatablay
almacenarlaenlastablascorrespondientesdelalmacndedatos.


Figura6.21.ContenedordesecuenciaCargarTablasAuxiliares

77

Para rellenar el contenedor de secuencia, arrastramos las tareas de flujo de datos al


interior del contenedor y creamos el flujo de datos de cada una de ellas tal y como se
indicanteriormente.
AcontinuacinsedetallanicamentecmocrearelflujodedatosdelatareaTipologa,ya
queelrestofuncionandeformaparecidaperocambiandolastablasdeorigenydestinoy
elcdigodelosscripts.
Dado que el flujo a construir es bastante grande en comparacin con los vistos hasta el
momento,paraexplicarlovamosadividirdichoflujoenvariaspartes.
LaprimeradeestasparteseslaquemuestralaFigura6.22.:


Figura6.22.Parte1delflujodedatosasociadoalatareaTipologia
En la tabla auxiliar necesitamos almacenar informacin sobre la tipologa que tiene un
residenteenunaciertafecha.Comoesunatabladelalmacn,losIDsalmacenadoshande
serloscorrespondientesalasdimensionesdelalmacnynolosqueaparecenenlabase
de datos operacional. Por este motivo, la informacin obtenida de la base de datos
operacionalhadeserenlazadaconlainformacindelalmacndedatos.
Lo primero que necesitamos es arrastrar a la superficie de diseo del flujo de datos un
OrigenOLEDBqueutilizaremosparaaccederalatabladondeseguardaelhistricode
tipologasderesidentes.Estatablaguardaunregistroporcadacambiodetipologadeun
residente.
Hacemos doble clic en el origen (Figura 6.23.), seleccionamos Residencia porque nos
conectamos a la base de datos operacional e introducimos la consulta directamente o a
travsdeGenerarconsulta.

78


Figura6.23.VentanaconfiguracinOLEDBEvolucionTipologias
ElsiguientepasoesobtenerelIDResidentedelalmacndedatosquesecorrespondecon
el IDResidente de los datos obtenidos. Como lo que vamos a hacer es unir los datos
obtenidos con los datos del almacn usando el IDResidente, necesitamos ordenar los
datospordichocampo.Dichaordenacinsepuederealizarutilizandounatransformacin
Ordenarobienmodificandolaconfiguracindelorigen.
Para realizar la ordenacin de la segunda forma, debemos hacer clic sobre el origen y
seleccionar Mostrar Editor Avanzado. Vamos a la ltima pestaa (Figura 6.24.),
ponemos a cierto el campo IsSorted, seleccionamos la columna por la que deseamos
ordenarelconjuntodedatos(IDResidente)yponemoslapropiedadSortKeyPositiona1.
De esta forma nos ahorramos poner una transformacin y el paquete es algo ms
eficiente.

79


Figura6.24.EditorAvanzadoOLEDBEvolucionTipologias
Cuandotenemoslosdatosordenados,losiguienteesobtenerlacorrespondenciadeIDs
delaresidenciayelalmacnparalosresidentes.Paraelloaadimosdosnuevosorgenes:
uno que saque la informacin de los residentes de la residencia y otro que saque esta
mismainformacinperodelalmacndedatos.
Como lo que nos interesa es la informacin de los IDs, la consulta slo recupera los
camposIDyCodigoUnificado(Figura6.25.),siendosteltimoelimportanteparaenlazar
con el almacn de datos por ser comn en ambas bases de datos. La configuracin del
origenqueaccedealabasededatosoperacionalquedadelasiguienteforma:

80


Figura6.25.VentanaconfiguracinOLEDBResidentes
En el caso del orgen de datos que accede al almacn, la configuracin es similar. Las
nicasdiferenciassonlaconexin,enestecasoserAlmacen,yelnombredelatabladela
consulta,queserDim_Residente.
Aligualquehicimosanteriormente,ordenamosambosconjuntosdedatosporelcampo
CodigoUnificado para poder hacer la unin. Posteriormente, aadimos una
transformacin de Combinacin de mezcla (Merge Join) y la configuramos tal y como
indicalaFigura6.26.

81


Figura6.26.ConfiguracinMergeJoinResidentes
Nosquedamosconlosresidentesqueaparezcanenambastablas(innerjoin)porqueno
queremos tener IDs nulos. Es muy importante renombrar las salidas, ya que ambos
campossellamanigualynotenemosformadediferenciarlos.
Ahorayatenemoslacorrespondenciaexistenteentreambosyloquetenemosquehacer
es utilizar otra combinacin de mezcla para unir estos datos con los datos de las
tipologas.Apartirdeestemomento,yanoesnecesariopasaratravsdelflujodedatosel
IDResidentedelaconexinResidencia.
ElsiguientepasoesobtenerelIDTipologiadelalmacndedatosquesecorrespondecon
el IDTipologia de los datos obtenidos de la residencia.Para llevarlo a cabo, aadimos
nuevastransformacionesyrepetimoslasaccionesrealizadasconlosresidentes.
Laprimerapartedelflujodedatosacabacondosconjuntosordenadosdedatos.Poruna
partetenemoslainformacindelastipologasprocedentedelabasededatosoperacional
enlazada con el IDResidente del almacn correspondiente y por la otra tenemos la
correspondenciaentrelosIDsdelastipologas.
LasegundapartedelflujodedatoseslaquemuestralaFigura6.27.

82


Figura6.27.Parte2delflujodedatosasociadoalatareaTipologia
LoprimeroquesehaceesaadirunatransformacindeCombinacindemezcla(Merge
Join)paraunirambosconjuntosdedatosutilizandoelcampoIDTipologaPlaza.
Losdatosdelosquedisponemosnosindicanelmomentoenquelosresidentescambian
de tipologa. Sin embargo, nosotros lo que queremos saber es la tipologa de los
residentesencualquiermomentoyportanto,necesitamoshacerunscriptqueintroduzca
registros entre los cambios de tipologas y desde el ltimo cambio de tipologa hasta la
fechaactual.
De estaforma tendremos un registro para cada da para cada residente con la tipologa
quetieneelresidenteenesafecha.
Dichoesto,aadimosunComponentedescriptyconfiguramossussalidasparaquesean
lasqueseindicanenlaFigura6.28.

83


Figura6.28.Salidasdelcomponentedescript
ElcampoOrdenloutilizaremoscuandosedelcasodequehayaunresidentequetenga
dos tipologas para un mismo da. En este caso, nos quedaremos con el registro cuyo
campoOrdenseamayor,yaqueimplicaquefueintroducidoposteriormenteyportanto,
eslatipologamsactual.
Elcontenidodelscriptpararealizarelprocesamientorequeridoeselsiguiente.Seindica
slo el mtodo de procesamiento de las filas de entrada porque es el nico que tiene
cdigo.
Public Overrides Sub Input0_ProcessInputRow(ByVal Row As Input0Buffer)
fechaactual = Row.Fecha
If Row.HastaFecha_IsNull Then
fechafin = Date.Today
Else
fechafin = Row.HastaFecha
End If
While fechaactual <= fechafin
Me.Output0Buffer.AddRow()
Me.Output0Buffer.IDResidenteAlmacen = Row.IDResidenteAlmacen
Me.Output0Buffer.Fecha = fechaactual

84

Me.Output0Buffer.Orden = Row.IDResiHisTipologiaPlaza
If Row.IDTipologiaAlmacen_IsNull Then
Else
Me.Output0Buffer.IDTipologiaAlmacen=Row.IDTipologiaAlmacen
End If
fechaactual = fechaactual.AddDays(1)
End While
End Sub

Posteriormente necesitamos otro script para tratar el problema de las dos tipologas
comentadoanteriormente.Estescriptprecisaqueelconjuntodedatosestordenadotal
ycomoseindicaenlaFigura6.29.


Figura6.29.ColumnasordenacindelatransformacinSort8

Al estar ordenado por la columna Orden descendentemente, lo que queremos es
quedarnos con el registro de mayor valor para dicha columna y eliminar el de menor
valorparaunamismafecha.

85

Elcdigodeestescriptsera:
Public Overrides Sub Input0_ProcessInputRow(ByVal Row As Input0Buffer)
If Row.IDResidenteAlmacen = ResidenteAnterior And Row.Fecha = FechaAnterior Then
Row.NextRow()
Else
Me.Output0Buffer.AddRow()
Me.Output0Buffer.Fecha = Row.Fecha
Me.Output0Buffer.IDResidenteAlmacen = Row.IDResidenteAlmacen
If Row.IDTipologiaAlmacen_IsNull Then
Else
Me.Output0Buffer.IDTipologiaAlmacen=Row.IDTipologiaAlmacen
End If
ResidenteAnterior = Row.IDResidenteAlmacen
FechaAnterior = Row.Fecha
End If
End Sub

Para finalizar el flujo de datos, aadimos un destino con la misma configuracin que
siempre, seleccionamos la tabla que vamos a rellenar (Tipologias), hacemos clic en
Asignaciones y hacemos corresponder las columnas de entrada con las columnas de
destinocorrespondientes.
Unavezcreadoslosdosflujosdedatosquenosfaltan,eldesarrollodeestepaquetehabr
finalizado.

PaqueteHechoUlcerasCuras
ElpaqueteHechoUlcerasCuraseselencargadodeobtenerlosdatosrelacionadosconlas
curas de las lceras de la base de datos operacional y rellenar la tabla de hechos del
indicador de Ulceras Curas. Se ejecuta tras el paquete Dimension y tantas veces como
residencias queremos utilizar para los resultados del indicador, es decir, si queremos
lanzarelindicadorparadoscentros,debemoslanzarestepaqueteparacadaunodelos
centros,previocambiodelaconfiguracindelaconexinResidencia.
Este indicador estaba incluido en el grupo de los indicadores que calculaban totales en
funcin de varias dimensiones y por ello, la dificultad del mismo no radica en el
procesamientoarealizarconlosdatos,sinoenelelevadonmerodedimensionesconlas
quetenemosqueenlazarlosdatos.
LoprimeroquetenemosquehaceriralpaneldeAdministradoresdeconexin,hacer
clicenNuevaconexindesdeorigendedatosyaadirlossiguientesorgenesdedatos:
AlmacenyResidencia.
Cuando tengamos las conexiones configuradas, necesitamos crear una variable llamada
IDCentro para poder utilizarla en las diferentes tareas de flujo de datos que vamos a
aadir al flujo de control del paquete. En ella guardaremos el valor del IDCentro
almacenadoenelalmacndedatoscorrespondienteconelIDCentroparaelqueestamos
lanzandoelpaquete.

86

Paraconstruirelflujodecontrolutilizaremosdostareasdeflujodedatos,colocadastaly
comoindicalaFigura6.30.


Figura6.30.FlujocontroldelindicadorUlcerasCuras
Laprimeradeellasseencargardedotardevaloralavariablecreadapreviamenteyla
segundaserlaencargadadecargarlosdatosdelindicadorenlatabladehechos.
Acontinuacinsedetallaelflujodedatos(Figura6.31.)delaprimeradelastareas.


Figura6.31.FlujodedatosasociadoalatareaConsigueCentro
Loprimeroquenecesitamosesarrastraralasuperficiedediseodelflujodedatosunpar
de orgenes de datos que accedan a la tabla DatosResidencia y Dim_Centro
respectivamente para obtener los datos del centro. Concretamente, la configuracin del
origendedatosqueaccedealabasededatosoperacionaleslaqueapareceenlaFigura
6.32.

87


Figura6.32.ConfiguracinOrigenOLEDBCentroResidencia
Despus de configurar los orgenes de datos, lo siguiente es arrastrar un par de
transformacionesdeConversindedatosparacambiareltipodedatosdeloscampos
NombreResidenciayNombrealtipoUnicodeString[DT_WSTR].Estoesnecesarioporque
esos campos necesitan tener el mismo tipo de datos para poder utilizarlos en la
transformacindecombinacindemezclaencargadadeobtenerelIDCentrodelalmacn
dedatos.
Tras la conversin de datos, ordenamos ambos conjuntos de datos por el campo
resultantedelaconversinyaadimoslatransformacindecombinacindemezcla.En
dicha transformacin, el campo por el que se unen ambos conjuntos de datos es el
resultantedelaconversindedatos.
UnaveztenemoselvalordelIDCentrodelalmacndedatos,aadimosunComponentede
scriptparaalmacenardichovalorenlavariableIDCentro.
Elscriptdedichocomponenteeselsiguiente:
Public Class ScriptMain
Inherits UserComponent
Dim valor As Integer
Public Overrides Sub Input0_ProcessInputRow(ByVal Row As Input0Buffer)
Me.Output0Buffer.AddRow()

88

valor = Row.IDCentro
Me.Output0Buffer.IDCentro = Row.IDCentro
End Sub
Public Overrides Sub PostExecute()
Me.Variables.IDCentro = valor //aqu rellenamos la variable
End Sub
End Class
Ahoraconstruiremoselflujodedatosdelasegundatarea.Dadoqueelflujoaconstruires
bastantegrande,iremosconstruyendoloporpartespequeas.
ElflujodedatoscomienzatalycomoindicalaFigura6.33.


Figura6.33.Parte1delflujodedatosasociadoalatareaUlcerasCuras
Caberecordarquelatabladehechosdelindicadorsecomponedelossiguientescampos:
IDUlceras, IDTiempo, IDResidente, IDCaracterPlaza, IDTipologia, IDCentro,
IDCurasLocalizacion, IDUlcerasTipos, IDUlcerasProcedencias, IDCurasEstadio,
IDUlceraCuradayTamaoUlcera.
Comotodaestainformacinnoseencuentraenunanicatabla,debemosaadirtantos
orgenes de datos como tablas en las que se encuentra repartida esa informacin. En
nuestrocaso,esainformacinseencuentraenlastablasUlcerasCurasyUlcerasdelabase
dedatosoperacional.
Lasconsultasaintroducirendichosorgenessonlassiguientes:
UlcerasCuras
SELECT IDUlcera, FechaHora, IDEstadio, Tamano, IDResidente
FROM dbo.UlcerasCuras

89

Ulceras
SELECT IDUlcera, IDUlceraProcedencia, IDUlceraTipo, IDLocalizacion, CodigoUnificado, Curado
FROM dbo.Ulceras
Elrestodeinformacinlaobtendremosenlazandoconlastablasauxiliares.
EnlatabladeUlcerasCuraslascurasllevanasociadaunafechayunahora.Lahoracarece
deintersyademssinolaeliminamos,nopodremosenlazarlosdatosconladimensin
Tiempo. Por tanto, la siguiente transformacin que se requiere es un componente de
scriptqueeliminelahoradelosregistrosydejenicamentelafecha.Adems,dichoscript
hadeincorporartratamientodenulosparaserdeltodocorrecto.
El cdigo que se necesita para eliminar las horas de un registro es el que aparece a
continuacin:
Public Overrides Sub Input0_ProcessInputRow(ByVal Row As Input0Buffer)
fechaactual = Row.FechaHora
hora = Row.FechaHora.Hour * (-1)
Min = Row.FechaHora.Minute * (-1)
seg = Row.FechaHora.Second * (-1)
fechaactual = DateAdd(DateInterval.Hour, hora, fechaactual)
fechaactual = DateAdd(DateInterval.Minute, Min, fechaactual)
fechaactual = DateAdd(DateInterval.Second, seg, fechaactual)
Me.Output0Buffer.AddRow()
Me.Output0Buffer.Fecha = fechaactual
If Row.IDEstadio_IsNull Then
Else
Me.Output0Buffer.IDEstadio = Row.IDEstadio
End If
Me.Output0Buffer.IDResidente = Row.IDResidente
Me.Output0Buffer.IDUlcera = Row.IDUlcera
If Row.Tamano_IsNull Then
Else
Me.Output0Buffer.Tamano = Row.Tamano
End If
End Sub
Loquehacemosenelscriptessumarlealafechaquetenemos,lamismahoraperocon
valornegativoparaquelahorasequedeacero.
Elsiguientepasoesordenarambosconjuntosdedatosporelcampoporelquelosvamos
aunir(IDUlcera)yaadirunatransformacindecombinacindemezclaparaunirambos
conjuntosdedatos.
LaFigura6.34.muestralasiguientepartedelflujodedatos.

90


Figura6.34.Parte2delflujodedatosasociadoalatareaUlcerasCuras
Aadimosunatransformacindecolumnaderivada(Figura6.35.)paraaadiralconjunto
dedatoselIDCentrodelalmacnusandolavariableconelmismonombre.


Figura6.35.ConfiguracintransformacinColumnaDerivada
EnestemomentotenemostodalainformacinnecesariayloquefaltaesobtenerlosIDs
del almacn que se corresponden con los de la base de datos operacional, los cuales se
obtienentodosdelamismamanera.

91

EnprimerlugarobtenemoselIDResidentedelalmacndedatosquesecorrespondecon
el IDResidente de los datos obtenidos tal y como se indic anteriormente, es decir,
obtenemos el par IDResidenteIDResidenteAlmacen y lo enlazamos con la datos que
tenemosparaquedarnossolamenteconelIDResidenteAlmacen.
LasiguientepartedelflujodedatoseslaquemuestralaFigura6.36.


Figura6.36.Parte3delflujodedatosasociadoalatareaUlcerasCuras
EnestaparteloquesetrataesdeobtenerelIDUlcerasProcedenciasyelIDUlcerasTipos
delalmacndedatosquesecorrespondenconsushomnimosdelosdatosquellevamos
hastaelmomento.
LaFigura6.37.muestralapartequelesiguealaanterior.


Figura6.37.Parte4delflujodedatosasociadoalatareaUlcerasCuras

92


AquloquequeremosesobtenerelIDCurasLocalizacionyelIDCurasEstadiodelalmacn
dedatosquesecorrespondenconelIDLocalizacionyelIDEstadiodelosdatosobtenidos.
AcontinuacinnosencontramosconlapartequeindicalaFigura6.38.


Figura6.38.Parte5delflujodedatosasociadoalatareaUlcerasCuras
En lo que respecta a la dimensin Ulcera Curada, los campos a comparar son
UlceraCurada (Dim_UlceraCurada) y Curado (flujo de datos izquierdo). Como el campo
Curadoesdetipobooleanoyelotroesdetipoentero,debemoshacerunaconversindel
tipo de UlceraCurada para pasarlo a booleano y poder hacer la unin de datos. El
resultadodedichauninserelIDUlceraCuradadelalmacndedatos.
LasiguienteparteeslamostradaenlaFigura6.39.


Figura6.39.Parte6delflujodedatosasociadoalatareaUlcerasCuras

93


AquloquequeremosesobtenerelIDUlcerasdelalmacndedatosquesecorresponde
con el IDUlceras de los datos obtenidos utilizando el campo CodigoUnificado. Adems,
tambinseobtieneelIDCaracterPlazaquetienenasociadoslosresidentesenlafechade
lascurasenlazandoconlatablaauxiliarCaracterPlaza.Enestecaso,paraenlazarconla
tablaauxiliarutilizamosloscamposIDResidenteyFecha.Deutilizarslounodeellos,no
sepodraobtenerelIDCaracterPlaza.
LapenltimapartedelflujodedatossemuestraenlaFigura6.40.


Figura6.40.Parte7delflujodedatosasociadoalatareaUlcerasCuras
En esta parte se obtiene el IDTipologa y el IDTiempo del almacn de datos que se
corresponden con los IDs de los datos. En el caso de la tipologa, utilizamos los campos
IDResidente y Fecha para enlazar con la tabla auxiliar de tipologas. Sin embargo, para
enlazarconladimensinTiemposlonecesitamoselcampoFecha.
LaltimapartedelflujodedatoseslaqueapareceenlaFigura6.41.


Figura6.41.Parte8delflujodedatosasociadoalatareaUlcerasCuras
UnavezhemosenlazadoconladimensinTiempolonicoquefaltaesaadirundestino
dedatos.Configuramosdichodestinocomosiempre,seleccionamoslatablaquevamosa
rellenar(Fact_UlcerasCuras)yhacemosclicenAsignaciones(Figura6.42.).

94

Lasasignacionesdebenserlassiguientes:


Figura6.42.VentanaAsignacionesdelDestinoOLEDBRellenarHecho
Trasesto,eldesarrollodeestepaquetehabrfinalizado.

PaqueteHechoDiferenciaSeg
ElpaqueteHechoDiferenciaSegeselencargadodeobtenerlosdatosrelacionadosconlos
seguimientosprofesionalesdelabasededatosoperacionalyrellenarlatabladehechos
del indicador de Seguimientos Profesionales. Se ejecuta tras el paquete Dimension y
tantas veces como residencias queremos utilizar para los resultados del indicador, es
decir,siqueremoslanzarelindicadorparadoscentros,debemoslanzarestepaquetepara
cadaunodeloscentros,previocambiodelaconfiguracindelaconexinResidencia.
Esteindicadorestabaincluidoenelgrupodelosindicadoresquecalculabanladiferencia
de das transcurridos entre dos eventos y por ello, la dificultad del mismo radica en la
formadecalcularesadiferenciadedas.
LoprimeroquetenemosquehaceriralpaneldeAdministradoresdeconexin,hacer
clicenNuevaconexindesdeorigendedatosyaadirlossiguientesorgenesdedatos:
AlmacenyResidencia.
Cuandotengamoslasconexionesconfiguradas,necesitamoscrearlavariableIDCentroal
igualquehicimosenelindicadoranterior.

95

El flujo de control de este paquete ser similar al del paquete anterior, ya que tenemos
querealizarlasmismastareas:dotardevaloralavariableIDCentroycargarlosdatosdel
indicadorenlatabladehechos.
Dado que el flujo de datos asociado a la primera tarea fue analizado en detalle en el
paqueteanterior,acontinuacintrataremoselflujodedatosasociadoalasegundatarea.
Dichoflujoserparcialmentedistintoaldelotroindicadorporquedebemosrealizarotros
procesamientosporeltipodeindicadorquees.
Caberecordarquelatabladehechosdelindicadorsecomponedelossiguientescampos:
IDTiempo, IDResidente, IDCaracterPlaza, IDTipologia, IDCentro, IDTipoProfesional y
TiempoTranscurrido.
Puestoquenosencontramosconquetienedimensionescomunesconelotroindicador,
slovamosadetallarlaspartesdelflujodedatosqueseanpropiasdedichoindicador.
ElflujodedatoscomienzatalycomoseindicaenlaFigura6.43.


Figura6.43.Parte1delflujodedatosdelindicadorSeguimientosProfesionales
El indicador calcula la diferencia de das transcurridos entre dos seguimientos de un
mismoprofesionalparaunmismoresidente.Comocalculadichadiferenciadedaspara
los seguimientos de cualquier profesional, necesitamos aadir tantos orgenes de datos
comotablasdiferentesdeseguimientosprofesionalesexisten.
CadaunodeestosorgenesessimilaralqueapareceenlaFigura6.44.:laconexinesla
queaccedealabasededatosoperacionalylaconsultaslorecuperaelIDResidenteyla
FechaHoradelseguimiento.

96


Figura6.44.ConfiguracindelOrigenOLEDBSeguimientosPsiclogos
Tras configurar el origen de datos, aadimos una transformacin de columna derivada
(Figura 6.45.) para indicar el tipo de profesional asociado al seguimiento. El valor
asignadoadichacolumnasecorrespondeconelIDTipoProfesionaldelalmacndedatos
asociadoaeseprofesional.
Los posibles valores a introducir en dicha columna son los valores de la dimensin
TipoProfesional,quesonlossiguientes:
1Psiclogo 6Trabajadorsocial 11Auxiliar
2Fisioterapeuta 7Animadorsocial 12Atencinespiritual
3Dietista 8Terapiaocupacional 13Pedagogo
4Mdico 9Supervisor 14Podlogo
5Enfermera 10Director

97


Figura6.45.ConfiguracintransformacinDerivedColumn
El valor aadido es un 1 porque la tabla de la que hemos obtenido los datos es
ResiPsiSeguimientos.
Hacemoslomismoparaelrestodetablasdeseguimientosqueaparecenenlaimagen.
LasegundapartedelflujodedatoseslaqueapareceenlaFigura6.46.


Figura6.46.Parte2delflujodedatosdelindicadorSeguimientosProfesionales

98


Esta parte es similar a la anterior pero incluye una transformacin Unin de todo para
combinartodoslosconjuntosdedatosquetenemoshastaelmomento.Comoloscampos
sellamandelamismaformaentodaslastablas,lasasociacionesentrecolumnasaparecen
automticamentetalycomoseindicaenlaFigura6.47.


Figura6.47.ConfiguracintransformacinUnionAll1
Tras esto, repetimos el proceso para el resto de tablas de seguimientos que faltan por
aadiralflujodedatos.
LaFigura6.48.muestralasiguientepartedelflujodedatos.


Figura6.48.Parte3delflujodedatosdelindicadorSeguimientosProfesionales
La transformacin Unin de todo la utilizamos para combinar todos los datos de las
tablasdeseguimientosquetenemoshastaelmomento.Laformadecombinarloseslaque
seindicanteriormente.
Como lo que queremos es calcular la diferencia de das transcurridos entre dos
seguimientos de un mismo profesional para un mismo residente, debemos ordenar los
datosporelTipoProfesional,IDResidenteyFechaHorarespectivamente.
Una vez los tengamos ordenados, aadimos un Componente de script cuyas entradas
sern todos los campos que tenemos hasta ahora y cuyas salidas sern esos mismos
campos y un campo adicional en el que guardaremos el tiempo transcurrido entre dos
seguimientos.

99

El cdigo del script sin incluir la declaracin de las variables que utilizamos es el
siguiente:
Public Overrides Sub Input0_ProcessInputRow(ByVal Row As Input0Buffer)
If contador <> 0 Then
If Row.IDResidente = residente Then
If Row.TipoProfesional = tipoProfesional Then
If Row.FechaHora_IsNull Then
Else
fecha2 = Row.FechaHora
Me.Output0Buffer.AddRow()
Me.Output0Buffer.IDResidente = Row.IDResidente
Me.Output0Buffer.Fecha = fecha2
Me.Output0Buffer.TipoProfesional=Row.TipoProfesional
Me.Output0Buffer.TiempoTranscurrido = DateDiff(DateInterval.Day, fecha1, fecha2)
fecha1 = Row.FechaHora
residente = Row.IDResidente
tipoProfesional = Row.TipoProfesional
End If
Else
If Row.FechaHora_IsNull Then
Else
fecha1 = Row.FechaHora
residente = Row.IDResidente
tipoProfesional = Row.TipoProfesional
End If
End If
Else
If Row.FechaHora_IsNull Then
Else
fecha1 = Row.FechaHora
residente = Row.IDResidente
tipoProfesional = Row.TipoProfesional
End If
End If
Else
If Row.FechaHora_IsNull Then
Else
fecha1 = Row.FechaHora
residente = Row.IDResidente
tipoProfesional = Row.TipoProfesional
contador += 1
End If

100

End If
End Sub
Elscriptfuncionaguardndoselainformacindelprimerseguimientodeunresidentede
un determinado tipo de profesional para calcular la diferencia de das con el siguiente
seguimientodeeseprofesional.Sitenemosesesegundoseguimiento,elscriptaadeuna
filaysino,pasamosalsiguienteregistroycomprobamoslomismo.Elhechodenoaadir
filas siempre provoca que el nmero de filas resultantes tras el script sea inferior al
nmerodefilasentrantes.
LapartedelflujodedatosquevieneahoraeslaqueseindicaenlaFigura6.49.


Figura6.49.Parte4delflujodedatosdelindicadorSeguimientosProfesionales
Aadimos una transformacin de columna derivada para aadir al conjunto de datos el
IDCentro del almacn usando la variable con el mismo nombre. Adems, aadimos otro
componente de script para quitarle la hora a los seguimientos y poder enlazar
posteriormentelosdatosconladimensin Tiempo. Elcdigoutilizadoparallevara cabo
dichocambioeselmismoqueseindicenelindicadoranterior.
Llegados a este momento, lo siguiente es enlazar con las tablas de dimensiones y las
tablas auxiliares para obtener los siguientes IDs del almacn: IDResidente, IDTiempo,
IDCaracterPlaza y IDTipologia. La forma de enlazar es la misma que se indic en el
paqueteanterior.
El flujo de datos finaliza con la adicin del destino de datos. La tabla destino es
Fact_DiferenciaSegylasasignacionessonlasqueaparecenenlaFigura6.50.

101


Figura6.50.VentanaAsignacionesDestinoOLEDBSeguimientosProfesionales
Trasesto,eldesarrollodeestepaquetehabrfinalizado.

PaqueteHechoEstanciaUnidades
ElpaqueteHechoDiferenciaSegeselencargadodeobtenerlosdatosrelacionadosconlas
estancias de los residentesen lasdiferentesunidades de la base de datos operacionaly
rellenarlatabladehechosdelindicadordeEstanciaUnidades.Seejecutatraselpaquete
Dimension y tantas veces como residencias queremos utilizar para los resultados del
indicador,esdecir,siqueremoslanzarelindicadorparadoscentros,debemoslanzareste
paqueteparacadaunodeloscentros,previocambiodelaconfiguracin de la conexin
Residencia.
Este indicador estaba incluido en el grupo de los indicadores que mostraban una
evolucin y por ello, la dificultad del mismo radica en la forma de derivar los registros
paracadada.
LoprimeroquetenemosquehaceriralpaneldeAdministradoresdeconexin,hacer
clicenNuevaconexindesdeorigendedatosyaadirlossiguientesorgenesdedatos:
AlmacenyResidencia.
Cuandotengamoslasconexionesconfiguradas,necesitamoscrearlavariableIDCentroal
igualquehicimosenelindicadoranterior.

102

El flujo de control de este paquete ser similar al del paquete anterior, ya que tenemos
querealizarlasmismastareas:dotardevaloralavariableIDCentroycargarlosdatosdel
indicadorenlatabladehechos.
Dado que el flujo de datos asociado a la primera tarea fue analizado en detalle en el
paqueteanterior,acontinuacintrataremoselflujodedatosasociadoalasegundatarea.
Dichoflujoserparcialmentedistintoaldelotroindicadorporquedebemosrealizarotros
procesamientosporeltipodeindicadorquees.
Caberecordarquelatabladehechosdelindicadorsecomponedelossiguientescampos:
IDTiempo, IDResidente, IDCaracterPlaza, IDTipologia, IDCentro, IDUnidad,
TiempoEstancia,TotalEstanciayMinEstancia.
Puestoquenosencontramosconquetienedimensionescomunesconelotroindicador,
slovamosadetallarlaspartesdelflujodedatosqueseanpropiasdedichoindicador.
ElflujodedatoscomienzatalycomoindicalaFigura6.51.


Figura6.51.Parte1delflujodedatosasociadoalindicadorEstanciaUnidades
ComotodalainformacinquenecesitamosseencuentraenlatabladeResiUniEstancias,
loprimeroquehacemosesaadirunorigendedatosqueaccedaadichatablaenlabase
dedatosoperacional.Laconsultaaintroducirendichoorigeneslaquesemuestraenla
Figura6.52.

103


Figura6.52.ConfiguracinOrigenOLEDBEstanciaUnidades
A continuacin ordenamos los datos ascendentemente segn el IDResidente y la
FechaIngresoenlaunidad.
Losiguientequenecesitamosesunscriptparaderivarregistrosentredosfechas.Dicho
scriptasignarcomofechadebajadelaunidadlafechaactualsistaapareceanulooes
superioralaactualyaadirunafilaporcadadaincluidoentrelafechadeingresoyla
fecha de baja de la unidad. Adems, utilizar la columna de salida TiempoEstancia para
indicarlosdasquellevaelresidenteenlaunidadenunadeterminadafechaylacolumna
TotalEstancia para almacenar el tiempo total que ha permanecido el residente en la
unidad.
Elcdigodedichoscriptseraelsiguiente:
fechadefecto = "31129999"
Public Overrides Sub Input0_ProcessInputRow(ByVal Row As Input0Buffer)
fechaactual = Row.FechaIngreso
If Row.FechaBaja_IsNull Then
fechafinal = Now.Date
Else
If Format(Row.FechaBaja, "ddMMyyyy") = fechadefecto Then
fechafinal = Now.Date

104

Else
fechafinal = Row.FechaBaja
If fechafinal = fechaactual Then
Else
fechafinal = fechafinal.AddDays(-1)
End If
End If
End If
While fechaactual <= fechafinal
Me.Output0Buffer.AddRow()
Me.Output0Buffer.IDResidente = Row.IDResidente
If Row.IDUnidad_IsNull Then
Else
Me.Output0Buffer.IDUnidad = Row.IDUnidad
End If
Me.Output0Buffer.Fecha = fechaactual
Me.Output0Buffer.TiempoEstancia = DateDiff(DateInterval.Day, Row.FechaIngreso, fechaactual) + 1
If fechaactual = fechafinal Then
Me.Output0Buffer.TotalEstancia = DateDiff(DateInterval.Day, Row.FechaIngreso, fechaactual) + 1
End If
fechaactual = fechaactual.AddDays(1)
End While
End Sub

A la salida del script ordenamos nuevamente los datos, pero esta vez ascendentemente
segnelIDResidenteydescendentementesegnlaFechadelregistro.
Posteriomenteaadimosunnuevocomponentedescriptquesevaaencargarderellenar
elcampoMinEstanciaqueutilizaremosparacalculareltiempomnimodeestanciadelos
residentesenlasunidades.
PararellenardichocampoutilizamoselcampoTotalEstanciatalycomosedetallaenel
cdigodelscript:
Public Overrides Sub Input0_ProcessInputRow(ByVal Row As Input0Buffer)
Me.Output0Buffer.AddRow()
Me.Output0Buffer.Fecha = Row.Fecha
Me.Output0Buffer.IDResidente = Row.IDResidente
If Row.IDUnidad_IsNull Then
Else
Me.Output0Buffer.IDUnidad = Row.IDUnidad
End If
Me.Output0Buffer.TiempoEstancia = Row.TiempoEstancia
If Row.TotalEstancia_IsNull Then
Else

105

Me.Output0Buffer.TotalEstancia = Row.TotalEstancia
MinEstancia = Row.TotalEstancia
End If
Me.Output0Buffer.MinEstancia = MinEstancia
End Sub

OtrapartedelflujodeldatoseslaquemuestralaFigura6.53.


Figura6.53.Parte2delflujodedatosasociadoalindicadorEstanciaUnidades
Enlaparteizquierda,aadimosunatransformacindecolumnaderivadaparaaadiral
conjuntodedatoselIDCentrodelalmacnusandolavariableconelmismonombre.En
cambio,enlapartederechaloquehacemosesobtenerelIDUnidaddelalmacndedatos
quesecorrespondeconelIDUnidaddelabasededatosoperacional.
Llegados a este momento, lo siguiente es enlazar con las tablas de dimensiones y las
tablas auxiliares para obtener los siguientes IDs del almacn: IDResidente, IDTiempo,
IDCaracterPlaza y IDTipologia. La forma de enlazar es la misma que se indic en el
paqueteanterior.
El flujo de datos finaliza con la adicin del destino de datos. La tabla destino es
Fact_EstanciaUnidadesylasasignacionessonlasqueaparecenenlaFigura6.54.

106


Figura6.54.VentanaAsignacionesDestinoOLEDBEstanciaUnidades
Trasesto,eldesarrollodeestepaquetehabrfinalizado.
Una vez finalizado el desarrollo de todos los paquetes ETL necesarios para la carga de
nuestros indicadores, lo nico que falta es ejecutar cada uno individualmente para
comprobarquetodofuncionacorrectamente.Recordamosqueparaejecutarunpaquete
debemosseleccionardichopaqueteenelExploradordesoluciones,hacerclicconelbotn
derechoyseleccionarEjecutarpaquete.

6.4.4. CreacincubosOLAP
AhoravamosacrearloscubosOLAPdecadaunodenuestrosindicadores,incluyendolas
medidassolicitadasparacadaunodeellos.
PuestoqueeneltutorialdeAnalysisServicessedetallapasoapasocmocrearuncubo,
enestepuntonoentraremosendetalleencmorealizarlasaccionesvistasenesetutorial
(crearunproyecto,crearunavistadedatos,etc).
Antes de comenzar con la implementacin de los cubos comentados anteriormente
necesitamos crear un proyecto SSAS. Como ya creamos uno para el indicadorde Visitas
Familiares,utilizaremosesemismoproyecto.

107

Dichoproyectotieneunorigendefinidoqueseconectaalalmacndedatosyunavistade
dichoorigendedatosqueincluyetodaslastablasdefinidasparaelindicadordeVisitas
Familiares. Dado que las tablas de los nuevos indicadores no aparecen en dicha vista
automticamente, lo primero que tenemos que hacer es aadir dichas tablas a la vista.
Paraaadirtablasalavistadedatosdebemos:
1. SeleccionamoslavistadelorigendedatosenelExploradordesoluciones,hacemos
clicenelbotnderechoyseleccionamosAbrir.
2. Nos situamos sobre la vista, pinchamos con el botn derecho sobre ella y
seleccionamosAadir/Quitartablas.
3. Seleccionamostodaslastablasquedeseamosaadiralavistaenlalistadeobjetos
disponibles(Figura6.55.),pulsamos>yAceptar.


Figura6.55.VentanaAadir/Quitartablas
Opcionalmente,podemosdefinirundiagramaovistaparcialdelaanteriorparacadauno
de los indicadores. Para crear uno de estos diagramas debemos ir a la seccin de los
diagramas,hacerclicconelbotnderechoyseleccionarNuevoDiagrama(Figura6.56.).

108


Figura6.56.Crearnuevodiagrama
Cuando tengamos el nuevo diagrama, hacemos clic con el botn derecho sobre el
diagrama, seleccionamos la opcin Mostrar Tablas y seleccionamos las tablas que
queremosqueaparezcaneneldiagrama.Portanto,siqueremosconstruireldiagramadel
indicadordeUlcerasCuras,debemosseleccionartodaslastablasconlasqueserelaciona
latabladehechosylatabladehechospropiamente.
El siguiente paso es definir los cubos. En nuestro caso la arquitectura escogida es la
MOLAPporqueeslaquemejorsecomportacondatosdepocasdimensionescomolosde
nuestrosindicadores.
Paradefinirloscubosrealizamoslassiguientesacciones:
1. Vamos al Explorador de soluciones, hacemos clic con el botn secundario en
CubosyluegoseleccionamosNuevocubo.
2. Indicamos como mtodo de generacin Usar tablas existentes y seleccionamos
unadelastablasdehechosdelosnuevosindicadores(Fact_UlcerasCuras).
3. Aceptamos todas las medidas y dimensiones que aparecen por defecto, le damos
nombrealcubo(UlcerasCuras)ypulsamosFinalizar.
4. Repetimos los pasos 13 para crear los cubos SeguimientosProfesionales y
EstanciaUnidades.
LaFigura6.57.muestraunodeloscubosqueacabamosdecrearcontodassusrelaciones:

109


Figura6.57.CuboEstanciaUnidades
Alfinalizarelprocesodecreacindeloscubos,seobservaquestosaparecenincluidos
en la carpetas Cubos del Explorador de soluciones y las dimensiones aparecen en la
carpetaDimensiones.
A continuacin modificaremos las dimensiones que acaban de ser aadidas haciendo
dobleclicenellas(Figura6.58.).Concretamente,tenemosquehacerlosiguiente:
1. Arrastraremoslosatributosquequeremosquesemuestrenposteriormentedesde
lavistadelorigendedatosalapartedelosatributos.


Figura6.58.VentanaasociadaalaDimensionTipoProfesional

110

2. Enlaventanadeatributos,seleccionamoselnombredeladimensin,hacemosclic
con el botn secundario y seleccione Propiedades. Nos aseguramos de que la
propiedad UnknownMemberestVisibleyponemoselvalorNo Definidoenla
propiedadUnknownMemberName.
3. Modificamos las propiedades de los atributos de la dimensin que aparecen
marcadoscomoclavedeladimensinhaciendoclicconelbotnderechosobreel
atributo y modificando a False el campo AttributeHierarchyVisible de la
ventana Propiedades para que no se vean dicho atributos, ya que se trata de
identificadores. Para el resto de atributos dejamos las propiedades tal y como
aparecenpordefecto.
4. Repetimoslospasos13paracadaunadelasnuevasdimensiones.
El cubo de EstanciaUnidades posee una particularidad, ya que una de sus dimensiones
(Dim_Unidad)hacereferenciaaunasubdimensin(Dim_TipoUnidad).Estaparticularidad
ha de ser tratada indicando en el cubo que, adems de las dimensiones referenciadas,
existeotradimensinqueesreferenciada atravsdeotra.Paraindicaresto,lospasosa
seguirsonlossiguientes:
1. Hacemos doble clic sobre el cubo de EstanciaUnidades y seleccionamos la ficha
Usodedimensiones.
2. Hacemos clic con el botn secundario, seleccionamos Aadir Dimension y
seleccionamosladimensinDim_TipoUnidad.
3. Hacemos clic sobre el botn que aparece junto a la dimensin que acabamos de
aadiryrellenamoslapantallaqueaparecetalycomoindicalaFigura6.59.


Figura6.59.DefinicindelarelacinentreDimUnidadyDimTipoUnidad
Segn esta informacin, la dimensin TipoUnidad es una dimensin referenciada por la
dimensinUnidadatravsdelcampoIDTipoUnidad.

111

Ahora es el momento de configurar las medidas de cada uno de los cubos y eliminar
aqullasqueaparecenpordefectoyquenonosinteresan.Acontinuacinseindicanlas
medidasquevamosadefinirparacadaunodeloscubos:
CuboUlcerasCuras
Queremossaberelnmerototaldecurasrealizadasyeltamaomediodelaslceras.
Lasmedidasycamposcalculadosadefinirsonlossiguientes:
Tamao:Eslasumadetodoslostamaosdelaslceras(CampoTamaoUlcera).
NmeroCuras:Eselnmeroderegistrosdelatabladehechosysecorrespondecon
el nmero total de curas realizadas. Se define como Count of rows de
Fact_UlcerasCuras.
Tamaomedio:Eseltamaomediodelaslcerasquepadecennuestrosresidentes.
SedefinecomouncocienteTamao/NmeroCuras(Figura6.60).


Figura6.60.DefinicindelamedidaTamaomedio
CuboSeguimientosProfesionales
Queremossaberelnmerototaldedastranscurridosentreseguimientosprofesionalesa
los residentes, el tiempo mnimo transcurrido entre 2 seguimientos de un mismo
profesional, el tiempo mximo transcurrido entre 2 seguimientos de un mismo
profesionalyeltiempomediotranscurridoentreseguimientos.
Lasmedidasycamposcalculadosadefinirsonlossiguientes(Figura6.61.):
Nmero Das: Es la suma de todas las diferencias de das (Campo
TiempoTranscurrido).
Tiempo Transcurrido Count: Es el nmero de registros de la tabla de hechos. Se
definecomoCountofrowsdeFact_DiferenciaSeg.
Mnimo:Eseltiempomnimotranscurridoentredosseguimientos.Sedefinecomo
MinimundeTiempoTranscurrido.
Mximo:Eseltiempomximotranscurridoentredosseguimientos.Sedefinecomo
MaximumdeTiempoTranscurrido.

112

Media: Es el nmero de das medio que transcurre entre dos seguimientos


profesionales. Se define como un cociente Nmero Das/Tiempo Transcurrrido
Count.


Figura6.61.MedidascuboSeguimientosProfesionales
CuboEstanciaUnidades
Queremossaberelnmerototaldedasdeestanciaenunidades,eltiempomnimoque
unresidentepasaenunaunidad,eltiempomximoqueunresidentepasaenunaunidad
yeltiempomediodeestanciadeunresidenteenunaunidad.
Lasmedidasycamposcalculadosadefinirsonlossiguientes(Figura6.62.):
Total Estancia: Es la suma de todos las estancias en unidades (Campo
TotalEstancia).
NumRegistros:SedefinecomoCountofnonemptyvaluesdelcampoTotalEstancia,
yaquesloqueremosconsiderarlosregistroscuyovalornoseanulo.
MnimoTiempo:Eseltiempomnimoquelosresidenteshanestadoenlasunidades.
SedefinecomoMinimundeMinEstancia.
Mximo Tiempo: Es el tiempo mximo que los residentes han estado en las
unidades.SedefinecomoMaximumdelcampoTotalEstancia.
Media Estancia: Es el nmero de das medio que los residentes han estado en las
unidades.SedefinecomouncocienteTotalEstancia/NumRegistros.


Figura6.62.MedidascuboEstanciaUnidades
Cuandoacabemosdeconfigurarlasmedidas,elsiguientepasoarealizaresprocesartodo
el proyecto para ver que no hay ningn error. Para llevar a cabo esta accin
seleccionamos el nombre del proyecto, hacemos clic con el botn secundario y
seleccionamosProcesar.
LaFigura6.63.muestraqueelproyectohasidoprocesadoconxitoyporlotanto,nohay
ningnerror.

113


Figura6.63.Ventanadeprogresodelprocesamientodeloscubos

6.4.5. Creacintrabajodelanzamientodepaquetes
Enestepuntocrearemoseltrabajoencargadodeactualizarlosdatosdelosindicadores
diariamente.DichotrabajoseencargardelanzartodoslospaquetesETLyprocesarlos
cubosdesarrolladosenestecaptulo.
Puesto que en el tutorial del Agente SQL Server se detalla paso a paso cmo crear un
trabajo,enestepuntonoentraremosendetalleencmorealizarlasaccionesvistasenese
tutorial(crearuntrabajo,crearunaprogramacin,etc).
Como queremos obtener los datos de los indicadores para varias residencias, debemos
lanzarlospaquetesDimensionydecadaunodeloshechostantasvecescomoresidencias.
Ennuestrocasoqueremoslanzarlosdatospara3residenciasyporestemotivocadauno
de los paquetes se lanzar 3 veces a excepcin de Almacen. Adems, se necesita lanzar
tambinelpaqueteAlmacenparaborrarelcontenidodelalmacndedatosyrellenarlo
conlosdatosmsactualizadoscadada.
Eltrabajoquenecesitamoscreartienequelanzarlospaquetesyprocesarloscubosenel
siguienteorden:
1. LanzamoselpaqueteETLAlmacen.
2. LanzamoselpaqueteETLDimensionparaunadelasresidencias.
3. LanzamoslospaquetesETLdecadaunodelosindicadoresparaesaresidencia.
4. Lanzamos los paquetes Dimension y de los indicadores para el resto de
residencias.

114

5. Procesamosloscubos.
SuponiendoqueyahemosaccedidoalSQLServerManagementStudio,lospasosaseguir
paracrearestetrabajosonlossiguientes:
1. Hacemos clic con el botn derecho en el nodo Trabajos, seleccionamos Nuevo
Trabajo y rellenamos propiedades del mismo tales como el nombre y la
descripcin(Figura6.64.).


Figura6.64.Ventanadeconfiguracindeltrabajo
2. SeleccionamoslapginaPasosyhacemosclicenNuevo.
3. Especificamoselnombreparaelpaso(Almacen),eltipodepasocomoPaquetes
deIntegrationServices,dejelaopcinEjecutarcomoqueaparece,pongacomo
Origendelpaqueteelsistemadearchivos(Filesystem)eindiquelarutadondese
encuentraelpaquetequequeremosejecutar(Figura6.65.).

115


Figura6.65.VentanadeconfiguracindelpasoAlmacen
4. Hacemos clic en la pgina Avanzado y especifique Ir al siguiente paso como
Accin en caso de xito, 1 como Nmero de reintentos para que vuelva a
intentar ejecutar el paquete y Salir del trabajo e informar del error como
Accinencasodeerror.
5. Repetimoslospasos24paracadaunodelospaquetesdeSSIS.Noobstante,para
estos pasos debemos ir a la pestaa Data Sources (Figura 6.66.) de las
propiedades del paso y cambiar la conexin del origen de datos Residencia para
queapuntealabasededatosdeunanuevaresidencia.


Figura6.66.PestaaDataSourcesdelpasoDimensionResidencia2
6. Creamosunnuevopasoparaprocesarloscubosdelosindicadores.Ponemoscomo
tipo de paso Comando de Analysis Services, dejamos la opcin Ejecutar como
queaparece,ponemoscomoServidorlamquinalocaleindicamosenComando
lasiguienteinstruccinXML:

116

<Process xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">
<Object>
<DatabaseID>Proyecto Analysis Services</DatabaseID>
</Object>
<Type>ProcessFull</Type>
<WriteBackTableCreation>UseExisting</WriteBackTableCreation>
</Process>
Esta instruccin procesar todos los elementos de nuestro proyecto de Analysis
Services.
7. Porserelltimopaso,hacemosclicenlapginaAvanzadoyespecificamosSalir
deltrabajoeinformardelxitocomoAccinencasodexito,1comoNmero
dereintentosparaquevuelvaaintentarejecutarelpaqueteySalirdeltrabajoe
informardelerrorcomoAccinencasodeerror.
8. HagaclicenAceptarparaguardarelnuevotrabajo.
EltrabajoresultanteeselquemuestralaFigura6.67.


Figura6.67.ListadepasosdeltrabajoLanzamientoIndicadores
Una vez tenemos creado el trabajo, lo que falta es crear la programacin para dicho
trabajodeformaqueeltrabajoseejecutediariamente.
Paracrearlaprogramacindeltrabajodebemosseguirlossiguientespasos:

117

1. SeleccionamoslapginaProgramacionesdeltrabajoyhacemosclicenNueva.
2. Rellenamos los datos de la programacin tal y como indica la Figura 6.68. y
hacemosclicenAceptar.Segnestaconfiguracin,eltrabajosevaalanzartodos
losdasalas00:00h.


Figura6.68.Configuracindelaprogramacin
Al finalizar la creacin del trabajo y su respectiva programacin, slo falta ejecutar el
trabajo para ver que funciona correctamente y poder dar el proceso de creacin del
trabajo por finalizado. Para ello hacemos clic con el botn derecho en el trabajo recin
creado, seleccionamos la opcin Iniciar trabajo en el paso, especificamos el paso 1 y
hacemosclicenInicio.
Observamosqueeltrabajonocontieneerroresyseejecutacorrectamente,yaqueenla
ventanadeprogresoobservaremosqueponexito(Figura6.69.).


Figura6.69.Ventanadeprogresodeltrabajoejecutado

118

6.4.6. Creacininformes
Enestepuntocrearemoslosinformesdelosindicadorescreadosenpuntosanteriores.
PuestoqueeneltutorialdecreacindeinformesconExcelsedetallapasoapasocmo
crear un informe, eneste punto no entraremos en detalle en cmo realizar las acciones
vistasenesetutorial(crearunaconexin,crearungrfico,etc).
Como ya tenemos el informe que creamos para el indicador de Visitas Familiares,
necesitamoscrearsolamentetresinformes.
Segnelindicadoralqueasociemoselinforme,laconexinalcuboserdiferente.Enel
casodelindicadordeUlcerasCuras,debemosconfigurarlaconexinparaqueseconecte
alcuboconesemismonombre.Lospasosaseguirsonlossiguientes:
1. Vamos a la ficha Datos del Excel, en el grupo Obtener datos externos hacemos
clic en De otras fuentes y luego en Desde Analysis Services y se mostrar el
Asistenteparalaconexindedatos.
2. Indicamos el nombre del servidor OLAP donde se encuentra nuestro cubo,
seleccionamosUsarautenticacindeWindowscomoCredencialesdeconexin
yacontinuacinseleccionamoslabasededatosquecontienelainformacinque
desea (Proyecto Analysis Services) y cubo al que nos queremos conectar
(UlcerasCuras)talycomoseindicaenlaFigura6.70.


Figura6.70.ConfiguracindelaconexindelarchivoExcel
3. Indicamos la ubicacin en la que deseamos guardar el archivo de conexin de
datosypulsamosFinalizarparaqueempicelaimportacindedatos.
Para crear las conexiones del resto de informes, seguimos los mismos pasos pero
variandoelcuboalquenosconectamos.
Unaveztenemosconfiguradalaconexindenuestroinforme,elsiguientepasoescrear
lasdiferentesvistas(grficasotablas)quevaacontenernuestroinforme,lascualessern
utilizadasposteriormenteeneldashboard.
Elnmerodevistasadefinirenelinformeesvariableydependerdelusuarioquelovaa
utilizar.EsmuyimportantedefinirvistasqueincluyanlosdatosparacalcularlosKPIs,ya

119

quedenohacerlonotendremoslaposibilidaddeutilizarlosvaloresdellibrodeExcelen
ladefinicindelosmismos.
AcontinuacinsedefinenunpardevistasmuysencillasparaelindicadorUlcerasCuras.
Conlaprimeradeellasobtenemoselnmerodecurasrealizadasencadacentrosegnel
ao(Figura6.71.):


Figura6.71.Vistadelnmerodecurastotalesporaoycentro
Otraposibilidaddeobtenerinformacinsimilarastaescolocarunfiltro(Figura6.72.)
quenospermitaseleccionarelaooaosenlosquequeremosconsultarelnmerode
curas.


Figura6.72.Vistadelnmerodecurasporcentroconunfiltroporao
ElgrficoasociadoadichatablaseraelquesemuestraenlaFigura6.73.

120


Figura6.73.Grficodelnmerodecurasporcentros
Otra de las posibles vistas a definir de este indicador es el nmero de curas segn el
estadiodelaslceras(Figura6.74.).


Figura6.74.Vistaygrficodelnmerodecurassegnelestadiodelaslceras
Trasdefinirlasvistasdelindicador,losiguienteesdotardenombreacadaunadeestas
vistasdelaformaqueseindicaeneltutorial.Esimportantedotardenombretambinal
rangodeceldasquecontienelatablayelgrficoparaluegoutilizarlocomounavistaenel
dashboard.
Laformadeguardarelinformeparaluegopoderusarloselementosalosqueleshemos
dado nombre en el dashboard es utilizando la pestaa Publish del cuadro de dilogo,
seleccionando Excel Services y en el cuadro de Excel Services Options (Figura 6.75.)
seleccionandoloselementosdellibrodeExcelquequeremosqueseanvisiblesdelalista
ItemsintheWorkbook.

121


Figura6.75.ElementosdellibroExcelseleccionadosparaservisibles
Finalizado el informe del primero de los indicadores, debemos hacer lo mismo para los
indicadoresdeSeguimientosProfesionalesyEstanciaUnidades.
En el caso del indicador de Seguimientos Profesionales, una posible vista sera ver el
tiempomediotranscurridoentreseguimientossegnelcentroyelao(Figura6.76.).


Figura6.76.Vistaygrficodeltiempomedioentreseguimientosporcentro
Por otra parte, para el indicador de Estancia Unidades se puede definir una vista que
muestreeltiempodeestanciamedioenlasunidadesporresidente(Figura6.77.).

122


Figura6.77.Vistaygrficodeltiempomediodeestanciaenunidadesporresidente
Cuandohayamosacabadodecrearlasvistasdecadaindicadorydarlenombreadichas
vistas,elprocesodecreacindelosreportshabrfinalizado.

6.4.7. Creacindashboard
Para finalizar el desarrollo e implementacin de los indicadores, lo nico que falta es
subirlosreportsysusconexionesalportaldeSharepointycreareldashboard.
Enprimerlugarsubiremoslosreportsdelaformaindicadaeneltutorialdedesarrollode
dashboards con Sharepoint. Tras subir los reports, podemos ver en la Figura 6.78. que
hansidoaadidosenelapartadodeReportsLibrary.


Figura6.78.Listadereportsdisponibles
HacemoslomismoconlasconexionesenlapginaDataConnections(Figura6.79.)pero
enestecaso,ademstenemosqueaprobarlasconexionesqueacabamosdesubir.


Figura6.79.Listadeconexionesdisponibles

123

Si consultamos los reports que acabamos de subir pinchando en sus enlaces asociados,
podemosobservarqueslosemuestranlasvistasquehemosdefinidoencadaunodelos
informes.Encasoquedeseramosconsultarotrainformacin,tenemoslaopcindeabrir
elarchivodeExceldesdelapginadeconsultaparajugarconlastablasdinmicashasta
obtenerlainformacindeseada.
Para el report del indicador de Ulceras Curas, los elementos definidos en el report que
aparecenenlapestaaViewsonlosqueaparecenenlaFigura6.80.


Figura6.80.ElementosvisiblesparaelindicadorUlcerasCuras
Acontinuacinvamosacreareldashborardparanuestroscuatroindicadores.Paraello
vamosalapginadeDashboards,hacemosclicenNew,rellenamoselnombrededicho
dashboardydejamoselrestodecamposcomoaparecenpordefecto.
Como lo que tenemos es cuatro indicadores, aadiremos a nuestro dashboard cuatro
webpartsdetipoExcelWebAccessparaquemuestrenlasvistasdefinidasenelreport.
Despusdeaadirlasdebemoseditarlasparadarlesunttulo,indicarelreportalquese
conectan y modificar sus dimensiones para que se ajusten a las dimensiones del
contenidoquequeremosmostrar.Todoestoloharemosenlatablaqueaparececuando
pinchamoselenlaceClickheretoopenthetoolpaneoseleccionamoslaopcinModify
SharedWebPartdelalistadesplegablequeapareceenlaesquinaderechasuperiordela
webpart.
Despusdeaadirlaswebparts,eldashboardquedaratalycomosemuestraenlaFigura
6.81.

124


Figura6.81.Dashboardcompuestode4indicadores
ElsiguientepasoesaadirlosKPIsaldashboardusandolawebpartquehasidoaadida
automticamentealcreareldashboard.
LosKPIsquedebemosdefinireneldashboardsonlossiguientes:
El tamao medio de las lceras para la Residencia 1 se espera que sea menor o
iguala3.Losvalorescomprendidosentre3y4nosondeltodomalosylosvalores
apartirde4sonmalos.
El tamao medio de las lceras para la Residencia 2 se espera que sea menor o
iguala1.Losvalorescomprendidosentre1y2nosondeltodomalosylosvalores
apartirde2sonmalos.
ElnmeromediodedastranscurridosentredosseguimientosparalaResidencia
1seesperaqueseamenoroiguala50.Losvalorescomprendidosentre50y75no
sondeltodomalosylosvaloresapartirde75sonmalos.
ElnmeromediodedastranscurridosentredosseguimientosparalaResidencia
2seesperaquesemenoroiguala30.Losvalorescomprendidosentre30y40no
sondeltodomalosylosvaloresapartirde40sonmalos.
EltiempomediodeestanciadeunresidenteenunaunidadparalaResidencia1se
esperaqueseamenoroiguala100.Losvalorescomprendidosentre100y200no
sondeltodomalosylosvaloresapartirde200sonmalos.

125

El tiempo el tiempo mximo que un residente pasa en una unidad para la


Residencia 1 se espera que sea menor o igual a 365. Los valores comprendidos
entre365y730nosondeltodomalosylosvaloresapartirde730sonmalos.
El nmeromedio de visitas porresidente para la Residencia 1se espera que sea
mayoroigualque1.Losvalorescomprendidosentre0.8y1nosondeltodomalos
ylosvaloresinferioresa0.8sonmalos.
El nmeromedio de visitas porresidente para la Residencia 2se espera que sea
mayoroigualque2.Losvalorescomprendidosentre1y2nosondeltodomalosy
losvaloresinferioresa1sonmalos.
ParaaadirlosKPIsdebemosutilizarlalistadesplegablequeapareceenlawebpart.En
nuestrocasoparaladefinicindelosKPIsutilizaremoslosdatosexistentesenunlibrode
Excel.
La Figura 6.82. muestra la definicin del KPI del tamao medio de una lcera para la
residencia2.


Figura6.82.DefinicinKPIdeltamaomediodeunalceraparalaResidencia2
DespusdeaadirtodoslosKPIsconsuscorrespondientesvalores,lawebpartquedara
comosemuestraenlaFigura6.83.

126


Figura6.83.ListadeKPIsdefinidosparalosindicadores
Segnesto,losKPIsdefinidosnosealcanzanenlamayoradeloscasos,yaquede8que
hemos definido solamente 3 estn en verde, lo cual indica que hemos alcanzado ese
objetivo.LosKPIsdecoloramarilloestnprximosaalcanzarelobjetivomientrasque
losdecolorrojo,estnbastantelejosdealcanzardichoobjetivo.
Dicho esto y tras finalizar la creacin del dashboard, podemos dar el proceso de
desarrolloeimplementacindelosindicadoresporfinalizado.

127

128

Captulo7.Conclusiones
ActualmentelasherramientasdeBusinessIntelligencesuponenunapoyofundamentalen
latomadedecisionesdelosdirectivosdelasempresas.Estasherramientaspermitenla
construccinde solucionesamedidayofrecendeformasencillaunapotenteexplotacin
delainformacingenerandounaventajacompetitivaparalatomadedecisiones.
La solucin de Business Intelligence desarrollada en este proyecto es un ejemplo de
solucinhechaamedida.Enlaactualidad,dichasolucinesutilizadaporvariosclientes
con mltiples residencias. Debido a los buenos resultados, son varios los clientes que
estninteresadosensolucionessimilares.
En cuanto a los objetivos de este proyecto, podemos afirmar que se han cumplido con
xito:
- Se ha constatado que el marco tecnolgico propuesto para el desarrollo de los
indicadoreseraadecuado,yaquesehanpodidodesarrollarlosindicadores,reportsy
dashboardsdeformafcilylosresultadosobtenidoshansidorelativamentebuenos.
- SehavalidadolautilidaddelametodologaTUNEUPysucorrespondienteworkflow
para el desarrollo de indicadores, puesto que nos ha guiado en todo el proceso de
desarrollo.
- Se han desarrollado varios tipos de indicadores indicando las diferencias en la
implementacin existentes entre cada uno de ellos y se ha comprobado durante la
creacindelosinformes asociadosacadaunodeellos,lagrancantidaddeformasde
explotarlainformacindedichosindicadoresgraciasalasherramientasOLAP.
- Se ha desarrollado un dashboard en el que se presenta la informacin de los
indicadores desarrollados y los KPIs definidos para dichos indicadores,
cerciorndonosasdelautilidaddeverlainformacindeformagrficaparaentender
mejorlosdatos.
Respectoalaexperienciaadquiridaeneldesarrollodeindicadoressonmuchaslascosas
acomentarperoacontinuacinespecificolasmsrelevantes:
- En los inicios del desarrollo de indicadores nos centrbamos en la potencia de las
tablasdinmicasperoconelpasodeltiempo,latendenciahacambiadoyahoranos
centramos en desarrollar dashboards y reports estticos porque se ha comprobado
queesloqueprefierenutilizarlosusuarios.
- Elnmerodeindicadoresdesarrolladoshastaelmomentoestentornoalos60.
- El tipo de indicadores que predomina entre los desarrollados son aquellos que
calculan totales en funcin de varias dimensiones. A continuacin, con un nmero
relativamente ms bajo, nos encontramos con los indicadores que muestran
evolucionesyfinalmente,enmuypocoscasos,indicadoresquecalculandiferenciasde
diastranscurridosentredoseventos.
- El tiempo de desarrollo de los indicadores, incluyendo todas las actividades del WF,
oscilaentrelas10horasylas60horasaproximadamentedependiendodeladificultad
paraobtenerlosdatosdelindicador,elnmerodedimensiones,etc. Concretamente,
eltiempomediodedesarrollosueleserdeunas30horas.
- En varias ocasiones ha sido necesario modificar un indicador que haba dejado de
funcionardebidoacambiosrealizadosenelERP.
- Los cdigos unificados son bastante problemticos porque en muchas ocasiones el
clientenolosrellenaydebidoaestolosresultadosobtenidosporelindicadorcarecen
de inters. Adems, cuando se trata de centros con muchas residencias, se ha

129

comprobado que utilizan diferentes cdigos unificados para hacer referencia a lo
mismo,conloquelaunificacindedatosnoesposible.
- Existenindicadoresimplantadosquenoseutilizanbienporqueelusuarioencuentra
demasiadacomplejalainterpretacindelosdatosoporquelapersonaencargada de
trabajarconellostodavanosehapuestoaello.
- El tiempo de carga de los datos de cada indicador vara considerablemente de un
indicadoraotro(podemostenerindicadoresquesecarguenencuestindesegundos
yotrosquetarden20minutos),yaquealgunosmanejanmillonesderegistros.Dicho
esto, es de suponer que si tenemos que lanzar 30 indicadores para un cliente que
cuenta con 10 centros, los tiempos de carga de los datos de todos estos indicadores
paraesoscentrossernbastanteelevados.
- A pesar de que los almacenes de datos estn pensados para guardar informacin
histrica de un perodo que vara de 2 a 10 aos, nuestros clientes prefieren que la
informacinalmacenadacomprendadesdelosltimosaoshastalafechaactual.Esto
esasporqueparaellos resultadegranutilidadpoderconsultar la informacin ms
recienteusandolosreportsdefinidosparalosindicadores.Porestemotivo,serealiza
unrefrescodiariodelosdatosdelosindicadores.
- Eldesarrollodelosindicadoreslollevaacabounequipode3personasqueejercenlos
rolesdeanalista,desarrolladorytester.
Personalmenteesteproyectomehasupuestoungrandesafopuestoquecuandoempec
a trabajar en l, los conceptos de almacenes de datos, cubos OLAP, etc., eran
completamente novedosos para m. Adems no conoca nada acerca de la tecnologa
proporcionadaporMicrosoftparallevaracaboproyectosdeInteligenciadeNegocios,lo
quesuponaundesafoaadidoparalaelaboracindelproyecto.
En cuanto a la continuacin de este trabajo, en este momento se est extendiendo este
trabajo en el mbito del desarrollo de reports estticos incluidos en la norma UNE
158101, utilizando la tecnologa Microsoft Reporting Services. Adems se estn
incorporandomecanismosdeseguridadenlosindicadorespararestringirelaccesoalos
reportsdedichosindicadoreseinclusorestringirlavisualizacindepartedelosdatosde
dichosindicadores.Deestaformaseconsiguequelosusuariossloaccedanalosreports
cuyopermisoleshasidoconcedidoyquenicamentevisualicenlosdatosquesondesu
inters. Junto a esto, se est investigando la manera de dar un servicio centralizado de
soluciones BI a los clientes desde la empresa del ERP pero existe mucha problemtica
relacionadaconlatransmisinseguradedatosentrelaempresaclienteyladelERP.

130

Referencias
[1]Bernabeu,R.Dario.DataWarehousingymetodologaHefesto.Julio2008.Obtenidode
http://www.dataprix.com/es/datawarehousinghefesto

[2] Business Intelligence fcil. Cuadrante mgico de Gartner para las plataformas BI.
Febrero 2010. Obtenido de http://www.businessintelligence.info/mercado/cuadrante
magico2010.html

[3] Hernndez Orallo, Jos. Parte II: Almacenes de datos. 2003. Obtenido de
http://users.dsic.upv.es/~jorallo/cursoDWDM/dwdmII.pdf

[4]Hotek,Mike.PasoaPasoMicrosoftSQLServer2008.AnayaMultimedia.2009.

[5] Ibermatica. Business Intelligence. Obtenido de


http://www.ibermatica.com/publicaciones/BusinessIntelligence.pdf

[6] Kimball, Ralph. A Dimensional Modeling Manifesto. 1997. Obtenido de


http://www.ralphkimball.com/html/articles_search/articles1997/9708d15.html

[7] Kimball, Ralph; Ross, Margy. The Data Warehouse Toolkit: The Complete Guide to
DimensionalModeling(SecondEditioned.).2002.

[8]MaranteEstells,MaraIsabel. Planificacinyseguimientoenproyectosdedesarrolloy
mantenimientodesoftwaredirigidoporlagestindetiempos.Diciembre2009.

[9] Martnez Orol, Alfredo. OLAP y el diseo de cubos. Marzo 2007. Obtenido de
http://www.gestiopolis.com/canales8/ger/olaponlineanalyticprocessing.htm

[10]MicrosoftBusinessIntelligence.MicrosoftBusinessIntelligenceenlaeconomaactual.
Febrero2009.Obtenidodehttp://www.microsoft.com/spain/bi/default.mspx

[11] Microsoft TechNet. Microsoft SQL Server. Obtenido de


http://technet.microsoft.com/eses/library/bb545450%28enus%29.aspx

[12] Sinnexus. Qu es Business Intelligence?.


http://www.sinnexus.com/business_intelligence/index.aspx

[13]Zvenger,Patricia.IntroduccinalSoportedeDecisiones.Diciembre2005.

131

132

Anexos
En estos anexos se adjuntan algunos ejemplos de documentos utilizados durante el
procesodedesarrollodeindicadoresdenegocioyseincluyenpequeostutorialesdelas
herramientasutilizadasendichoproceso.
Partedelmaterialpresentadoenestecaptulohasidoextradode[4].

133

134

AnexoA:PlantillaIndicador

PlantillaIndicadores
INFORMACINDELINDICADOR

Hecho: Visitasfamiliares
Descripcin: Esteindicadormuestraelnmerodevisitasporresidenteyporda.
Finalidad: Sepretendeconocerlaspersonasconmenosvisitasparapoderdarlesunamayor
atencinpersonal.
Medidas: Sumatorioymediadelnmerodevisitasfamiliares.
Granularidad Diaria
:
KPIs: Mostraremos en rojo aquellos campos que Valorpordefecto:
muestren menos de 4 visitas por mes y
residente.

INSTRUCCIONES

1. Hecho.Nombredelavariablequesedeseaanalizar.Ejemplos:Visitasfamiliares.
2. Descripcin. Escuetamente describe el hecho. Ejemplo: Este indicador muestra el
nmerodevisitasporresidenteyporda.
3. Finalidad. Uso que se pretende dar al indicador. Ejemplo: Se pretende conocer las
personasconmenosvisitasparapoderdarlesunamayoratencinpersonal.
4. Medidas.Operacionesarealizarconelhecho.Ejemplo:sumatoriodelasvisitas.Otros
posiblesvalorespodranser:Media,mnimo,mximoymoda.
5. Granularidad Temporal. Unidad mnima de detalle de la cual se puede obtener
informacin. Normalmente se utilizara una granularidad diaria, aunque se pueden usar otros
valores, como por ejemplo: semanal, mensual, trimestral y anual. Para nuestro Ejemplo
utilizamosladiaria,loquesignificaqueobtendremoslasvisitasagrupadasporda.
6. KPIs. Campos a resaltar segn su valor y la agrupacin de estos. Ejemplo:
Mostraremosenrojoaquelloscamposquemuestrenmenosde4visitaspormesyporresidente.
7. Dimensin. Campos por los cuales queremos categorizar el hecho. Ejemplo:
residentes,tipologa,carcterplazaytiempo.(Noimportaelordendelasdimensiones.Agregue
cuantasdesee)
1DIMENSIN
Descripcin:Residente
Semostrarnlosdatosdelresidentevisitado.

Atributos:
Nombreyapellidos,sexoyfechadeingreso.

2DIMENSIN
Descripcin:Centro
Semostrarelcentroalquepertenececadaresidente.

Atributos:
Nombredelcentro,ciudad,provincia,comunidadautnomaypas.

135

3DIMENSIN
Descripcin:Tipologa
Semostrarlatipologadelosresidentes.

Atributos:
Tipologia

4DIMENSIN
Descripcin:CarcterPlaza
Semostrarelcarcterplazadelosresidentes.

Atributos:
CarcterPlaza

5DIMENSIN

Descripcin:Tiempo
Semostrartodalainformacinrelativaalafechadelavisita.

Atributos:
Fecha,dasemana,semana,mes,trimestre,aoynombrecompletodelafecha.

136

AnexoB:DocumentodeAyudadelIndicador

IndicadordeVisitasFamiliares
1.Descripcin.......................................................................................................................................1
2.Dimensin.........................................................................................................................................1
3.Hecho..................................................................................................................................................4
4.Cdigounificado..............................................................................................................................5
5.Mantenimientotablasmaestras...................................................................................................6
1.Descripcin
Esteindicadormuestralasvisitasrecibidasporresidenteylasagrupapor:
Residente,tipologa,carcterplaza,centroytiempo.
LaGranularidaddeesteindicadoresdiaria.Estosignificaquesesumaraelnmerode
visitas que ha recibido un residente por da, lo cual conlleva que no se puede obtener
informacinsobreelnmerodevisitasporunaunidaddetiempomenoralda.
2.Dimensin
Paraelcorrectofuncionamientodeesteindicadordebemoscumplimentarcorrectamente
lossiguientescampos:
Tipologa


CarcterPlaza

137

LossiguientescamposarellenarseencuentranenlapestaadeDatosResidencia.


ResidenciayPas


Poblacinyprovincia.

138

3.Hecho
Tenemosqueintroducirtodalainformacinrelativaacadaunadelasvisitas:residente
visitado,familiarquehacelavisita,elparentescodedichofamiliar,nmerodepersonas
querealizanlavisitayfechadeentrada.


4.Cdigounificado
Adems de los campos que muestran las capturas, debemos de rellenar el cdigo
unificadoparacadaunadelastablasmaestrasdeResiPlusyqueestecdigocoincidacon
elcdigounificadodelastablasmaestrasdelAlmacndedatos.
ParaaccederaestastablasmaestrasdeberemosiraConfiguracinDatosGenerales.


Una vez abierta la ventana Datos Generales, para cumplimentar el cdigo unificado de
CarcterPlaza,deberemosiraResidentes/CarcterPlazas.


Lo mismo debemos hacer para la tipologa, pero en este caso seleccionando
Residentes/TipologasResidentes.

139

5.Mantenimientotablasmaestras
Paraqueesosvaloresunificadospuedanaparecerenelindicadortenemosquecompletar
lastablasmaestrasdelalmacndedatos,tantodetipologascomodecarcterplaza.Esto
serealizadesdeelResiPlusBI,comodetallamosacontinuacin:
AccedemosalmenprincipaldelBIyseleccionamosmantenimientotablasmaestras.


A continuacin seleccionamos la tabla maestra a modificar. Debemos hacer que los
cdigos unificados de la base de datos de ResiPlus coincidan con el cdigo unificado de
nuestroalmacndedatos.Losdatosdondeelcdigounificadonocoincidaaparecernen
elindicadorcomonodefinidos,mientrasqueaquellosenlosquecoincidaaparecerncon
laleyendaqueindiquemosenlamaestradenuestroalmacn.
MaestradeCarcterPlaza

140

MaestradeTipologas

141

142

AnexoC:DocumentodeAnlisis
Departamento: Tipo:
ID5263
Desarrollo DocumentoAnlisis
Programa/Proyecto: Analista: Fechacreacin:
IndicadoresPFC Marta 01/05/2010

1.Descripcin..........................................................................................Error!Marcadornodefinido.
2.Motivacin..........................................................................................................................................1
3.Definicin...........................................................................................................................................1
4.Pruebasdeaceptacin...............................................................................................................2

1.DESCRIPCIN
CreacindelIndicadordeVisitasFamiliaresparaelproyectodeIndicadoresPFC.

2.MOTIVACIN
Elclientepretendeconocerqutipoderesidentesrecibemenosvisitasparadarlems
atencinpersonal.

3.DEFINICIN

3.1.Hechos
VisitasFamiliares
Descripcin:Sumatoriodelasvisitasrecibidasporlosresidentesagrupadas
portodaslasdimensionesqueseindicanenlaseccin3.3.
GranularidadTemporal:Diaria.
FrecuenciadeRecoleccindedatos:1da
Frecuenciaderefrescodelcubo:1da

3.2.KPI
Descripcin: Nos indicar grficamente si el nmero de visitas familiares es
mayorqueunvalordado.
Valorpordefecto:4

3.3.Medidas
/*Enesteapartadoesdondeindicamoselrestodemedidasqueaparecenenlatablade
hechos sin contar lo que medimos en el hecho propiamente (N visitas que reciben los
residentescadada)*/

143

3.4.Dimensiones
Dimensiones Histrico
Centro No(*)
Tiempo No(*)
Residente No(*)
Tipologa S
CarcterPlaza S
(*) Siempre se mostrarn los valores actuales, es decir, los valores que posean esas
dimensionesenlabasededatosdeResiPlus.

4.PRUEBASDEACEPTACIN
5263.1 Comprobar que si un residente recibe ms de una visita en un da, todas las
visitasaparecencontabilizadasenunnicoregistro.
5263.2Comprobarquesihayalgunadimensinsinvalor,siemprequenoseacentro,
residentenitiempo,noseproduceningnerror.
5263.3Comprobarquesialgunadimensinnoposeecdigounificadoonoapareceen
latablamaestradelalmacn,aparecercomonodefinida.

144

AnexoD:DocumentodeDiseo
Departamento: Tipo:
ID5263
Desarrollo DocumentoDiseo
Programa/Proyecto: Analista: Fechacreacin:
IndicadoresPFC Marta 01/05/2010

1. Descripcin...............................................................................................................................................................1
2. Diseo...........................................................................................................................................................................1
3. Notasdediseo.............................................................................................................................................2

1.DESCRIPCIN
CreacindelIndicadordeVisitasFamiliaresparaelproyectodeIndicadoresPFC.

2.DISEO
EsteindicadorsecargapormediodelETL.
Dimensionesdelindicador:
Tiempo(UtilizaremoselcampoFechaHoraEntradadelatablaVisitasFamiliares)
Centro(UtilizaremoslatablaDatosResidencia)
Residente (Utilizaremos el campo IDResidente de latabla VisitasFamiliares para
luegoobtenereliddelalmacncorrespondienteparaeseresidente)
Carcter Plaza (Utilizaremos el campo IDResidente de la tabla VisitasFamiliares
para posteriormente atacar a la tabla ResiHisCaracterPlaza con ese id y la fecha
queindicaelcampoFechaHoraEntradayobtenerelcarcterplazadelresidenteen
esafecha)
Tipologa (Utilizaremos el campo IDResidente de la tabla VisitasFamiliares para
posteriormenteatacaralatabla ResiHisTipologiasPlazaconeseidylafechaque
indica el campo FechaHoraEntrada y obtener la tipologa del residente en esa
fecha)

Hechosdelindicador:
VisitasFamiliares:Sumatoriodelasvisitasfamiliaresagrupadoporresidentey
da. Se aadir el campo NumVisitas a la tabla de hechos. Dicho campo se
cumplimentarcon1paracadaregistrodelatablaresidentes,siemprequeno
se repita el IDResidente ni la fecha de la visita. En caso de que estos campos
aparezcan repetidos, se incrementar el campo NumVisitas en 1 por cada
registrorepetido.Estedatoseobtendrenlatablavisitasfamiliares.
La granularidad ser diaria, por lo que si un residente tiene ms de una visita el
mismoda,mostraremostodasenunmismoregistro.
MiembrosCalculadosyKPI:EsteindicadorposeeunKPIquesemuestraenrojopara
todosaquellosregistroscuyonmerodevisitaspormesyresidenteesinferiora4.

145

CUBO
CrearemosuncuboenmodoMolapqueseprocesarcada24horas,inmediatamente
despusdelacargadelosdatosennuestroalmacndedatos.Poseerlasdimensiones
enunciadasenelapartadoanterior.

3.NOTASDEDISEO

146

AnexoE:DesarrollodepaquetesETLenMicrosoftIntegrationServices
SQLServerIntegrationServices(SSIS)sehadiseadoparaproporcionarloscomponentes
deinfraestructuraquepermiteneltrasladodedatosdeunsistemaaotro,altiempoque
se manipulan los datos para que adopten el formato deseado a medida que se produce
dichotraslado.
Enestetutorial,conoceremosculessonloscomponentesdisponiblesdentrodeSSIS,as
como a construir paquetes SSIS flexibles para su entorno. Dado que los documentos de
ejemplomostradosanteriormentehacanreferenciaalindicadordevisitasfamiliares,ese
eselindicadorquevamosautilizarcomoejemplodeestetutorial.
AcontinuacinseindicanlospasosnecesariosparapoderdesarrollarelpaqueteETLdel
indicadorencuestin,suponiendoqueelalmacndedatoshasidocreadoycargado.
Paso1:CrearunproyectodeIntegrationServices
En primer lugar, crearemos un nuevo proyecto de SSIS y nos familiarizaremos con los
camponentesbsicosdelentorno.
ParacrearunproyectodeSSIS,seguimosestospasos:
1. Hacemos clic en Inicio, seleccionamos Todos los programas, seleccionamos
Microsoft SQL Server y, despus, hacemos clic en SQL Server Business
Intelligence Development Studio. De esta forma se abrir el entorno de
desarrollodeMicrosoftVisualStudio.
2. Cerramos la ficha Pgina de Inicio. En el men Archivo de Visual Studio,
seleccionamosNuevoyhacemosclicenProyecto.
3. EnelcuadrodedilogoNuevoproyecto,seleccionamosProyectosdeBusiness
Intelligence en el panel Tipos de proyecto, y seleccionamos Proyecto de
IntegrationServicesenelpanelPlantillas.
4. Cambiamos el nombre del proyecto, el cal cambiar tambin el nombre de la
solucin,yhacemosclicenAceptar.
LaFiguraE.1.muestralapantallaresultantetraslacreacindelproyecto.
Enlaparteinferiordelapantalla,vertrespestaas:Listadeerrores,Listadetareasy
Resultados. La Lista de errores muestra todos los errores y advertencias relativas a su
paqueteduranteeldiseoodepuracin.LaListadetareasesunazonadondepodrhacer
un seguimiento de una lista detareas que necesita lanzar mientras trabaja dentro de la
solucin. Las ventanas de Resultados mostrarn la informacin del estado y progreso
juntoconcualquiermensajequeseproduzcadurantelaejecucindeunpaquete.
En la parte derecha de la pantalla ver las ventanas Explorador de soluciones y
Propiedades.ElExploradordesolucionesseutilizaparaagrupartodoslosobjetosenun
proyectoylepermiteagregarFuentesdedatos,VistasdefuentesdedatosyPaquetes
al proyecto. En la ventana Propiedades puede ver y editar las propiedades del objeto
seleccionado.

147


FiguraE.1.Pantallaresultantetraslacreacindeunproyecto

Paso2:RenombrarelpaqueteSSIS
Para cambiar el nombre que tiene por defecto el paquete cuando creamos un nuevo
proyectodebemos:
1. SeleccionarelpaqueterecincreadoenelExploradordesoluciones.
2. Cambiarelnombre(CampoNombre)enlaventanadePropiedades(FiguraE.2.)y
hacer clic en S cuando aparezca un cuadro de dilogo preguntando si desea
renombrarelobjetodelpaquete.


FiguraE.2.VentanaPropiedadesdelpaqueteSSIS
Las dos zonas donde pasaremos la mayor parte de nuestro tiempo son el Cuadro de
herramientas a la izquierda y la superficie de diseo en el panel central. El Cuadro de

148

herramientascontienetodaslastareasytransformacionesquepuedenutilizarsealahora
de construir un paquete SSIS. La superficie de diseo se utiliza para construir el flujo y
movimientodedatosdelpaquete.
La superficie de diseo se divide en cuatro pestaas: Flujo de control, Flujo de datos,
ControladoresdeeventosyExploradoresdepaquetes.LapestaadelExploradorde
paquetes permite explorar un paquete de forma jerrquica con el fin de ver todos los
componentes que se han configurado. La pestaa Flujo de control es el lugar donde se
disea el proceso de negocios que ejecutar el paquete. En la pestaa Flujo de datos
disearemos la forma en que los datos se movern y se manipularn. La pestaa
Controladores de eventos nos permite especificar acciones en respuesta a un evento de
paquetes.
SSIS incluye 40 tareas diferentes que pueden agregarse a un paquete. Las tareas se
dividen en dos categoras principales: tareas de Flujo de control y tareas del Plan de
mantenimiento.
Ennuestrocaso,solamenteutilizamostareasdeFlujodecontrol,siendolasmsutilizadas
lassiguientes:
Contenedordesecuencias:Seutilizaparaagrupartareasenunaunidadlgicade
trabajo.
Tarea Flujo de datos: Es una tarea esencial en casi todos los paquetes SSIS que
llevaasociadaunpaneldeFlujodedatosdondesepodrconfigurardequmanera
se mueven los datos y cualquier manipulacin exigida a medida que se van
procesandolosdatos.
TareaEjecutarSQL:PermiteejecutarscriptsdeTSQL.
Encuantoalastransformacionesmsutilizadasdentrodelastareas de flujos de datos,
tenemoslassiguientes:
Agregado: Permite realizar cmputos de agregados mientras los datos se
transmitenatravsdelpaquete.
Ordenar:Ordenaelconjuntodedatos.
Divisincondicional:Seutilizaparadividirunorigendedatosendiversassalidas
basndoseenunacondicin.
Conversindedatos:Conviertetiposdedatos.
Columnaderivada:Seutilizasiemprequenecesitamosmanipulardatos,talescomo
la sustitucin de cadenas vacas con un valor NULL, la eliminacin de caracteres
invlidosoelclculodenuevosvalores.
Mezclar:Combinadoscorrientesdedatosordenadosenunasalidanica.
Unindetodo:Igualquelaanteriorperopuedecombinarmsdedosentradasde
datosdesordenadas.
Combinacin de mezcla: Combina conjuntos de datos ordenados con una
funcionalidad similar a la ejecucin de una declaracin SELECT con INNER y
OUTERJOIN.
Multidifusin:Permitedistribuirunaentradaenmltiplessalidas.

149

Componentedescript:PermiteincrustarscriptVisualBasic.NEToC#enunflujo
dedatos.
Paso3:Creacinyconfiguracindelasconexiones
Unavezcomentadaslastareasytransformacionesmsutilizadas,elsiguientepasoenla
creacindelpaqueteETLeslacreacinyconfiguracindelasconexiones.Primeramente
aadimos los orgenes de datos y luego agregamos las conexiones al panel de
Administradoresdeconexinutilizandolosorgenesdedatos.
Parallevaracaboestatareatenemosque:
1. SeleccionarlacarpetaOrgenesdedatosenelExploradordesoluciones,hacer
clic en el botn derecho y seleccionar Nuevo origen de datos. Se abrir el
AsistenteparaorgenesdedatosyhacemosclicenSiguiente.
2. En la pgina Seleccione cmo definir la conexin, hacemos clic en Nueva.
AparecerelcuadrodedilogoAdministradordeconexin(FiguraE.3.).Eneste
cuadrodedilogosedefinenlaspropiedadesdeconexinparaelorigendedatos.
Unadministradordeconexinesunarepresentacinlgicadelaconexinquese
utilizarentiempodeejecucin.
3. En la lista Proveedor, comprobamos que la opcin OLE DB nativo\SQL Native
Clientestseleccionada.
4. En el cuadro de texto Nombre de servidor, escribimos el nombre del servidor
dondesealojalabasededatosconlaquequeremosconectar.Enestecasolabase
dedatosseencuentra enelequipolocal;noobstante,lasbasesdedatosdeorigen
generalmenteseencuentranalojadasenunoomsequiposremotos.
5. Comprobamos que la opcin Utilizar autenticacin de Windows est
seleccionada. En la lista Seleccione o escriba un nombre de base de datos,
seleccionamoselnombredelabasededatos.

150


FiguraE.3.CuadrodedilogoAdministradordeconexin

6. HacemosclicenAceptary,acontinuacinenSiguiente.
Hastaelmomentohemoscreadounorgendedatosquesecorrespondeconlabasede
datos operacional de la que se extraen los datos para el indicador. Dado que nuestro
indicador requiere una conexin a la base de datos operacional y otra conexin al
almacn de datos, ya que es ah donde se guarda la informacin a explotar por los
indicadores, debemos repetir los pasos 16 para crear un orgen de datos asociado al
almacndedatos.
7. Hacemos clic en el panel Administradores de conexin, seleccionamos Nueva
conexin desde origende datos yseleccionamoslosorgenesdedatoscreados
anteriormente.
A continuacin, hay que especificar el proceso de negocio que queremos que ejecute el
paquetepormediodetareasdeflujodedatosagregadasalflujodecontrol.Sinembargo,
en muchas ocasiones resulta necesario definir variables para poder utilizarlas en
diferentestareasdeflujodedatosyporesoelsiguientepasoesladefinicindevariables.

Paso4:Definicindevariables
ParaagregarunavariableaunpaquetedeSSISrealizaremoslassiguientesacciones:
1. IralmenVista,seleccionarOtrasVentanasyhacerclicenVariables.
2. EnlaventanaVariables(FiguraE.4.),hagacliceneliconoAgregarvariableyse
agregar la nueva variable a la lista. Dependiendo de qu parte del paquete
tengamosseleccionadacuandoagreguemoslavariable,elmbitodelamismaser

151

diferente,esdecir,sitenemosseleccionadaunatareadeflujodedatos,elmbito
de la variable ser esa tarea mientras que si no tenemos seleccionada ninguna
tarea,elmbitosertodoelpaquete.
3. Ponemosnombrealavariableeindicamoseltipodedatosyelvalorpordefecto
delamisma.


FiguraE.4.VentanaVariables
En caso de que la informacin introducida con respecto a la variable no sea correcta,
podemoseliminarlavariablehaciendocliceneliconoEliminarvariable.

Paso5:Construccindelflujodecontrol
El flujo de control puede estar compuesto de varias tareas de flujo de control o de
mantenimiento. Sin embargo, para nuestro indicador, slo vamos a necesitar dos tareas
deflujodecontrol(FiguraE.5.):unaqueseencarguederellenarlavariabledefinidaenel
pasoanterioryotraqueextraigalosdatosdelabasededatosoperacionalylosalmacene
enlatabladehechosdelalmacndedatos.
Paraconstruirelflujodecontrol,tenemosque:
1. Arrastrar dos Tareas de flujo de datos desde el Cuadro de herramientas a la
superficiedediseodeflujodecontrol.
2. SeleccionarlaprimeraTareadeflujodedatosyarrastrarlaflechaverdehastala
segundatareaparacrearunarestriccindeprecedencia.
3. Cambiar el nombre de las tareas para ponerle nombres ms significativos. Para
ello, haga clic con el botn derecho en la tarea correspondiente y seleccione
CambiarNombreobienseleccionelatareaymodifiqueelnombreenelpanelde
Propiedades.
4. Dadoqueannoestamoslistosparalaejecucindelastareas,hacemosclicconel
botnderechoenlastareasyseleccionamoslaopcinDeshabilitar.

152


FiguraE.5.FlujodecontroldelindicadorVisitasFamiliares
Dadoqueyatenemoselflujodecontrolconstruido,ahorahayqueconfigurarelflujode
datosparacadaunadelastareasagregadasalflujodecontrol.

Paso6:Construccindelflujodedatos
Enestepasosevaaprocederalaconstruccindelflujodedatos.Comohayqueconstruir
elflujodedatosdedostareas,primeroseconstruirelflujodedatoscorrespondienteala
primeratareayluegoeldelasegundatarea.
El objetivo de la primera tarea es dotar de un valor a la variable IDCentro y para ello
necesita obtener el valor almacenado en el almacn para el centro del que estamos
obteniendolosdatos.Concretamente,lospasosaseguirparaconstruiresteflujodedatos
son:
1. SeleccionarlapestaadeFlujodedatosyarrastrardosOrgenesOLEDB,dos
Conversiones de datos, dos Ordenar, una Combinacin de mezcla y un
Componentedescriptalasuperficiedediseodeflujodedatos.
2. Hacer doble clic en uno de los orgenes y elegir la conexin Residencia como
administrador de conexiones. Repetir la accin en el otro orgen y elegir la
conexinAlmacn.
3. Seleccionar en el desplegable de Modo de acceso a datos, la opcin Comando
SQL. Otra posibilidad sera pinchar la opcin Tabla o vista y seleccionar las
columnasperoserecomiendalaprimeraalternativa.
4. IntroducirlaconsultaSQLobienpincharelbotndeGenerarconsulta.Alpulsar
este botn, hacemos clic en el botn derecho, seleccionamos Aadir tabla y
marcamos las columnas que queremos que salgan en la consulta. Repetimos el
procesohastaquetengamostodaslastablasycolumnasaadidasnecesariaspara
laconsultaypulsamosAceptar.
5. Haga clic en el botn Vista previa para asegurarse de que ha elegido el
administradordeconexionescorrectoyhagaclicenCerrar.
6. ArrastrelaflechaverdedeOrgenOLEDBhastalatransformacindeConversin
dedatosenamboscasos.

153

7. Haga doble clic en la transformacin de Conversin de datos (Figura E.6.),
seleccione la columna cuyo tipo desea cambiar, indiqueel nombrey el tipo de la
nuevacolumnaypulseAceptar.


FiguraE.6.TransformacinConversindedatos
8. ArrastrelaflechaverdedesdelatransformacindeConversindedatoshastala
deOrdenar.
9. Hagadobleclicenlatransformacinde Ordenar,seleccionelacolumnaporlaque
deseaordenarlosdatosyhagaclicenAceptar.
10. Arrastre la flecha verde desde la transformacin de Ordenar hasta la de
Combinacindemezcla.
11. Haga doble clic en la transformacin de Combinacin de mezcla (Figura E.7.),
seleccioneeltipodeunin(Innerjoin,LeftouterjoinoFullouterjoin),seleccione
las columnas que desea de cada conjunto de datos y haga clic en Aceptar. Se
observaqueambosconjuntosdedatosaparecenenlazadosporlacolumnaporla
queloshemosordenadoenelpasoprevio.

154


FiguraE.7.TransformacinCombinacindemezcla
12. ArrastrelaflechaverdedesdelatransformacindeCombinacindemezclahasta
latransformacindeComponentedescript.
13. Haga doble clic en la transformacin de Componente de script. Primeramente,
indique el lenguaje del script y las variables que se van a leer o escribir. Luego
indique las columnas de entrada, las entradas y salidas del script utilizando los
botonesAadirSalidayAadirColumna.Esmuyimportantequeparalassalidas
pongaelcampoSynchronousInputIDaninguno(FiguraE.8.).Finalmente,pulseel
botnEditarscriptparaponerelcdigodelmismo,gurdeloypulseAceptar.

155


FiguraE.8.Configuracindeentradasysalidasdelcomponentedescript
14. Dunnombrereconociblealosobjetosdelflujodedatos(FiguraE.9.)talycomo
seindicanteriormenteyguardeelpaquete.


FiguraE.9.FlujodedatosasociadoalatareaConsigueCentro

156

Finalizadoelflujodedatosdelaprimeratarea,tenemosqueconstruirelflujodedatosde
lasegundatarea.Aligualqueparalaprimeratarea,tenemosqueaadirunOrgenOLE
DB por cada tabla de la base de datos operacional o del almacn de datos que
consultemos,transformacionesdeOrdenar,transformacionesdeConversindedatos,
transformaciones de Combinacin de mezcla y arrastrar las flechas verdes de una
transformacinaotraparaenlazarlas.
Puesto que ya hemos comentado en la tarea anterior cmo funcionan la mayora de las
transformaciones, a continuacin slo vamos a comentar de la segunda tarea aqullas
transformacionesnovistashastaelmomento.
Agregado:
Hacemosdobleclicenlatransformacin(FiguraE.10.),seleccionamoslascolumnassobre
las que vamos a hacer alguna operacin e indicamos la operacin a realizar sobre cada
una de ellas (Group by, Count, Count distinct, Sum, Average, Maximum, Minimum).
PulsamosAceptarparaguardarloscambios.


FiguraE.10.TransformacinAgregado

Columnaderivada:
Hacemos doble clic en la transformacin (Figura E.11.), indicamos el nombre de la
columna derivada y pulsamos Aceptar. En el campo Expresin ponemos cmo

157

rellenamos la columna, en nuestro caso es con la variable definida anteriormente y
rellenada en el anterior flujo de datos pero puede rellenarse aplicando una funcin
matemticauotrooperador.


FiguraE.11.TransformacinColumnaDerivada

DestinoOLEDB:
Hacemos doble clic en la transformacin (Figura E.12), seleccionamos como Modo de
accesoadatoslaopcindeCargarpidadetablaovistayseleccionamoslatablaque
vamosarellenar.

158


FiguraE.12.ConfiguracinDestinoOLEDB
Hacemos clic en Asignaciones (Figura E.13.), asignamos las columnas de entrada
apropiadasalascolumnasdedestinocorrespondientesyhacemosclicenAceptar.

159


FiguraE.13.PestaaAsignacionesdelDestinoOLEDB
Unavezfinalizadoslosdosflujosdedatos,elsiguientepasoesejecutarelpaqueteSSISy
comprobarquetodofuncionacorrectamente.

Paso7:Ejecucindelpaquete
Para comprobar que el paquete recin construido funciona correctamente debemos
ejecutarlo. Existe la posibilidad de ejecutar cada tarea del flujo de control por separado
utilizando la opcin Ejecutar tarea cuando haces clic con el botn secundario sobre la
tareaoejecutarelpaqueteentero.Lospasosaseguirsonlossiguientes:
1. Habilitarlasdostareasdelflujodecontrolhaciendoclicconelbotnderechoenla
tareayseleccionandoHabilitar.
2. Seleccionamos el paquete en el Explorador de soluciones, hacemos clic con el
botnderechoyseleccionamosEjecutarpaquete.
Si ambas tareas aparecen de color verde significa que el paquete se ha ejecutado
correctamenteysehanalmacenadolosdatosenelalmacn.Encasodequealgunatarea
tengacolorrojo,significaqueelflujodedatosdeesatareacontienealgnerroryporlo
tanto hay que revisarlo. Las tareas aparecern de color amarillo mientras se estn
ejecutandoynohayanfinalizado.

160

En caso de que aparezcan errores, tenemos la posibilidad de colocar visores de datos
sobre los flujos de datos que vande una transformacin a otrapara comprobar que los
datosquepasandeunatransformacinaotrasonlosdeseados.Paracolocarunvisorde
datostenemosque:
1. Colocarnos sobre la flecha verde que va de una transformacin a otra, hacer clic
conelbotnderechoyseleccionarVisoresdedatos.
2. EnelcuadrodedilogoEditorderutasdeflujodedatos(FiguraE.14.),hagaclic
enVisoresdedatosy,acontinuacin,enAgregar.


FiguraE.13.CuadrodedilogoEditorderutasdeflujodedatos

3. En el cuadro de dilogo Configurar visor de datos, haga clic en Cuadrcula y


seleccione las columnas que desee mostrar en el visor de datos. De forma
predeterminada,todaslascolumnasdisponiblesaparecenseleccionadas.
4. Haga clic en Aceptar dos veces, la primera para confirmar la configuracin del
visordedatosylasegundaparaconfirmarlaadicindelvisordedatos.
Tras ejecutar el paquete y comprobar que todo funciona correctamente, el proceso de
creacindelpaqueteETLenSSISestfinalizado.

161

162

AnexoF:DesarrollodecubosOLAPenMicrosoftAnalysisServices
En este tutorial, aprenderemos a definir orgenes de datos, vistas de orgenes de datos,
dimensiones y cubos en un proyecto de Analysis Services, facilitando al usuario la
explotacindeunDataWarehouse.
Para obtener ms informacin sobre como modificar medidas, dimensiones, jerarquas,
atributos,gruposdemedidadelproyecto,ascomodefinirclculos,indicadoresdeclave
de rendimiento (KPI), acciones, perspectivas, traducciones y funciones de seguridad
debemosconsultareltutorialdeMicrosoft.
Dado que los documentos de ejemplo mostrados anteriormente hacan referencia al
indicadordevisitasfamiliares,eseeselindicadorquevamosautilizarcomoejemplode
estetutorial.
A continuacin seindican los pasos necesarios para poder desarrollarelcuboOLAPdel
indicadorencuestin,suponiendoqueelalmacndedatoshasidocreadoycargadoyel
paqueteETLhasidoejecutado.

Paso1:CrearunproyectodeAnalysisServices
En primer lugar, crearemos un nuevo proyecto de SSAS y nos familiarizaremos con los
camponentesbsicosdelentorno.
ParacrearunnuevoproyectodeAnalysisServices:
1. Hacemos clic en Inicio, seleccionamos Todos los programas, seleccionamos
Microsoft SQL Server y, despus, hacemos clic en SQL Server Business
Intelligence Development Studio. De esta forma se abrir el entorno de
desarrollodeMicrosoftVisualStudio.
2. Cerramos la ficha Pgina de Inicio. En el men Archivo de Visual Studio,
seleccionamosNuevoyhacemosclicenProyecto.
3. EnelcuadrodedilogoNuevoproyecto,seleccionamosProyectosdeBusiness
Intelligence en el panel Tipos de proyecto, y seleccionamos Proyecto de
AnalysisServicesenelpanelPlantillas.
4. Cambiamos el nombre del proyecto, el cal cambiar tambin el nombre de la
solucin,yhacemosclicenAceptar.
En la parte derecha de la pantalla ver las ventanas Explorador de soluciones y
Propiedades.ElExploradordesolucionesseutilizaparaagrupartodoslosobjetosenun
proyecto y le permite agregar Orgenes de datos, Vistas de origen de datos, Cubos,
Dimensiones,Estructurasdemineradedatos,Funciones,EnsambladosyVariosal
proyecto. En la ventana Propiedades puede ver y editar las propiedades del objeto
seleccionado.

Paso2:Definirunorigendedatos
Trascrearelproyecto,generalmenteseempiezaatrabajarconelmismodefiniendounoo
ms orgenes de datos. Al definir un origen de datos, se especifica la informacin de la
cadenadeconexinqueseutilizarparaestablecerlaconexinconelDataWarehouse.
Enelsegundopasodefiniremosunorigendedatosrealizandolossiguientespasos:

163

1. En el Explorador de soluciones, hacemos clic con el botn secundario en
Orgenesdedatosya,continuacin,hacemosclicenNuevoorigendedatos.Se
abrirelAsistenteparaorgenesdedatosyhacemosclicenSiguiente.
2. En la pgina Seleccione cmo definir la conexin, hacemos clic en Nueva.
Aparecer el cuadro de dilogo Administrador de conexin. En este cuadro de
dilogo se definen las propiedades de conexin para el origen de datos. Un
administrador de conexin es una representacin lgica de la conexin que se
utilizarentiempodeejecucin.
3. En la lista Proveedor, comprobamos que la opcin OLE DB nativo\SQL Native
Clientestseleccionada.
4. En el cuadro de texto Nombre de servidor, escribimos el nombre del servidor
dondesealojanuestroDataWarehouse.Enestecasolabasededatosseencuentra
en el equipo local; no obstante, las bases de datos de origen generalmente se
encuentranalojadasenunoomsequiposremotos.
5. Comprobamos que la opcin Utilizar autenticacin de Windows est
seleccionada. En la lista Seleccione o escriba un nombre de base de datos,
seleccionamoselnombredenuestroDataWarehouse.
6. Hacemos clic en Aceptar y, a continuacin en Siguiente. Aparecer la pgina
Informacin de suplantacin, en la cual deben definirse las credenciales de
seguridadqueAnalysisServicesdebeutilizarparaconectarsealorigendedatos.
7. Seleccionamos Utilizar cuenta de servicio y hacemos clic en Siguiente. Esta
cuentatienelospermisosnecesariosparaobteneraccesoalDataWarehouse.
8. En la pgina Finalizacin del asistente, hacemos clic en Finalizar para crear el
nuevoorigendedatos.

Paso3:Definirunavistadelorigendedatos
Una vez definido el orgen de datos que utilizaremos en el proyecto, el paso siguiente
consisteendefinirunavistadelorigendedatosparaelproyecto.
Unavistadelorigendedatosesunasolavistaunificadademetadatosdetablasyvistas
especificadas que el origen de datos define en el proyecto. Almacenar metadatos en la
vista permite trabajar con ellos durante el proceso de desarrollo sin ninguna conexin
abiertaconningnorigendedatossubyacente.
Paradefinirunavistadelorigendedatosnuevarealizaremoslassiguientesacciones:
1. EnelExploradordesoluciones,hacemosclicconelbotnsecundarioenVistas
deorigendedatosy,acontinuacin,hacemosclicenNuevavistadeorigende
datos. Se abrir el Asistente para vistas de origen de datos y hacemos clic en
Siguiente.
2. EnlapantallaSeleccionarunorigendedatos,comprobamosqueenOrgenesde
datosrelacionalesapareceseleccionadonuestroorigendedatos,yhacemosclic
enSiguiente.
3. EnlapantallaSeleccionartablasyvistas(FiguraF.1.),seleccionaremoslastablas
dehechosydimensionesdenuestroindicadordelalistadeobjetosdisponiblesen
elorigendedatosseleccionado.Podemosfiltrarestalistaparafacilitarlaseleccin.

164

ParaagregarlastablasalalistadeObjetosIncluidostenemosqueseleccionarlas
tablasquequeramosincluir,mantenerpulsadalateclaCTRLyhacerclicen>.


FiguraF.1.PantallaSeleccionartablasyvistas
4. HacemosclicenSiguientey,acontinuacinhacemosenFinalizarparadefinirla
vistadeorigendedatos.
El contenido de la vista se muestra en el Diseador de vistas del origen de datos de
Business Intelligence Development Studio. Este diseador contiene los siguientes
elementos:
El panel Diagrama, en el que las tablas y sus relaciones se representan
grficamente.
ElpanelTablas,enelquelastablasyloselementosdeesquemasemuestranen
unavistaderbol.
El panel Organizador de diagramas, en el que podemos crear subdiagramas de
modoquepodamosverlossubconjuntosdelavistadeorigendedatos.
UnabarradeherramientasespecficadelDiseadordevistasdeorigendedatos.
EnlaFiguraF.2.semuestralavistadelorigendedatosenelDiseadordevistasdeorigen
dedatos.

165


FiguraF.2.Diseadordevistasdeorigendedatos

Paso4:Modificarlosnombresdetablapredeterminados
Enocasiones,losnombresquetienenlastablasdelavistadelorigendedatosnoresultan
losuficientementeclarosyresultaconvenientecambiarlos.Paracambiarelnombreque
tienecadatabla,debemoshacerlosiguiente:
1. EnelpanelDiagramadelDiseadordevistasdeorigendedatos,hacemosclic
conelbotnsecundarioenunadelastablasyluegoenPropiedades.Aparecerla
ventana oculta Propiedades, en la que se muestran las propiedades del objeto
seleccionado.
2. CambiamoslapropiedadFriendlyNameporelnombredeseado.Realizamosesta
mismaaccinparacadaunadelastablasquesedeseecambiarelnombre.

Paso5:Definiruncubo
Definida la vista del origen de datos, estaremos preparados para definir el cubo de
nuestro indicador. Para ello, utilizaremos el Asistente para cubos, el cual nos ayuda a
definir las medidas y las dimensiones de un cubo. En el asistente, podemos definir un
cubobasadoenunorigendedatosopodemosdefiniruncubosinningnorigendedatos
existente. Si definimos un cubo sin origen de datos existente, utilizaremos el asistente
paragenerarelesquemaparaelorigendedatossubyacente.
Paradefiniruncuboysuspropiedadesseguiremoslossiguientespasos:
1. EnelExploradordesoluciones,hacemosclicconelbotnsecundarioenCubos
y,acontinuacinhacemosclicenNuevocubo.AparecerlapginaAsistentepara
cubosyhacemosclicenSiguiente.
2. En la pgina Seleccionar mtodo de generacin, seleccionamos Usar tablas
existentesyhacemosclicenSiguiente.
3. Seleccionamos la tabla de hechos (Fact_VisitasFamiliares) para Tablas de grupo
demedidayhacemosclicenSiguiente.

166

4. AceptarlaopcinpordefectodelaspginasSeleccionarmedidasySeleccionar
nuevas dimensiones y hacer clic en Siguiente. En el caso de las medidas, el
asistenteseleccionacomomedidacadacolumnadetipodedatosnumricosdelas
tablasidentificadascomotablasdehechos.
5. IndiqueelnombredelcuborecincreadoyhagaclicenFinalizar.
Al finalizar el proceso de creacin del cubo, se observa que ste aparece incluido en la
carpetas Cubos del Explorador de soluciones y las dimensiones aparecen en la carpeta
Dimensiones. Adicionalmente, en el centro del entorno de desarrollo, el Diseador de
cubosmuestraelcubo.Esimportantemencionarquepordefectotodosloscuboscreados
con el asistente son de tipo Molap pero puede modificarse accediendo a la ventana de
propiedadesdelcubo.
En la Figura F.3. se muestran las tablas de dimensiones y de hechos en el diseador.
Observamos que la cabecera de la tabla de hechos es amarilla y las de las tablas de
dimensionessonazules.


FiguraF.3.TablasdehechosydimensionesdelindicadorVisitasFamiliares
TrasutilizarelAsistenteparacubosparadefiniruncubo,podemosrevisarlosresultados
enelDiseadordecubos.Acontinuacin,sedescribencadaunadelasfichasqueforman
partedelDiseadordecubos,lascualespermitengestionarlaestructuradeuncubo.
ElDiseadordecubosmuestralasdistintasvistasdeuncuboatravsdelassiguientes
fichas:
Estructuradecubo:permitemodificarlaarquitecturadeuncubo.
Usodedimensiones:utilizadaparadefinirlasrelacionesentrelasdimensionesy
losgruposdemedida,ascomolagranularidaddecadadimensindentrodecada
grupo de medida. Si utilizamos varias tablas de hechos, es posible que debamos
identificar si las medidas se aplican a una o ms dimensiones. Cada celda
representa una posible relacin entre el grupo de medida y la dimensin de la
interseccin.

167

Clculos: se utiliza para examinar los clculos definidos para el cubo, definir
nuevosclculosparatodoelcuboounsubcubo,reordenarlosclculosexistentesy
depurar los clculos paso a paso mediante puntos de interrupcin. Los clculos
permiten definir nuevos miembros y medidas en funcin de valores existentes,
comounclculodebeneficios,ydefinirconjuntosconnombre.
KPI: permiten crear, editar y modificar los indicadores de clave de rendimiento
(KPI) de un cubo. Los KPI permiten al diseador determinar con rapidez la
informacinqueresultadeutilidaddeunvalor,comosielvalordefinidoexcedeun
objetivoonollegaalobjetivo,osilatendenciadelvalordefinidomejoroempeora.
Acciones: utilizada para crear o modificar las acciones de obtencin de detalles,
informesyotrasaccionesparaelcuboseleccionado.Lasaccionesproporcionana
los clientes informacin sensible al contexto, comandos e informes a los que los
usuariosfinalespuedenobteneracceso.
Particiones: utilizamos esta ficha para crear y administrar las particiones de un
cubo. Las particiones permiten almacenar secciones de un cubo en distintas
ubicacionescondistintaspropiedades,comolasdefinicionesdeagregacin.
Perspectivas: permite crear y administrar las perspectivas de un cubo. Una
perspectiva es un subconjunto definido de un cubo y se utiliza para reducir la
complejidadpercibidadeuncuboparaelusuariodeempresa.
Traducciones: se utiliza para crear y administrar nombres traducidos de los
objetosdecubo,comonombresdemesydeproducto.
Examinador:permiteverlosdatosdelcubo.
Acontinuacinmodificaremoslasdimensionesymedidascreadasporelasistenteparala
creacin de cubos con el fin de proporcionar al usuario una interfaz de exploracin de
msfcilmanejo.Agregaremosademsunclculoalcuboquenosproporcionarlamedia
devisitasfamiliaresrealizadasalosresidentes.

Paso6:Modificarlasdimensionesycreacindejerarquas
Paradiseardimensiones,sigaestospasos:
1. EnelExploradordesoluciones,hagadobleclicencualquieradelasdimensiones
yseabrirlaventanadediseodeladimensin.
2. Arrastredesdelavistadelorigendedatosalapartedelosatributostodosaquellos
atributosquedeseaquesemuestrenposteriormente.
3. Enlaventanadeatributos,seleccioneelnombredeladimensin,hagaclicconel
botn secundario y seleccione Propiedades. Asegrese de que la propiedad
UnknownMember est Visible y ponga el valor No Definido en la propiedad
UnknownMemberName.Conestaltimaaccinconseguimosque,sihayvalores
nulosenesadimensin,todossemuestrencomoNoDefinido.
4. Modificarlaspropiedadesdelosatributosdeladimensinqueaparecenmarcados
comoclavedeladimensinhaciendoclicconelbotnderechosobreelatributoy
modificando a False el campo AttributeHierarchyVisible de la ventana
Propiedades para que no se vean dicho atributos, ya que se trata de
identificadores. Para el resto de atributos dejamos las propiedades tal y como
aparecenpordefecto.

168

Enelcasodealgunasdimensionesesdegranutilidaddefinirjerarquasquepermitana
losusuariosnavegarentrelosdatosdeunamaneramsintuitiva.Concretamente,enel
indicador de ejemplo, es conveniente definir una jerarqua para la dimensin Centro y
otraparaladimensinTiempo.Dadoqueambasjerarquassondiferentes,acontinuacin
sedetallanlospasosparacrearambas.
JerarquaDimensinCentro:
1. ArrastrelosatributosPais,Comunidad,Provincia,CiudadyNombreeneseorden
talycomoseapreciaenlaFiguraF.4.


FiguraF.4.JerarquaDimensinCentro

JerarquaDimensinTiempo:
1. Arrastre los atributos Ao, Trimestre, Mes, Semana, Dia Semana y Fecha en ese
orden.
2. Pasamos a la pestaa de Relaciones de atributo, pinchamos en la superficie de
diseoconelbotnderechoyseleccionamosNuevarelacindeatributo(Figura
F.5.). Primeramente creamos una relacin poniendo como atributo origen Mes y
MesIDcomoatributorelacionadoyluegorepetimoselprocesoconlosatributos
DiaSemanayNumDiaSemana.


FiguraF.5.Cuadrodedilogoparacrearunanuevarelacinentreatributos

169

3. Seleccionamos el atributo Mes y pulsamos el botn derecho para acceder a las
propiedades de dicho atributo. En el campo OrderBy seleccionamos la opcin
AttributeKeyyenelcampoOrderByAttributeseleccionamosMesID.Repetimos
el proceso con el atributo Dia Semana con la diferencia de que en el campo
OrderByAttributeponemosNumDiaSemana.
Una vez modificadas las propiedades de las dimensiones y creadas las jerarquas, se
procedealcierredeldiseadordeladimensin.

Paso7:Adicinymodificacindemedidas
Esposiblequecuandocreamosuncubo,lasmedidasqueponepordefectoelasistenteno
seajustenaloquequeremosonecesitemoscrearnuevasmedidaspararealizarclculos
msespecficos.Parallevaracaboestasacciones,debemosseguirestospasos:
1. En el Explorador de soluciones, hacemos doble clic sobre el cubo al que
queremosmodificarlasmedidas.
2. Vamos al apartado de Medidas en la parte izquierda, seleccionamos la medida a
modificar,hacemosclicconelbotnsecundarioypinchamosenEditarMedida.Si
lo que queremos es eliminar la medida, hacemos lo mismo y seleccionamos
Eliminar.
Comonosotrosloquequeremosescalcularlamediadevisitasporresidente,necesitamos
unamedidaquecalculeeltotalderegistrosyunclculoquecalculelamedia.Portanto
lossiguientespasossoncrearlamedidayluegoelclculo.
3. En el apartado de medidas, hacemos clic en el botn derecho y seleccionamos
Nuevamedida.Puestoqueestamedidaslolaqueremosparahacerelclculode
lamedia,accedemosasuspropiedadesyponemoselcampoVisibleaFalse.
4. Seleccionamos la pestaa Clculos y luego en el botn Nuevo miembro
calculado.
5. Creamosunclculoquedividaelnmerodevisitasentreelnmeroderegistrosy
loagregamosalgrupodemedidasdelhecho(FiguraF.6.).

170


FiguraF.6.DefinicinmedidaMediaVisitas

Paso8:Procesaryexaminarelcubo
Paraverlosdatosdelcubo,elltimopasoarealizaresprocesarelcubodelasiguiente
forma:
1. Haga clic con el botn derecho en cubo creado dentro del Explorador de
soluciones y seleccione Procesar o bien haga lo mismo sobre el nombre del
proyecto.
2. HagaclicenSparagenerareimplementarelproyecto.
3. HagaclicenEjecutarparaprocesarelcubo(FiguraF.7.).

171


FiguraF.7.VentanadeprocesodelcuboVisitasFamiliares
4. PulseCerrarcuandoelprocesohayaconcluido.
5. HagaclicenlapestaaExaminarparaexplorarloscontenidosdelcubo.
Examinar un cubo implementado ayuda a comprender las modificaciones que deben
llevarse a cabo para mejorar la funcionalidad del mismo. Por ejemplo, es posible que
debamos definir criterios de ordenacin de los miembros de la dimensin, eliminar
atributos de dimensin innecesarios, definir jerarquas de usuario nuevas, modificar
jerarquas de usuario existentes o configurar propiedades de medidas. Una vez que
hemosimplementadoelcubo,losdatosdestepuedenverseenlafichaExaminadordel
Diseador de cubos y los datos de dimensin pueden verse en la ficha Examinador del
Diseadordedimensiones.
Lasaccionesarealizarparaexaminaruncuboimplementadoson:
6. En el Diseador de cubos hacemos clic en la ficha Examinador (Figura F.8.), y
luego hacemos clic en Volver a conectar en la barra de herramientas del
diseador.

172

Enelpanelizquierdodeldiseadorsemuestranlosmetadatosdelcubo.Aladerechadel
mismo, podemos ver dos paneles ms: el superior es el panel Filtro y el inferior es el
panelDatos.ObservamosquelasopcionesPerspectivaeIdiomaestndisponiblesenla
barradeherramientas.


FiguraF.8.FichaExaminadordelDiseadordecubos
7. Enelpanel MetadatosexpandimosMeasuresyarrastramoslasmedidasalrea
ColoqueCamposdetotalesocamposdetalladosaqudelpanelDatos.
8. EnelpanelMetadatosexpandimosaquellasdimensionesporlascualesqueremos
dimensionarelcubo.Arrastramoslasjerarquasdeatributosindistintamentealas
reas Coloque campos de fila aqu, Coloque campos de columna aqu y/o
ColoquecamposdefiltroaqudelpanelDatos.
EnlaFiguraF.9.semuestraunposibledimensionamiento.


FiguraF.9.EjemplodedimensionamientodelcuboVisitasFamiliares
Despus de hacer varias pruebas y comprobar que todo funciona correctamente, el
procesodecreacindelcuboOLAPenSSASestfinalizado.

173

174

AnexoG:CreacindetrabajosconelAgenteSQLServer
ElAgenteSQLServereselmotordeprogramacinqueincluyeSQLServerparaejecutar
tareas sobre una programacin definida. Se utiliza para crear trabajos programados,
planes de mantenimiento y configurar el envo de alertas basadas en condiciones
definidasporelusuario.
En este tutorial conoceremos cmo funcionan los trabajos y aprenderemos a crear
trabajos programados que lancen los paquetes ETL y procesen los cubos creados
previamente.Losplanesdemantenimientoylaconfiguracindealertasnosetratanpor
quedarfueradelalcancedeesteproyecto.
Lostrabajosofrecenelcontenedordeejecucinquenospermiteagruparunoomspasos
en un proceso que sea necesario ejecutar. Si bien muchos de los trabajos que se cree
tendrnunanicatarea,SQLServerpermitecreartrabajoscompuestospormultitudde
tareasparalasqueesposibleconfigurarelaccesoyaccionesdeconmutacinporerror.
Cadatareaounidaddetrabajoquedebarealizarseestcontenidaenunpasodetrabajo.
Los pasos de trabajo son los elementos de ejecucin dentro de un trabajo. Pueden
ejecutarselossiguientestiposdepasosdetrabajo:
TransactSQL.
Tareasdereplicacin.
Tareasdelsistemaoperativooarchivosejecutables.
TareasdeAnalysisServices.
PaquetesdeIntegrationServices.
ScriptsActiveX.
Aligualqueocurreconcualquiercdigoejecutable,cadapasodetrabajoseejecutabajo
undeterminadocontextodeseguridad.
Para cada paso de trabajo puede configurar opciones de flujo de control, adems de
opcionesderegistroynotificaciones.
Las opciones de flujo de control le permiten especificar una accin de xito o fracaso,
comosemuestraacontinuacin:
Abandonareltrabajoinformandodesuxito.
Abandonareltrabajoinformandodelfracaso.
Iralsiguientepaso.
Iraunnmerodepasoespecfico.
Adems de controlar las opciones de flujo, puede especificar el registro del paso. El
registropuededirigirseaunarchivoquesesobrescribircadavezqueelpasoseejecute,
o puede anexarlo a un archivo en ejecucin. Puede adems registrar el resultado de un
trabajoenunatabla,sibienporlogeneralestonoresultarecomendabledebidoalacarga
detrabajoextradelregistroentablafrentealregistroenunarchivodetexto.
AhoraqueyaconocemosunpocomssobrelostrabajosdelAgenteSQLServer,estamos
preparados para crear un trabajo. A continuacin se indican los pasos necesarios para
poder crear un trabajo que ejecute un paquete ETL desarrollado con SSIS y procese un
cubodesarrolladoconSSAS.Concretamente,elpaqueteETLyelcuboquevamosautilizar

175

paralacreacindeltrabajosonlosquehemosdesarrolladoparaelindicadordevisitas
familiares.

Paso1:Creacindeuntrabajo
A diferencia de SSIS, SSAS y SSRS que formaban parte de Business Intelligence
DevelopmentStudio,elAgenteSQLServerformapartedeSQLServerManagementStudio
(SSMS).Dadoesto,paracrearuntrabajoloprimeroquedebemoshaceresiniciardicha
herramienta.Concretamente,lospasosaseguirson:
1. Hacemos clic en Inicio, seleccionamos Todos los programas, seleccionamos
Microsoft SQL Server y despus, hacemos clic en SQL Server Management
Studio.
2. Cuando aparezca el cuadro de dilogo Conectar con el servidor, acepte las
opciones predeterminadas y haga clic en Conectar. La Figura G.1. muestra la
pantallaalaqueaccedemos.


FiguraG.1.PantallaprincipalSQLServerManagementStudio
3. HagaclicconelbotnderechoenelnodoTrabajosyseleccioneNuevoTrabajo.
4. Dunnombrealtrabajo,dejeelpropietarioqueaparezcapordefectoopongala
cuentasa,noseleccioneningunacategorayagregueunadescripcintalycomose
indicaenlaFiguraG.2.

176


FiguraG.2.VentanaconfiguracindeltrabajoIndicadorVisitasFamiliares
5. Seleccione la pgina Pasos y haga clic en Nuevo para abrir el cuadro de dilogo
Nuevopasodetrabajo.Enestecaso,vamosacrearelpasoqueejecuteelpaquete
SSIS.
6. Especifique un nombre para el paso, el tipo de paso como Paquetes de
Integration Services, deje la opcin Ejecutar como que aparece, ponga como
Origendelpaqueteelsistemadearchivos(Filesystem)eindiquelarutadondese
encuentraelpaquetequequeremosejecutar(FiguraG.3.).


FiguraG.3.VentanadeconfiguracindelpasoEjecutarPaqueteETL

177

7. HagaclicenlapginaAvanzadoyespecifiqueIralsiguientepasocomoAccin
en caso de xito, 1 como Nmero de reintentos para que vuelva a intentar
ejecutarelpaqueteySalirdeltrabajoeinformardelerrorcomoAccinencaso
deerror.
8. HagaclicenAceptarparaguardarelpaso.
9. Haga clic en Nuevo para crear el siguiente paso de trabajo en cual vamos a
procesarelcubo.
10. Especifiqueunnombreparaelpaso,eltipodepasocomoComandodeAnalysis
Services, deje la opcin Ejecutar como que aparece, ponga como Servidor la
mquinalocaleindiqueenComandolainstruccinXMLaejecutarqueaparecea
continuacin:
<Process xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">
<Object>
<DatabaseID>Proyecto Analysis Services</DatabaseID>
</Object>
<Type>ProcessFull</Type>
<WriteBackTableCreation>UseExisting</WriteBackTableCreation>
</Process>
11. Haga clic en la pgina Avanzado (Figura G.4.) y especifique Salir del trabajo e
informar del xito como Accin en caso de xito, 1 como Nmero de
reintentos para que vuelva a intentar ejecutar el paquete y Salir del trabajo e
informardelerrorcomoAccinencasodeerror.


FiguraG.4.VentanaPropiedadesAvanzadasdelpasoProcesarcubo
12. HagaclicenAceptarparaguardarelpaso.
13. UtilicelasflechasqueaparecenenlapginadePasossideseacambiarelordende
lospasos.
Una vez que haya agregado uno o ms pasos a un trabajo, podemos especificar una
programacin. Las programaciones son objetos independientes y como tal, podemos
asignarlamismaprogramacinatantostrabajoscomoseanecesario.

178

Una programacinpuedecrearsebienatravsdelcuadrodedilogodeadministracin
deprogramaciones,obiendurantelacreacindeuntrabajo.Acontinuacinseenumeran
algunasdelaspropiedadesquepuedenconfigurarseparaunaprogramacin:
Tipodefrecuencia(diaria,semanal,mensual).
Recurrenciaaniveldiario,semanalomensual.
Recurrenciadentrodeundasobreunminutoocadahora.
Horasdeinicioyfin.
Fechadeinicioyfinparalavalidezdelaprogramacin.
Dichoesto,elsiguientepasoescrearunaprogramacinqueejecutediariamenteel
trabajoqueacabamosdecrear.

Paso2:Creacindeunaprogramacin
Paracrearlaprogramacindeuntrabajodebemosseguirlossiguientespasos:
1. Seleccionamos la pgina Programaciones de nuestro trabajo y hacemos clic en
Nueva para definir una nueva programacin diaria o bien hacemos clic con el
botn derecho en el nodo Trabajo, seleccionamos Manejar programaciones y
hacemosclicenNueva.
2. Rellenamos los datos relativos a la programacin taly como indica la Figura G.5.
paraqueeltrabajoseejecutetodoslosdasamedianoche.


FiguraG.5.Configuracindelaprogramacin

179

3. HagaclicenAceptar.
Al finalizar la creacin del trabajo y su respectiva programacin, slo falta ejecutar el
trabajo para ver que funciona correctamente y poder dar el proceso de creacin del
trabajoporfinalizado.
Paso3:Ejecucindeuntrabajo
Paraejecutaruntrabajo,hacemosclicconelbotnderechoen eltrabajoquedeseemos
ejecutar, seleccionamos la opcin Iniciar trabajo en el paso, especificamos el paso 1 y
hacemosclicenInicio.
Si el trabajo se ejecuta correctamente, en la ventana de progreso (Figura G.6.)
observaremos que pone xito. En caso contrario, podemos ver en qu paso se ha
producidoelerroryunadescripcindelmismo,haciendoclicconelbotnderechosobre
eltrabajoyseleccionandoVerhistorial.


FiguraG.6.Ventanadeprogresodeltrabajoejecutado
Sitenemosvariostrabajosejecutndosepodemossupervisarlaactividadactualdeesos
trabajosutilizandoelMonitordeactividaddetrabajo.
El Monitor de actividad de trabajo es accesible al expandir el Agente SQL Server en el
Explorador de objetos de Management Studio y seleccionar Ver actividad de trabajo.
Dichomonitorpermiterealizarlassiguientestareas:
Iniciarydetenertrabajos.
Verlaspropiedadesdeuntrabajo.
Verelhistorialdeundeterminadotrabajo.
LaFiguraG.7.muestraelMonitordeactividaddetrabajo.

180


FiguraG.7.Monitordeactividaddeltrabajo
Despusdeejecutareltrabajoycomprobarquetodofuncionacorrectamente,elproceso
decreacindeltrabajoconelAgenteSQLServerestfinalizado.

181

182

Anexo H: Explotacin de indicadores y creacin de informes usando
MicrosoftOfficeExcel
Microsoft Office Excel es una de las herramientas de anlisis y generacin de informes
msusadasenelmundo.Entresusprincipalesventajasseencuentran:
Fcilmanejo
Visibilidadentiemporealdelastendenciasdenegocio.
Mayorrapidezycalidadenlatomadedecisiones.
Ciclosmsbrevesdeanlisisyelaboracindeinformes.
Mayor flexibilidad de creacin de informes gracias a los diseos de informes
complejos,actualizablesymuypersonalizables.
Accesoainformacinrelevantecontenidaenmltiplesorgenesdedatos.
Ennuestrocasoeslaherramientautilizadapararealizarlaexplotacindelosdatosdelos
indicadores porque incorpora capacidades OLAP que permiten al usuario conectarse a
cubos de Analysis Services y explotar la informacin mediante tablas y/o grficas
dinmicas.
Enestetutorialaprenderemosarecuperarlosdatosdesdeuncuboyamanejarlastablas
dinmicas para poder explotar toda la informacin que nos proporciona el cubo.
Concretamente, utilizaremos el cubo desarrollado anteriormente para el indicador de
visitasfamiliares.
A continuacin se indican los pasos necesarios para conectar un libro de Excel con un
cubo de Analysis Services y utilizar una tabla dinmica para crear un informe de un
indicador.

Paso1:Configurarconexinconelcubo
LospasosaseguirparaconectarunlibrodeExcelconuncubodeAnalysisServicesson
lossiguientes:
1. Hacemos clic en Inicio, seleccionamos Todos los programas, seleccionamos
MicrosoftOfficeydespus,hacemosclicenMicrosoftOfficeExcel2007.
2. VamosalafichaDatos,enelgrupoObtenerdatosexternoshacemosclicenDe
otras fuentes y luego en Desde Analysis Services y se mostrar el Asistente
paralaconexindedatos.
3. En la pantalla de Conectar con el servidor de la base de datos, escribimos el
nombredelservidorOLAPdondeseencuentranuestrocuboenelcuadrodetexto
Nombre del servidor y seleccionamos Usar autenticacin de Windows como
Credenciales de conexin para usar el nombre de usuario y la contrasea
actualesdeWindows.Despusderellenarestosdatos,hacemosclicenSiguiente.
4. EnSeleccionelabasededatosquecontienelainformacinquedesea(Figura
H.1.),seleccionamoslabasededatos,nosaseguramosdequelaopcinConectar
con una tabla o a un cubo especfico est activada, seleccionamos el cubo de
VisitasFamiliaresyhacemosclicenSiguiente.

183


FiguraH.1.ConfiguracindelaconexinconelcuboVisitasFamiliares
5. EnlapantalladeGuardararchivodeconexindedatosyfinalizar,cambiamos
el nombre del archivo o dejamos el que aparece por defecto, cambiamos la
ubicacin predeterminada del archivo pulsando Examinar y opcionalmente
escribimosunadescripcindelarchivo,unnombredescriptivoyunaspalabrasde
bsqueda comunes. Es importante hacer clic en Intentar utilizar siempre este
archivoparaactualizarlosdatosparaasegurarnosdequesiempreseutilizael
archivo de conexin cuando se actualiza la tabla dinmica. De esta forma, se
asegurar de que todos los libros que utilicen ese archivo de conexin utilicen
siemprelasactualizacionesrealizadasendichoarchivo.
6. Haga clic en Finalizar para cerrar el Asistente para la conexin de datos y se
mostrarelcuadrodedilogodeImportardatos.
7. EnSeleccionecmodeseaverestosdatosenellibro,hacemosclicenInforme
detabladinmicayenlapartedeDndesituarlosdatos?,seleccionamosHoja
de clculo existente e indicamos la primera celda del rango de celdas donde
deseamos situar el informe de tabla dinmica. Finalmente, hacemos clic en
Aceptar.
Una vez configurada la conexin al cubo, estamos preparados para jugar con todas las
dimensiones de nuestro indicador e ir obteniendo informacin desde diferentes
perspectivas.Paraello,seleccionamoslasdimensionesenlaListadecamposdelatabla
dinmica que aparece en la parte derecha y las distribuimos en filas y columnas
utilizandolasreasqueaparecenenlaparteinferiordedichacolumna.
LaFiguraH.2.muestraunaposibleinstanciadelatabladinmicayelestadodelaListade
camposdelatabladinmica.Concretamente,queremossaberelnmerodevisitasque
hatenidocadaresidenteporao.

184


FiguraH.2.VistadelnmerototaldevisitasporaoyresidentejuntoconlaListadecamposdela
tabladinmica
EncasodequeperdamosdevistalaListadecamposdelatabladinmica,simplemente
tenemos que hacer clic en la tabla dinmica para volver a visualizarla o bien ir a la
pestaadeOpcionesyenelgrupodeMostrar/OcultarseleccionarListadecampos.En
enesegrupotambindondeindicamossideseamosonoverlascabecerasdeloscampos.
Trasjugarunpococonlatabladinmica,elsiguientepasoescrearalgngrficoquesirva
deapoyoalainformacinproporcionadaporlatabladinmica.

Paso2:Creacindeungrfico
Dependiendodeltipodegrficoquedeseemosutilizar,serequerirquelosdatostengan
unadisposicinuotra.Cuandotengamosladisposicindedatosadecuadaparaelgrfico,
debemosrealizarlassiguientesacciones:
1. Seleccionamos las celdas que contienen los datos que deseamos utilizar en el
grfico.
2. En la ficha Insertar, en el grupo Grficos, hacemos clic enel tipode grficoque
queremos y a continuacin, hacemos clic en el subtipo de grfico que queremos
(FiguraH.3.).Siloquequeremosesvertodoslostiposdegrficosdisponibles,al
hacerclicenuntipodegrfico,debemoshacerclicenTodoslostiposdegrfico
ysenosmostrarelcuadrodedilogoInsertargrfico.

185


FiguraH.3.Ejemplodeinsercindeungrfico
3. Movemos el grfico hasta la posicin deseada haciendo clic sobre el mismo y
arrastrandoyeditamoslaspropiedadesdelgrficotalescomoelttulo,laleyenda
o el formato del grfico haciendo clic con el botn derecho y seleccionando la
opcincorrespondientesobrecadaunodeloselementos.Tambinpodemoseditar
dichaspropiedadesutilizandolaspestaasDiseoyPresentacin.
Opcionalmente,podemosaadirfiltrosalatabladinmicaparatrabajarconsubconjuntos
dedatosyluegoverlainformacindelgrficoenfuncindedichosfiltros.

Paso3:Aadirunfiltro
Los datos pueden ser filtrados de diferentes maneras. Una de ellas es seleccionar para
cada campo que aparece en la Lista de campos de la tabla dinmica los valores que
deseamosmostrar utilizando la flecha que aparece junto al campoylaotraesarrastrar
loscamposdedichalistaalreaFiltrodeinformeparaquenosaparezcaelfiltroenla
hoja de Excel. En nuestro caso vamos a utilizar la segunda para poder filtrar la
informacinde losgrficosdemanera dinmica.Lospasosaseguirparaaadir unfiltro
son:
1. Arrastre los campos por los que desea filtrar la informacin al rea Filtro de
informe y encima de la tabla dinmica aparecer el filtro que acabamos de
seleccionar.
2. Seleccionarlosvaloresquedeseamosfiltrarhaciendousodelaflechadesplegable
queapareceenelfiltro(FiguraH.4.)yhagaclicenAceptar.

186


FiguraH.4.Listadevaloresdisponiblesporlosquepodemosfiltrar
Hasta el momento sabemos cmo conectar un libro de Excel con un cubo, utilizar las
tablasdinmicas,creargrficosyfiltros.Portanto,paraelaboraruninformecompletode
nuestro indicador, lo nico que falta es analizar la informacin desde diferentes
perspectivasyguardarcadaunadeestasperspectivasenunapginadiferentedellibro
de Excel. Cada perspectiva incluir una instancia de la tabla dinmica y una serie de
grficosyfiltros.
Concretamente,laformadeestructurarelinformequeproponemoseslasiguiente:
En la primera hoja siempre ha de aparecer una tabla resumen del indicador que
sea lo suficientemente significativa como para obtener toda la informacin
recogidaagrandesrasgos.
Cadaunadelashojassucesivas,hadeserunavistaparcialdelindicadorquerecoja
slociertosaspectosdelmismo.Dichavistaconstarbiendeunatablaresumeno
deunatablaresumenconungrficoasociado.
Dado que cada hoja va a necesitar una conexin al cubo, para asegurarnos de utilizar
siemprelamismadebemosiralafichadeDatos,hacerclicenConexionesexistentesen
elgrupoObtenerdatosexternosyseleccionarlaconexinutilizadaanteriormente.
Una vez analizado nuestro indicador desde todas las perspectivas de inters, debemos
guardarelinformeysedarelprocesodecreacindelinformeporfinalizado.

187

188

Anexo I: Desarrollo de dashboards en Microsoft Office SharePoint
Server
MicrosoftOfficeSharePointServer(MOSS)eslaplataformawebelegidaparaalbergarlos
informesresultantesdenuestroprocesodedesarrollodeindicadoresporque,atravsde
sus portales, permite el acceso a hojas de clculo de Excel y la creacin de cuadros de
mandobasadosendichashojasdeclculo.
En este tutorial, conoceremos lo que es un cuadro de mandos y sus componentes y
aprenderemosaconstruiruncuadrodemandosbasadoeninformesdeExcelconMOSS.
Uncuadrodemandos(dashboard)esunavistaintegrada/unificadaqueilustraelestadoy
rendimiento en un mbito determinado: residente, empleado, rea, unidad,
departamento,centroogrupo,etc.Entrminosdeinterfazdeusuarioseimplementacon
scorecardsyvistasdereports.
Un scorecard es una coleccin de KPIs, entendiendo por KPI una medida que permite
responder a una pregunta respecto al cumplimiento o no cumplimiento de un objetivo.
CadaKPItienemetas(targets)yumbrales(thresholds).LosvaloresdelKPIsecomparan
conlasmetasparaevaluarelrendimientoenelcontextodelKPI.Losumbralespermiten
establecercategorasenelrendimiento,porejemplo:malo,regular,buenoymuybueno,y
estoasuvez,permitedecorarconcoloresoiconoselestadodelKPI.
En la Figura I.1. se muestra un scorecard, el cual incluye los valores de las metas y la
decoracin correspondiente a los umbrales. Adems, se han definido metas diferentes
para cada ao. Por otra parte, se ha incluido una decoracin que resume la tendencia
respecto al cumplimiento de la meta (supuestamente respecto a si mejora o no
comparndolaconelaoanterior)


FiguraI.1.Ejemplodescorecard
Entendiendo por reports cada uno de los archivos de Excel que construimos durante el
proceso de desarrollo de indicadores, las vistas de reports son grficas o tablas
contenidasenunreport.
A continuacin se indican los pasos necesarios para poder crear un dashboard en un
portal de Sharepoint usando un informe creado en Excel. Suponemos que el portal en
cuestinhasidopreviamentecreado.

Paso1:Subirunreportalalibreradereportsdelportal
En lo que respecta a los reports, stos pueden ser creados y posteriormente subidos al
portal de Sharepoint o creados directamente desde dicho portal. En nuestro caso, los
189

reportssoncreadosalfinalizarelprocesodedesarrollodelosindicadoresyportantolos
pasosaseguirparasubirelreportsonlossiguientes:
1. Abrimos un navegador de internet e introducimos la direccin URL del portal de
Sharepoint.
2. SeleccionamoslapestaaReportsypinchamoselenlaceReportsqueapareceen
labarradenavegacinlateral.
3. Pinchamos la lista desplegable junto al men Upload y seleccionamos Upload
Document(FiguraI.2.).


FiguraI.2.Cargadeunreport
4. Pulsamoselbotn Browseparabuscarelarchivoquedeseamoscargarycuando
loencontremoshacemosclicenOK.
5. Revisamoslainformacindelreport,aadimosunabrevedescripcindelmismosi
lodeseamosypulsamoselbotnOKparasubirelarchivo.
Una vez completada la accin, veremos que el report que acabamos de subir ha sido
aadidoenelapartadoReportsLibrary.
Paso2:Subirlaconexindelreportalportal
ParasubirunaconexinasociadaaunreportdeExceldebemos:
1. Pinchar el enlace de Data Connections que aparece en la columna situada a la
izquierda y a continuacin seleccionar Office Data Connection File de la lista
desplegablejuntoalmenNew(FiguraI.3.).


FiguraI.3.Creacindeunaconexin

190

2. Explorar el sistema de archivos hasta encontrar el archivo .odc asociado a la
conexinquequeremossubiraSharePoint.
3. Rellenamos los campos asociados a la conexin tales como nombre, ttulo y una
brevedescripcinypulsamosOK.
4. Aprobamos la nueva conexin pulsando la opcin Approve/Reject de la lista
desplegableasociadaalnombredelaconexinqueacabamosdecrear(FiguraI.4.),
ya que cuando creamos la conexin su estado de aprobacin aparece como
pendiente.


FiguraI.4.Aprobacinconexin
Alahoradeconsultarlosreports,elusuarionovaaverlashojasdeExceltalcual,sino
queslovaaverloselementosqueaparecenenellasdemaneraindividualjuntoconlos
elementosquenosotroshemosdefinidoenellas,esdecir,nosotrospodemosseleccionar
rangos de celdas en la hoja Excel y darles un nombre para que dicho rango sea
consideradocomounelementomsdelreport.Estoestilparaaquellasocasionesenlas
quedeseemosveralavezunatablaresumen,sugrficoasociadoysusfiltrosencasoque
lostuvieradefinidos.Portanto,elusuarioescapazdevercadaunadelastablasogrficos
queaparecenenelreportytodoslosrangosdeceldasquehayamosdefinido.
Portodolodichoanteriormente,sededucequeesdevitalimportanciadotaracadauno
de los elementos del report de un nombre adecuado para que el usuario sepa
exactamenteloquerepresentacadaelemento.PorcadahojadeExceldelreport,debemos
darlenombrealahojapropiamentedicha,alatablaresumen,algrficoasociadoadicha
tablayalrangodeceldasquecontienentantolatablaresumenconsusfiltrosasociados
comoelgrfico.
Dichoesto,elsiguientepasoarealizareseditarelreportparadotardenombreatodos
loselementosquehayamosdefinidoenl,esdecir,dotardenombreatodaslasvistasy
demselementoscontenidosenelreport.

Paso3:Ponernombrealasvistasydemselementosdeunreport
Lospasosarealizarparadotardenombreatodosestoselementossonlossiguientes:
1. Seleccionar de la lista desplegable que aparece junto al nombre del report que
hemossubidolaopcindeEditinMicrosoftOfficeExcel.

191

2. PonemosnombreacadahojadelExcelhaciendoclicconelbotnderechosobreel
nombredelahojayseleccionandoRename.
3. Cambiamoselnombredelastablasdinmicashaciendoclicconelbotnderecho
sobre la tabla, seleccionando PivotTable Options, editando el campo Name y
pulsandoOK.
4. Seleccionamoselgrfico,vamosalafichaLayoutymodificamoselChartName.
5. Seleccionamos el rango de celdas que cubre tanto la tabla resumen con filtros
comoelgrficoasociado,hacemosclicconelbotnderecho,seleccionamosName
aRange,ponemoselnombrecorrespondienteyhacemosclicenOK.
Unavezhemosdotadodenombreatodosloselementosdelreport,parapoderverluego
lalistadesplegabledeelementosdondeseleccionamoselelementoquequeremosver,en
elcuadrodedilogoqueaparececuandovamosaguardarelreport,debemosmarcarla
pestaaPublishyseleccionarExcelServices(FiguraI.5.).


FiguraI.5.CuadrodedilogoPublishconlaopcinExcelServicesmarcada
A continuacin, pulsamos el botn correspondiente a Excel Services Options e
indicamos que slo queremos ver en el navegador los elementos con nombre Items in
theWorkbookymarcamosenlalistalosquequeremosver.Deestaformaconseguimos
queelusuarioslopuedaverloselementosquenosotroshemosindicadopreviamente.

Paso4:Consultarlasvistaspreviamentedefinidas
Enestemomento,loquetenemoseselreportcorrectamenteestructuradoenvistaspara
poderserutilizadasenlaelaboracindeldashboard.
Para consultar el report, tan slo debemos pinchar el enlace asociado al nombre del
mismo o seleccionar de la lista desplegable asociada al mismo la opcin View in Web

192

Browser.Alpinchardichoenlace,vamosaunapgina(FiguraI.6.)dondesenosmuestra
uno de los elementos del report, que en este caso debera ser la tabla resumen de la
primerahojadelreport,esdecir,aquellaqueresumetodalainformacinimportantedel
reportqueestamosconsultando.Endichapgina,tenemoslapestaaView,lacualtiene
asociadaunalistadesplegablequecontienetodosloselementosdelreportquepodemos
consultar.Seleccionandocadaunodelosdiferenteselementosdedichalista,conseguimos
movernosporelcontenidodetodoelreport.


FiguraI.6.Vistadeunelementodelreport
Cuandotenemoselreportcorrectamenteestructuradoenvistas,losiguienteescrearun
dashboardqueusedichasvistasydefinirunscorecard.

Paso5:Crearundashboard
Alahoradecrearundashboarddebemos:
1. PincharelenlaceDashboardsqueapareceenlabarradenavegacinlateralosi
estamos en la librera de informes, seleccionar la opcin Dashboards del
desplegableasociadoaView.
2. HacemosclicenNewyseleccionamosDashboardpage.
3. Rellenamosloscamposrelativosalnombreyttuloydejamoselrestodecampos
talycomovienenpordefectoyhacemosclicenOK(FiguraI.7.).Deestaforma,el
dashboard que creemos estar compuesto por dos columnas verticales y tendr
unalistadeKPIsautomticamente.

193


FiguraI.7.Ventanacreacindeundashboard
Todo dashboard est estructurado en zonas (webparts). Las webparts pueden ser de
diferentestipos:
Lista de KPIs: Muestra un conjunto de indicadores visuales de los datos que
permitenalusuariorpidamenteobtenerinformacinsobrefactoresimportantes.
ExcelWebAccess:MuestrantablasogrficasdeunlibroExcel.
Filtros: Los hay de diferentes tipos y permiten mostrar los datos del dashboard
segnciertosparmetros.

Paso6:Definirwebpartsparamostrarelcontenidodelreportoreports
Ahora vamos a aadir un conjunto de webparts de tipo Excel Web Access que nos
permitirnmostrarelcontenidodelasvistasdefinidasenlosreports.Paraellodebemos:
1. Pinchar el enlace asociado al dashboard y luego seleccionamos Open the tool
paneobienpinchamosEditPageenlapartesuperiordelapginatalycomose
indicaenlaFiguraI.8.

194


FiguraI.8.Formasdeeditarundashboard
2. Cuandonosencontremosenmodoedicin,pinchamosAddawebpartyaparece
uncuadrodedilogo(FiguraI.9.)dondedebemosseleccionareltipodewebpart
quequeremosaadir,enestecasoExcelWebAccess.


FiguraI.9.CuadrodedilogodeAddawebpart
3. Para modificar el contenido de la nueva webpart existen varias posibilidades
(FiguraI.10.).Sieslaprimeravezquevamosaeditarlawebpart,podemospinchar
elenlaceClickheretoopenthetoolpaneoseleccionarlaopcinModifyShared
WebPartdelalistadesplegablequeapareceenlaesquinaderechasuperiordela
webpart. En cambio, si la webpart ya ha sido editada, siempre utilizaremos la
segundaopcin.

195


FiguraI.10.Formasdemodificarunawebpart
4. Alseleccionarcualquieradelasdosopciones,apareceunpanelaladerechaenel
que debemos rellenar toda una serie de campos relacionados con la webpart de
Excel. Concretamente, en la Figura I.11. que aparece a continuacin estn
marcadoslosmsrelevantes.


FiguraI.11.Camposarellenarenlaconfiguracindeunawebpart
5. ElatributoWorkbookeselreportalquevamosahacerreferenciaenlawebparty
elNamedItemeselelementoquequeremosquesalgapordefectoenlawebpart,
aunque este ltimo no es necesario ponerlo. Si queremos ponerle un ttulo
nosotrosalawebpart,esimportantedesmarcarlaopcindeautogenerarelttulo.
Alahoradeajustarlasdimensionesdelawebpart,debemoscambiarlosvalores
de Heighty Widthhastaencontrarunosvaloresqueseajustenalasdimensiones
deseadas.
6. Para especificar la situacin concreta de la webpart en el dashboard, debemos
cambiarelatributoZoneeindicarsiqueremosquelawebpartestarriba,abajo,
derecha o izquierda. En el caso que hayamos escogido una distribucin en 3
columnasdeldashboard,tambintendremoslaposibilidaddesituarlaswebparts
enelcentro.
196

Paso7:DefinirunawebpartparamostrarunalistadeKPIs
UnavezhayamosdefinidotodaslaswebpartsquereferencianarchivosExcel,eshorade
definirlosKPIsobrelosreportsquetenemosdefinidosparalaempresautilizandolalista
deKPIsquehasidogeneradaautomticamentealcreareldashboard.Paraelloseguimos
lossiguientespasos:
1. ParacrearunKPIdebemosiralawebpartquecontienelalistadeKPIsypincharla
lista desplegable que aparece junto al men New (Figura I.12.). Tal y como se
observa, podemos crear un indicador KPI de varias formas, segn si utilizamos
KPIsyadefinidosenotraplataforma,siutilizamoslosdatosexistentesenunlibro
Excel o si insertamos la informacin del KPI manualmente. En nuestro caso, de
momento slo vamos a definir KPI basados en la informacin contenida en
archivosExcel.


FiguraI.12.CreacindeunKPIusandounlibroExcel
2. Seleccionamos la opcin Indicator using data in Excel workbook y rellenamos
los datos referentes al indicador KPI como son el nombre, una descripcin de lo
queindica,cmointerpretarloyelarchivoExcelalquereferencia(FiguraI.13.).


FiguraI.13.PropiedadesdelKPI

197

3. Enelcampoquenospidequceldaindicaelvalordelindicador,debemosabrirel
archivoExcelasociadoyseleccionardichacelda.Adems,debemosindicarculera
elobjetivodelaempresaparaeseindicadoryelvalorapartirdelcuallaempresa
considera que ese objetivo se encuentra en parte satisfecho. Ambos valores los
podemosintroducirmanualmente(FiguraI.14.)obienusandolasceldasdelExcel
encasoqueestuvierandefinidos.


FiguraI.14.EjemplodeumbralesdeKPIintroducidosmanualmente
4. Finalmente,indicamoscmoseinterpretanlosvaloresdelindicador(FiguraI.15.),
es decir, si stos son mejores cuanto ms grandes o no y el icono con qu
representamos cada uno de los estados del indicador en funcin de su grado de
satisfaccin.


FiguraI.15.InterpretacindelosvaloresdelKPI
5. DefinimosdelamismaformaelrestodeindicadoresKPIycuandoyaloshayamos
definidotodosynotengamosqueaadirmswebparts,seleccionamoslaopcin
deguardarypararlaedicindelapginasituadaenlapartesuperiordelapgina.
EnloquerespectaalosKPIs,existendiferentesiconospararepresentarelestadodecada
unodelosindicadores.Paracambiardeuntipodeiconosaotro,debemosseleccionarla
198

opcinIconsdelalistadesplegableasociadaaActionsyelegireltipodeiconodeseado
talycomoindicalaFiguraI.16.


FiguraI.16.SeleccindeltipodeiconosdelosKPIs
Adems,siloqueremosesmostrarsloaquellosKPIscuyogradodesatisfaccinnoesel
deseado(FiguraI.17.),tanslodebemospincharlaopcindeShowOnlyProblems.


FiguraI.17.KPIsnosatisfactorios
CuandohayamosacabadodedefinirtodoslosindicadoresKPI,elprocesodecreacindel
dashboardhabrfinalizado.

199

You might also like