/// <summary> /// Set existing DI and/or UI Api Connection /// </summary> /// <param name="diCompany">SAPbobsCOM.Company</param> /// <param name="application">SAPbouiCOM.Application</param> /// <param name="loggingEnabled">Is SBO Common Logging enabled</param> public static void SetApiConnection( SAPbobsCOM.Company diCompany, SAPbouiCOM.Application application = null, bool loggingEnabled = true) { _diCompany = diCompany; if (application != null) { _application = application; } if (loggingEnabled) { SboAppLogger.Enable(); } }
/// <summary> /// Connect UI and DI API /// </summary> /// <param name="connectionString">Connection String from SBO Main Application</param> /// <param name="loggingEnabled">Is SBO Common Logging enabled</param> public static void Connect(string connectionString = null, bool loggingEnabled = true) { //connectionString = DebugConnectionString; if (connectionString == null) { connectionString = Environment.GetCommandLineArgs().Length > 1 ? Convert.ToString(Environment.GetCommandLineArgs().GetValue(1)) : string.Empty; } var sboGuiApi = new SAPbouiCOM.SboGuiApi(); _diCompany = new SAPbobsCOM.Company(); try { sboGuiApi.Connect(connectionString); _application = sboGuiApi.GetApplication(); var contextCookie = _diCompany.GetContextCookie(); var diCompanyConnectionString = _application.Company.GetConnectionContext(contextCookie); var responseCode = _diCompany.SetSboLoginContext(diCompanyConnectionString); ErrorHelper.HandleErrorWithException(responseCode, "DI API Could not Set Sbo Login Context", _diCompany); var connectResponse = _diCompany.Connect(); ErrorHelper.HandleErrorWithException(connectResponse, $"DI API Could not connect.", _diCompany); if (loggingEnabled) { SboAppLogger.Enable(); } var assemblyName = System.Reflection.Assembly.GetExecutingAssembly().GetName().Name; Logger.Info($"{assemblyName} connected"); SetAppEvents(); } catch (Exception ex) { Logger.Error($"SboApp UI Connect Error: {ex.Message}", ex); throw; } }