viernes, 30 de noviembre de 2012

SharePoint Power View para Analysis Services Multidimensional CTP

SQL Server logo

SharePoint 2013 logo 

Los profesionales que desarrollamos BI con herramientas de Microsoft estamos de enhorabuena: El equipo de producto de Analysis Services ha anunciado en su blog la disponibilidad de una actualización de Reporting Services en modo SharePoint y del propio motor de Analysis Server Multidimensional que permiten la utilización de Power View utilizando datos que provengan de los cubos tradicionales. Esta entrega es una Community Technology Preview para que los profesionales y usuarios podamos proporcionar comentarios y sensaciones del producto.

Anuncio en el blog de Analysis Services & PowerPivot

Página de descarga desde Microsoft Download Center

Además de contar con estas actualizaciones principales, se incluye filtros que pueden afectar a toda la vista del informe Power View y que se puede establecera a través de parámetros en la URL… ¿integración con PerformancePoint Services? mmm habrá que investigarlo, yo ya me estoy bajando una copia de Microsoft SQL Server 2012 With Power View For Multidimensional Models CTP

image

Hasta ahora Power View los orígenes de datos se restringían a bases de datos de modelo tabular o modelos de datos de PowerPivot hospedados en hojas Excel. Esta actualización ofrece un abanico de posibilidades en visualización de datos utilizando esta tecnología, muy agradecida por los usuarios ya que les permite diseñar informes totalmente interactivos y de considerable riqueza visual, incluyendo mapas, gráficos, slicers, etc.. y para el personal de IT porque es una herramienta prácticamente Self-Service.

A probar y reportar!!

Sonrisa

martes, 23 de octubre de 2012

Error instalando SQL Server 2012 SP1 CTP4 en Azure VM


Recientemente he tenido que realizar la instalación de varias instancias de SQL Server 2012 SP1 CTP4 en una máquina virtual de Windows Azure (Azure VM). Si seleccionas la instalación de SQL Server Data Tools (el shell de Visual Studio 2010 para proyectos de BI) es posible que te encuentres con el mismo problema con el que he tenido que enfrentarme:
image
Error ocurred during the installation of assembly Microsoft.VC80.ATL, version=”8.0.50727.4053”, publicKeyToken=”1fc8b3b9a1e18e3b”, processorArchitecture=”x86”, type=”win32”. HRESULT: 0x80073712

miércoles, 17 de octubre de 2012

Microsoft Community Contributor 2012

 

image

En esta entrada quiero compartir con ustedes la comunicación que me ha hecho llegar Microsoft recientemente anunciando su reconocimiento con el galardón Community Contributor, de nuevo en 2012.

Tengo que agradecer a todos los compañeros y a la comunidad en general la dedicación, la inversión de tiempo y esferzos que realizan para contar experiencias y compartir conocimiento, dedicación que se contagia y gracias a ellos, a ustedes, puedo hacer lo propio y aportar un pequeño bit a esta gran montaña de unos y ceros.

Gracias!

Unir servidores a una granja SharePoint 2013 con Powershell


image

Introducción

Durante el proceso despliegue de una granja de SharePoint, cuando se trata de una topología de tres capas, resulta muy interesante intentar automatizar todas las tareas que se puedan y se dejen. En esta entrada vamos a hacer uso de algunos comandos que se se incluyen en el Snapin Microsoft.SharePoint.Powershell que nos puede salvar algún tiempo.


miércoles, 10 de octubre de 2012

Modificar puertos TCP de SQL Server 2012 con Powershell


Introducción

Con SQL Server 2012 se ha incorporado el módulo SQLPS para facilitarnos las tareas de administración de nuestro servidor SQL. Antes de esta versión nos veíamos obligados a cargar ensamblados como Microsoft.SqlServer.Management.Smo.Wmi.ManagedComputer y utilizar URNs para cargar los objetos que son necesarios para realizar este tipo de cambios a nivel de instancia. Aqui teneis algunos ejemplos de como se hace cargando ensamblados:

