Aufrufen von RFCs und BAPIs mithilfe des Befehls EXEC in SAP
Der .NET Framework-Datenanbieter für mySAP Business Suite macht das SAP-System als ADO.NET Datenquelle verfügbar. Mithilfe .NET Framework Datenanbieters für mySAP Business Suite können Sie RFCs und BAPIs auf dem SAP-System über einen EXEC-Befehl aufrufen.
Aufrufen von RFCs und BAPIs im SAP-System
Führen Sie die folgenden Schritte aus, um einen RFC oder BAPI mithilfe des Datenanbieters für SAP aufzurufen:
So rufen Sie einen RFC oder BAPI auf
Fügen Sie einen Verweis (und eine using-Anweisung in Ihren Code) auf Microsoft.Data.SAPClient ein.
Erstellen Sie ein SAPConnection-Objekt mithilfe eines Datenanbieters für SAP Verbindungszeichenfolge. Weitere Informationen zum Verbindungszeichenfolge finden Sie unter Informationen zu Datenanbietertypen für die SAP-Verbindungszeichenfolge.
Öffnen Sie eine Verbindung mit dem SAP-System, indem Sie Open für SAPConnection aufrufen.
Erstellen Sie ein SAPCommand-Objekt aus sapConnection.
Geben Sie den BAPI- oder RFC-Aufruf in der CommandText-Eigenschaft des SAPCommand an. Bei Bedarf können Sie Parameter mithilfe von SAPParameter-Objekten angeben. Weitere Informationen zum Angeben eines BAPI- oder RFC-Aufrufs mithilfe einer EXEC-Anweisung finden Sie unter Syntax für eine EXEC-Anweisung in SAP. Beispiele zum Angeben eines BAPI oder RFC finden Sie unter Beispiele für eine EXEC-Anweisung.
Führen Sie den Befehl aus, um den RFC oder BAPI aufzurufen und die Ergebnisse in einem SAPDataReader abzurufen.
Lesen Sie die Ergebnisse aus dem SAPDataReader.
Wenn Sie mit der Verwendung fertig sind, schließen (oder entsorgen) Sie die SAPConnection und den SAPDataReader.
Der Datenanbieter für SAP macht auch eine SAPClientFactory-Klasse verfügbar, mit der Sie SAPConnection-, SAPCommand- und SAPConnection-Objekte erstellen können. Weitere Informationen zu den ADO.NET Klassen, die durch den Datenanbieter für SAP erweitert werden, finden Sie unter Erweitern ADO.NET Schnittstellen mit dem SAP-Adapter.
Beispiel
Im folgenden Beispiel wird SD_RFC_CUSTOMER_GET aufgerufen, um Kundeninformationen für alle Kunden abzurufen, deren Namen mit "AB" beginnen. Anschließend werden die Kundendatensätze in die Konsole geschrieben.
using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.Data.SAPClient;
namespace SapAdoExec
{
class Program
{
static void Main(string[] args)
{
string connstr = "TYPE=A; ASHOST=YourSAPHost; SYSNR=00; CLIENT=800; LANG=EN; USER=YourUserName; PASSWD=YourPassword;";
using (SAPConnection conn = new SAPConnection(connstr))
{
conn.Open();
using (SAPCommand cmd = conn.CreateCommand())
{
cmd.CommandText = "exec sd_rfc_customer_get @name1='AB*' ";
using (SAPDataReader dr = cmd.ExecuteReader())
{
do
{
int rows = 0;
while (dr.Read())
{
rows++;
StringBuilder b = new StringBuilder();
for (int i = 0; i < dr.FieldCount; i++)
{
b.Append(dr[i].ToString() + " ");
}
Console.WriteLine("row {0}: {1} ", rows, b.ToString());
}
Console.WriteLine("Number of rows:{0}", rows);
} while (dr.NextResult());
}
}
}
}
}
}
Weitere Informationen
Verwenden des .NET Framework-Datenanbieters für mySAP Business Suite
Beispiele