Warnung: Veraltete Dokumentation!
Sie verwenden die alte Version der Online-Hilfe für ERPConnect.
Verwenden Sie die englischsprachige Dokumentation im neuen HelpCenter für ERPConnect.

Dieser Abschnitt beschreibt die Verwendung der ReadTable-Klasse.
Eine oft wiederkehrende Aufgabe bei der Arbeit mit .NET und SAP ist das direkte Lesen von Daten aus der SAP-Datenbank. Die Klasse ReadTable ermöglicht den Zugriff auf diese Daten.

Hinweis: Der SAP-Standardbaustein RFC_READ_TABLE zur Tabellenextraktion ist nicht für Massendatenextraktion geeignet, siehe Einschränkungen beim Tabellenzugriff.

Daten aus Tabellen auslesen #

Das folgende Beispiel zeigt, wie Sie die ReadTable-Klasse verwenden, um eine Selektion auf eine Tabelle zu erstellen und die zurückgegebenen Daten in Form einer ADO-DataTable auswerten.

  • Im dem Beispiel werden Materialtexte aus der Tabelle MAKT ausgelesen. Benötigt werden die beiden Spalten MATNR (Materialnummer) und MAKTX (Materialtext).
  • Um nur die englischen Textbausteine auszulesen, schränken Sie die Selektion mit dem WHERE-Kriterium SPRAS = 'EN' ein (SPRAS ist die Spalte für den Sprachenschlüssel).
static void Main(string[] args) 
{ 
    using (R3Connection con = new R3Connection("SAPServer", 00, "SAPUser", "Password", "EN", "800"))
            {
                ERPConnect.LIC.SetLic("LicenseNumber");
                con.Open(false);
				
                ReadTable table = new ReadTable(con);
                table.AddField("MATNR");
                table.AddField("MAKTX");
                table.WhereClause = "SPRAS = 'EN' AND MATNR LIKE '%23'";
                table.TableName = "MAKT";
                table.RowCount = 10;
				
                table.Run();
				
                DataTable resulttable = table.Result;
                for (int i = 0; i < resulttable.Rows.Count; i++)
                {
                    Console.WriteLine(
                     resulttable.Rows[i]["MATNR"].ToString() + " " +
                     resulttable.Rows[i]["MAKTX"].ToString());
                }
                Console.ReadLine();
            }
}

Der folgende Screenshot zeigt die Konsolenausgabe des Beispielprogramms.

ReadTable-Console

Einschränkungen beim Tabellenzugriff #

Bei der Extraktion von Tabellen aus älteren SAP-Systemen können Sie bei der Verwendung des SAP-Standardfunktionsbausteins (RFC_READ_TABLE) auf folgende Einschränkungen stoßen:

  • Die Gesamtbreite der zu extrahierenden Spalten darf 512 Bytes nicht überschreiten
  • Fehler können auftreten bei der Extraktion von Tabellen, die eine oder mehrere Spalten vom Typ f (FLTP, floating point), DEC (Decimal und Prozentzahl z.B.) oder x (RAW, LRAW) haben.
  • Schlechte Extraktionsperformance bei Extraktion großer Tabellen.

Warnung! Error while converting value ‘*.0’ of row 1530, column 3
Der SAP-Standardbaustein RFC_READ_TABLE zur Tabellenextraktion kann den ABAP-Datentyp DEC nur bedingt extrahieren. Dies führt zu dem genannten Beispielfehler bei der Extraktion.