Microsoft .NET Data Provider for mySAP Business Suite

更新 : 2006 年 4 月 14 日

SQL Server 2005 では、Microsoft .NET Data Provider for mySAP Business Suite を使用した SAP データへのアクセスがサポートされています。このプロバイダを使用すると、mySAP Business Suite ソリューションに接続し、サーバー上でコマンドを実行できるパッケージを作成できます。また、SAP サーバーに対する Reporting Services レポートも作成できます。Microsoft .NET Data Provider for mySAP Business Suite は、SAP R/3 バージョン 4.6C 以降でテストされています。SAP R/3 の以前のバージョンはサポートされていません。

Microsoft .NET Data Provider for mySAP Business Suite は、Integration Services で提供される SQL Server インポートおよびエクスポート ウィザード、スクリプト タスク、DataReader ソース、スクリプト変換、および Reporting Services のデータ処理拡張機能で使用できます。

Microsoft .NET Data Provider for mySAP Business Suite は SQL Server 2005 に含まれていないため、https://msdn.microsoft.com/downloads/ からダウンロードする必要があります。

必要条件

Microsoft .NET Data Provider for mySAP Business Suite を使用するには、次をインストールする必要があります。

  • SAP DLL (librfc32.dll)。SAP DLL は、実行可能ファイル SAPgui を実行することでインストールされます。SAP DLL は、Microsoft .NET Data Provider for mySAP Business Suite および Integration Services または Reporting Services と同じコンピュータにインストールする必要があります。
  • 2 つのカスタム リモート関数呼び出し (RFC)。SAP サーバーにインストールする必要があります。RFC はまず SAP DLL と同じコンピュータにインストールされ、SAP Admin によって SAP サーバーに転送されます。

Microsoft .NET Data Provider for mySAP Business Suite のインストールの詳細については、https://msdn.microsoft.com/downloads/ からプロバイダをダウンロードしたときに入手できる Readme ファイルを参照してください。

機能

Microsoft .NET Data Provider for SAP では、"RFC/BAPI の実行" および "SAP テーブルに対する SELECT クエリ" の 2 種類がコマンドとしてサポートされています。

RFC/BAPI の実行

Microsoft .NET Data Provider for SAP に対してコマンドを指定し、リモート関数呼び出し (RFC) または SAP Business Application Programming Interface (BAPI) に対する呼び出しを実行できます。

構文

EXEC コマンドでは、次の構文がサポートされています。

EXEC rfc_name
[{value | @variable [OUTPUT]}][,...n]
[@parameter = {value | @variable [OUTPUT]}][,...n] [;]

次の表に、構文要素の一覧を示します。

要素 説明

rfc_name

関数の名前を指定します。この名前には RFC または BAPI のいずれかを設定できます。

@parameter

関数のインターフェイス定義のパラメータの名前を指定します。

Value

パラメータの値を指定します。値には、文字列、整数、または XML 定数のいずれかを設定できます。

@variable

パラメータ値を含む変数を指定します。

OUTPUT

RFC パラメータが OUTPUT または INPUT/OUTPUT のどちらであるかを示します。

次の例は、EXEC ステートメントの構文を示しています。

次の EXEC ステートメントは、入力パラメータを持たない BAPI を実行します。

EXEC BAPI_COMPANYCODE_GETLIST

次の EXEC ステートメントは、1 つの入力パラメータを持つ RFC を実行します。パラメータでは名前と値が指定されています。

EXEC RFC_CUSTOMER_GET @NAME1='Contoso'

次の EXEC ステートメントは、1 つの入力パラメータを持つ RFC を実行します。名前は指定されず、値のみが使用されます。

EXEC RFC_CUSTOMER_GET '1001'

次の EXEC ステートメントは、変数で指定された 1 つの入力パラメータを持つ RFC を実行します。

このステートメントを実行するには、@var という名前の SAPParameter オブジェクトを作成し、その値を 1001 に設定して、クエリに対応する SAPCommand オブジェクトに、作成したオブジェクトを追加する必要があります。RFCRFC_CUSTOMER_GET の最初のパラメータが KUNNR に対応しているため、変数の値は 1001 である必要があります。

EXEC RFC_CUSTOMER_GET @var

次の EXEC ステートメントは、2 つのパラメータを使用する RFC を実行します。最初のパラメータ KUNNR の値は、すべての顧客番号を示す * に設定され、2 番目のパラメータ NAME1 は変数 @var1 の値に設定されています。

このステートメントを実行するには、@var1 という名前の SAPParameter オブジェクトを作成し、その値を指定して、クエリに対応する SAPCommand オブジェクトに、作成したオブジェクトを追加する必要があります。SAPParameter オブジェクトの方向は input である必要があります。

RFC_CUSTOMER_GET @KUNNR='*',@NAME1=@var1

次の EXEC ステートメントは、会社名と各会社に関する情報を返す BAPI を実行します。

