第一步:安装sapnco3.x64
![](https://img-blog.csdnimg.cn/97bd35be5cd44308b263019d309bba2b.png)
第二步:编写RFC配置文件
public class RFCConfig : IDestinationConfiguration
{
public RfcConfigParameters GetParameters(String destinationName)
{
if ("PRD_000".Equals(destinationName))
{
RfcConfigParameters parms = new RfcConfigParameters();
parms.Add(RfcConfigParameters.AppServerHost, ConfigHelper.GetAppConfigValue("SapUrl")); //SAP主机IP
parms.Add(RfcConfigParameters.SystemNumber, "00"); //SAP实例
parms.Add(RfcConfigParameters.User, ConfigHelper.GetAppConfigValue("SapAccount")); //用户名
parms.Add(RfcConfigParameters.Password, ConfigHelper.GetAppConfigValue("SapPassword")); //密码
parms.Add(RfcConfigParameters.Client, ConfigHelper.GetAppConfigValue("SapClient")); // Client
parms.Add(RfcConfigParameters.Language, "ZH"); //登陆语言
parms.Add(RfcConfigParameters.PoolSize, "5");
parms.Add(RfcConfigParameters.MaxPoolSize, "10");
parms.Add(RfcConfigParameters.IdleTimeout, "60");
return parms;
}
else return null;
}
public bool ChangeEventsSupported()
{
return false;
}
public event RfcDestinationManager.ConfigurationChangeHandler ConfigurationChanged;
}
第三步:调用RFCConfig类
IDestinationConfiguration ID = new RFCConfig();
RfcDestinationManager.RegisterDestinationConfiguration(ID);
RfcDestination prd = RfcDestinationManager.GetDestination("PRD_000");
RfcDestinationManager.UnregisterDestinationConfiguration(ID);
RfcRepository repo = prd.Repository;
IRfcFunction companyBapi = repo.CreateFunction("ZRFC_CRM_CREATE_SALESORDER"); //调用函数名
IRfcStructure rfcs = companyBapi.GetStructure("IS_HEAD"); //获取输入变量
rfcs.SetValue("AUART", "ZX01"); //第一个为参数名 第二个为值
IRfcTable tab = companyBapi.GetTable("IT_ITEM"); //获取接口的table参数
tab.Insert();
tab.CurrentRow.SetValue("MATNR", "123"); //存放table参数
companyBapi.Invoke(prd); //执行函数
IRfcTable table = companyBapi.GetTable("ITEM"); //获取返回table
string status= companyBapi.GetString("EV_TYPE"); //根据变量名获取返回参数