miércoles, 3 de octubre de 2012

SSIS Dividiendo datos de una tabla en varios ficheros


El caso que nos traemos entre manos hoy viene propiciado por un hilo del foro de Microsoft Integration Services (en inglés) en el que se solicitaba ayuda para volcar información de una tabla que contiene transacciones. Cada transacción está compuesta por varias filas y se pretendía guardar la información relacionada con cada transacción en un fichero de texto y hacerlo con una sola ejecución del paquete ETL.

lunes, 1 de octubre de 2012

Ciclo de webcast Office 2013 Preview


office15
Desde hace aproximadamente 2 meses Microsoft lanzó Office 2013 en versión Preview, para su evaluación por parte de la comunidad y obtener feedback, como viene siendo habitual en los últimos lanzamientos de sus productos.
Bajo la denominación Office 2013 se ha incluido toda la gama de productos relacionados, tanto de productividad, gestión, back-office. Esto es Excel, Word, PowerPoint, Access, Project, Visio y, como no, SharePoint.
Si quieres echar un vistazo a estas aplicaciones visita la página http://technet.microsoft.com/en-us/evalcenter/hh973397.aspx para descargarlas y/o instalarlas.

De vuelta a las trincheras

 

 Daddy's little princess

Como habréis notado los que consultan habitualmente este blog, el último tramo de este verano he cesado la actividad en cuanto a publicaciones y demás actividad online. Ciertamente he estado ‘out’ por vacaciones, pero también hemos llegado a un hito importante en un proyecto personal.. familiar. Así es que ahora soy Papá.

Después de este periodo de adaptación, dedicación y disfrute total, que seguro no ha terminado, es momento de volver a incorporar al puzle las piezas de la vida techie: desarrollo de proyectos, compartir experiencias técnicas, preparar eventos y formaciones, etc.. 

Pues eso, que ya estoy de vuelta y espero daros guerra :)

Saludos!

domingo, 12 de agosto de 2012

Libros gratis SharePoint 2013 y SQL Server 2012

 

Últimamente nos estamos encontrando con una gran cantidad de material didáctico que Microsoft  pone a nuestro alcance de forma totalmente gratuita. Paul Turley (blog | twitter) ha publicado recientemente una lista con una multitud de ebooks gratuitos sobre SharePoint 2010 y SQL Server BI.

En la siguiente lista encontrarán una pequeña ampliación de ebooks sobre SQL Server 2012, Office 2013 y Office 365

SQL Server 2012

         

SQL Server 2012 Tutorials Analysis Services - Tabular Modeling

QuickStart Learn DAX Basics in 30 Minutes

Data Analysis Expressions (DAX) Reference

SQL Server 2012 Tutorials Analysis Services - Tabular Modeling SQL Server 2012 Tutorials Analysis Services - Data Mining

SQL Server 2012 Tutorials: Analysis Services - Tabular Modeling

QuickStart: Learn DAX Basics in 30 minutes

Data Analysis Expressions (DAX) Reference

SQL Server 2012 Tutorials: Analysis Services - Tabular Modeling

SQL Server 2012 Tutorials Analysis Services - Data Mining

         
Backup and Restore of SQL Server Databases Microsoft SQL Server AlwaysOn Solutions Guide for High Availability and Disaster SQL Server 2012 Upgrade Technical Guide Master Data Services Capacity Guidelines Transact-SQL Data Manipulation Language (DML) Reference

Backup and Restore of SQL Server Databases

Microsoft SQL Server AlwaysOn Solutions Guide for High Availability and Disaster

SQL Server 2012 Upgrade Technical Guide

Master Data Services Capacity Guidelines

Transact-SQL Data Manipulation Language (DML) Reference

         
Microsoft SQL Server Analysis Services Multidimensional Performance and Operations Guide SQL Server 2012 Developer Training Kit      

Microsoft SQL Server Analysis Services Multidimensional Performance and Operations Guide

SQL Server 2012 Developer Training Kit

     

 

Office 2013