このステートメントを実行するには、@tableVar という名前の SAPParameter を作成し、その値を指定して、クエリに対応する SAPCommand オブジェクトに、SAPParameter を追加する必要があります。作成した SAPParameter オブジェクトの方向は inputoutput である必要があります。

EXEC BAPI_COMPANYCODE_GETLIST @COMPANYCODE_LIST=@tableVar OUTPUT

SAP テーブルに対する SELECT クエリ

Microsoft .NET Provider for SAP に対してコマンドを指定して、SAP テーブルに対する SELECT クエリを限定的な構文で実行できます。SAP テーブルには、透過テーブル、クラスタ テーブル、およびプール テーブルが含まれます。

ms141761.note(ja-jp,SQL.90).gifメモ :
クエリ構文は、標準の Transact-SQL ではありません。限定された構文であり、単一のテーブルのみに適用できます。

構文

SELECT コマンドでサポートされる構文は次のとおりです。

SELECT [TOP n] {ColumnName [AS Alias] | TableName.* | *}[1,..n]
[INTO FILE FileName [DELIMITED]]
FROM TableName [AS Alias]
[WHERE search_conditions] [OPTION 'no_conversion'] [;]

次の表に、SELECT 構文でサポートされる句の一覧を示します。

説明

SELECT select_list

結果セットの列。select_list は、複数の式をコンマ区切りで指定します。列名は完全修飾名である場合があります。各列には別名を割り当てることができます。ワイルドカード文字 * は、すべての列を示します。

INTO FILE FileName

クエリでフラット ファイル モードを使用する場合に、抽出されたデータが書き込まれるファイルの名前を指定します。

FROM TableName

データを取得するテーブル。

WHERE search_conditions

ソース テーブル内の各行が SELECT で選択される条件を定義するフィルタ。

OPTION

SAP テーブルから抽出されたデータに適用するマクロ。このオプションが 'no_conversion' に設定されている場合、マクロは適用されません。

SELECT 句の詳細については、「SELECT ステートメントの構成要素」を参照してください。

次の表に、SELECT 構文でサポートされる論理演算子および比較演算子の一覧を示します。

演算子 Transact-SQL のトピック

AND

AND (Transact-SQL)

OR

OR (Transact-SQL)

NOT

NOT (Transact-SQL)

()

演算子の優先順位 (Transact-SQL)

BETWEEN

BETWEEN (Transact-SQL)

LIKE

LIKE (Transact-SQL)

TOP

TOP (Transact-SQL)

=

= (等しい) (Transact-SQL)

!=

!= (等しくない) (Transact-SQL)

>

!> (以下) (Transact-SQL)

>=

>= (以上) (Transact-SQL)

!>

!> (以下) (Transact-SQL)

<

< (より小さい) (Transact-SQL)

<=

<= (以下) (Transact-SQL)

!<

!<(以上) (Transact-SQL)

次の例は、SELECT ステートメントの構文を示しています。

次の SELECT ステートメントは、SPFLI テーブル内の列をすべて返します。

SELECT * FROM SPFLI

次の SELECT ステートメントは、SPFLI テーブルのデータを、SAPSERVER コンピュータの Extracts フォルダにあるファイル flight.txt に書き込みます。

SELECT * INTO FILE '\\SAPServer\Extracts\flight.txt' FROM SPFLI

次の SELECT ステートメントは、SPFLI テーブルに含まれる、ニュー ヨークからサン フランシスコへのフライトに関する列をすべて返します。

SELECT* FROM SPFLI WHERE cityfrom='NEW YORK’ AND cityto=’SAN FRANCISCO’

次の SELECT ステートメントは、SPFLI テーブルに含まれる、ニュー ヨークからのフライトに関する列のうち、ID が 1000 ~ 5000 の列をすべて返します。

SELECT * FROM SPFLI where cityfrom=’NEW YORK' AND (connid BETWEEN 1000 and 5000)

次のステートメントを使用すると、同じ結果セットを返すことができます。

SELECT * FROM SPFLI where cityfrom='NEW YORK' AND (connid>1000 AND connid<5000)

次の SELECT ステートメントは、SPFLI テーブルに含まれる、ニュー ヨークから変数の値で指定された都市へのフライトに関する列をすべて返します。

このステートメントを実行するには、@variable という名前の SAPParameter を作成し、その値を指定して、クエリに対応する SAPCommand オブジェクトに SAPParameter を追加する必要があります。

SELECT * FROM SPFLI WHERE cityfrom='NEW YORK' AND cityto=@variable

参照

その他の技術情報

Microsoft .NET Data Provider for mySAP Business Suite を使用するための Reporting Services の構成
Integration Services の接続

ヘルプおよび情報

SQL Server 2005 の参考資料の入手

変更履歴

リリース 履歴

2005 年 12 月 5 日

変更内容 :
  • Reporting Services に関するセクションを削除しました。Reporting Services トピックへの関連項目のリンクを追加しました。