SAP JCO客户端与服务器



我们正在尝试从独立的Java应用程序与SAP R/3通信我们将为此使用JCO 3.0库。

我知道,我知道有两种与SAP连接的方法。

  1. 作为JCO 客户端
  2. 作为JCO 服务器

首先,我坚信我们的申请需要作为JCO客户端连接。但是我开始怀疑。

我们的应用程序发送数据。(例如,订单状态更新)但是我们的应用程序也接收数据(例如,SAP将更改推向主数据-Matmas)。

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

JCO 3.0 API模型中没有JCO客户端,但仅JCoDestinations代替了2.1 API模型替换旧的JCO.Client

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

  1. 入站RFC通信(作为RFC客户端/Java调用ABAP)
  2. 出站RFC通信(作为RFC服务器/ABAP调用Java)

对于入站RFC,您需要使用JCoDestination在ABAP侧执行远程功能模块。对于出站RFC,您需要在SAP网关上注册JCoServer,然后从ABAP侧接收传入的请求,以便处理Java侧的远程功能模块。在两个通信方向上都有一个请求,也可能对此请求产生响应,因此数据流在入站和出站RFC通信的两个方向上。入站和出站只是区分谁启动RFC调用。

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

您可以针对两个用例(客户端呼叫和存储库查询)对JCoDestination使用相同的配置,但是SAP建议定义单独的配置,这些配置在连接池尺寸的定义方面更灵活,并允许单独的RFC授权供两者使用案例。

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

最新更新