Deployment guide for SharePoint 2013 Preview Deployment guide for Office 2013 Preview Deployment guide for Duet Enterprise for Microsoft SharePoint and SAP Server 2.0 Preview    

Deployment guide for SharePoint 2013 Preview

Deployment guide for Office 2013 Preview

 

Deployment guide for Duet Enterprise for Microsoft SharePoint and SAP Server 2.0 Preview

   

 

Office 365

Office 365 Guides for professionals and small businesses Office 365 Developer Training Kit Office 365 – Connect and Collaborate virtually anywhere, anytime    

Office 365 Guides for professionals and small businesses

Office 365 Developer Training Kit

Office 365 – Connect and Collaborate virtually anywhere, anytime

   

 

Referencias de Eric Ligman (blog | @EricLigman)

viernes, 10 de agosto de 2012

White paper sobre Power View

libros-gratis

 

Esta mini entrada es sobre todo para dejarme un bookmark, pero también compartir con todos el nuevo y magnífico white paper que acaba de publicar Microsoft, de la mano de Carl Rabeler (www.TheBIGuru.com), sobre  implementación y configuración de Power View nada menos que 74 páginas en las que se especifican paso a paso como lograr un correcto despliegue y un funcionamiento de esta característica de Reporting Services 2012 integrado con SharePoint 2010 en distintos escenarios, incluyendo autenticación en entornos de doble salto (léase Kerberos), con scripts incluidos!!

Enlace a la página MSDN: http://msdn.microsoft.com/en-us/library/jj591528.aspx

Descarga del documento (inglés): Power View Infrastructure Configuration and Installation: Step-by-Step and Scripts

Aprovecho la entrada para agradecer a Carl su esfuerzo y dedicación para poner todo este conocimiento al alcance de los mortales. Sooo much thanks!

miércoles, 1 de agosto de 2012

SQL Server 2008 R2 Service Pack 2

 

Hace algunos días Microsoft ha hecho público el Service Pack 2 para la actualización de SQL Server 2008 R2.

Este nuevo Service Pack 2 corrige una importante lista de errores conocidos, la mayoría afectan al core del producto y vistas de sistema. Puedes consultar la lista de errores corregidos : List of the bugs that are fixed in SQL Server 2008 R2 Service Pack 2

Les recomiendo que pasen por la página de Notas de la versión para tener claro que deben descargarse en función de las partes que tengan instalada: SQL Server 2008 R2 SP2 Release Notes

La siguiente tabla resume el listado de actualizaciones que ha sufrido el producto, con la versión del producto (build)

Versión

Build

SQL Server 2008 R2 Service Pack 2

10.50.4000.0

Cumulative update package 7 for SQL Server 2008 R2 Service Pack 1

10.50.2817.0

Cumulative update package 6 for SQL Server 2008 R2 Service Pack 1

10.50.2811.0

Cumulative update package 5 for SQL Server 2008 R2 Service Pack 1

10.50.2806.0

Cumulative update package 4 for SQL Server 2008 R2 Service Pack 1

10.50.2796.0

Cumulative update package 3 for SQL Server 2008 R2 Service Pack 1

10.50.2789.0

Cumulative update package 2 for SQL Server 2008 R2 Service Pack 1

10.50.2772.0

Cumulative update package 1 for SQL Server 2008 R2 Service Pack 1

10.50.2769.0

SQL Server 2008 R2 Service Pack 1

10.50.2500.0

SQL Server 2008 R2 RTM

10.50.1600.1

Para obtener más información sobre la versión de SQL Server y sus componentes acuda a la página: Cómo determinar la versión y la edición de SQL Server y sus componentes

 

Enlaces para la descarga

miércoles, 11 de julio de 2012

Extendiendo filtros con MDX en PerformancePoint Services 2010 – Selección de medidas

1342169813_filter_data

 

