Die Klasse ABAPCode bietet die Möglichkeit, den Code von ABAP-Reports an SAP zu übergeben und dort on the fly auszuführen. Dadurch ergeben sich nahezu unbegrenzte Möglichkeiten.

Das folgende Beispiel zeigt, wie Sie einen einfachen ABAP-Interpreter erstellen, der ein dynamisches SQL-Statement ausführt.
AbapPad

Einen ABAP-Interpreter erstellen #

  1. Bauen Sie mit der R3Connection-Klasse eine Verbindung zum R/3 System auf.
  2. Fügen Sie mit der Methode AddCodeLine eine neue Zeile ABAP-Code hinzu.
  3. Ist der gewünschte Code vollständig übergeben, führen Sie ihn mit Execute aus.
  4. Lesen und verwerten Sie die Ergebnismenge (die Listausgabe) mit der Methode GetResultLine.
private void button1_Click(object sender, System.EventArgs e)
{
	using (R3Connection con = new R3Connection("SAPServer", 00, "SAPUser", "Password", "EN", "800"))
            {
                ERPConnect.LIC.SetLic("LicenseNumber");
                con.Open(false);
				
                ERPConnect.Utils.ABAPCode code = new ERPConnect.Utils.ABAPCode();
                code.Connection = con;
				
                foreach (string s in txtABAPCode.Lines)
                {
                    code.AddCodeLine(s);
                }
                if (code.Execute())
                {
                    for (int i = 0; i < code.ResultLineCount; i++)
                        txtResult.Text += code.GetResultLine(i) + "\r\n";
                }
                else
                {
                    txtResult.Text = "ABAP Error: " + code.LastABAPSyntaxError;
                }
            }
}