当前位置:文档之家› C#如何通过NCO3.0来连接SAP并调用SAP中的RFC

C#如何通过NCO3.0来连接SAP并调用SAP中的RFC

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的才可以,这里我没有亲测。

下面开始编程了:

using SAP.Middleware.Connector;

public void GetSapData()

{

RfcConfigParameters rfcPar = new RfcConfigParameters();

rfcPar.Add(https://www.doczj.com/doc/4818670785.html,, "CON");

rfcPar.Add(RfcConfigParameters.AppServerHost, "IP");

rfcPar.Add(RfcConfigParameters.Client, "800");

rfcPar.Add(https://www.doczj.com/doc/4818670785.html,er, "UserID");

rfcPar.Add(RfcConfigParameters.Password, "Password");

rfcPar.Add(RfcConfigParameters.SystemNumber, "02");

rfcPar.Add(https://www.doczj.com/doc/4818670785.html,nguage, "EN");

RfcDestination dest = RfcDestinationManager.GetDestination(rfcPar);

RfcRepository rfcrep = dest.Repository;

IRfcFunction myfun = null;

myfun = rfcrep.CreateFunction("SAP里面的函数名称");

myfun.SetValue("VTYPE", "0");//SAP里面的传入参数

myfun.Invoke(dest);

IRfcTable IrfTable = myfun.GetTable("IT_ZMYTB2");

//提前实例化一个空的表结构出来

DataTable dt = new DataTable();

dt.Columns.Add("USERID");

dt.Columns.Add("USERPWD");

dt.Columns.Add("USERADDRESS");

//循环把IRfcTable里面的数据放入Table里面,因为类型不同,不可直接使用。

for (int i = 0; i < IrfTable.Count; i++)

{

IrfTable.CurrentIndex = i;

DataRow dr = dt.NewRow();

dr["USERID"] = IrfTable.GetString("USERID");

dr["USERPWD"] = IrfTable.GetString("USERPWD");

dr["USERADDRESS"] = IrfTable.GetString("USERADDRESS");

dt.Rows.Add(dr);

}

//将重新生成的Table赋值给数据控件DataGridView。

dgv.DataSource = dt;

}

相关主题
相关文档 最新文档