zoukankan      html  css  js  c++  java
  • 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         }
查看全文
  • 相关阅读:
    1257 背包问题 V3(二分)
    全国高校绿色计算大赛 预赛第三阶段(Python)(随机数)
    全国高校绿色计算大赛 预赛第二阶段(Python)
    全国高校绿色计算大赛 预赛第一阶段(Python)
    全国绿色计算大赛 模拟赛第二阶段 (Python)
    全国绿色计算大赛 模拟赛第一阶段(Python)
    51node 1134 最长递增子序列 (数据结构)
    提高(Android)开发效率的工具与网站
    Android 打开方式选定后默认了改不回来?解决方法(三星s7为例)
    SharedPreferences 的另一种场景的用法
  • 原文地址:https://www.cnblogs.com/allen0118/p/2609403.html
  • Copyright © 2011-2022 走看看