PerformancePoint Services es la propuesta de Microsoft como plataforma de visualización de datos en entornos de colaboración para soluciones de Business Intelligence, con la capacidad de diseñar y desplegar informes, KPIs, Scorecards y Dashboards a través de la herramienta Dashboard Designer sobre SharePoint 2010 con las características de la edición Enterprise activadas. Tomando un origen de datos de Analysis Services resulta sumamente fácil crear estos elementos explotando la capa lógica diseñada en la base de datos OLAP, además de que nos permite personalizar las consultas MDX de los informes analíticos y filtros.

Introducción

Cuando diseñamos un informe analítico de PerformancePoint a través del interfaz de diseño, es decir, seleccionando las medidas y las dimensiones desde el panel de detalles, todos las dimensiones implicadas quedan expuestas para realizar conexiones entre elementos en un Dashboard:

image_thumb3

Cuando construimos Dashboards podemos vincular elementos entre sí (Filtros –> [scorecards,informes] ; Scorecard –> [scorecards, informes]) , concretamente a alguna de las dimensiones que contenga:

image_thumb4[1]

Como se puede apreciar en la imagen, también se incluye la dimensión Measures (medidas).

En este artículos vamos a crear un filtro para que el usuario pueda seleccionar determinadas medidas para un informe. Además el nombre a presentar de las medidas podría ser distinto al que tienen en el cubo.

Además, como bien sabéis, un filtro puede actuar sobre varios elementos visuales de un dashboard pero cuando se aplica el cambio de medida sobre un elemento concreto no se reproduce para el resto de elementos.

Para los ejemplos vamos a utilizar la base de datos OLAP AdventureWorksDW2012 y una insSQL2012_DW_33tancia de SQL Server Analysis Services 2012 RTM (descargar versión RTM). También utilizaremos SharePoint 2010 (descargar versión de evaluación) . Si vas a utilizar un entorno similar, es necesario aplicar el Service Pack 1 de SharePoint 2010 para poder realizar su configuración: http://msdn.microsoft.com/en-us/library/hh231665(v=sql.110).aspx.


Este artículo ha sido publicado en el blog BICorner de SolidQ. Pulsa aquí para continuar leyendo.

domingo, 24 de junio de 2012

SSIS Cargando archivos Excel

 

Siempre hay quienes comienzan a hacer algo nuevo y este post está dedicado a estas personas, en concreto a Claudio. Un compañero de los foros de Integration Services en castellano que se preguntaba como podía conseguir resolver su proceso mediante paquetes ETL de SSIS.

 

Escenario

el asunto es que yo tengo una consulta, esta consulta me trae unos datos los cuales los tengo que poner en un excel con la fecha de la generacion y enviarlo a una persona, la idea es crear un paquete que permita mediante algun proceso crear el archivo excel con el nombre del dia(ejemplo ventas_19-06-2012.xls), mas que nada seria para automatizar un par de tareas que debo realizar diariamente

 

Una Solución

Por que siempre hay varios caminos para llegar al mismo sitio. Para este caso he sugerido utilizar una plantilla de libro Excel como destino de datos, que vamos a copiar con una tarea File System para generar un nuevo archivo con la fecha de la consulta que será el destino de los datos obtenidos mediante la misma (consulta)

Vamos con los detalles…

Es nuestro paquete ETL añadimos un DataFlow, con un origen OLEDB source con la consulta que vamos a realizar contra el origen de datos. Para esta entrada utilizaré la base de datos AdventureWorks para realizar esta consulta:

SELECT [ProductID],[Name],[ProductNumber],[MakeFlag],[FinishedGoodsFlag],[Color]
FROM [Production].[Product]

En el archivo Excel que vamos a utilizar como plantilla creamos las columnas necesarias para mapear con los datos de origen:

image

Hay que tener clara la versión de Excel a utilizar, dependiendo de esto podremos utilizar el componente Excel Destination (hasta Excel 2007) o nos veremos obligados a utilizar OLEDB Destination en caso de Excel 2010. En este caso la versión es 2007.

Añadimos un componente Excel Destination. Conectamos la salida de datos del OLEDB Source a la entrada del destino Excel y editamos este componente para establecer el archivo destino y el mapeo de datos.

