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         }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM