通过RFC(C#)连接SAP系统

时间:2022-08-31 08:01:54

通过RFC(C#)连接SAP系统

具备条件

1.vs2010

2.sap公司发布的nco3

3.sap的服务器端口密码

4.sap的可远程操作的调用函数

操作步骤:

1.

打开vs2010,新建空网站,新建窗体,一定记住引用;

引用方法不要去找com组件,根本找不到,要通过浏览的方式。

2.

在cs后台文件下引用

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Data;

using System.Drawing;

using System.Text;

using SAP.Middleware.Connector;

3.

cs代码

publicpartial class _Default : System.Web.UI.Page

{

    protectedvoid Page_Load(object sender,EventArgs e)

    {

         RfcConfigParameters rfcPar = new RfcConfigParameters();

             rfcPar.Add(RfcConfigParameters.Name,"DDD");

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

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

             rfcPar.Add(RfcConfigParameters.User,"MM222");

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

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

             rfcPar.Add(RfcConfigParameters.Language,"EN");        

             RfcDestination dest = RfcDestinationManager.GetDestination(rfcPar);

             RfcRepository rfcrep = dest.Repository;

             IRfcFunction myfun = null;

             myfun = rfcrep.CreateFunction("ZTEST_SIMPLE");

             myfun.SetValue("CARRID","AA");//SAP里传入参数

             myfun.SetValue("CURRENCY","USD");//SAP里传入参数

             myfun.Invoke(dest);

             string ERMSG = myfun.GetValue("PRICE").ToString();

             this.Label1.Text = ERMSG;//设置一个label控件

             dest =null;

             rfcrep = null;

 

    }

}