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。
您可以在 Integration Services 提供的「SQL Server 匯入和匯出精靈」、「指令碼」工作、DataReader 來源以及指令碼轉換中使用 Microsoft .NET Data Provider for mySAP Business Suite,並且在 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 的相同電腦上。
- 兩個自訂「遠端函數呼叫 (RFC)」必須安裝在 SAP 伺服器上。RFC 會先安裝在與 SAP DLL 相同的電腦上,然後再由「SAP 管理員」將其傳輸至 SAP 伺服器。
若要了解有關安裝 Microsoft .NET Data Provider for mySAP Business Suite 的詳細資訊,請參閱從 https://msdn.microsoft.com/downloads/ 下載提供者時所下載的讀我檔案。
功能
Microsoft .NET Provider for SAP 支援兩種類型的命令:執行 RFC/BAPI 和對 SAP 資料表的 SELECT 查詢。
執行 RFC/BAPI
可以針對 Microsoft .NET Provider for SAP 指定命令,以執行「遠端函數呼叫」(RFC),或執行對「SAP 商務應用程式發展介面」(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 陳述式會執行有一個輸入參數的 RFC。參數會指定名稱和值。
EXEC RFC_CUSTOMER_GET @NAME1='Contoso'
下列 EXEC 陳述式會執行具有輸入參數的 RFC。未指定名稱,只使用值。
EXEC RFC_CUSTOMER_GET '1001'
下列 EXEC 陳述式會執行具有於變數中指定之輸入參數的 RFC。
若要執行此陳述式,您必須建立名為 @var 的 SAPParameter 物件,將它的值設定為 1001,並將它加入對應至查詢的 SAPCommand 物件中。變數的值必須是 1001,因為 RFCRFC_CUSTOMER_GET 的第一個參數對應至 KUNNR。
EXEC RFC_CUSTOMER_GET @var
下列 EXEC 陳述式會執行使用兩個參數的 RFC。第一個參數 (KUNNR) 的值設定為 *,表示所有客戶編號,第二個參數 (NAME1) 設定為變數 @var1 的值。
若要執行此陳述式,您必須建立名為 @var1 的 SAPParameter 物件,指定它的值,並將新的物件加入對應至查詢的 SAPCommand 物件中。SAPParameter 物件的方向必須為 input。
RFC_CUSTOMER_GET @KUNNR='*',@NAME1=@var1
下列 EXEC 陳述式會執行傳回公司名稱和每個公司相關資訊的 BAPI。
若要執行此陳述式,您必須建立名為 @tableVar 的 SAPParameter,指定它的值,並將 SAPParameter 加入對應至查詢的 SAPCommand 物件中。建立之 SAPParameter 物件的方向必須為 inputoutput。
EXEC BAPI_COMPANYCODE_GETLIST @COMPANYCODE_LIST=@tableVar OUTPUT
對 SAP 資料表的 SELECT 查詢
可以針對 Microsoft .NET Provider for SAP 指定命令,以執行對 SAP 資料表之受限制語法的 SELECT 查詢,包括透明、群集和集區資料表。
![]() |
---|
查詢語法不是標準 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 |
|
OR |
|
NOT |
|
() |
|
BETWEEN |
|
LIKE |
|
TOP |
|
= |
|
!= |
|
> |
|
>= |
|
!> |
|
< |
|
<= |
|
!< |
範例
下列範例示範 SELECT 陳述式的語法。
下列 SELECT 陳述式會傳回 SPFLI 資料表中的所有資料行。
SELECT * FROM SPFLI
下列 SELECT 陳述式會將來自 SPFLI 資料表的資料寫入 flight.txt 檔案 (位於 SAPSERVER 電腦上的 Extracts 資料夾中)。
SELECT * INTO FILE '\\SAPServer\Extracts\flight.txt' FROM SPFLI
下列 SELECT 陳述式會傳回 SPFLI 資料表中從 New York 飛抵 San Francisco 之飛行的所有資料行。
SELECT* FROM SPFLI WHERE cityfrom='NEW YORK’ AND cityto=’SAN FRANCISCO’
下列 SELECT 陳述式會傳回 SPFLI 資料表中從 New York 起飛之班機的所有資料行,其識別碼在 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 資料表中從 New York 飛抵由變數值指定的城市之飛行的所有資料行。
若要執行此陳述式,您必須建立名為 @variable 的 SAPParameter,指定它的值,並將 SAPParameter 加入對應至查詢的 SAPCommand 物件中。
SELECT * FROM SPFLI WHERE cityfrom='NEW YORK' AND cityto=@variable
請參閱
其他資源
設定 Reporting Services 來使用 Microsoft .NET Data Provider for mySAP Business Suite
Integration Services 連接
說明及資訊
變更歷程記錄
版本 | 歷程記錄 |
---|---|
2005 年 12 月 5 日 |
|