Within the Script of the Script Component in SSIS, I am trying to create one record from a flat file as shown here:
Starting Data:
HEADER|INVOICE_1|INVOICE_DATE|VENDOR_ID|
DETAIL|SKU|DESCRIPTION|AMOUNT|
DETAIL|SKU|DESCRIPTION|AMOUNT|
HEADER|INVOICE_2|INVOICE_DATE|VENDOR_ID|
DETAIL|SKU|DESCRIPTION|AMOUNT|
HEADER|INVOICE_3|INVOICE_DATE|VENDOR_ID|
DETAIL|SKU|DESCRIPTION|AMOUNT|
End Result:
HEADER|INVOICE_1|INVOICE_DATE|VENDOR_ID|SKU|DESCRIPTION|AMOUNT|
HEADER|INVOICE_1|INVOICE_DATE|VENDOR_ID|SKU|DESCRIPTION|AMOUNT|
HEADER|INVOICE_2|INVOICE_DATE|VENDOR_ID|SKU|DESCRIPTION|AMOUNT|
HEADER|INVOICE_3|INVOICE_DATE|VENDOR_ID|SKU|DESCRIPTION|AMOUNT|
The End Result will be mapped to an OLE DB destination within SSIS.
I've originally wrote the script to use StreamReader to pull each line type (Header, Detail) as group outputs but quickly realized that there was no identifier to join them back together.
This is what I currently have written:
System.IO.StreamReader reader = new System.IO.StreamReader(this.Variables.varFileName);
while (!reader.EndOfStream)
{
string line = reader.ReadLine();
string[] items = line.Split('|');
// HEADER = 000
if (items[0] == "000")
{
HeaderBuffer.AddRow();
HeaderBuffer.H1 = items[0];
HeaderBuffer.H2 = items[1];
HeaderBuffer.H3 = items[2];
HeaderBuffer.H4 = items[3];
HeaderBuffer.H5 = items[4];
HeaderBuffer.H6 = items[5];
HeaderBuffer.H7 = items[6];
HeaderBuffer.H8 = items[7];
HeaderBuffer.H9 = items[8];
HeaderBuffer.H10 = items[9];
HeaderBuffer.H11 = items[10];
HeaderBuffer.H12 = items[11];
HeaderBuffer.H13 = items[12];
}
// DETAIL = 001
else if (items[0] == "001")
{
DetailBuffer.AddRow();
DetailBuffer.D1 = items[0];
DetailBuffer.D2 = items[1];
DetailBuffer.D3 = items[2];
DetailBuffer.D4 = items[3];
DetailBuffer.D5 = items[4];
DetailBuffer.D6 = items[5];
}
}
Thank you in advance for all of your help! If you've any questions, please let me know.