Freigeben über


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 des .NET Framework-Datenanbieters für mySAP Business Suite können Sie RFCs und BAPIs im SAP-System über einen EXEC-Befehl aufrufen.

So rufen Sie RFCs und BAPIs auf dem SAP-System auf

Führen Sie die folgenden Schritte aus, um einen RFC oder BAPI mit dem Datenanbieter für SAP aufzurufen:

So rufen Sie RFC oder BAPI auf

  1. Fügen Sie einen Verweis (und eine using-Anweisung in Ihren Code) auf Microsoft.Data.SAPClient ein.

  2. Erstellen Sie ein SAPConnection-Objekt mithilfe eines Datenanbieters für SAP-Verbindungszeichenfolgen. Weitere Informationen zur Verbindungszeichenfolge finden Sie unter "Über Dataprovidertypen für die SAP-Verbindungszeichenfolge lesen".

  3. Öffnen Sie eine Verbindung zum SAP-System, indem Sie "Open on the SAPConnection" aufrufen.

  4. Erstellen Sie ein SAPCommand-Objekt aus der SAPConnection.

  5. 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, wie Sie eine BAPI oder RFC angeben, finden Sie unter Beispiele für die EXEC-Anweisung.

  6. Führen Sie den Befehl aus, um RFC oder BAPI aufzurufen und die Ergebnisse in einem SAPDataReader abzurufen.

  7. Lesen Sie die Ergebnisse von SAPDataReader.

  8. Wenn Sie mit der Verwendung fertig sind, schließen (oder verwerfen) Sie die SAPConnection und sapDataReader.

    Der Datenanbieter für SAP macht auch eine SAPClientFactory-Klasse verfügbar, die Sie zum Erstellen von SAPConnection-, SAPCommand - und SAPConnection-Objekten verwenden können. Weitere Informationen zu den vom Datenanbieter für SAP erweiterten ADO.NET Klassen 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());  
  
                    }  
                }  
            }  
  
        }  
    }  
}  

Siehe auch

Verwenden des .NET Framework-Datenanbieters für mySAP Business Suite
Beispiele