Páginas vistas en total

miércoles, 27 de julio de 2011

SSIS - MOVER Y RENOMBRAR UN ARCHIVO

SQL Server Integration Services - Mover y Renombrar un archivo
Yo se que ya existen muchos .. tutoriales de esto, entre ellos:

http://www.rafael-salas.com/2007/03/ssis-file-system-task-move-and-rename.html

Bueno en sí no puede decirles si funcionan o no, pero lo que si es que les falto explicar un detalle, espero poder explicarlo xD y les sea util para un primer ejercicio con SSIS

Vamos a empezar con algo sencillo:
  1. Foreach Loop Container
  2. File System Task - Para Mover
  3. File System Task - Para Rename

Ahorita no he configurado nada, solo le he cambiado nombre

Lo siguientes es configurar For Each Loop, para ello nos situamos en COLLECTION, volvemos a seleccionar Foreach File Enumerator, dado que así nos apareceran mas funciones.
  1. Folder: Seleccionamos la dirección de carpetas que vamos a copiar.
  2. File: Agregamos la extension de nuestro archivo, o ya sea como va iniciar nuestro archivo, entre otras.
  3. Fully Qualified: Esto representara que vamos a guardar el nombre y dirección en una variable.
 Por último, nos vamos a Variable Mappings y agregamos una nueva variable, podemos usar una ya existente o crear una ahí mismo, aqui almacenaremos el nombre completo de la variable.


Configuración de File System Task:


Ahora debemos agregar 2 variables Rename y  Move, ahora para variable Rename la seleccionamos luego nos vamos a la barra de propiedades, y  cambiamos la opción Evaluate As Expression: true y procedemos a editar la expression.

REPLACE( @[User::VarFile] , ".txt","_cargado.txt") 

Ahora vamos a agregarle la ubicación de destino a nuestra variable move:

File System Task:
Ahora procedemos a editar la tarea de Rename por ello, configuramos las opciones:
Destination Connection:
  1. IsDestinationPathVariable: True
  2. DestinationVariable: User::Rename
  3. OverwriteDestination: True
Operation:
  1. Operation: Rename File
Source Connection:
  1. IsSourcePathVariable: True
  2. SourceVariable: User::VarFile

 Al dar aceptar, aún nos aparecera que existe un error, por ello nos vamos a las propiedades de la tarea  Rename(Task File System) y cambiamos la opción a true  DelayValidation: True


Ahora vamos a configurar a Move (File System Task):

Destination Connection:
  1. IsDestinationPathVariable: True
  2. DestinationVariable: User::Move
  3. OverwriteDestination: True
Operation
  1. Operation: Move file
Source Connection
  1. IsSourcePathVariable: True
  2. SourceVariable: User::Rename
Nuevamente al dar aceptar, aún nos aparecera que existe un error, por ello nos vamos a las propiedades de la tarea  Move (Task File System) y cambiamos la opción a true  DelayValidation: True

Ahora por fín procedemos a ejecutar nuestro package:

14 comentarios:

  1. Uooooo excelente, apenas hice uso de esta propiedad, pero me salio a la primera. Gracias por tus claras instrucciones.

    Saludos.

    ResponderEliminar
  2. Hola
    Interesante, solo que hay imágenes del File System Task que no se cargan :-(
    ¡Gracias de todos modos!

    ResponderEliminar
  3. Muy bueno, Una pregunta ¿Cómo haría si quisiera mover los archivos cargados correctamente a un carpeta CARGADOS, y los que generan error a otra carpeta ERROR?.Gracias por tu respuesta.
    Saludos

    ResponderEliminar
  4. que pasa si los archivos estan tomados o estan ocupados por otro usuario, estoy pensando si estan red, es capaz de renombrar?

    ResponderEliminar
  5. Hola,

    Gracias por el tutorial,
    El unico problema que encontre es que la variable, segun ejemplo user::varfile, usada en el foreach me pida que le cargue un valor, la inicializo con cualquier valor ej`$` y funciona correctamente, yo entiendo que esta variable se carga en tiempo de ejecucion con el nombre del o los archivos txt
    Aguardo cualquier explicacion.

    Saludos y gracias

    ResponderEliminar
  6. Buenisimo! muchas gracias por tu ayuda!!

    ResponderEliminar
  7. como le hago para pasar el nombre de un archivo de excel a la base de datos

    ResponderEliminar
    Respuestas
    1. Con la herramienta derive column.
      origen excel
      derive column
      destino ole db

      Eliminar
  8. me funciono solo con el Rename, excelente

    ResponderEliminar
  9. Hola que tal necesito cambiar el nombre y moverlo, por ejemplo despues de mi carga cambiar mi archivo "transaccional" a "transaccional_28012016" como lo podria hacer, muchas gracias de antemano me ayudarias mucho.

    ResponderEliminar
  10. Como hago para obtener la ruta de un archivo?, digamos que no se donde esta solo se que tiene el nombre algo como ssis_

    ResponderEliminar
  11. hay algunas cosas que no son claros, si el tarea sistema de archivos lo puedes usar fuera del contenedor

    ResponderEliminar
  12. hay algunas cosas que no son claros, si el tarea sistema de archivos lo puedes usar fuera del contenedor

    ResponderEliminar