Creamos una nueva conexión que apuntamos al archivo plantilla:

image

Una vez finalizada la conexión realizamos el mapeo de datos entre las columnas del origen de datos y el archivo Excel:

image

Y finalizamos la edición del componente de destino. Hasta ahora fácil, no hemos hecho nada especial para generar archivos dinámicamente en función de la fecha pero hemos conseguido establecer los metadatos que necesitan los componentes en el flujo de datos.

En las propiedades de este componente (en el panel de propiedades, F4 teniendo seleccionado el componente Excel Destination), hay que cambiar la propiedad ValidateExternalMetadata a false. Es importante este cambio para poder ejecutar el paquete sin que exista previamente el archivo sobre el que vamos a volcar los datos:

image

El siguiente paso es cambiar algunas propiedades en el administrador de conexión del archivo Excel, en concreto vamos a poner la atención en Delay Validation, que vamos a establecer a True. Observar la propiedad ExcelFilePath, que modificaremos más adelante mediante una variable que proporcionará el nombre de fichero para cada ejecución a través de Expressions:

image

Nos volvemos a la pestaña de ControlFlow y creamos una variable para generar el nombre del archivo en cada ejecución. Para esto hay que asegurarse de que tenemos seleccionado el lienzo y no el componente DataFlow que añadimos antes, para que el ámbito de esta variable sea del alcance de todo el paquete. Para acceder al panel de variables puede hacer clic derecho sobre el lienzo y seleccionar la opción variables. Crearemos la variable vNombreArchivo de tipo string y sin asignación de valor:

image

Seleccionamos la variable y pulsamos F4 para mostrar su panel de propiedades. En la propiedad EvaluateAsExpression seleccionamos el valor True y en Expressions vamos a añadir una expresión que conformará el valor de esta variable

image

En el editor de expresiones generamos una para construir un nombre de fichero en función de la fecha de proceso. Yo he utilizado la siguiente:

"C:\\Consultas2Excel\\Consulta_" + (DT_STR,20,1252) ( (DT_I8) (YEAR( @[System::StartTime] )) * 100000000 + MONTH(@[System::StartTime])*1000000 + DAY(@[System::StartTime]) * 10000 + datepart("hh",@[System::StartTime] ) * 100 + datepart("mi",@[System::StartTime] )   ) + ".xlsx"

image


Ya tenemos un nombre dinámico para nuestro fichero destino. Ahora solo falta que ese fichero exista y lo vamos a conseguir con una tarea File System Task que añadimos al ControlFlow y establecemos restricciones de precedencia, conectando la salida de ejecución correcta de File System Task con el DataFlow que ya teníamos:


image


Editamos la tarea File System para modificar sus propiedades. Lo primero es asegurar que la operación es Copy File. Establecemos los siguientes valores por propiedad






















PropiedadValor
OperationCopy File
IsDestinationPathVariableTrue
OverwriteDestination(evaluar la necesidad de sobreescribir el archivo de destino si existe en la operación de copia)
IsSourcePathVariableFalse
SourceConnection(Nueva conexión a nuestro archivo plantilla) c:\PlantillaDestino


image


En el panel de conexiones, buscamos la conexión a Excel que utiliza nuestro destino en el DataFlow y accedemos a las propiedades, en concreto Expressions y añadimos una expresión para la propiedad ExcelFilePath. Escribimos @[User::vNombreArchivo]


image


Y listo!


Ya tenemos un paquete que lee datos de una consulta y lo vuelca en un fichero Excel nuevo que genera en cada ejecución:








imageimage
 image


 


Conclusión


Como también vimos en la entrada SSIS Dinamizando propiedades de componentes, el uso de variables facilita en gran medida operaciones de asignación dinámica de propiedades de componentes, tareas, DataFlow, ControlFlow… Además, podríamos utilizar configuraciones de paquetes (en package deployment model) o parámetros y entornos (project deployment model) para exponer estas variables y asignarles valor previa ejecución del paquete.


