zoukankan      html  css  js  c++  java
  • .NET通过NCO3.0连接SAP并传递数据(一)

    1.在新建的项目中引入需要的两个dll文件,sapnco.dll和sapnco_utils.dll(直接安装NCo307_Net20_x86.msi安装包即可获得)

    2.创建连接SAP需要的配置类,代码如下:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using SAP.Middleware.Connector;
    using System.Configuration;
    
    namespace SapInterface
    {
        public class BackendSAPConfig : IDestinationConfiguration
        {
            #region 重写接口中的方法,获得SAP相关配置信息
    
            public RfcConfigParameters GetParameters(string destinationName)
            {
                if (destinationName.Equals("TEST"))
                {
                    RfcConfigParameters parms = new RfcConfigParameters();
                    parms.Add(RfcConfigParameters.AppServerHost, ConfigurationManager.AppSettings["ServerHost"]);   //SAP主机IP
                    //parms.Add(RfcConfigParameters.SystemID, ConfigurationManager.AppSettings["SystemID"]);//系统ID
                    parms.Add(RfcConfigParameters.SystemNumber, ConfigurationManager.AppSettings["SystemNumber"]);  //SAP实例
                    parms.Add(RfcConfigParameters.User, ConfigurationManager.AppSettings["User"]);  //用户名
                    parms.Add(RfcConfigParameters.Password, ConfigurationManager.AppSettings["Password"]);  //密码
                    parms.Add(RfcConfigParameters.Client, ConfigurationManager.AppSettings["Client"]);  // Client
                    parms.Add(RfcConfigParameters.Language, ConfigurationManager.AppSettings["Language"]);  //登陆语言
                    parms.Add(RfcConfigParameters.PoolSize, ConfigurationManager.AppSettings["PoolSize"]);
                    //parms.Add(RfcConfigParameters.MaxPoolSize, "10");已过时,被PeakConnectionsLimit替代
                    parms.Add(RfcConfigParameters.PeakConnectionsLimit, ConfigurationManager.AppSettings["PeakConnectionsLimit"]);
                    //parms.Add(RfcConfigParameters.IdleTimeout, "60");
                    return parms;
                }
                else
                {
                    return null;
                }
    
            }
            #endregion
    
            #region 实现接口中的方法
    
            public bool ChangeEventsSupported()
            {
                return false;
            }
    
            public event RfcDestinationManager.ConfigurationChangeHandler ConfigurationChanged;
            #endregion
        }
    }

    3.主要一些方法如下

    View Code
        public void nco()
            {
                IDestinationConfiguration config = new BackendSAPConfig();//实例化SAP接口配置类
                RfcDestinationManager.RegisterDestinationConfiguration(config);//注册
                RfcDestination prd = RfcDestinationManager.GetDestination(destinationName.ToUpper());//传入参数获得连接配置
                nco(prd);
                //注意,反注册在NCO 3.0.7.0版本中需要放在nco(prd)后面,而在NCO 3.0.1.0放在nco(prd)前面也行
                RfcDestinationManager.UnregisterDestinationConfiguration(config);//反注册
    
            }
  • 相关阅读:
    WPF学习笔记2——WPF子线程更新UI
    WPF学习笔记1——VS2019新建WPF程序
    Asp.Net Core学习笔记3—— .NET Core SDK
    Asp.Net Core学习笔记2—— IIS部署
    Asp.Net Core学习笔记1—— 静态页面
    NGUI带翻页的滑动列表拓展
    用Lua的协程实现类似Unity协程的语句块
    Lua模除运算的大坑
    数据结构和算法总结(三):A* 寻路算法
    Unity3D学习(十一):关于UI销毁后图集仍然无法释放问题的解决办法
  • 原文地址:https://www.cnblogs.com/StevenDu/p/2876418.html
Copyright © 2011-2022 走看看