104.3. 配置
SAP 组件维护三个映射,以存储目标数据、服务器数据和存储库数据。目标数据存储和 服务器数据存储在特殊的配置 对象 SapConnectionConfiguration 上配置,该对象自动注入到 SAP 组件(在 Blueprint XML 配置或 Spring XML 配置文件上下文中)。存储库数据存储 必须直接在相关的 SAP 组件上配置。
104.3.1. 配置概述 复制链接链接已复制到粘贴板!
SAP 组件维护三个映射,以存储目标数据、服务器数据和存储库数据。组件的属性 destinationDataStore 存储目的地名称、属性 serverDataStore、按服务器名称密钥的服务器数据以及 repositoryDataStore,存储以存储库名称密钥的存储库数据。这些配置必须在初始化过程中传递给组件。
示例
以下示例演示了如何在 Blueprint XML 文件中配置示例目标数据存储和示例服务器数据存储。sap-configuration bean (类型为 SapConnectionConfiguration)将自动注入到此 XML 文件中使用的任何 SAP 组件中。
104.3.2. 目标配置 复制链接链接已复制到粘贴板!
目的地的配置在 SAP 组件的 destinationDataStore 属性中维护。此映射中的每个条目都配置到 SAP 实例的不同的出站连接。每个条目的密钥是出站连接的名称,用于目标端点 URI 的 destinationName 组件,如 URI 格式部分中所述。
每个条目的值是一个目标数据配置对象 - org.fusesource.camel.component.sap.model.rfc.impl.DestinationDataImpl - 指定出站 SAP 连接的配置。
目标配置示例
以下蓝图 XML 代码演示了如何使用名称 quickstartDest 配置示例目的地。
例如,在配置目的地后,如前面的 Blueprint XML 文件所示,您可以使用以下 URI 在 quickstartDest 目的地上调用 BAPI_FLCUST_GETLIST 远程函数调用:
sap-srfc-destination:quickstartDest:BAPI_FLCUST_GETLIST
sap-srfc-destination:quickstartDest:BAPI_FLCUST_GETLIST
104.3.2.1. tRFC 和 qRFC 目的地的拦截器 复制链接链接已复制到粘贴板!
前面的目标配置示例显示 CurrentProcessorDefinitionInterceptStrategy 对象的实例化。此对象在 Camel 运行时中安装拦截器,它允许 Camel SAP 组件在处理 RFC 事务时跟踪其位置。
这个拦截器对于事务的 RFC 目标端点(如 sap-trfc-destination 和 sap-qrfc-destination)非常重要,且必须在 Camel 运行时中安装,以便对出站事务 RFC 通信进行正确管理。如果运行时找不到策略,则 Destination RFC Transaction Handlers 会在 Camel 日志中发出警告。在这种情况下,Camel 运行时需要重新置备并重启来正确地管理出站事务 RFC 通信。
104.3.2.2. 登录和验证选项 复制链接链接已复制到粘贴板!
下表列出了在 SAP 目标数据存储中配置目的地的日志 和验证 选项:
| Name | 默认值 | 描述 |
|
| SAP 客户端,在参数上强制记录. | |
|
| 在 user 上,登录基于密码的身份验证的参数。 | |
|
| 可以使用登录用户别名,而不是登录 user。 | |
|
| 用于登录到 ABAP AS 的用户身份。JCo 运行时使用 SSO/assertion ticket、证书、当前用户、或 SNC 环境进行身份验证。如果用户 ID 是强制的,如果没有设置用户或用户别名。此 ID 从不会发送到 SAP 后端,它将被 JCo 运行时在本地使用。 | |
|
| 在 password 上登录,请登录基于密码的身份验证的参数。 | |
|
| 如果未定义,则使用默认的用户语言。 | |
|
| 使用指定的 SAP Cookie Version 2 作为基于 SSO 验证的票据的日志。 | |
|
| 使用指定的 X509 证书进行基于证书的身份验证。 | |
|
| 在第一次调用 1 (启用)前,验证才会生效。只在特殊情况下使用。 | |
|
| 使用可见、隐藏或不使用 SAP GUI | |
|
| 其他 log on 参数,以定义用于转换日志参数的代码页面。只在特殊情况下使用。 | |
|
| 在登录后,目标属性中提供了获取的票据。 | |
|
|
如果设置为 |
104.3.2.3. 连接选项 复制链接链接已复制到粘贴板!
下表列出了在 SAP 目标数据存储中配置目标的 连接选项 :
| Name | 默认值 | 描述 |
|
|
用于连接到 SAP 路由器后面的系统的 SAP 路由器字符串。SAP Router 字符串包含 SAP 路由器链及其端口号,格式为: | |
|
| SAP ABAP 应用服务器的系统数量,对于直接连接是必需的。 | |
|
| SAP ABAP 应用服务器,对于直接连接是必需的。 | |
|
| SAP 消息服务器,用于负载平衡连接的强制属性。 | |
|
|
SAP 消息服务器端口,用于负载平衡连接的可选属性。为了解析服务名称 sapmsXXX,在 | |
|
| 允许指定一个 Concrete 网关,该网关用于建立与应用服务器的连接。如果没有指定,则使用应用服务器上的网关。 | |
|
| 使用 gwhost 时,应设置 gwhost。允许指定该网关上使用的端口。如果没有指定,则使用应用服务器上网关的端口。为了解析服务名称 sapgwXXX,在 etc/services 中由操作系统的网络层执行查询。如果使用端口号而不是符号服务名称,则不会执行查找,且不需要额外的条目。 | |
|
| SAP 系统的系统 ID,这是负载平衡连接的强制属性。 | |
|
| SAP 应用服务器组,用于负载平衡连接的强制属性。 | |
|
|
|
根据 JCo 和您的目标系统之间的网络质量设置这个值,以优化性能。有效值为 |
|
|
|
有效值为 line |
104.3.2.4. 连接池选项 复制链接链接已复制到粘贴板!
下表列出了在 SAP 目标数据存储中配置目标的 连接池 选项:
| Name | 默认值 | 描述 |
|
|
|
可以同时为目标创建的最大活跃出站连接数。值 |
|
|
|
目标保持打开的最大空闲出站连接数。值 |
|
| 以毫秒为单位,目标内部持有的空闲连接可以关闭。 | |
|
| 目标检查已发布的连接过期的时间(以毫秒为单位)。 | |
|
| 如果应用程序已分配最大允许连接数,则等待连接的最大时间(以毫秒为单位)。 |
104.3.2.5. 安全网络连接选项 复制链接链接已复制到粘贴板!
下表列出了在 SAP 目标数据存储中配置目标 的安全网络选项 :
| Name | 默认值 | 描述 |
|
|
安全网络连接(SNC)模式、 | |
|
|
SNC 合作伙伴,例如: | |
|
|
SNC 安全级别: | |
|
| 拥有的 SNC 名称。覆盖环境设置。 | |
|
| 提供 SNC 服务的库的路径。 |
104.3.2.6. 仓库选项 复制链接链接已复制到粘贴板!
下表列出了在 SAP 目标数据存储中配置目标 的存储库 选项:
| Name | 默认值 | 描述 |
|
| 指定用作存储库的目的地。 | |
|
| 如果没有设置存储库目的地,并且设置了此属性,它将用作存储库调用的用户。这可让您使用不同的用户进行存储库查找。 | |
|
| 存储库用户的密码。如果使用了存储库用户,则需要此项。 | |
|
|
(可选) 如果将 SNC 用于此目的地,如果此属性设置为 0,则可以为存储库连接关闭它。 | |
|
|
启用
如果没有设置属性,则目的地最初会进行远程调用来检查 注意: 如果存储库已经初始化(例如,因为它被其他目的地使用),则此属性没有任何效果。通常,此属性与 ABAP 系统相关,所有目的地中应该具有相同的值,指向同一 ABAP 系统。有关后端先决条件,请参阅备注 1456826。 |
104.3.2.7. 跟踪配置选项 复制链接链接已复制到粘贴板!
下表列出了在 SAP 目标数据存储中配置目的地的 trace 配置选项 :
| Name | 默认值 | 描述 |
|
|
启用/禁用 RFC 跟踪( | |
|
|
启用/禁用 CPIC 追踪 |
104.3.3. 服务器配置 复制链接链接已复制到粘贴板!
服务器配置在 SAP 组件的 serverDataStore 属性中维护。此映射中的每个条目都配置与 SAP 实例不同的入站连接。每个条目的密钥是出站连接的名称,用于服务器端点 URI 的 serverName 组件,如 URI 格式部分中所述。
每个条目的值都是 服务器数据配置对象,org.fusesource.camel.component.sap.model.rfc.impl.ServerDataImpl,用于定义入站 SAP 连接的配置。
服务器配置示例
以下蓝图 XML 代码演示了如何使用名称 quickstartServer 创建示例服务器配置。
请注意,本例还如何配置一个目标连接 QuickstartDest,服务器使用它来从远程 SAP 实例检索元数据。此目的地通过 repositoryDestination 选项在服务器数据中配置。如果没有配置这个选项,您必须创建一个本地元数据存储库。
例如,在配置目的地后,如前面的 Blueprint XML 文件所示,您可以使用以下 URI 处理来自调用客户端的 BAPI_FLCUST_GETLIST 远程函数调用:
sap-srfc-server:quickstartServer:BAPI_FLCUST_GETLIST
sap-srfc-server:quickstartServer:BAPI_FLCUST_GETLIST
104.3.3.1. 所需的选项 复制链接链接已复制到粘贴板!
服务器数据配置对象所需的选项如下:
| Name | 默认值 | 描述 |
|
| 应该注册服务器连接的网关主机。 | |
|
|
网关服务,即可以在其上完成注册的端口。为了解析服务名称 | |
|
| 完成注册的程序 ID。作为网关上的标识符,并在 ABAP 系统的目标中作为标识符。 | |
|
| 指定服务器可用于从远程 SAP 服务器托管的元数据存储库检索元数据的目的地名称。 | |
|
| 应在网关上注册的连接数。 |
104.3.3.2. 安全网络连接选项 复制链接链接已复制到粘贴板!
服务器数据配置对象的安全网络连接选项如下:
| Name | 默认值 | 描述 |
|
|
安全网络连接(SNC)模式、 | |
|
|
SNC 安全级别, | |
|
|
服务器的 SNC 名称。覆盖默认的 SNC 名称。通常像 | |
|
|
提供 SNC 服务的库路径。如果没有提供此属性,则改为使用 |
104.3.3.3. 其他选项 复制链接链接已复制到粘贴板!
服务器数据配置对象的其他选项如下:
| Name | 默认值 | 描述 |
|
|
用于受防火墙保护的系统的 SAP 路由器字符串,因此仅在该 ABAP 系统网关上注册服务器时,才能通过 SAProuter 访问。一个典型的路由器字符串是 | |
|
| 出现故障的两个启动尝试之间的最大时间(以秒为单位)。每次启动失败后,等待时间从最初 1 秒开始加倍,直到达到最大值或服务器可以成功启动。 | |
|
|
启用/禁用 RFC 跟踪( | |
|
|
服务器连接使用的最大线程数量。如果没有设置,则 | |
|
|
服务器连接使用的最小线程数量。如果没有设置,则 |
104.3.4. 仓库配置 复制链接链接已复制到粘贴板!
存储库配置在 SAP 组件的 repositoryDataStore 属性中维护。此映射中的每个条目都配置不同的存储库。每个条目的键是存储库的名称,此键也对应于此存储库所附加的服务器的名称。
每个条目的值是存储库数据配置对象 org.fusesource.camel.component.sap.model.rfc.impl.RepositoryDataImpl,用于定义元数据存储库的内容。存储库数据对象是功能模板配置对象( org.fuesource.camel.component.sap.model.rfc.impl.FunctionTemplateImpl )的映射。此映射中的每个条目都指定 function 模块的接口,每个条目的键是指定的 function 模块的名称。
仓库数据示例
以下代码显示了配置元数据存储库的简单示例:
104.3.4.1. 功能模板属性 复制链接链接已复制到粘贴板!
功能模块的接口由四个参数列表组成,其数据被回传输至 RFC 调用中的 function 模块。每个参数列表由一个或多个字段组成,每个字段都是在 RFC 调用中传输的命名参数。支持以下参数列表和异常列表:
- import 参数列表包含在 RFC 调用中发送到功能模块的参数值 ;
- export 参数列表包含由 RFC 调用中的 function 模块返回的参数值 ;
- changing 参数列表包含由 RFC 调用中的 function 模块发送到和返回的参数值 ;
- table 参数列表 包含由 RFC 调用中的 function 模块发送到和返回的内部表值。
- 功能模块的接口还包括 ABAP 异常 异常列表,当模块在 RFC 调用中调用时,可能会引发该异常。
功能模板描述了函数接口的每个参数列表中的名称和参数类型,以及函数引发的 ABAP 异常。功能模板对象维护五个元数据对象的属性列表,如下表所述。
| 属性 | 描述 |
|
|
列表字段元数据对象 |
|
|
列表字段元数据对象 |
|
|
列表字段元数据对象 |
|
|
列表字段元数据对象 |
|
|
ABAP 异常元数据对象列表 |
功能模板示例
以下示例演示了如何配置功能模板的概述:
104.3.4.2. 列出字段元数据属性 复制链接链接已复制到粘贴板!
list 字段元数据对象 org.fusesource.camel.component.sap.model.rfc.impl.ListFieldMeataDataImpl,指定参数列表中的字段的名称和类型。对于元素参数字段(CHAR,DATE,BCD,TIME,BYTE,NUM,FLOAT,INT,INT1,INT2,DECF16,DECF34,STRING,XSTRING), 下表列出了可在字段元数据对象上设置的配置属性:
| Name | 默认值 | 描述 |
|
| - | 参数字段的名称。 |
|
| - | 字段的参数类型。 |
|
| - | 非Unicode 布局的字段长度(以字节为单位)。这个值取决于参数类型。 |
|
| - | Unicode 布局的字段长度(以字节为单位)。这个值取决于参数类型。 |
|
|
| 字段值中的十进制数。参数类型 BCD 和 FLOAT 需要。 |
|
|
|
如果为 |
请注意,所有元素参数字段都需要在字段 metadata 对象中指定名称,type,byteLength, 和 unicodeByteLength 属性。此外,BCD、FLOAT、DECF16 和 DECF34 字段需要字段元数据对象中指定十进制属性。
对于类型为 TABLE 或 STRUCTURE 的复杂参数字段,下表列出了可在列表字段元数据对象中设置的配置属性:
| Name | 默认值 | 描述 |
|
| - | 参数字段的名称。 |
|
| - | 字段的参数类型。 |
|
| - |
结构或表的元数据。一个记录元数据对象 |
|
|
|
如果为 |
所有复杂的参数字段都需要在字段 metadata 对象中指定 名称、type 和 recordMetaData 属性。recordMetaData 属性的值是一个记录字段元数据对象 org.fusesource.camel.component.sap.model.rfc.impl.RecordMetaDataImpl,用于指定嵌套结构的结构或表行的结构。
Elementary list 字段元数据示例
以下元数据配置指定了一个可选的 24 位打包的 BCD 号参数,其两个十进制位置名为 TICKET_PRICE :
复杂的列表字段元数据示例
以下元数据配置指定名为 CONNINFO 的必要 TABLE 参数,其中包含 connectionInfo 记录元数据对象指定的行结构:
<bean class="org.fusesource.camel.component.sap.model.rfc.impl.ListFieldMetaDataImpl">
<property name="name" value="CONNINFO" />
<property name="type" value="TABLE" />
<property name="recordMetaData" ref="connectionInfo" />
</bean>
<bean class="org.fusesource.camel.component.sap.model.rfc.impl.ListFieldMetaDataImpl">
<property name="name" value="CONNINFO" />
<property name="type" value="TABLE" />
<property name="recordMetaData" ref="connectionInfo" />
</bean>
104.3.4.3. 记录元数据属性 复制链接链接已复制到粘贴板!
记录元数据对象 org.fusesource.camel.component.sap.model.rfc.impl.RecordMetaDataImpl,指定嵌套的 STRUCTURE 或 TABLE 参数所在的行。记录元数据对象维护记录字段元数据对象列表 org.fusesource.camel.component.sap.model.rfc.impl.FieldMetaDataImpl,用于指定驻留在嵌套结构或表行中的参数。
下表列出了可在记录元数据对象中设置的配置属性:
| Name | 默认值 | 描述 |
|
| - | 记录的名称。 |
|
| - |
记录字段元数据对象列表 |
记录元数据对象的所有属性都是必需的。
记录元数据示例
以下示例演示了如何配置记录元数据对象:
104.3.4.4. 记录字段元数据属性 复制链接链接已复制到粘贴板!
记录字段元数据对象 org.fusesource.camel.component.sap.model.rfc.impl.FieldMetaDataImpl,指定结构中的参数字段的名称和类型。
记录字段元数据对象与参数字段元数据对象类似,但还必须额外指定嵌套结构或表行中各个字段位置的偏移量。单个字段的非Unicode 和 Unicode 偏移量必须从结构或行中前字段的非Unicode 和 Unicode 字节长度的总和指定。
在嵌套结构和表行中正确指定字段偏移会导致底层 JCo 和 ABAP 运行时中的参数字段存储重叠并防止 RFC 调用中正确传输值。
对于元素参数字段(CHAR,DATE,BCD,TIME,BYTE,NUM,FLOAT,INT,INT1,INT2,DECF16,DECF34,STRING,XSTRING),下表列出了可在记录字段元数据对象上设置的配置属性:
| Name | 默认值 | 描述 |
|
| - | 参数字段的名称。 |
|
| - | 字段的参数类型。 |
|
| - | 非Unicode 布局的字段长度(以字节为单位)。这个值取决于参数类型。 |
|
| - | Unicode 布局的字段长度(以字节为单位)。这个值取决于参数类型。 |
|
| - | 非Unicode 布局的字段偏移(以字节为单位)。这个偏移是括起结构中字段的字节位置。 |
|
| - | Unicode 布局的字段偏移(以字节为单位)。这个偏移是括起结构中字段的字节位置。 |
|
|
|
字段值中的十进制数;对于参数类型 |
对于类型为 TABLE 或 STRUCTURE 的复杂参数字段,下表列出了可在记录字段元数据对象上设置的配置属性:
| Name | 默认值 | 描述 |
|
| - | 参数字段的名称。 |
|
| - | 字段的参数类型。 |
|
| - | 非Unicode 布局的字段偏移(以字节为单位)。这个偏移是括起结构中字段的字节位置。 |
|
| - | Unicode 布局的字段偏移(以字节为单位)。这个偏移是括起结构中字段的字节位置。 |
|
| - |
结构或表的元数据。一个记录元数据对象 |
Elementary record 字段元数据示例
以下元数据配置指定了名为 ARR 字段参数,它位于 85 字节,当非Unicode 布局时,将 170 字节置于 Unicode 布局时,存在 170 字节。
DATE 的 DATE
复杂的记录字段元数据示例
以下元数据配置指定名为 FLTINFO 的 STRUCTURE 字段参数,其结构由 flightInfo 记录元数据对象指定。参数位于出现非Unicode 和 Unicode 布局时的括起结构的开头。