Quantcast
Channel: SQL Server Integration Services forum
Viewing all articles
Browse latest Browse all 24688

Not Able to edit script task component

$
0
0

Hi,

Under On DFT I am reading data from Using OLEDB Source (I have write a query to get output result in this OLEDB source that generate the following out put)

Output

POSTTYPDATARADzSourceFilezRowIDzLoadTimezPTLOG_ID

AVTNej^;IWS^;...\\E75v0427\GIS\FT\EPA_DEV\22013-09-26 12:50:41.41714697

DATARAD:-

Nej^;IWS^;99^;2009-800220-1^;G^;SAN^;2009-10-29^;2019-12-02^;4900^;Häljaröd 6:25^;99^;^;2012-11-11 23:17:50^;

After Reading data from OLEDB source I split it in to three different output based on POSTTYP values (ie if 1 then go to output one ,if 2  then goto output two and if 3 goto out put three)

Then I use script task component and the code written within it is:-

*********************************************************************************************

' Microsoft SQL Server Integration Services user script component
' This is your new script component in Microsoft Visual Basic .NET
' ScriptMain is the entrypoint class for script components
Imports System
Imports System.Globalization
Imports System.Data
Imports System.Math
Imports Microsoft.SqlServer.Dts.Pipeline.Wrapper
Imports Microsoft.SqlServer.Dts.Runtime.Wrapper

