Microsoft BizTalk 适配器为 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 包含以下组件:
方案是方案名称。
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)表示为用户身份验证、客户端标识和语言规范所需的参数的名称值集合。 下表描述了这些参数。
资产 | DESCRIPTION |
---|---|
用户 | 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 中的主机信息
SAP 主机信息(hostinfoparams)由 SAP 连接 URI 中的以下元素表示: connectiontype/conndetail1/conndetail2
这些参数指定与 SAP 系统的客户端连接的详细信息。 可以在query_string中指定有关SAP客户端连接的其他详细信息,以及作为侦听器与SAP RFC目标建立连接的详细信息。 SAP 适配器支持 SAP 连接 URI 中的以下客户端连接类型:
答:一种基于应用程序主机的连接,其中连接 URI 指定 SAP 适配器通过应用程序服务器连接到 SAP。
B:一个负载均衡的连接,其中连接 URI 指定一个消息服务器,SAP 适配器通过该服务器连接到 SAP。
D:一个基于目标的连接,其中连接 URI 指定 saprfc.ini 文件中的目标,其中包含 SAP 的连接参数。
下表介绍了如何在 SAP 连接 URI 中指定这些连接。
连接类型 | Conndetail1 | Conndetail2 | DESCRIPTION |
---|---|---|---|
一个 | ASHOST (应用程序服务器主机) | SYSNR (SAP 系统编号) | 指定基于应用程序主机的连接。 对于基于应用程序主机的连接,可以在query_string中指定可选的网关主机和网关服务。 |
B | MSHOST (消息服务器主机) | R3NAME (SAP R3 名称) | 通过消息服务器指定负载均衡连接。 对于负载均衡连接,可以在query_string中指定可选的服务器组和消息服务。 |
D | DEST(包含 saprfc.ini 文件中连接参数的目的地) | -- | 指定基于目标的连接。 SAP 连接参数包含在 saprfc.ini 文件中的指定目标中。 只能在目标中指定 A 类型连接和 B 类型连接。 |
注释
如果在 saprfc.ini 文件中指定连接值,请确保该文件位于访问该文件的 .exe 文件夹中,或位于 SAP 系统要求的标准位置。 有关详细信息,请参阅 SAP 文档。
SAP 连接 URI 中的查询信息
SAP 连接 URI 中的查询信息(query_string)包含可用于指定以下内容的可选参数:
应用程序主机连接的其他详细信息(A)。
用于负载均衡连接的附加连接详情(B)。
侦听器详细信息,用于指定 SAP 系统上的 RFC 目标,SAP 系统可以通过该目标将 RFC、TRFC 和 IDocs 发送到 SAP 适配器。
是否启用 SAP 安全网络通信(SNC)。
调试配置的详细说明。
查询参数是可选的;但是,必须为 SAP 适配器指定侦听器详细信息才能充当 RFC 服务器。
下表描述了查询参数,并指示它们有效的 SAP 连接类型。
价值 | 有效的连接类型 | DESCRIPTION |
---|---|---|
GwHost | 一个 | 指定基于应用程序主机的连接中的可选网关主机的名称。 |
GwServ | 一个 | 指定应用程序基于主机的连接中的可选网关服务的名称。 |
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 属性
使用“Consume Adapter Service BizTalk 项目外接程序”或“Add Adapter Service Reference 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 服务器 | 程序标识 | 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 属性 ”选项卡中指定它们 as-is,即不使用任何转义字符。 如果直接在 “配置 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 适配器配合使用。