我们正试图通过一个独立的java应用程序与SAP /3进行通信,我们将为此使用JCo 3.0库。
从文档中我了解到有两种连接SAP的方法。
起初,我确信我们的应用程序需要作为JCo客户端进行连接。但我开始怀疑了。
我们的应用程序发送数据。(例如,更新订单状态),但我们的应用程序也接收数据(例如,SAP将更改推送到主数据- MATMAS)。
那么,它需要是客户端还是服务器?
发布于 2017-02-27 16:48:42
JCo 3.0API模型中没有JCo客户端,而只有JCoDestinations,它取代了2.1API模型中的旧JCO.Client。
通过RFC协议连接SAP的两种方法是:
对于入站RFC,需要使用JCoDestination在ABAP端执行远程功能模块。对于出站RFC,您需要在SAP网关注册一个JCoServer,然后该网关将接收来自ABAP端的传入请求,以便在Java端处理远程功能模块。在两个通信方向上都有一个请求,并且可能也有对此请求的响应,因此数据流在入站和出站RFC通信的两个方向上。入站和出站只区分谁发起RFC调用。
关于JCoServer,您通常还需要为一个存储库定义一些JCoDestination,因为默认的JCoServer需要它从ABAP后端查询所需的RFC元数据。如果没有这样的JCoRepository,JCoServer将无法解释传入的RFC请求数据。因此,在典型的JCo服务器场景中,您需要两者:JCoServer和JCoDestination (用于服务器的JCoRepository)。
对于两个用例(客户端调用和存储库查询),您可以对JCoDestination使用相同的配置,但是SAP建议定义不同的配置,这对于连接池大小的定义更加灵活,并且允许对这两个用例进行单独的RFC授权。
发布于 2017-02-27 15:41:15
两者都有。实际上,您需要一个客户端连接来启动服务器连接,所以当您设置服务器连接时,您也会自动获得客户机连接。
https://stackoverflow.com/questions/42489623
复制相似问题