De programacion y otros demonios

viernes, 8 de enero de 2010

SSIS - Paso a paso Como pedir parametros al usuario

Les explicaré a través de un ejemplo: deseo pedirle al usuario un rango de fechas (inicio y fin); y la cedula.

1. Crearemos las 3 variables para guardar los datos ingresados por el usuario, posteriormente los usaremos en una consulta Transact SQL. En el panel de Variables, si no lo ves en la interfaz dirigite al menu superior View -> Other Windows -> Variables y ahora si te saldrá, en mi caso lo he puesto al lado izquierdo de la interfaz.
Agrega 3 variables:
- V_fecha_ini de tipo datetime y coloca una fecha por defecto, cualquiera
- V_fecha fin has lo mismo que con la anterior
- V_cedula de tipo string, esta es la identificacion de la persona



El prefijo V_ no es necesario, yo lo uso por orden para visualmente saber al interior del codigo VB que estas son variables dentro de mi paquete y no variables creadas al interior del script task.  Ten presente cuando creas estas variables el alcance (Scope) con el que quedan, pueden quedar globales, osea que cualquier componente del paquete puede usarlas, o solo a nivel del Script Task que hemos creado, pero así no las podríamos usar en la consulta que posteriormente ejecutaremos.

Si te has equivocado en el Scope de la variable, no hay forma de cambiarlo; toca borrar la variable y volverla a crear.  Cómo definirle el Scope?..  da clic sobre el elemento que va a tener el alcance, en mi caso le he dado clic sobre un espacio vacio del paquete, de esta forma me queda una variable global.

2. Agregar el componente Script Task desde el panel de Toolbox, si no lo ves debes seguir el mismo procedimiento que en el paso 1, llámalo  "Definir variables" (arrastralo y sueltalo en el panel central)..


Dá doble clic sobre el componente, e ingresa a la sección Script, asegúrate que en la parte de ScriptLanguage quede tu lenguaje favorito visual basic o C#, yo elijo VB.

Si eliges mal el lenguaje, una vez presionas el boton Design Script, después ya no se puede cambiar de lenguaje y te toca borrar y volver a crear este componente.

En la parte de ReadWriteVariables vamos a escribir (SSIS 2005) o seleccionar (SSIS 2008) las variables que creamos separadas por comas.

3. Crear el código que pide los parámetros,  como los 2 primeros parámetros son fechas, voy a validar que el usuario efectivamente ha ingresado una fecha válida (siempre hay algún despistado que cree que febrero tiene 30 dias). Este es el código VB:

Dim FECHA_INI as String
FECHA_INI = InputBox("DIGITE LA FECHA, EN FORMATO MM/DD/AAAA", "CONSULTAR ESTADO - FECHA", "", , )

'Verifico que esta sea una fecha valida


If Not IsDate(FECHA_INI) Then
       MsgBox("Parametros de entrada incorrectos. Por favor verifique.", , "CONSULTAR ESTADO - ERROR !!!!!!")
       'Hago que el paquete termine con error
       Dts.TaskResult = Dts.Results.Failure
       Exit Sub
Else
       ' Le asigno a la variable del paquete el valor parseado a fecha de lo ingresado por el usuario
       Dts.Variables("V_fecha_ini").Value = DateTime.Parse(FECHA_INI)
End If

Igual para la otra fecha y para la cedula, de esta manera ya tienes las variables con valores para usarlas como quieras en tu paquete.

Etiquetas:

0 comentarios:

Publicar un comentario



<< Inicio