2008 habe ich LINQ to SAP entwickelt, einen LINQ-Provider für SAP-Datenquellen und ein Visual-Studio-Plugin für ERPConnect. SAP-Objekte wie BAPIs, Tabellen und Queries werden in den Designer gezogen, der daraus den SAP-Zugriffscode für C# und VB.NET erzeugt.
Das Plugin bringt einen Designer und einen Codegenerator mit. Komplexe BAPIs lassen sich im Designer vereinfachen, der erzeugte Code zeigt dann nur die Elemente, die gefüllt werden müssen. Unterstützt wurden Visual Studio 2008 und neuer.
Der Codegenerator erzeugt immer eine Kontextklasse, standardmäßig SAPContext genannt. Das Beispiel fragt die SAP-Tabelle T001W ab, die alle Werke eines Unternehmens enthält. Die Felder der Tabelle sind im Designer definiert, der Code bleibt dadurch kurz. Im besten Fall ist der Aufruf eine einzige Zeile.
SAPContext dc = new SAPContext("TESTUSER", "XYZ");var res = from p in dc.T001WList where p.WERKS == "3000" select p;foreach (var item in res) Console.WriteLine(item.NAME1);
Screenshots
Der Designer in Visual Studio.Ein BAPI mit seinen Import-, Export- und Tabellenparametern.BW-Cubes im Designer.