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 的早期版本。
可以在 SQL Server 导入和导出向导、脚本任务、DataReader 源、Integration Services 所提供的脚本转换以及 Reporting Services 中的数据处理扩展插件中使用 Microsoft .NET Data Provider for mySAP Business Suite。
SQL Server 2005 中不包括 Microsoft .NET Data Provider for mySAP Business Suite,您必须从 https://msdn.microsoft.com/downloads/ 处下载。
必备组件
必须先安装以下资源,然后才能使用 Microsoft .NET Data Provider for mySAP Business Suite:
- SAP DLL librfc32.dll。通过运行可执行文件 SAPgui 来安装 SAP DLL。SAP DLL 必须与 Microsoft .NET Data Provider for mySAP Business Suite 和 Integration Services 或 Reporting Services 安装在同一台计算机上。
- 必须在 SAP 服务器上安装两个自定义远程函数调用 (RFC)。先将 RFC 安装到 SAP DLL 所在的计算机上,然后由 SAP 管理员将它们传输到 SAP 服务器。
若要了解有关安装 Microsoft .NET Data Provider for mySAP Business Suite 的详细信息,请参阅从 https://msdn.microsoft.com/downloads/ 下载访问接口时下载的自述文件。
功能
The 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 表中航班为从纽约飞往旧金山的所有列。
SELECT* FROM SPFLI WHERE cityfrom='NEW YORK?AND cityto=’SAN FRANCISCO?
以下 SELECT 将语句返回 SPFLI 表中航班为从纽约起飞,并且标识符介于 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,指定其值,然后将该 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 日 |
|