Este artículo pertenece a la serie “Novedades de Integration Services en SQL 2012”, serie en la que damos un repaso a las principales novedades que nos trae Integration Services en la nueva versión explorando la entrega CTP3. Puedes encontrar el índice de artículos al pie de este.

Entre las novedades en la versión de SQL 2012 de Integration Services se ha añadido una nueva tarea que podemos utilizar en el Control Flow

Expression Task

Expression Task para Integration Services en SQL 2012

Permite la evaluación de expresiones y asignación de valores a parámetros y variables.

Vamos a ver dos ejemplos:


Supongamos que tenemos un parámetro CSVOrigen en nuestro paquete que nos informa de la ruta donde se encuentra un fichero CSV.

[$Package::CSVOrigen] = C:RespositorioFicherosCSVOrigen.csv

Expression Task para Integration Services en SQL 2012

Durante la ejecución del paquete si surge algún error al leer del fichero, las filas erróneas debemos redirigirlas a la misma carpeta que el origen (C:repositorioFicheros). A través de la Expression Task vamos a extraer el directorio de la ruta del archivo a la variable RutaFicheros.

La siguiente expresión obtiene la carpeta de la ruta de origen almacenada en el parámetro CSVOrigen:

(LEFT( @[$Package::CSVOrigen] , LEN( @[$Package::CSVOrigen]  ) - FINDSTRING(REVERSE( @[$Package::CSVOrigen] ),"\",1) +1 ))

Como se puede observar, hacemos uso de la nueva función Left() .

Ahora, si introducimos la expresión en la Expression Task y lo asignamos a la variable RutaFicheros, quedaría como muestra la imagen:

Expression Task para Integration Services en SQL 2012


Otro ejemplo sencillo puede ser obtener el tiempo de ejecución de un componente. Colocamos el componente al que queremos medir en un contenedor y conectamos un Expression Task, como se muestra en la imagen. Le añadimos la expresión:

@[User::TiempoEjecucion] = Datediff("ms", @[System::ContainerStartTime], getdate())

Expression Task para Integration Services en SQL 2012

Podemos añadir un Breakpoint en el evento Post-Execute de la tarea y rescatar el valor de la variable en la ventana Watch 1:

Expression Task para Integration Services en SQL 2012


Conclusiones

Expression Task nos permite asignar valores a parámetros y variables durante la ejecución del paquete, además de poder organizar en que momento del Control Flow debe realizarse. Anteriormente podíamos hacer algo similar con las variables y la propiedad EvaluateAsExpression pero la expresión se resolvía en primera instancia, no podíamos decidir cuando sin usar una Script task.

0 Shares:
1 comment
Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

You May Also Like

Carga de Slowly Changing Dimensions y tabla de Hechos con atributos de Tipo 2 (Parte 2 de 3)

Este es el segundo post de la serie en el que explicaremos como cargar nuestra tabla de Hechos a partir de una dimensión con atributos de Tipo 2, usando dos maneras diferentes, una de ellas será mediante un componente “Look Up” con caché parcial y la otra opción será usando un componente “Merge Join” con un “Conditional Split” para seleccionar el registro que se encuentra en el rango de fechas correcto. Para mas información sobre qué es un atributo de Tipo 2 y sobre como cargar la dimensión que usaremos en este ejemplo puedes consultar el primer post de la serie.
Leer más

Seguimiento de métricas en tiempo real con PowerBI y PowerShell

En este artículo vamos a ver como enviar un stream de datos a PowerBi mediante un pequeño script de powershell para hacer un seguimiento en tiempo real de unos sensores (por ejemplo), también podríamos usar el script para enviar cualquier tipo de información de monitorización, como datos de un log, estadísticas de uso de una base de datos o cualquier otra métrica que queramos monitorizar en tiempo real.