Direktes Lesen auf SAP-Tabellen Deutsch

From Theobald Software

Jump to: navigation, search

English Version: Reading SAP Tables Directly


Eine oft wiederkehrende Aufgabe in der täglichen Arbeit mit .net und SAP ist das direkte Lesen von Daten aus der SAP-Datenbank. Diesem Anspruch wird die Klasse ReadTable gerecht. Wie das folgende Beispiel zeigt, ist es mit wenigen Zeilen Code möglich, eine Selektion auf eine Tabelle zu erstellen und die zurückgegebenen Daten in Form einer wohlbekannten ADO-DataTable auszuwerten.

Beispiel

Im folgenden Beispiel sollen Materialtexte ausgelesen werden. Diese befinden sich in der Tabelle MAKT. Benötigt werden die beiden Spalten MATNR (Materialnummer) und der Text (Spalte MAKTX). Da wir nur die deutschen Textbausteine auslesen möchten, schränken wir die Selektion mit dem Kriterium SPRAS = 'DE' ein. SPRAS ist die Spalte für den Sprachenschlüssel in der Tabelle MAKT. Das Bild unten zeigt die Konsolenausgabe des Beispielprogramms.

[C#]

using System;
using ERPConnect;
using System.Data;
 
class Class1
{
    static void Main(string[] args)
    {
        R3Connection con = new R3Connection("hamlet",11,"theobald","pw","DE","800");
        con.Open(false);
 
        ERPUtils.ReadTable table = new ERPUtils.ReadTable(con);
        table.AddField("MATNR");
        table.AddField("MAKTX");
        table.AddCriteria("SPRAS = 'DE'");    
        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();
 
    }
}

[VB]

Imports ERPConnect
Imports System.Data
 
Module Module1
 
    Sub Main()
        Dim con As New R3Connection
        con.Host = "Hamlet"
        con.SystemNumber = 11
        con.UserName = "Theobald"
        con.Password = "pw"
        con.Client = "800"
        con.Language = "DE"
 
        con.Open(False)
 
        Dim table As New ERPUtils.ReadTable(con)
 
        table.AddField("MATNR")
        table.AddField("MAKTX")
 
        table.AddCriteria("SPRAS = 'DE'")
 
        table.TableName = "MAKT"
        table.RowCount = 10
 
        table.Run()
 
        Dim resulttable As DataTable
        resulttable = table.Result
 
        Dim i As Integer
 
        For i = 0 To resulttable.Rows.Count - 1
            Console.WriteLine( _
                CStr(resulttable.Rows(i)(0)) + " " + _
                CStr(resulttable.Rows(i)(1)))
        Next
 
        Console.ReadLine()
 
    End Sub
 
End Module

Image:ReadTableDemoConsole.jpg

DeutschEnglish
Personal tools
XtractQL Provider
Xtract RS