112.2. URI 格式
SAP 组件提供了两种不同的端点:remote Function Call (RFC)端点,以及 Intermediate Document (IDoc)端点。
RFC 端点的 URI 格式如下:
sap-srfc-destination:destinationName:rfcName sap-trfc-destination:destinationName:rfcName sap-qrfc-destination:destinationName:queueName:rfcName sap-srfc-server:serverName:rfcName[?options] sap-trfc-server:serverName:rfcName[?options]
sap-srfc-destination:destinationName:rfcName
sap-trfc-destination:destinationName:rfcName
sap-qrfc-destination:destinationName:queueName:rfcName
sap-srfc-server:serverName:rfcName[?options]
sap-trfc-server:serverName:rfcName[?options]
IDoc 端点的 URI 格式如下:
sap-idoc-destination:destinationName:idocType[:idocTypeExtension[:systemRelease[:applicationRelease]]] sap-idoclist-destination:destinationName:idocType[:idocTypeExtension[:systemRelease[:applicationRelease]]] sap-qidoc-destination:destinationName:queueName:idocType[:idocTypeExtension[:systemRelease[:applicationRelease]]] sap-qidoclist-destination:destinationName:queueName:idocType[:idocTypeExtension[:systemRelease[:applicationRelease]]] sap-idoclist-server:serverName:idocType[:idocTypeExtension[:systemRelease[:applicationRelease]]][?options]
sap-idoc-destination:destinationName:idocType[:idocTypeExtension[:systemRelease[:applicationRelease]]]
sap-idoclist-destination:destinationName:idocType[:idocTypeExtension[:systemRelease[:applicationRelease]]]
sap-qidoc-destination:destinationName:queueName:idocType[:idocTypeExtension[:systemRelease[:applicationRelease]]]
sap-qidoclist-destination:destinationName:queueName:idocType[:idocTypeExtension[:systemRelease[:applicationRelease]]]
sap-idoclist-server:serverName:idocType[:idocTypeExtension[:systemRelease[:applicationRelease]]][?options]
前缀为 sap-endpointKind-destination 的 URI 格式用于定义目标端点(换句话说,Camel producer 端点)和 destinationName 是到 SAP 实例的特定出站连接的名称。出站连接在组件级别被命名和配置。
前缀为 sap-endpointKind-server 的 URI 格式用于定义服务器端点(换句话说,Camel 消费者端点)和 serverName 是来自 SAP 实例的特定入站连接的名称。在组件级别命名和配置入站连接。
RFC 端点 URI 的其他组件如下:
- rfcName
- (必需) 在目标端点 URI 中,是由连接的 SAP 实例中端点调用的 RFC 名称。在服务器端点 URI 中,是从连接的 SAP 实例调用时由端点处理的 RFC 名称。
- queueName
- 指定此端点将 SAP 请求发送到的队列。
IDoc 端点 URI 的其他组件如下:
- idocType
- (必需) 指定此端点生成的 IDoc 类型的基本 IDoc 类型。
- idocTypeExtension
- 指定此端点生成的 IDoc Type Extension (若有)。
- systemRelease
- 指定此端点生成的 IDoc 的关联的 SAP Basis 版本(若有)。
- applicationRelease
- 指定此端点生成的 IDoc 的关联的应用程序发行版本(若有)。
- queueName
- 指定此端点将 SAP 请求发送到的队列。
112.2.1. RFC 目标端点的选项 复制链接链接已复制到粘贴板!
RFC 目标端点(sap-srfc-destination,sap-trfc-destination, 和 sap-qrfc-destination)支持以下 URI 选项:
| Name | 默认值 | 描述 |
|---|---|---|
|
|
|
如果为 |
|
|
|
如果为 |
112.2.2. RFC 服务器端点的选项 复制链接链接已复制到粘贴板!
SAP RFC 服务器端点(sap-srfc-server 和 sap-trfc-server)支持以下 URI 选项:
| Name | 默认值 | 描述 |
|---|---|---|
|
|
|
如果为 |
|
|
|
(仅限SAP-trfc-server 端点) 如果为 |
112.2.3. IDoc List Server 端点的选项 复制链接链接已复制到粘贴板!
SAP IDoc List Server 端点(sap-idoclist-server)支持以下 URI 选项:
| Name | 默认值 | 描述 |
|---|---|---|
|
|
|
如果为 |
|
|
|
如果为 |
112.2.4. RFC 和 IDoc 端点概述 复制链接链接已复制到粘贴板!
SAP 组件软件包提供以下 RFC 和 IDoc 端点:
sap-srfc-destinationCamel SAP Synchronous Remote Function Call Destination Camel 组件.当 Camel 路由需要同步向来自 SAP 系统的请求和响应时,应使用此端点。
注意此组件使用的 sRFC 协议为 SAP 系统提供请求和响应,并 尽力尽力。如果在发送请求时出现通信错误,接收 SAP 系统中的远程函数调用的完成状态将保持不变。
sap-trfc-destinationCamel SAP Transactional Remote Function Call Destination Camel 组件.如果请求必须发送到 一次接收 SAP 系统,则应使用此端点。要达到此目的,组件会生成一个事务 ID
tid,它包括了通过路由交换中组件发送的每个请求。接收 SAP 系统会在发送请求前记录与请求相关的tid;如果 SAP 系统使用相同的tid来再次接收请求,则不会发送请求。因此,如果路由在通过此组件的端点发送请求时遇到通信错误,它可以重试在同一交换中发送请求,知道它将只交付并执行一次。注意此组件使用的 tRFC 协议是异步的,且不会返回响应。因此,此组件的端点不会返回响应消息。
注意此组件不保证一系列请求的顺序通过其端点,这些请求的交付和执行顺序可能会在接收 SAP 系统时有所不同,因为通信错误和重新发送请求。有关保证交付顺序,请参阅 Camel SAP Queued Remote Function Call Destination Camel 组件。
sap-qrfc-destinationCamel SAP Queued Remote Function Call Destination Camel 组件.此组件通过添加 Transactional Remote Function Call Destination camel 组件来扩展 Transactional Remote Function Call Destination camel 组件的功能,以便通过 端点向请求交付保证。当一系列请求相互依赖的情况下,应使用此端点,并且必须 最多 发送到接收 SAP 系统,并按顺序 发送到接收 SAP 系统。组件使用与 Camel SAP Transactional Remote Function Call Destination Camel 组件相同的机制完成 一次 交付保证。排序保证是通过将 SAP 系统收到的请求顺序序列化为 入站队列来完成的。入站队列由 SAP 中的 QIN 调度程序 处理。激活 入站队列后,QIN 调度程序将按顺序执行队列请求。
注意此组件使用的 qRFC 协议是异步的,且不会返回响应。因此,此组件的端点不会返回响应消息。
sap-srfc-server- Camel SAP Synchronous Remote Function Call Server Camel 组件.当需要 Camel 路由同步处理来自 SAP 系统的请求并响应 SAP 系统时,应使用此组件及其端点。
sap-trfc-server-
Camel SAP Transactional Remote Function Call Server Camel 组件。在发送 SAP 系统最多需要向 Camel 路由发送请求时,应使用此端点。为了达到此目的,发送 SAP 系统会生成事务 ID
tid,它会在每次发送到组件的端点时发出一个事务 ID。发送 SAP 系统首先检查某个组件是否收到了给定的tid,然后再发送与tid关联的一系列请求。组件将检查其维护的接收的tid列表,如果该列表中没有记录所发送的tid,然后响应发送 SAP 系统,指示是否已经记录了tid。如果之前未记录tid,则发送 SAP 系统之后才会发送一系列请求。这可让发送 SAP 系统向 camel 路由可靠地发送一系列请求。 sap-idoc-destination- Camel SAP IDoc Destination Camel 组件.当 Camel 路由向 SAP 系统发送一个 Intermediate Documents (IDocs)列表时,应使用此端点。
sap-idoclist-destination- Camel SAP IDoc List Destination Camel 组件.如果 Camel 路由向 SAP 系统发送一个中间文档列表(IDocs)列表时,应使用此端点。
sap-qidoc-destination- Camel SAP Queued IDoc Destination Camel 组件.如果需要 Camel 路由列表向 SAP 系统发送一个中间文档(IDocs),则应使用此组件及其端点。
sap-qidoclist-destination- Camel SAP Queued IDoc List Destination Camel 组件.当 camel 路由按顺序向 SAP 系统发送 Intermediate 文档(IDocs)列表时,会使用此组件及其端点。
sap-idoclist-server-
Camel SAP IDoc List Server Camel 组件。在发送 SAP 系统需要向 Camel 路由提供 Intermediate Document 列表时,应使用此端点。这个组件使用 tRFC 协议与 SAP 通信,如
sap-trfc-server-standalonequick start 所述。
112.2.5. SAP RFC 目标端点 复制链接链接已复制到粘贴板!
RFC 目标端点支持到 SAP 的出站通信,这使得这些端点能够使 RFC 调用在 SAP 中的 ABAP 功能模块之外。RFC 目标端点配置为通过特定到 SAP 实例的连接对特定的 ABAP 功能调用特定的 ABAP 功能。RFC 目的地是出站连接的逻辑设计,具有唯一的名称。RFC 目的地由一组称为 目标数据 的连接参数指定。
RFC 目标端点将从其接收的 IN-OUT 交换的输入消息中提取 RFC 请求,并在向 SAP 的函数调用中分配该请求。函数调用的响应将在交换的输出消息中返回。由于 SAP RFC 目标端点只支持出站通信,所以 RFC 目标端点只支持创建制作者。
112.2.6. SAP RFC 服务器端点 复制链接链接已复制到粘贴板!
RFC 服务器端点支持来自 SAP 的入站通信,它允许 SAP 中的 ABAP 应用程序在服务器端点中进行 RFC 调用。ABAP 应用程序与 RFC 服务器端点交互,就像它是远程功能模块一样。RFC 服务器端点配置为通过 SAP 实例的特定连接接收对特定 RFC 功能的 RFC 调用。RFC 服务器是入站连接的逻辑设计,具有唯一的名称。RFC 服务器由一组连接参数指定,称为 服务器数据。
RFC 服务器端点将处理传入的 RFC 请求,并将其作为 IN-OUT 交换的输入消息进行分配。交换的输出消息将作为 RFC 调用的响应返回。由于 SAP RFC 服务器端点只支持入站通信,因此 RFC 服务器端点仅支持创建用户。
112.2.7. SAP IDoc 和 IDoc 列出目标端点 复制链接链接已复制到粘贴板!
IDoc 目标端点支持到 SAP 的出站通信,然后可以对 IDoc 消息执行进一步处理。IDoc 文档代表一个业务事务,可以轻松地与非 SAP 系统交换。IDoc 目的地由一组称为 目标数据 的连接参数指定。
IDoc 列表目的地端点与 IDoc 目的地端点类似,但其处理的消息由 IDoc 文档列表组成。
112.2.8. SAP IDoc list服务器端点 复制链接链接已复制到粘贴板!
IDoc 列表服务器端点支持 SAP 的入站通信,使 Camel 路由能够从 SAP 系统接收 IDoc 文档列表。IDoc 列表服务器由一组连接参数指定,称为 服务器数据。
112.2.9. 元数据软件仓库 复制链接链接已复制到粘贴板!
元数据存储库用于存储以下种类的元数据:
- 功能模块的接口描述
- JCo 和 ABAP 运行时使用此元数据来检查 RFC 调用,以确保通信合作伙伴之间的数据安全传输,然后再分配这些调用。存储库填充了存储库数据。存储库数据是命名功能模板的映射。功能模板包含描述所有参数及其输入信息的元数据,它们从功能模块传递,并且具有它描述的 function 模块的唯一名称。
- idoc 类型描述
- IDoc 运行时使用此元数据来确保 IDoc 文档在发送到通信合作伙伴之前被正确格式化。基本 IDoc 类型由名称、允许片段列表以及网段之间的分层关系描述。可以在网段上实施一些额外的限制:段可以是强制或可选;可以为每个段指定最小/最大范围(定义该段的允许重复次数)。
因此,SAP 目标和服务器端点需要访问存储库,以发送和接收 RFC 调用并接收 IDoc 文档。对于 RFC 调用,由端点调用和处理的所有功能模块的元数据必须位于存储库中;对于 IDoc 端点,由端点处理的所有 IDoc 类型和 IDoc 类型扩展的元数据必须位于存储库中。目标和服务器端点使用的存储库的位置在目标数据及其对应连接的服务器数据中指定。
如果是 SAP 目标端点,它所使用的存储库通常位于 SAP 系统中,并且默认为它所连接的 SAP 系统。此默认值不需要目标数据中的显式配置。此外,目标端点进行的远程函数调用的元数据将已存在于其调用的任何现有功能模块的存储库中。目标端点发出的调用元数据,因此不需要在 SAP 组件中配置。
另一方面,由服务器端点处理的功能调用的元数据通常不会驻留在 SAP 系统的存储库中,而是由驻留在 SAP 组件中的存储库提供。SAP 组件维护一个命名元数据存储库的映射。存储库的名称对应于它提供元数据的服务器的名称。