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