C#如何通过NCO3.0来连接SAP并调用SAP中的RFC
C#如何通过NCO3.0来连接SAP并调用SAP中的RFC
首先安装NCO3.0,这是SAP针对.Net开发的专用组件,安装完成之后在C:\Program Files\SAP\SAP_DotNetConnector3_x86目录下面会有sapnco_utils.dll sapnco.dll rscp4n.dll libicudecnumber.dll四个DLL文件,在项目里面添加引用,找到这个4个DLL文件,引用到项目里面,libicudecnumber.dll会提示无法引用,貌似要将项目的.NET目标平台改为4.0的才可以,这里我没有亲测。
下面开始编程了:
1 using SAP.Middleware.Connector; 5 public void GetSapData() 6 { 7 RfcConfigParameters rfcPar = new RfcConfigParameters(); 8 rfcPar.Add(RfcConfigParameters.Name, "CON"); 9 rfcPar.Add(RfcConfigParameters.AppServerHost, "IP"); 10 rfcPar.Add(RfcConfigParameters.Client, "800"); 11 rfcPar.Add(RfcConfigParameters.User, "UserID"); 12 rfcPar.Add(RfcConfigParameters.Password, "Password"); 13 rfcPar.Add(RfcConfigParameters.SystemNumber, "02"); 14 rfcPar.Add(RfcConfigParameters.Language, "EN"); 15 RfcDestination dest = RfcDestinationManager.GetDestination(rfcPar); 16 RfcRepository rfcrep = dest.Repository; 17 IRfcFunction myfun = null; 18 myfun = rfcrep.CreateFunction("SAP里面的函数名称"); 19 myfun.SetValue("VTYPE", "0");//SAP里面的传入参数 20 myfun.Invoke(dest); 21 IRfcTable IrfTable = myfun.GetTable("IT_ZMYTB2"); 22 //提前实例化一个空的表结构出来 23 DataTable dt = new DataTable(); 24 dt.Columns.Add("USERID"); 25 dt.Columns.Add("USERPWD"); 26 dt.Columns.Add("USERADDRESS"); 27 //循环把IRfcTable里面的数据放入Table里面,因为类型不同,不可直接使用。 28 for (int i = 0; i < IrfTable.Count; i++) 29 { 30 IrfTable.CurrentIndex = i; 31 DataRow dr = dt.NewRow(); 32 dr["USERID"] = IrfTable.GetString("USERID"); 33 dr["USERPWD"] = IrfTable.GetString("USERPWD"); 34 dr["USERADDRESS"] = IrfTable.GetString("USERADDRESS"); 35 dt.Rows.Add(dr); 36 } 37 //将重新生成的Table赋值给数据控件DataGridView。 38 dgv.DataSource = dt; 39 }
作者:Allen Chen无影
邮箱:allen0717@163.com 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?