Copiar y cambiar el nombre de un archivo en SSIS usando el Equipo de sistema de archivos
Una carpeta \
Carpeta B \
Carpeta C \
En "Carpeta A", un archivo llamado "a20120111.txt" se crea.
En "Carpeta B", un archivo llamado ".txt b20120111" se crea.
La pregunta (objetivo) es cambiar el nombre de una COPIA "a20120111.txt" del archivo a "c20120111.txt", que se coloca en la carpeta "C".
Voy a "etapa" algunos archivos de prueba como se muestra a continuación y asumir que hemos llegado hasta aquí con éxito.
Ok, con los que en su lugar, vamos a ver ese paso final:
En primer lugar, defino algunas variables. No son dinámicos (basados en la expresión) sin embargo - las variables de cadena fijos simplemente regulares.
A continuación, vamos a añadir la expresión a la variable FileNameDate para que sea "construir" la fecha de hoy en tiempo de ejecución. Para ello, resalte la variable FileNameDate como se muestra arriba y luego ir a la ventana de propiedades. Debe tener un aspecto similar a la (borde de) la ventana se muestra a continuación:
Para la propiedad de "EvaluateAsExpression" -. Ponga esto a TRUE continuación, haga clic en la propiedad "Expresión" justo debajo de él. Un botón "..." elipse debería aparecer. Haga clic en él, lo que abre el generador de expresiones. Poner en la expresión como se muestra aquí: (DT_STR, 4, 1252) DATEPART ( "año", GETDATE ()) + "" + derecha ( "00" + (DT_STR, 2, 1252) DATEPART ( "mes", GETDATE ()), 2) + "" + derecha ( "00" + (DT_STR, 2, 1252) DATEPART ( "día", GETDATE ()), 2)
Haga clic en "Evaluar expresión" para ver el valor añadido y asegurar que la fórmula es correcta.
Si todo funciona, haga clic en "Aceptar" para guardar la expresión de la variable.
Ahora repita esos pasos de seleccionar el "DestName" Variable - en este ejemplo, he dado el siguiente código de la expresión: @ [Usuario :: DESTPATH] + "c" + @ [usuario :: FileNameDate] + ".txt"
Nótese que he asumido una cosa unos pocos allí - me asumido el archivo siempre tendría la las porciones ".txt" en el nombre de archivo de la porción y "c". Si ese no es el caso, crear variables para ellos - o ajustar en consecuencia.
Por último, repetir los pasos de seleccionar de nuevo la variable "SourceName". Di que una expresión del siguiente código: @ [Usuario :: SourcePath] + "a" + @ [usuario :: FileNameDate] + ".txt"
Una vez más, he asumido lo que el nombre de archivo se verá como para el archivo fuente - puede que tenga que ajustarlo a sus necesidades.
** Asegúrese de hacer clic en "evaluar la expresión" después de cada uno como una prueba. También hay que resaltar: SSIS no actualiza automáticamente un valor de variables hasta que esto se hace clic - por lo que si usted se vuelve y algo está en blanco - volver atrás en la expresión y evaluar para ver si se muestra como se espera que lo haga.
Una vez que haya terminado, la ventana de la variable debe parecerse a la siguiente (con fecha de hoy):
Ahora sólo nos queda configurar el archivo de sistema de tareas para copiar.
De arriba hacia abajo, nos fijamos el "IsDestinatinationPathVariable" True y fijamos el "DestinationVariable" a nuestro "DestName" variable.
Compruebe que el sistema funciona en modo "Copiar archivo" - este es el valor predeterminado.
Por último establecer el "IsSourcePathVariable" True y establecer el "SourceVariable" a nuestro "SourceName" variable.
Guarde el paquete y entonces es el momento de prueba:
El paquete se ejecuta correctamente y ...
Cuando comprobamos "carpeta C" - no es nuestro nuevo archivo como se esperaba.
Comentarios
Publicar un comentario