SSIS: aggiungi data di creazione alla variabile nell'attività script
Sto cercando di ottenere la data di creazione di un file in SSIS utilizzando un'attività di script. Ho creato una variabile denominata "Utente :: File_Created" e ho aggiunto quella variabile alla seguente attività di 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;
}
}
Al termine, tuttavia, vedo ancora solo la data corrente memorizzata nella variabile. Qualsiasi aiuto sarebbe apprezzato.
Risposte
Questo è un punto comune di confusione.
La finestra Variabili è dove crei le variabili SSIS e assegni i valori della fase di progettazione. I valori del tempo di progettazione sono proprio questo, solo il design. Il pacchetto verrà inizializzato con questi valori ma possono cambiare durante l'esecuzione. Quando il pacchetto termina, non salva il valore corrente nel pacchetto perché era tutto in fase di esecuzione. Il tempo di progettazione rimane costante.

Per vedere i valori di runtime, è necessario aprire la finestra Locali, espandere il nodo di raccolta Variabili e quindi è possibile vedere tutti i valori correnti (o impostare un controllo per esso). Qui puoi vedere il mio pacchetto è in volo poiché abbiamo nodi verdi (attività di espressione che imposta il valore della mia variabile su ZYX) e la finestra Variabili mostra ABC ma la finestra Locali riflette il vero valore di ZYX

Per accedere alla finestra Locals, mentre il pacchetto è in fase di debug, fare clic sul menu Debug, in Windows, selezionare Locals. https://docs.microsoft.com/en-us/visualstudio/debugger/autos-and-locals-windows?view=vs-2019