SSIS - SQL Server Integration Services - lectura de archivo con encabezado, cuerpo y pie.

 
Vista:

lectura de archivo con encabezado, cuerpo y pie.

Publicado por Victor (1 intervención) el 08/05/2013 17:42:53
Tengo una DTSX la cual capturaba un archivo con estructura definida, ahora el archivo cambiara de estructura, tendra cabecera, cuerpo y pie de página. solo debo obtener la data del cuerpo. La cabecera y el pie de página son solo una línea que contiene el detalle del archivo (cantidad de registro, fecha, etc.).

por ahora solo necesito ayuda para leer el cuerpo del archivo.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Leer cuerpo de archivo con estructura de cabecera, cuerpo y pie de página

Publicado por Alejandro (60 intervenciones) el 24/02/2024 00:11:30
Víctor, para leer el cuerpo de un archivo en una tarea de SQL Server Integration Services (SSIS), puedes utilizar la tarea "Flujo de datos" (Data Flow Task) junto con un origen adecuado para tu tipo de archivo. A continuación, te proporcionaré un ejemplo de cómo podrías abordar esto para un archivo de texto con una estructura de cabecera, cuerpo y pie de página.

Supongamos que tienes un archivo de texto donde cada línea representa un registro, y el archivo tiene una estructura similar a:

1. Cabecera (1 línea)
2. Cuerpo (varias líneas)
3. Pie de página (1 línea)

Aquí hay una manera de abordar la lectura del cuerpo del archivo:

1. Usa un origen de archivo plano:
- En tu "Flujo de datos", utiliza la tarea "Origen de archivo plano" (Flat File Source) como origen de datos.
- Configura el origen para leer el archivo de texto.
- Ignora la primera y la última línea al principio (la cabecera y el pie de página).

2. Agrega una transformación de script:
- Después del origen de archivo plano, agrega una tarea "Transformación de script" (Script Transformation).
- Configura la transformación para que tenga una entrada (input) desde el origen de archivo plano y una salida (output) que represente el cuerpo del archivo.

3. Script en la transformación:
- En el script, puedes utilizar el lenguaje .NET (C# o VB.NET) para procesar las filas de entrada y decidir si pertenecen al cuerpo.
- Puedes hacer esto basándote en la posición de la fila en el archivo o en el contenido de la fila.
- Puedes emitir las filas que pertenecen al cuerpo a la salida.

Aquí hay un ejemplo de cómo podrías hacer esto en VB.NET:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
Imports System
Imports System.Data
Imports Microsoft.SqlServer.Dts.Pipeline.Wrapper
Imports Microsoft.SqlServer.Dts.Runtime.Wrapper
 
Public Class ScriptMain
    Inherits UserComponent
 
    Public Overrides Sub Input0_ProcessInputRow(ByVal Row As Input0Buffer)
        ' Verifica si la fila pertenece al cuerpo del archivo '
        If Not EsCabecera(Row) AndAlso Not EsPiePagina(Row) Then
            ' Emite la fila al cuerpo del archivo '
            Output0Buffer.AddRow()
            Output0Buffer.Column1 = Row.Column1 ' Ajusta según las columnas de tu cuerpo '
            Output0Buffer.Column2 = Row.Column2
            ' ... '
        End If
    End Sub
 
    Private Function EsCabecera(ByVal Row As Input0Buffer) As Boolean
        ' Lógica para determinar si la fila es la cabecera '
        ' Puedes basarte en la posición de la fila o en el contenido '
        ' Retorna True si es la cabecera, False de lo contrario '
        Return ' Lógica para determinar si es la cabecera '
    End Function
 
    Private Function EsPiePagina(ByVal Row As Input0Buffer) As Boolean
        ' Lógica para determinar si la fila es el pie de página '
        ' Puedes basarte en la posición de la fila o en el contenido '
        ' Retorna True si es el pie de página, False de lo contrario '
        Return ' Lógica para determinar si es el pie de página '
    End Function
End Class

Ajusta el código según tus necesidades específicas, considerando la estructura exacta de tu archivo y los criterios para identificar la cabecera y el pie de página. Además, asegúrate de ajustar las columnas en el script según las columnas reales en tu archivo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar