次の方法で共有


SAP の EXEC コマンドを使用して RFC と BAPI を呼び出す

.NET Framework Data Provider for mySAP Business Suite は、SAP システムを ADO.NET データ ソースとして公開します。 .NET Framework data Provider for mySAP Business Suite を使用すると、EXEC コマンドを使用して SAP システムで RFC と BAPI を呼び出すことができます。

SAP システムで RFC と BAPI を呼び出す方法

DATA Provider for SAP を使用して RFC または BAPI を呼び出すには、次の手順を実行します。

RFC または BAPI を呼び出すには

  1. Microsoft.Data.SAPClient への参照 (およびコード内の using ステートメント) を含めます。

  2. DATA Provider for SAP 接続文字列を使用して SAPConnection オブジェクトを作成します。 接続文字列の詳細については、「SAP 接続文字列のデータ プロバイダー型の読み取り」を参照してください。

  3. SAPConnection で Open を呼び出して、SAP システムへの接続をきます。

  4. SAPConnection から SAPCommand オブジェクトを作成します

  5. SAPCommandCommandText プロパティで BAPI または RFC 呼び出しを指定します。 必要に応じて、 SAPParameter オブジェクトを使用してパラメーターを指定できます。 EXEC ステートメントを使用して BAPI または RFC 呼び出しを指定する方法の詳細については、「 SAP での EXEC ステートメントの構文」を参照してください。 BAPI または RFC を指定する方法の例については、「 EXEC ステートメントの例」を参照してください。

  6. コマンドを実行して RFC または BAPI を呼び出し、 SAPDataReader で結果を取得します。

  7. SAPDataReader から結果を読み取ります。

  8. 使用が完了したら、 SAPConnectionSAPDataReader を閉じる (または破棄する) 必要があります。

    SAP 用データ プロバイダーでは、 SAPClientFactory クラスも公開されます。このクラスを使用して、 SAPConnectionSAPCommandSAPConnection オブジェクトを作成できます。 Data Provider for SAP によって拡張される ADO.NET クラスの詳細については、「SAP アダプターを使用した ADO.NET インターフェイスの拡張」を参照してください。

次の例では、SD_RFC_CUSTOMER_GETを呼び出して、名前が "AB" で始まるすべての顧客の顧客情報を取得します。 次に、顧客レコードをコンソールに書き込みます。

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());  
  
                    }  
                }  
            }  
  
        }  
    }  
}  

参照

.NET Framework Data Provider for mySAP Business Suite の使用
サンプル