<Microsoft.SqlServer.Dts.Pipeline.SSISScriptComponentEntryPointAttribute()> _
<CLSCompliant(False)> _
Public Class ScriptMain
    Inherits UserComponent

    Public Overrides Sub Input0_ProcessInputRow(ByVal Row As Input0Buffer)
        Dim strValue As String
        Dim strKolumn As String
        Dim tokenArray As String()

        Try

            tokenArray = Tokenise(Row.DATARAD)

            strKolumn = "BORTTAG"
            strValue = GetValueFromTokenArray(tokenArray, 1)
            If strValue <> "" Then
                Row.BORTTAG = strValue.Trim()
            Else
                Row.BORTTAG_IsNull = True
            End If

            strKolumn = "AVTALSNUMMER"
            strValue = GetValueFromTokenArray(tokenArray, 2)
            If strValue <> "" Then
                Row.AVTALSNUMMER = strValue.Trim()
            Else
                Row.AVTALSNUMMER_IsNull = True
            End If

            strKolumn = "AVTALSID"
            strValue = GetValueFromTokenArray(tokenArray, 3)
            If strValue <> "" Then
                Row.AVTALSID = strValue.Trim()
            Else
                Row.AVTALSID_IsNull = True
            End If

            strKolumn = "STATUS"
            strValue = GetValueFromTokenArray(tokenArray, 4)
            If strValue <> "" Then
                Row.STATUS = strValue.Trim()
            Else
                Row.STATUS_IsNull = True
            End If

            strKolumn = "PRODUKTKOD"
            strValue = GetValueFromTokenArray(tokenArray, 5)
            If strValue <> "" Then
                Row.PRODUKTKOD = strValue.Trim()
            Else
                Row.PRODUKTKOD_IsNull = True
            End If

            strKolumn = "AVTALETSFORFALLODAG"
            strValue = GetValueFromTokenArray(tokenArray, 6)
            If strValue <> "" Then
                Row.AVTALETSFORFALLODAG = strValue.Trim()
            Else
                Row.AVTALETSFORFALLODAG_IsNull = True
            End If

            strKolumn = "PREMIE"
            strValue = GetValueFromTokenArray(tokenArray, 7)
            If strValue <> "" Then
                Row.PREMIE = Convert.ToInt32(strValue)
            Else
                Row.PREMIE_IsNull = True
            End If

            strKolumn = "POSITIVTMEDFORMVARDE"
            strValue = GetValueFromTokenArray(tokenArray, 8)
            If strValue <> "" Then
                Row.POSITIVTMEDFORMVARDE = Convert.ToInt64(Math.Round(Convert.ToDecimal(strValue)))
            Else
                Row.POSITIVTMEDFORMVARDE_IsNull = True
            End If

            strKolumn = "NEGATIVTMEDFORMVARDE"
            strValue = GetValueFromTokenArray(tokenArray, 9)
            If strValue <> "" Then
                Row.NEGATIVTMEDFORMVARDE = Convert.ToInt64(Math.Round(Convert.ToDecimal(strValue)))
            Else
                Row.NEGATIVTMEDFORMVARDE_IsNull = True
            End If

            strKolumn = "MAKLARSALD"
            strValue = GetValueFromTokenArray(tokenArray, 10)
            If strValue <> "" Then
                Row.MAKLARSALD = strValue.Trim()
            Else
                Row.MAKLARSALD_IsNull = True
            End If

            strKolumn = "AVTALBESKRIVNING"
            strValue = GetValueFromTokenArray(tokenArray, 11)
            If strValue <> "" Then
                Row.AVTALBESKRIVNING = strValue.Trim()
            Else
                Row.AVTALBESKRIVNING_IsNull = True
            End If

            strKolumn = "BETALNINGSTERMIN"
            strValue = GetValueFromTokenArray(tokenArray, 12)
            If strValue <> "" Then
                Row.BETALNINGSTERMIN = Convert.ToSByte(strValue)
            Else
                Row.BETALNINGSTERMIN_IsNull = True
            End If

            strKolumn = "SYSTEM"
            strValue = GetValueFromTokenArray(tokenArray, 13)
            If strValue <> "" Then
                Row.SYSTEM = strValue.Trim()
            Else
                Row.SYSTEM_IsNull = True
            End If

            strKolumn = "UNDERSTATUS"
            strValue = GetValueFromTokenArray(tokenArray, 14)
            If strValue <> "" Then
                Row.UNDERSTATUS = strValue.Trim()
            Else
                Row.UNDERSTATUS_IsNull = True
            End If

            strKolumn = "RANTESATS"
            strValue = GetValueFromTokenArray(tokenArray, 15)
            If strValue <> "" Then
                Row.RANTESATS = strValue.Trim()
            Else
                Row.RANTESATS_IsNull = True
            End If

            strKolumn = "LANSBOLAGSKOD"
            strValue = GetValueFromTokenArray(tokenArray, 16)
            If strValue <> "" Then
                Row.LANSBOLAGSKOD = strValue.Trim()
            Else
                Row.LANSBOLAGSKOD = "00"
            End If

            strKolumn = "OPPNINGSDATUM"
            strValue = GetValueFromTokenArray(tokenArray, 17)
            If strValue <> "" Then
                Row.OPPNINGSDATUM = strValue.Trim()
            Else
                Row.OPPNINGSDATUM_IsNull = True
            End If

            strKolumn = "TRANSAKTIONSDATUM"
            strValue = GetValueFromTokenArray(tokenArray, 18)
            If strValue <> "" Then
                Row.TRANSAKTIONSDATUM = strValue.Trim()
            Else
                Row.TRANSAKTIONSDATUM_IsNull = True
            End If

            strKolumn = "AVTALSIDOVERORDNAT"
            strValue = GetValueFromTokenArray(tokenArray, 19)
            If strValue <> "" And strValue <> "0" Then
                Row.AVTALSIDOVERORDNAT = strValue.Trim()
            Else
                Row.AVTALSIDOVERORDNAT_IsNull = True
            End If

        Catch e As Exception
            Row.zFelBeskrivning = "Fel vid splitt av zRowID: " + CStr(Row.zRowID) + " Kolumn: " + strKolumn
            'Me.ComponentMetaData.FireError(-1, "", "Fel vid splitt av zRowID: " + CStr(Row.zRowID) + " Kolumn: " + strKolumn + " Felmeddelande: " + e.ToString(), "", -1, True)
        End Try
    End Sub

    'Private function that parses out the columns of the whole row
    Private Function Tokenise(ByVal input As String) As String()
        Dim delim() As String = {"^;"}
        Return input.Split(delim, StringSplitOptions.None) 'Split the string by the delimiter
    End Function

    'Private function that fetches token from tokenarray
    Private Function GetValueFromTokenArray(ByVal tokenArray As String(), ByVal token As Integer) As String
        If tokenArray.Length < token Then 'Protect against a request for a token that doesn't exist
            Return ""
        Else
            Return tokenArray(token - 1)
        End If
    End Function
End Class

*********************************************************************************************

By using above code i split the data in to columns which is we get using OLEDB source and column DATARAD (This column have data to split row to column) 

Now My requirement is I want to add few new column in to script task and want to delete some of columns.But when I delete old columns and add new columns I get error. and not able to execute the package.

Requesting you to please help me in this.


Viewing all articles
Browse latest Browse all 24688

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>