2

質問は基本的に「私は何か間違っていませんか?」です。または「それはその通りです」。

次のコードを使用して 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 とログイン パッドを使用した通常の方法で 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;
}
4

1 に答える 1