SAP JCo客户端与服务器

时间:2017-02-27 15:33:04

标签: sap jco

我们正尝试从独立的Java应用程序与SAP R3进行通信 我们将使用JCo 3.0库。

从文档中我了解到有两种方法可以与SAP连接。

  1. 作为JCo 客户
  2. 作为JCo 服务器
  3. 起初我确信我们的应用程序需要作为JCo客户端连接。但我开始怀疑。

    我们的应用发送数据。 (例如更新订单状态) 但我们的应用程序也会收到数据(例如,SAP推动对主数据的更改 - MATMAS)。

    那么,它需要是客户端还是服务器?

2 个答案:

答案 0 :(得分:3)

JCo 3.0 API模型中没有JCo Client,而只有JCoDestinations代替了2.1 API模型中的旧JCO.Client

通过RFC协议连接SAP的两种方法是:

  1. 入站RFC通信(作为RFC客户端/ Java调用ABAP)
  2. 出站RFC通信(作为RFC服务器/ ABAP调用Java)
  3. 对于入站RFC,您需要使用JCoDestination在ABAP端执行远程功能模块。对于出站RFC,您需要在SAP网关注册JCoServer,然后从ABAP端接收传入请求,以便在Java端处理远程功能模块。 在两个通信方向上都有一个请求,并且可能还有对此请求的响应,因此数据流在两个方向上都用于入站和出站RFC通信。入站和出站只是区分谁发起RFC调用。

    关于JCoServer,您通常还需要为存储库定义一些JCoDestination,因为默认JCoServer需要从ABAP查询所需的RFC元数据后端。如果没有这样的JCoRepositoryJCoServer将无法解释传入的RFC请求数据。因此,在典型的JCo服务器方案中,您需要:JCoServerJCoDestination(对于服务器的JCoRepository)。

    对于两种用例(客户端调用和存储库查询),您可以对JCoDestination使用相同的配置,但SAP建议定义单独的配置,这些配置在连接池大小的定义方面更灵活,并允许单独的RFC两种用例的授权。

答案 1 :(得分:0)

两者。实际上,您需要一个客户端连接来启动服务器连接,因此当您设置服务器连接时,您也将自动获得客户端连接。