Si tienes cualquier duda o quieres obtener el paquete ETL  desarrollado durante esta entrada, deja un comentario.

martes, 19 de junio de 2012

Microsoft anuncia su tablet Surface para Windows 8

 

Hace varias semanas que Microsoft anunció que iban a hacer un evento en Los Angeles en el que darían nuevas, una noticia muy importante, pero no aclararon nada más.

Hace unos minutos, Steve Ballmer ha comenzado haciendo un repaso histórico de como Microsoft ha apostado por el software a lo largo de su existencia, pero recordando que ha creado el hardware necesario cuando no existía para aportar la funcionalidad que no encontraba en los productos existentes rememorando el primer ratón (mice) diseñado para Windows 1

“Much like Windows 1 needed the mouse, we wanted to give Windows 8 it's own hardware”

Fuente http://live.theverge.com/microsoft-live-blog-tablet-announcement/

Pues bien, para soportar la funcionalidad que se le puede exigir a Windows 8 han anunciado, atención, el desarrollo de una nueva tablet llamada Surface

 

Recordarán que hace unos años Microsoft diseñó la Surface, una mesa interactiva que inspiró al director de la película Minority Report para la realización de algunas escenas, en las que Tom mueve imágenes con las manos enguantadas en un dispositivo que le permitía trasladarlas, ampliarlas, etc…

http://mashable.com/2011/12/23/microsoft-surface-2-2/

La tablet Surface hereda la tecnología desarrollada para su hermana mayor. La tablet es un dispositivo de unas 1.5 libras, menos de 14 milímetros y ensamblada en una carcasa de magnesio ultra compacta y ultra rígida (VaporMG case) con una pantalla de 10.6 pulgadas que hará que los movimientos realizados sobre ella resulten naturales. Vendrá provista de cámara, un lápiz digital que permitirá escribir directamente en la pantalla, conexión USB2, conector magnético para acoplar cubiertas que a la vez hacen de teclado con trackpad, etc..

Surface tablet Surface tablet 2
surface tablet 3 surface gallery_5_large

 

Existirán versiones con chips ARM e INTEL:

 

image

Página oficial de la tablet Surface:

http://www.microsoft.com/surface/en/us/default.aspx

Nota oficial de prensa:

http://www.microsoft.com/en-us/news/press/2012/jun12/06-18announce.aspx

Video promocional (descarga):

http://t.co/xM3jtdkX

 

Yo quiero una Win8 Pro!!

Risa 

¿Dónde se compra, que precio tiene? Habrá que esperar, pero me da en la nariz que estará disponible en el lanzamiento de Windows 8. Ya veremos

miércoles, 13 de junio de 2012

SSIS Capturar duplicados en el flujo de datos

duplicate_rows

 

 

Introducción

Es muy común encontrarnos con escenarios en los que tenemos que consumir orígenes de datos que contienen duplicados, tanto por columnas clave como por filas completas. Integration Services ofrece componentes que permite eliminar los duplicados (componente Sort), pero en esta entrada vamos a centrarnos en un diseño que nos permita capturar las filas duplicadas por columnas clave para su posterior tratamiento, utilizando la menor cantidad de código posible (componente Script).


Este artículo ha sido publicado en el blog BICorner de SolidQ. Pulsa aquí para continuar leyendo.

jueves, 7 de junio de 2012

Bye bye Summit 2012 Madrid #SQSummit

 

Personalmente cada año que pasa desde que tengo la oportunidad de acudir a este evento, tanto como asistente o como ponente, pienso que la experiencia profesional vivida alcanza cotas que serán difíciles de superar, pero como digo me pasa cada año. No son solo lo temas técnicos que se tratan y de los que por supuesto no dejo de aprender, sino las reorientaciones conceptuales a las que me veo sometido en muchas ocasiones por los que son ahora mis compañeros, los debates abiertos que se generan durante las charlas, la inestimable aportación y puntos de vista que tienen los asistentes al trasladar los contenidos expuestos a su casuística particular y que muchas veces se encuentran identificadas más personas.

