这个问题基本上是一个“我没有错吗?” 或“就是这样”。
我正在使用以下代码登录我的 SAP 系统。为 SNC 配置配置文件
Backend = new BackendConfig();
RfcDestinationManager.RegisterDestinationConfiguration(Backend);
SapRfcDestination = RfcDestinationManager.GetDestination("P38");
SapRap = SapRfcDestination.Repository;
// Create the function for MD04
BapiMD04 = SapRap.CreateFunction("MD_STOCK_REQUIREMENTS_LIST_API");
完成以上所有操作大约需要 30 秒。
使用 SAP 和 Login Pad 以正常方式登录 SAP 需要 4 秒。
使用 SAP 连接器总是那么慢还是我做错了什么?
编辑 1:BackendConfig 类
public class BackendConfig : IDestinationConfiguration
{
public RfcConfigParameters GetParameters(String destinationName)
{
if ("P38".Equals(destinationName))
{
RfcConfigParameters parms = new RfcConfigParameters();
parms.Add(RfcConfigParameters.AppServerHost, "SAPP38.Danfoss.net");
parms.Add(RfcConfigParameters.SystemNumber, "86");
parms.Add(RfcConfigParameters.SncMode, "1");
parms.Add(RfcConfigParameters.SncPartnerName, "p:SAPServiceP38@danfoss.net");
// parms.Add(RfcConfigParameters.User, "AUTO0101");
// parms.Add(RfcConfigParameters.Password, "anyth1ng");
parms.Add(RfcConfigParameters.Client, "010");
parms.Add(RfcConfigParameters.Language, "EN");
parms.Add(RfcConfigParameters.PoolSize, "5");
parms.Add(RfcConfigParameters.MaxPoolSize, "10");
parms.Add(RfcConfigParameters.IdleTimeout, "600");
return parms;
}
else if ("T38".Equals(destinationName))
{
RfcConfigParameters parms = new RfcConfigParameters();
parms.Add(RfcConfigParameters.AppServerHost, "blahblahblah");
parms.Add(RfcConfigParameters.SystemNumber, "81");
parms.Add(RfcConfigParameters.SncMode, "1");
parms.Add(RfcConfigParameters.SncPartnerName, "blahblahblah");
parms.Add(RfcConfigParameters.Client, "010");
parms.Add(RfcConfigParameters.Language, "EN");
parms.Add(RfcConfigParameters.PoolSize, "5");
parms.Add(RfcConfigParameters.MaxPoolSize, "10");
parms.Add(RfcConfigParameters.IdleTimeout, "600");
return parms;
}
else return null;
}
// The following two are not used in this example:
public bool ChangeEventsSupported()
{
return false;
}
public event RfcDestinationManager.ConfigurationChangeHandler ConfigurationChanged;
}