SSIS: agregar fecha de creación a la variable en la tarea de script

Aug 20 2020

Estoy tratando de obtener la fecha de creación de un archivo en SSIS usando una tarea de script. Creé una variable llamada "Usuario :: File_Created" y agregué esa variable a la siguiente tarea de script:

        public void Main()
        {
            string fileName = @"[FilePath]";
            FileInfo fi = new FileInfo(fileName);

            if (Dts.Variables.Contains("User::File_Created") == true)
            {
                Dts.Variables["User::File_Created"].Value = fi.CreationTime;
            }
        }

Sin embargo, al finalizar, solo veo la fecha actual almacenada en la variable. Cualquier ayuda sería apreciada.

Respuestas

3 billinkc Aug 21 2020 at 22:24

Este es un punto común de confusión.

La ventana Variables es donde crea variables SSIS y asigna valores en tiempo de diseño. Los valores de tiempo de diseño son solo eso, solo diseño. El paquete se inicializará con esos valores, pero pueden cambiar durante la ejecución. Cuando el paquete termina, no guarda el valor actual en el paquete porque todo eso fue tiempo de ejecución. El tiempo de diseño permanece constante.

Para ver los valores en tiempo de ejecución, debe abrir la ventana Locales, expandir el nodo de colección de Variables y luego puede ver todos los valores actuales (o establecer una vigilancia). Aquí puede ver que mi paquete está en vuelo ya que tenemos nodos verdes (tarea de expresión que establece el valor de mi variable en ZYX) y la ventana Variables muestra ABC pero la ventana Locales refleja el valor real de ZYX

Para acceder a la ventana Locales, mientras el paquete se está depurando, haga clic en el menú Depurar, en Windows, seleccione Locales. https://docs.microsoft.com/en-us/visualstudio/debugger/autos-and-locals-windows?view=vs-2019