SSIS: Tambahkan Tanggal Pembuatan ke Variabel dalam Tugas Skrip
Saya mencoba untuk mendapatkan tanggal pembuatan file di SSIS menggunakan tugas skrip. Saya telah membuat variabel bernama "User :: File_Created" dan menambahkan variabel itu ke tugas skrip berikut:
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;
}
}
Setelah selesai, saya masih hanya melihat tanggal saat ini yang disimpan dalam variabel. Bantuan apa pun akan dihargai.
Jawaban
Ini adalah titik kebingungan yang umum.
Jendela Variabel adalah tempat Anda membuat variabel SSIS dan menetapkan nilai waktu desain. Nilai waktu desain hanyalah itu, desain saja. Paket akan diinisialisasi dengan nilai-nilai itu tetapi mereka dapat berubah selama eksekusi. Ketika paket berakhir, itu tidak menyimpan nilai saat ini kembali ke paket karena itu semua waktu proses. Waktu desain tetap konstan.

Untuk melihat nilai run-time, Anda perlu menarik jendela Lokal, memperluas node kumpulan Variabel dan kemudian Anda dapat melihat semua nilai saat ini (atau mengatur menonton untuk itu). Di sini Anda dapat melihat paket saya sedang dalam penerbangan karena kami memiliki node hijau (tugas ekspresi yang menetapkan nilai variabel saya ke ZYX) dan jendela Variabel menampilkan ABC tetapi jendela Lokal mencerminkan nilai sebenarnya dari ZYX

Untuk mengakses jendela Lokal, saat paket sedang debugging, klik menu Debug, di bawah Windows, pilih Lokal. https://docs.microsoft.com/en-us/visualstudio/debugger/autos-and-locals-windows?view=vs-2019