
SAP也为我们提供了.net平台程序的连接库SAP NCO,由此打通WINDOWS平台程序同SAP服务器的数据传递:


第一种(一进): 我们常用的,SAP服务器作为服务器端server,外围接口程序作为客户端client。 client端发起请求,调用SAP服务器中的RFC函数,实现所需要的操作或查询。这种方式是由客户端发起的,源头在客户端产生,调用频率也是有客户端控制。 这种方式在本次项目中叫做“请求响应”模式。 即客户端发起请求,服务器响应。客户端程序使用该方式,需要在客户端填入登陆SAP系统的用户,密码。 然后客户端程序自动登入SAP服务器,调用RFC函数。 该方式的代码网上很多。
第二种(一出): 网上资料较少,有一些场景是SAP服务器主动发起请求,比如做一个主数据在SAP中变更后,马上需要把这个信息通知同步给外围系统。如果用第一种的方法,也可以实现,但是需要客户端不停的轮询服务器,如果轮询的次数太多,我们可能担心系统性能,如果轮询次数不多,可能又不能马上做到服务器同外围系统的主数据变更信息同步。 在这种场景,需要SAP服务器作为客户端client, 外围程序作为服务器端server. 为什么是server模式这个名称,就是因为外围程序需要一直运行,等待接受SAP服务器传入的请求 ,外围程序就像服务器那样一直在工作。 这种模式在本次项目(2014年潍柴重庆汽车项目-SAP对接IBM总线-斯欧科技的ESB产品)中也称为“订约发布”模式。
本文只是主要讲清第二种方式, 开发时理解SAP 接口中外围程序作server方式,不同于正真的网络服务器SOCKET编程,避免进入不必要的误区,博主在2002年第一次接触RFC就准备用SOCKET来连接,后来才发现完全不是一回事情。
--------以上2022.4.21更新--------------
本文详细解析了SAP RFC接口程序中server模式的实现方式,包括如何使用JCO和NCO库建立长连接,以及如何让SAP服务器主动推送数据给外围程序。此外,文章还介绍了参数文件的配置和外围程序的编写方法。
996

被折叠的 条评论
为什么被折叠?



