创建 SAP 系统连接 URI
Microsoft BizTalk Adapter for mySAP Business Suite 连接 URI 包含适配器用于建立与 SAP 系统连接的属性。
重要
默认情况下,SAP 客户端库 (librfc32u.dll) 最多支持与 SAP 系统建立 100 个连接。 如果超过此连接数,将引发异常。 因此,应设置 MaxConnectionsPerSystem 绑定属性来限制 SAP 适配器将在 SAP 系统上尝试打开的连接数;或设置 CPIC_MAX_CONV 环境变量以增加 SAP 客户端库支持的连接数。 如果更改CPIC_MAX_CONV,则必须重新启动计算机才能使更改生效。 有关 SAP 适配器绑定属性的详细信息,请参阅 了解 mySAP Business Suite 绑定属性的 BizTalk 适配器。
本主题提供有关 SAP 连接 URI 的信息,还提供了指向其他主题的链接,这些主题介绍如何在不同的编程方案中指定连接 URI。
SAP 适配器的连接 URI
典型的 WCF 终结点地址 URI 表示如下:
scheme://userinfoparams@hostinfoparams?query_string
终结点地址 URI 包含以下组件:
scheme 是方案名称。
userinfoparams 是终结点进行用户身份验证所需的参数的名称值集合。
hostinfoparams 是建立与主机的连接所需的信息;例如,路径。
query_string是由问号 (?) 分隔的参数的可选名称值集合。
SAP 适配器用于 SAP 系统的终结点地址 URI 是使用 SAP 连接 URI 指定的。 SAP 适配器实现此连接 URI,如下所示:
sap://user=[USER_NAME];passwd=[PASSWORD];Client=[CLIENT];lang=[LANGUAGE];[UseSnc]=[True|False]@connectiontype/conndetail1/conndetail2?GwHost=[GWHOST]?GwServ=[GWSERV]?MsServ=[MSSERV]?Group=[GROUP]?ListenerDest=[LISTENERDEST]?ListenerGwHost=[LISTENERGWHOST]?ListenerGwServ=[LISTENERGWSERV]?ListenerProgramId=[LISTENERPROGRAMID]?RfcSdkTrace=[true/false]?AbapDebug=[true/false]
以下部分介绍了连接 URI 的组件。
SAP 连接 URI 方案
SAP 连接 URI 的方案为“sap”。
SAP 连接 URI 中的用户信息
SAP 连接 URI 中 (userinfoparams) 的用户信息表示为用户身份验证、客户端标识和语言规范所需的参数的名称值集合。 下表介绍了这些参数。
属性 | 说明 |
---|---|
用户 | SAP 系统上的用户名;此值区分大小写。 必须将 AcceptCredentialsInUri 绑定属性设置为 true ,才能在连接 URI 中指定用户名和密码。 注意: SAP 适配器会在 SAP 系统上打开连接时保留为用户名输入的值大小写。 |
Passwd | SAP 系统上用户的密码;此值区分大小写。 必须将 AcceptCredentialsInUri 绑定属性设置为 true ,才能在连接 URI 中指定用户名和密码。 注意: SAP 适配器会在 SAP 系统上打开连接时保留为密码输入的值大小写。 |
客户端 | SAP 系统客户端 ID。 |
语言 | 语言: |
UseSnc | 可选参数,指定是否启用 SAP 安全网络通信 (SNC) 。 该值可以是 True 或 False;如果为 True,则启用 SNC。 默认值为 False 启用 SNC 时,还必须设置 SncPartnerName 和 SncLibrary 绑定属性。 有关详细信息,请参阅 了解 mySAP Business Suite 绑定属性的 BizTalk 适配器。 如果启用了 SNC 并且连接 URI 包含凭据,适配器将引发异常。 注意: UseSnc 连接参数仅适用于连接类型 A 和 B。本主题稍后将详细介绍不同的连接类型及其重要性。 |
注意
必须在 SAP 连接 URI 中指定客户端和语言。
SAP 适配器显示 AcceptCredentialsinUri 绑定属性,以便你可以控制是否可以在连接 URI 中指定 SAP 系统凭据。 这是因为凭据在连接 URI 中以纯文本形式表示,这会带来固有的安全风险。 默认情况下, AcceptCredentialsInUri 绑定属性为 false,如果在连接 URI 中指定了凭据,适配器将引发异常。
在某些情况下,需要在连接 URI 中指定凭据;例如,在使用 WCF 服务模型或 WCF 通道模型时从 SAP 系统接收入站操作。 对于这些方案,可以将 AcceptCredentialsInUri 属性设置为 true。 但是,最佳做法是避免直接在连接 URI 中提供凭据。 有关如何更安全地为 SAP 连接提供凭据的详细信息,请参阅 保护 SAP 应用程序。
重要
如果通过将 UseSnc 参数设置为 true 来启用安全网络通信 (SNC) ,适配器将引发异常。
SAP 连接 URI 中的主机信息
) (hostinfoparams 的 SAP 主机信息由 SAP 连接 URI 中的以下元素表示: connectiontype/conndetail1/conndetail2
。 这些参数指定有关客户端与 SAP 系统连接的详细信息。 可以在query_string中指定有关 SAP 客户端连接的其他详细信息以及建立作为 SAP RFC 目标的侦听器连接的详细信息。 SAP 适配器支持 SAP 连接 URI 中的以下客户端连接类型:
答:基于应用程序主机的连接,其中连接 URI 指定 SAP 适配器连接到 SAP 的应用程序服务器。
B:负载均衡连接,其中连接 URI 指定消息服务器,SAP 适配器通过该消息服务器连接到 SAP。
D:基于目标的连接,其中连接 URI 指定包含 SAP 连接参数的 saprfc.ini 文件中的目标。
下表介绍了如何在 SAP 连接 URI 中指定这些连接。
连接类型 | Conndetail1 | Conndetail2 | 说明 |
---|---|---|---|
A | ASHOST (应用程序服务器主机) | SYSNR (SAP 系统编号) | 指定基于应用程序主机的连接。 对于基于应用程序主机的连接,可以在query_string中指定可选的网关主机和网关服务。 |
B | MSHOST (消息服务器主机) | R3NAME (SAP R3 名称) | 指定通过消息服务器的负载均衡连接。 对于负载均衡连接,可以在query_string中指定可选的服务器组和消息服务。 |
D | 包含 saprfc.ini 文件) 中的连接参数的 DEST (目标 | -- | 指定基于目标的连接。 SAP 连接参数包含在 saprfc.ini 文件的指定目标中。 在目标中只能指定 A 类型和 B 类型连接。 |
注意
如果在 saprfc.ini 文件中指定连接值,请确保该文件与访问该文件 .exe 位于同一文件夹中,或者位于 SAP 系统所需的标准位置。 有关详细信息,请参阅 SAP 文档。
SAP 连接 URI 中的查询信息
SAP 连接 URI 中 (query_string) 查询信息包含可用于指定以下内容的可选参数:
基于应用程序主机的连接的其他连接详细信息 (A) 。
有关负载均衡连接的其他连接详细信息 (B) 。
侦听器详细信息,用于指定 SAP 系统上的 RFC 目标,SAP 系统可以通过该目标将 RFC、RFC 和 IDocs 发送到 SAP 适配器。
是否启用 SAP 安全网络通信 (SNC) 。
指定调试配置的详细信息。
查询参数是可选的;但是,必须指定侦听器详细信息,SAP 适配器才能充当 RFC 服务器。
下表描述了查询参数,并指示它们对其有效的 SAP 连接类型。
值 | 有效的连接类型 | 说明 |
---|---|---|
GwHost | A | 指定基于应用程序主机的连接中可选网关主机的名称。 |
GwServ | A | 指定基于主机的应用程序连接中可选网关服务的名称。 |
MsServ | B | 指定负载均衡连接中可选消息服务的名称。 |
组 | B | 指定负载均衡连接中的一组可选应用程序服务器。 |
ListenerDest | (R) | 指定 rfc 服务器连接中 saprfc.ini 文件中的可选目标。 目标必须指定 R 类型连接。 |
ListenerGwHost | (R) | 指定 rfc 服务器连接的网关主机。 此参数是可选的;但是,如果需要 rfc 服务器连接且未指定 LISTENERDEST,或者目标在 saprfc.ini 文件中未指定网关主机,则 LISTENERGWHOST 必须包含有效的网关主机。 |
ListenerGwServ | (R) | 指定 rfc 服务器连接的网关服务。 此参数是可选的;但是,如果需要 rfc 服务器连接且未指定 LISTENERDEST,或者目标在 saprfc.ini 文件中未指定网关服务,则 LISTENERGWSERV 必须包含有效的网关服务。 |
ListenerProgramId | (R) | 指定 rfc 服务器连接的程序 ID。 此参数是可选的;但是,如果需要 rfc 服务器连接且未指定 LISTENERDEST,或者目标在 saprfc.ini 文件中未指定网关服务,则 LISTENERPROGRAMID 必须包含有效的网关服务。 |
RfcSdkTrace | 全部 | 指定是否启用 RFC 库跟踪的可选参数。 该值可以是 True 或 False;如果为 True,则启用 RFC 库跟踪。 默认值为 False。 RfcSdkTrace 参数启用的跟踪级别取决于环境变量RFC_TRACE。 - 如果RFC_TRACE不存在,或者设置为 0,则启用最低跟踪级别。 - 可以将RFC_TRACE设置为 1 或 2 以提高跟踪级别。 |
AbapDebug | 全部 | 指定是否从 Visual Studio 启用 ABAP 调试的可选参数。 该值可以是 True 或 False;如果为 True,则启用 ABAP 调试。 默认值为 False。 如果 AbapDebug 为 True,则会打开 SAP GUI。 |
SAPROUTER | 全部 | SAProuter 的可选参数,当它用于通过防火墙进行连接时。 此参数是采用以下格式的主机名和服务名称/端口号的列表:/H/hostname/S/portnumber。 |
查询字符串中的参数是 SAP 参数,其值由 SAP 定义。 有关这些参数的详细信息,请参阅 SAP 文档。
下面显示了基于应用程序主机的连接的示例连接 URI:
sap://Client=800;lang=EN@A/YourSAPHOST/00
“配置适配器”对话框中的连接 URI 属性
使用“使用适配器服务 BizTalk 项目加载项”或“添加适配器服务参考 Visual Studio”插件连接到 SAP 系统时,可从“配置适配器”对话框中的“URI 属性”选项卡设置连接 URI 参数。 下表显示了 URI 属性在 URI 属性 工作表中的显示方式。 (URI 属性按组在 URI 属性工作表中显示的顺序列出。)
类别 | URI 属性 | URI 部件 |
---|---|---|
应用程序服务 | 应用程序服务器主机 | Conndetail1 (主机信息连接类型 A) |
应用程序服务 | 网关主机 | GwHost (查询字符串) |
应用程序服务 | 网关服务 | GwServ (查询字符串) |
应用程序服务 | 系统编号 | Conndetail2 (主机信息连接类型 A) |
目标 | 目标名称 | Conndetail1 (主机信息连接类型 D) |
诊断 | RFC 跟踪 | RfcSdkTrace (查询字符串) |
诊断 | ABAP 调试 | AbapDebug (查询字符串) |
登录信息 | 客户端 | 客户端 (userinfoparams) |
登录信息 | 语言 | 语言 (userinfoparams) |
消息服务器 | 应用程序服务器组名称 | 组 (查询字符串) |
消息服务器 | 消息服务器主机 | Conndetail1 (主机信息连接类型 B) |
消息服务器 | 消息服务器服务 | MsServ (查询字符串) |
消息服务器 | R/3 系统名称 | Conndetail2 (主机信息连接类型 B) |
杂项 | 连接类型 | (主机信息的连接类型:A、B 或 D) |
杂项 | SAP 路由器 | SAPROUTER (查询字符串) |
RFC 服务器 | 目标名称 | ListenerDest (查询字符串) |
RFC 服务器 | 网关主机 | ListenerGwHost (查询字符串) |
RFC 服务器 | 网关服务 | ListenerGwServ (查询字符串) |
RFC 服务器 | 节目 ID | listenerProgramId (查询字符串) |
SNC | UseSnc | UseSnc (用户信息) |
如何为 RFC 服务器连接指定连接 URI。
若要创建终结点地址,SAP 适配器可通过该地址充当 RFC 服务器,必须指定 SAP 程序 ID、SAP 网关主机和与 SAP 系统上的 RFC 目标对应的 SAP 网关服务。 有关如何在 SAP 上设置 RFC 目标的信息,请参阅 创建 RFC、RFC 目标并从 SAP 发送 RFC。
可以通过以下两种方式之一在连接 URI 中指定程序 ID、网关主机和网关服务:
通过设置 ListenerGwHost、ListenerGwServ 和 ListenerProgramId 查询参数
通过将 ListenerDest 查询参数设置为指定 R 类型连接的 saprfc.ini 文件中的目标。
注意
如果在 saprfc.ini 文件中指定连接值,请确保该文件与访问该文件的 .exe 位于同一位置,或者驻留在 SAP 系统所需的标准位置。 有关详细信息,请参阅 SAP 文档。
若要为 RFC 服务器连接指定连接 URI,请使用查询字符串中指定的 RFC 目标指定常规客户端连接,如以下示例所示:
sap://Client=800;lang=EN@A/YourSAPHOST/00?ListenerGwHost=YourSAPHOST&ListenerGwServ=SAPGW00&ListenerProgramId=MyProgramId
SAP 适配器使用连接 URI 的 userinfoparams 和 hostinfoparams 部分中包含的信息从 SAP 系统检索元数据,并使用查询字符串中的侦听器参数提供的信息将自身注册为 SAP RFC 目标的侦听器。
在连接 URI 中使用保留字符
SAP 适配器不支持为任何参数值指定具有特殊字符的连接 URI。 如果连接参数值包含特殊字符,请确保执行以下操作之一:
如果使用“添加适配器服务引用插件”或“使用适配器服务加载项”在 Visual Studio 中指定 URI,则必须在“ URI 属性 ”选项卡中按原样指定这些 URI,即不使用任何转义字符。 如果直接在 “配置 URI”字段中指定 URI,并且连接参数包含保留字符,则必须使用正确的转义字符指定连接参数。
如果在 BizTalk Server 管理控制台中创建发送或接收端口时指定 URI,并且连接参数包含保留字符,则必须使用正确的转义字符指定连接参数。
使用连接 URI 连接到 SAP 系统
有关如何在以下情况下与 SAP 系统建立连接的信息:
使用使用适配器服务 BizTalk 项目外接程序或添加适配器服务引用 Visual Studio 插件,请参阅 在 Visual Studio 中连接到 SAP 系统。
在BizTalk Server解决方案中配置发送端口或接收端口 (位置) ,请参阅手动配置到 SAP 适配器的物理端口绑定。
在编程解决方案中使用 WCF 通道模型,请参阅 使用 SAP 创建通道。
在编程解决方案中使用 WCF 服务模型,请参阅 为 SAP 系统配置客户端绑定。
使用 WCF ServiceModel 元数据实用工具 (svcutil.exe) ,请参阅 将 ServiceModel 元数据实用工具与适用于 mySAP Business Suite 的 BizTalk 适配器配合使用。