获取公司对象

2020-09-30 03:15发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


你好

我正在创建一个插件,这是我第一次使用DI API。 到目前为止,一切工作正常,但是每当我尝试调试插件时,最多需要10秒钟才能加载屏幕。 这是因为连接花费的时间太长(oCompany var)。 我想知道是否有更好的方法来获取oCompany var,也许使用SBO的当前连接或类似的方法。 我的代码如下:

 private int SetConnectionContext()
         {
             int setConnectionContextReturn = 0;

             字符串sCookie = null;
             字符串sConnectionContext = null;

            //首先初始化Company对象

             oCompany =新的SAPbobsCOM.Company();

            //从DI API获取连接上下文cookie。
             sCookie = oCompany.GetContextCookie();

            //使用以下命令从UI API中检索连接上下文字符串
            //获取的cookie。
             sConnectionContext = Application.SBO_Application.Company.GetConnectionContext(sCookie);

            //在设置SBO登录上下文之前,请确保公司不是
            //连接的

             如果(oCompany.Connected == true)
             {
                 oCompany.Disconnect();
             }

            //将连接上下文信息设置为DI API。
             setConnectionContextReturn = oCompany.SetSboLoginContext(sConnectionContext);

             返回setConnectionContextReturn;
         }

         私人int ConnectToCompany()
         {
             int connectToCompanyReturn = 0;

            //建立与公司数据库的连接。
             connectToCompanyReturn = oCompany.Connect();

             return connectToCompanyReturn;
         }
 

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


你好

我正在创建一个插件,这是我第一次使用DI API。 到目前为止,一切工作正常,但是每当我尝试调试插件时,最多需要10秒钟才能加载屏幕。 这是因为连接花费的时间太长(oCompany var)。 我想知道是否有更好的方法来获取oCompany var,也许使用SBO的当前连接或类似的方法。 我的代码如下:

 private int SetConnectionContext()
         {
             int setConnectionContextReturn = 0;

             字符串sCookie = null;
             字符串sConnectionContext = null;

            //首先初始化Company对象

             oCompany =新的SAPbobsCOM.Company();

            //从DI API获取连接上下文cookie。
             sCookie = oCompany.GetContextCookie();

            //使用以下命令从UI API中检索连接上下文字符串
            //获取的cookie。
             sConnectionContext = Application.SBO_Application.Company.GetConnectionContext(sCookie);

            //在设置SBO登录上下文之前,请确保公司不是
            //连接的

             如果(oCompany.Connected == true)
             {
                 oCompany.Disconnect();
             }

            //将连接上下文信息设置为DI API。
             setConnectionContextReturn = oCompany.SetSboLoginContext(sConnectionContext);

             返回setConnectionContextReturn;
         }

         私人int ConnectToCompany()
         {
             int connectToCompanyReturn = 0;

            //建立与公司数据库的连接。
             connectToCompanyReturn = oCompany.Connect();

             return connectToCompanyReturn;
         }
 
付费偷看设置
发送
1条回答
huskylover
1楼 · 2020-09-30 03:43.采纳回答

嗨,Rudá,

我通常这样做:

 SAPbouiCOM.SboGuiApi oSboGuiApi = new SAPbouiCOM.SboGuiApi();

 尝试
 {
//在SAP应用程序中连接
 oSboGuiApi.Connect(param);

 SBO_Application = oSboGuiApi.GetApplication(-1);

 SBO_Application.StatusBar.SetText("附加组件已连接:" + appName,SAPbouiCOM.BoMessageTime.bmt_Short,SAPbouiCOM.BoStatusBarMessageType.smt_Success);

 SBO_Company = SBO_Application.Company.GetDICompany();
 }
 抓住(前例外)
 {
 Log.WriteExceptionLog(ex.Message,ex,this);
 System.Windows.Forms.MessageBox.Show("无法连接到SAP Business One:" +例如消息,"连接错误",System.Windows.Forms.MessageBoxButtons.OK,System.Windows.Forms.MessageBoxIcon  。感叹);
 System.Environment.Exit(0);
 }
 

希望有帮助。

亲切的问候,

迭戈兄弟

一周热门 更多>