Desde aquí quiero agradeceros a todos los que habéis estado allí. A los asistentes por vuestra participación y aportación, un valiosísimo punto de vista que nos mantiene “en línea”. A mis compañeros por su calidad y generosidad técnica y personal. Incluso a la organización externa por esos cafés calientes en cada break que nos mantuvieron confortablemente activos tanto dentro como fuera de las salas.

Me vuelvo a casa con la cabeza caliente de ideas y de ganas de que llegue el próximo Sonrisa

miércoles, 30 de mayo de 2012

SSIS: Obtener metadatos de ficheros

 

Introducción

Muchas veces es necesario comprobar algún metadato de un fichero antes de procesarlo. Supongamos que tenemos un paquete ETL que recoge un fichero con un volumen de datos importante, pongamos 100 millones de filas ( si, a veces pasa :) ). El contenido del fichero se genera cada cierto tiempo, pero su nombre nunca cambia. Cabe la posibilidad de obtener todo el contenido para compararlo contra el destino de datos, pero es una tarea que podemos (y debemos) evitar.

En este caso vamos a obtener la fecha de modificación de un fichero para determinar si es necesario procesarlo.

Obteniendo el metadato

Tenemos en un directorio un fichero llamado ventas.csv y disponemos de una tabla en la que vamos registrando la última fecha de modificación de forma que vamos a comparar este dato con el que tiene actualmente el fichero.

La estructura de la tabla es la siguiente:

CREATE TABLE [dbo].[FilesToProcess](
[Id] [int] NOT NULL,
[FileFullName] [varchar](255) NOT NULL,
[LastModifiedDate] [datetime] NOT NULL,
[ProcessDate] AS (getdate())
)
 
image

Para empezar, nos creamos tres variables de SSIS: vFilesFullName, vFileModifiedDate y vLastModifiedDate


image


Para obtener última fecha de modificación, añadimos un Execute TSQL Task al Control Flow y realizamos una consulta que nos devuelva el nombre del fichero a procesar y la última fecha de modificación que registramos:

SELECT [FileFullName], [LastModifiedDate]
FROM [dbo].[FilesToProcess]

En la sección General establecemos la opción ResultSet a Single Row


En la sección Result Set, mapeamos el resultado a las variables:


image


Añadimos un Script Task y lo conectamos a la salida de la tarea anterior. Editamos su configuración y establecemos las variables que va a utilizar. Como variables de lectura añadimos vFileFullName y vLastModifiedName y como variable escribible seleccionamos vFileModifiedName:


image


Lo siguiente es añadir el código al componente (personalmente prefiero C#)

public void Main()
{
// TODO: Add your code here
try
{
System.IO.FileInfo mFileInfo = new System.IO.FileInfo(Dts.Variables["vFileFullName"].Value.ToString());

if (mFileInfo != null)
{
Dts.Variables["vFileModifiedDate"].Value = mFileInfo.LastWriteTime;
Dts.TaskResult = (int)ScriptResults.Success;
}
else
{
Dts.TaskResult = (int)ScriptResults.Failure;
}
}
catch(Exception ex)
{
Dts.Events.FireError(-1, ex.Source, ex.Message,string.Empty , 0);
}

}

Como veis, utilizamos la clase System.IO.FileInfo para obtener la fecha de modificación que actualmente tiene el fichero.


Lo siguiente, es añadir un DataFlow para procesar el fichero. Conectamos el Script Task con el Data Flow  y modificamos la restricción de precedencia (precedence constraint) para añadir la expresión:

@vFileModifiedDate!=@vLastModifiedDate

image


El aspecto final de este diseño debería ser el de la siguiente imagen:


image


Resumen


A través de la inclusión de código en Script tasks y Script Component podemos proveer a nuestros paquetes ETL de Integration Services. A través de este ejemplo hemos visto como solucionar un requisito que puede ser habitual encontrarse.


Si queréis descargaros el paquete de ejemplo dejadme un comentario, estaré encantado de compartirlo con vosotros


Guiño

Entradas populares