共用方式為


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。

若要執行此陳述式,您必須建立名為 @varSAPParameter 物件,將它的值設定為 1001,並將它加入對應至查詢的 SAPCommand 物件中。變數的值必須是 1001,因為 RFCRFC_CUSTOMER_GET 的第一個參數對應至 KUNNR。

EXEC RFC_CUSTOMER_GET @var

下列 EXEC 陳述式會執行使用兩個參數的 RFC。第一個參數 (KUNNR) 的值設定為 *,表示所有客戶編號,第二個參數 (NAME1) 設定為變數 @var1 的值。

若要執行此陳述式,您必須建立名為 @var1SAPParameter 物件,指定它的值,並將新的物件加入對應至查詢的 SAPCommand 物件中。SAPParameter 物件的方向必須為 input

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

下列 EXEC 陳述式會執行傳回公司名稱和每個公司相關資訊的 BAPI。

若要執行此陳述式,您必須建立名為 @tableVarSAPParameter,指定它的值,並將 SAPParameter 加入對應至查詢的 SAPCommand 物件中。建立之 SAPParameter 物件的方向必須為 inputoutput

EXEC BAPI_COMPANYCODE_GETLIST @COMPANYCODE_LIST=@tableVar OUTPUT

對 SAP 資料表的 SELECT 查詢

可以針對 Microsoft .NET Provider for SAP 指定命令,以執行對 SAP 資料表之受限制語法的 SELECT 查詢,包括透明、群集和集區資料表。

ms141761.note(zh-tw,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 資料表的資料寫入 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 飛抵由變數值指定的城市之飛行的所有資料行。

若要執行此陳述式,您必須建立名為 @variableSAPParameter,指定它的值,並將 SAPParameter 加入對應至查詢的 SAPCommand 物件中。

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

請參閱

其他資源

設定 Reporting Services 來使用 Microsoft .NET Data Provider for mySAP Business Suite
Integration Services 連接

說明及資訊

取得 SQL Server 2005 協助

變更歷程記錄

版本 歷程記錄

2005 年 12 月 5 日

變更的內容:
  • 移除有關 Reporting Services 的章節。新增<Reporting Services>主題的「請參閱」連結。