2011-03-29 18 views
12

Necesito establecer la carpeta en mi bucle Foreach en una ubicación variable. Intenté simplemente agregar la ubicación a la configuración de mi paquete, y actuó como si funcionara, pero cuando abrí el archivo de configuración, no estaba allí.Carpeta de bucle secundario de SSIS como variable

Lo tenía configurado en el Enumerador de archivos Foreach, con la ruta codificada, y Recuperar nombre de archivo completo. Mis asignaciones de variable tienen una variable CurrentFile con índice 0.

Por lo tanto, lo he cambiado a un Enumerador de variable de Foreach, con una variable SourceFiles de \ server \ path *. *. Pero ahora se está quejando sobre CurrentFile, que el tipo de valor que se asigna difiere del tipo de variable (cadena).

Supongo que necesito usar de alguna manera las Expresiones con el Enumerador en la pestaña Colecciones? ¿Cómo?

  • general: Foreach contenedor de bucles
  • Colección: Foreach De varialbe enumerador; La variable es User :: SourcePath; Las expresiones (no se utiliza)
  • Asignaciones: Magnitud de usuario :: CurrentFile, el índice 0
  • expresiones: (no se utiliza)

de error: 0xC001F009 en MyPackage: El tipo del valor que se asigna a la variable " User :: CurrentFile "difiere del tipo de variable actual. Las variables pueden no cambiar de tipo durante la ejecución. Los tipos de variables son estrictos, a excepción de las variables de tipo Object. Error: 0xC001C012 en el Contenedor de bucles Foreach: Para cada asignación de variables número 1 a la variable "Usuario :: CurrentFile" no se puede aplicar.

Respuesta

19

Un compañero de trabajo me mostró cómo hacerlo funcionar. NO lo cambie a "Foreach from Variable Enumerator", pero déjelo como "Foreach File Enumerator".

  • Colección: Foreach File Enumerator; poner en una carpeta y archivos en la configuración del enumerador. En Expresiones, establezca el Directorio en una variable de usuario que apunte al directorio (tendrá prioridad sobre la carpeta que ingresó); establezca el FileSpec en una variable de usuario que apunte a los archivos (que tendrá prioridad sobre los archivos que ha ingresado).
Directory @[User::SourcePath] (value: \\server\directory) 
FileSpec @[User::CopyFileName] (value: *.*) 
  • asignaciones de variables: Variable usuario :: imagen actual, el índice 0
  • expresiones: (no se utiliza)
Cuestiones relacionadas