.NET连接SAP系统专题:SAP中新建可远程调用的RFC(二)
发布于2022-05-10 13:58:05阅读 1700何谓RFC,就是一个Function,可以被非SAP系统调用,比如VB,C#,Java等。如果我们在RFC中INCLUDE了相关的业务逻辑,那么我们就可以完全操控SAP中的业务数据了。就像在TTE里,有一只程序,前端是在OA开发,设计了相关的客户提领库存,然后还要到SAP系统中去执行程序扣减相应的库存,这样是挺费劲的,如果能够在OA中放一个按钮,点击这个按钮就自动执行了这个程序,方便省事。而这一切,可以利用C#调用RFC来实现。
要实现整个过程,则必须要现在SAP中建立好相应的RFC函数,然后用VS建立好相应的程序,写代码调用就可以了。两者关联就是使用NCO3.0这个东西了。
OK,本节主要讲在SAP中建立我们想要的RFC出来。
那么,我们假定要实现这样的一个功能:运行在SAP系统外的一个程序窗体,上面有一个下拉框和文本框。程序运行之后自动载入SAP中某个Client的品号至该下拉框,用户只要点击了这个下拉框,内容一改变,则旁边的文本框就现实该品号的品名出来。够简单吧!
首先登陆SAP,比如我们要操作的Client为888(我自己建立的,图个吉利)。运行SE37:
![](https://ask.qcloudimg.com/http-save/yehe-1161768/0c77eae34a272d3aeee30cd22f5aa1ee.jpeg?imageView2/2/w/1620)
然后:
![](https://ask.qcloudimg.com/http-save/yehe-1161768/3777278efea4151201284760275df5f8.jpeg?imageView2/2/w/1620)
建立函数组,输入相关内容:
![](https://ask.qcloudimg.com/http-save/yehe-1161768/3ea28d92a282b193fa773a8766c6fe41.jpeg?imageView2/2/w/1620)
完了点击保存。
之后回到SE37,输入我们要调用的RFC函数名,比如:ZRFC_MARA_INFO 然后点击新建(右一按钮):
![](https://ask.qcloudimg.com/http-save/yehe-1161768/f51bd44d5c17c37d8e7ff45fb4f490f0.jpeg?imageView2/2/w/1620)
点击保存之后会弹出如下对话框:
![](https://ask.qcloudimg.com/http-save/yehe-1161768/4cef992276d34c4b7bfb82857ba831a9.jpeg?imageView2/2/w/1620)
点击打勾,忽略之。
主画面如下:
![](https://ask.qcloudimg.com/http-save/yehe-1161768/0761e5e5ecdfa11a72839ecad2b7c9db.jpeg?imageView2/2/w/1620)
画面切换至 属性 页,设置该RFC为可远程调用。
![](https://ask.qcloudimg.com/http-save/yehe-1161768/15b675c794d25660066e70eaae65dee7.jpeg?imageView2/2/w/1620)
因为我们到时候会传递一个品号进来读取品名,SO,在Import页面设置一个参数用来传递进来品号:
![](https://ask.qcloudimg.com/http-save/yehe-1161768/9c51c0a63f8eac7cf7e290d3e9efac85.jpeg?imageView2/2/w/1620)
第一个复选框代表此参数可选可不选传递,第二个代表参考。在RFC里如果不打勾,保存会提示:
![](https://ask.qcloudimg.com/http-save/yehe-1161768/fbe31d9fc794c0697d798b3a03b88103.jpeg?imageView2/2/w/1620)
因为我们会要抓取品名,需要有一个栏位抛出品名出来。SO,Export页面如下:
![](https://ask.qcloudimg.com/http-save/yehe-1161768/4bc7d31a9b78c2edec2c40e82a99997b.jpeg?imageView2/2/w/1620)
因为我们程序一开始需要抛出所有的品号表格出来,SO,此时我们需要有一个内表专门用于抛出品号信息。Table属性页如下:
![](https://ask.qcloudimg.com/http-save/yehe-1161768/720ddc81a5a7a7c661df217341b85924.jpeg?imageView2/2/w/1620)
至此,所有参数设置完毕。接下去就要去代码页编写相应的代码了。
代码如下:
SELECT * INTO CORRESPONDING FIELDS OF TABLE IT_MARA FROM MARA.
SELECT SINGLE MAKTX INTO MAKTX FROM MAKT WHERE MATNR = MATNR AND SPRAS = '1'.
![](https://ask.qcloudimg.com/http-save/yehe-1161768/9e96474836fff6874d4cf0c0bea5b624.jpeg?imageView2/2/w/1620)
最后点击激活!这里的激活不是单单激活这个RFC这么简单,还有其他的项目,记得要勾选上:
![](https://ask.qcloudimg.com/http-save/yehe-1161768/8f0419ec930bdc393b151080627b74df.jpeg?imageView2/2/w/1620)
至此,RFC建立完毕。
接下去就是在C#中调用它咯,下篇博文放出!
标签:调用,RFC,点击,专题,品号,NET,SAP,下拉框 From: https://www.cnblogs.com/skyay/p/16719283.html