Saya sudah komponen skrip yang menerima catatan dari tabel database SQL Azure. Script kemudian memanggil layanan web, yang mengembalikan jumlah catatan yang gagal dan sukses.
Untuk semua catatan, saya ingin menambahkan bidang Status yang memiliki "sukses" atau "gagal" dan ini mendapat output dari komponen skrip.
Saya kemudian mencatat output tersebut ke file teks.
Masalah: Saya tidak dapat menambahkan status untuk setiap catatan input karena panggilan layanan web hanya terjadi pada eksekusi posting.
Saya mencoba ini tetapi masih tidak berhasil:
public override void Input0_ProcessInputRow(Input0Buffer Row)
{
listOfData.Add(new ClockData
{
TimeClockID=Row.TimeClockID,
PersonID=Row.EmployeeCode,
LocationCode=Row.ClockInServiceContextID,
ClockInDateTime=Row.ClockInDateTime,
ClockOutDateTime=Row.ClockOutDateTime
});
}
public override void CreateNewOutputRows()
{
MessageBox.Show("Test CreateNewOutputRows");
MessageBox.Show(listOfData.Count.ToString());
foreach (var item in listOfData)
{
Output0Buffer.AddRow();
Output0Buffer.EmployeeCode = item.PersonID;
MessageBox.Show(item.PersonID);
}
}
sql-server
ssis
flybyte
sumber
sumber
Jawaban:
Segala sesuatu dalam Transformasi dilakukan dalam Input0_ProcessInputRow Solusinya pada dasarnya
Anda mungkin dapat melakukan langkah-langkah output di PostExecute, CreateNewOutputRows tidak berjalan di Transformasi, hanya di skrip Tujuan.
sumber
Saya tidak terlalu mahir dalam SSIS, tetapi saya pikir Anda dapat mencoba ide-ide berikut:
Maka Anda akan memiliki kolom kosong untuk output Anda dan Anda perlu mengisinya dengan beberapa data untuk setiap baris input:
Ini akan membantu Anda menambahkan kolom Status ke tabel output Anda. Semoga ini yang Anda inginkan.
sumber