博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#如何通过NCO3.0来连接SAP并调用SAP中的RFC
阅读量:5049 次
发布时间:2019-06-12

本文共 2109 字,大约阅读时间需要 7 分钟。

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         }

 

转载于:https://www.cnblogs.com/allen0118/archive/2012/07/26/2609403.html

你可能感兴趣的文章
看看 Delphi XE2 为 VCL 提供的 14 种样式
查看>>
Python内置函数(29)——help
查看>>
机器学习系列-tensorflow-01-急切执行API
查看>>
SqlServer 遍历修改字段长度
查看>>
Eclipse快捷键:同时显示两个一模一样的代码窗口
查看>>
《架构之美》阅读笔记05
查看>>
《大道至简》读后感——论沟通的重要性
查看>>
JDBC基础篇(MYSQL)——使用statement执行DQL语句(select)
查看>>
关于React中props与state的一知半解
查看>>
java中Hashtable和HashMap的区别(转)
查看>>
关闭数据库
查看>>
webStrom智能提示忽略首字母大小写问题
查看>>
层叠加的五条叠加法则(一)
查看>>
设计模式六大原则(5):迪米特法则
查看>>
对Feature的操作插入添加删除
查看>>
javascript String
查看>>
ecshop 系统信息在哪个页面
查看>>
【转】码云source tree 提交超过100m 为什么大文件推不上去
查看>>
Oracle数据库的增、删、改、查
查看>>
MySql执行分析
查看>>