Datenpakete mit der ReadTable-Klasse Deutsch

From Theobald Software

Jump to: navigation, search

English Version: Transferring data packets with ReadTable class


Ab einer gewissen Anzahl an Zeilen (je nach SAP-System zwischen 100.000 und 1.000.000) ist es nicht mehr möglich, alle gewünschten Zeilen mit der ReadTable-Klasse in einem Rutsch zu holen. Aus diesem Grund bietet die ReadTable-Klasse eine so genannten Paketierung an, die wie folgt angewendet werden kann:

  • Setzen Sie die Eigenschaft PackageSize auf einen Wert, der größer 0 ist, damit wird die Paketierung eingeschaltet.
  • Setzen Sie RaiseIncomingPackageEvent auf true, um zu definieren, dass Sie die einzelnen Pakete über ein Ereignis verarbeiten möchten.
  • Implementieren Sie das Ereignis IncomingPackage, um ein einzelnes Datenpaket zu prozessieren. Das Paket wird jeweils als DataTable übergeben.

Beispiel:

[C#]

static void Main(string[] args)
{
    R3Connection con = new R3Connection("XXX", 11, "XXX", 
        "XXX", "DE", "800");
 
    con.Open();
 
    ReadTable read = new ReadTable(con);
    read.PackageSize = 10000;
    read.RaiseIncomingPackageEvent = true;
    read.TableName = "MKPF";
    read.IncomingPackage += new ReadTable.OnIncomingPackage(read_IncomingPackage);
 
    read.Run();
 
    Console.WriteLine("Press enter to exit");
    Console.ReadLine();
}
 
static void read_IncomingPackage(ReadTable Sender, DataTable PackageResult)
{
    Console.WriteLine("Processing data package with " + 
        PackageResult.Rows.Count.ToString() + " rows");
}

[VB]

Imports ERPConnect
Imports ERPConnect.Utils
 
Module Module1
 
  Dim con As New R3Connection("xxx", 7, "xxx", "xxx", "DE", "800")
  Dim WithEvents read As New ReadTable(con)
 
Sub Main()
   con.Open()
   read.PackageSize = 10000
   read.RaiseIncomingPackageEvent = True
   read.TableName = "MKPF"
   read.Run()
   Console.WriteLine("Press enter to exit")
   Console.ReadLine()
End Sub
 
Public Sub OnIncomingPackage(ByVal Sender As ERPConnect.Utils.ReadTable, _
  ByVal PackageResult As System.Data.DataTable) Handles read.IncomingPackage
  Console.WriteLine("Processing data package with " + _
                    PackageResult.Rows.Count.ToString() + " rows")
End Sub
End Module
DeutschEnglish
Personal tools
Xtract PPS