De programacion y otros demonios

viernes, 27 de marzo de 2009

SSIS – Package configurations

Cuando recién empecé a leer de este tema mi primera pregunta fue: Qué diablos es esto??

ahora puedo decir que es la forma como nuestro paquete ssis puede tomar datos para su configuración interna desde otras fuentes; mejor dicho, cada vez que el paquete se ejecuta, lo primero que hace es recuperar datos de configuración de conexiones, variables, archivos, etc. Y esta opción permite decirle donde encontrar estos datos.


Ejemplos

Tengo una conexión a una BD sql server llamada ORIGEN_NEPTUNO, en el ambiente de desarrollo conozco login y password, pero en el ambiente de producción no, así que una forma de solucionarlo es crear una llave en el registro de Windows, donde se almacenen los datos de conexión y que nuestro paquete los lea de ahí, veamos en detalle cómo hacer esto.


1. Crear en el registro la llave con la conexión

a. Ingresa al registry editor ( Ejecutar: regedit)Crea una llave llamada “SSIS” (click derecho new key), yo la cree a nivel de HKEY_CURRENT_USER para mayor seguridad (sólo el usuario logueado actualmente tendrá acceso a ellas), en esta carpeta almacenaré todas las llaves de mis paquetes.

Dentro de esta carpeta crea otra con el nombre de la conexión (NEPTUNO), allí dale clic derecho y crea un String Value, cambiale el nombre y deja solo “Value”, luego dale Modify e ingresa la cadena de conexión, por ejemplo:

Provider=SQLNCLI.1;Password=pass;Persist Security Info=True;User ID=ursula;Initial Catalog=Neptuno;Data Source=localhost
2. Crea la configuración en el paqueteAhora vamos a trabajar en SQL Server Business Intelligence Studio, en el paquete debe existir un Connection manager llamado ORIGEN_NEPTUNO

b. Ingresa en el menú superior SSIS -> Package configurations y da clic en el botón Add; en el tipo de configuración es posible usar:
- Archivo de configuración xml
- Variable de entorno
- Entrada del registro
- Variable del paquete padre
- Sql server

Para nuestro caso elegimos Entrada del registro, y ruta: SSIS\Neptuno

Ahora, debemos elegir la propiedad destino, expandimos nuestra conexión y seleccionamos ConnectionString

Por último, le damos un nombre a esta configuración, yo prefiero darle el mismo nombre que el objeto configurado.




Cada vez que se ejecute mi paquete, primero recuperará la cadena de conexión del registro de Windows.

Estos mismos pasos se pueden repetir para asignar valores a las variables de mi paquete, supongamos que nuestro paquete lee un archivo plano y en el servidor destino no conocemos la ruta ni el directorio donde queda almacenado; una posibilidad es crear una variable de ambiente en Windows donde se almacene la ruta y luego crear el package configuration que lee de esta variable y lo asigne a la propiedad Value de nuestra variable en el paquete.


Etiquetas:

3 comentarios:

  • Hola, Seguí las instrucciones que indicas pero al momento de ejecutar el paquete me manda un error que dice: ""SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred. Error code: 0x80040E4D. An OLE DB record is available. Source: "Microsoft SQL Server Native Client 10.0" Hresult: 0x80040E4D Description: Error de inicio de sesión del usuario"
    Espero puedas ayudarme, nosé que más debo configurar?

    De Anonymous Anónimo, A las 18 de abril de 2012, 13:17  

  • Hola Anonimo

    Supongo que el problema es porque el login y password que estas ingresando no tienen permisos, revisa eso primero.....

    Saludos

    De Blogger sobenavi, A las 19 de abril de 2012, 10:43  

  • Si, funciono. Solo una pregunta, hay otra manera de hecer las conexiones ??

    De Blogger gym, A las 21 de marzo de 2013, 10:56  

Publicar un comentario



<< Inicio