private static void Main(string[] args) { try { SAPbouiCOM.Framework.Application oApp = null; if (args.Length < 1) { oApp = new SAPbouiCOM.Framework.Application(); } else { oApp = new SAPbouiCOM.Framework.Application(args[0]); } #region Log string AddOn = AppDomain.CurrentDomain.FriendlyName.Replace(".exe", ""); string User = Environment.UserName + "." + Environment.UserDomainName; string PId = System.Diagnostics.Process.GetCurrentProcess().Id.ToString(); string Path = $"C:\\ProgramData\\SAP\\SAP Business One\\Log\\{AddOn}\\{User}"; System.Threading.Tasks.Task.Run(() => CommonFunctions.DeleteOldLogFiles(Path)); if (!Directory.Exists(Path)) { Directory.CreateDirectory(Path); } LogFile = $"{Path}\\{AddOn}.{DateTime.Now.ToString("yyyyMMdd_HH.mm.ss")}.pid{PId}.log.csv"; #endregion Log sbo_application = SAPbouiCOM.Framework.Application.SBO_Application; sbo_company = (SAPbobsCOM.Company)sbo_application.Company.GetDICompany(); #if DEBUG sbo_application.StatusBar.SetText(string.Format("{0} = {1}", DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss"), "Conectando al SL"), SAPbouiCOM.BoMessageTime.bmt_Medium, SAPbouiCOM.BoStatusBarMessageType.smt_Warning); #endif sessionId = sbo_application.Company.GetServiceLayerConnectionContext(ServiceLayer.Address); #if DEBUG sbo_application.StatusBar.SetText(string.Format("{0} = {1}", DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss"), "SL conectado"), SAPbouiCOM.BoMessageTime.bmt_Medium, SAPbouiCOM.BoStatusBarMessageType.smt_Warning); #endif oNumberFormatInfo.NumberDecimalSeparator = sbo_company.GetCompanyService().GetAdminInfo().DecimalSeparator; oNumberFormatInfo.NumberGroupSeparator = sbo_company.GetCompanyService().GetAdminInfo().ThousandsSeparator; RemoveMenus(); AddMenuItems(); sbo_application.MenuEvent += new SAPbouiCOM._IApplicationEvents_MenuEventEventHandler(SBO_Application_MenuEvent); sbo_application.AppEvent += new SAPbouiCOM._IApplicationEvents_AppEventEventHandler(SBO_Application_AppEvent); sbo_application.ItemEvent += new SAPbouiCOM._IApplicationEvents_ItemEventEventHandler(SBO_Application_ItemEvent); sbo_application.FormDataEvent += new SAPbouiCOM._IApplicationEvents_FormDataEventEventHandler(SBO_Application_FormDataEvent); sbo_application.ReportDataEvent += new SAPbouiCOM._IApplicationEvents_ReportDataEventEventHandler(SBO_Application_ReportDataEvent); sbo_application.PrintEvent += new SAPbouiCOM._IApplicationEvents_PrintEventEventHandler(SBO_Application_PrintEvent); sbo_application.RightClickEvent += new SAPbouiCOM._IApplicationEvents_RightClickEventEventHandler(SBO_Application_RightClickEvent); sbo_application.ProgressBarEvent += new SAPbouiCOM._IApplicationEvents_ProgressBarEventEventHandler(SBO_Application_ProgressBarEvent); sbo_application.StatusBar.SetText(string.Format("Revisando la estructura de la base de datos"), SAPbouiCOM.BoMessageTime.bmt_Short, SAPbouiCOM.BoStatusBarMessageType.smt_Warning); //System.Threading.Tasks.Task.Run(() => LoadUserTablesMDToXmlFile(AddonNamespace)); //System.Threading.Tasks.Task.Run(() => LoadUserFieldMDToXmlFile(AddonNamespace)); //System.Threading.Tasks.Task.Run(() => LoadUserObjectsMDToXmlFile(AddonNamespace)); //try{LoadUserTablesMDFromXmlFile(UserTablesFile);} catch (Exception e) {sbo_application.StatusBar.SetText(e.Message, SAPbouiCOM.BoMessageTime.bmt_Short, SAPbouiCOM.BoStatusBarMessageType.smt_Warning);} //try{LoadUserFieldMDFromXmlFile(UserFieldsFile);} catch (Exception e) {sbo_application.StatusBar.SetText(e.Message, SAPbouiCOM.BoMessageTime.bmt_Short, SAPbouiCOM.BoStatusBarMessageType.smt_Warning);} //try{LoadUserObjectMDFromXmlFile(UserObjectsFile);} catch (Exception e) {sbo_application.StatusBar.SetText(e.Message, SAPbouiCOM.BoMessageTime.bmt_Short, SAPbouiCOM.BoStatusBarMessageType.smt_Warning);} CommonFunctions.GET(ServiceLayer.ActivityLocations, null, null, sessionId, out _); sbo_application.StatusBar.SetText(string.Format("Revision completada"), SAPbouiCOM.BoMessageTime.bmt_Short, SAPbouiCOM.BoStatusBarMessageType.smt_Success); sbo_application.StatusBar.SetText($"Addon {AddOnName} conectado", SAPbouiCOM.BoMessageTime.bmt_Short, SAPbouiCOM.BoStatusBarMessageType.smt_Success); #if DEBUG Console.WriteLine(string.Format("{0} = {1}", DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss"), "Addon cargado")); #endif oApp.Run(); } catch (Exception ex) { System.Windows.Forms.MessageBox.Show(ex.Message); } }
private static void Main(string[] args) { string AddOn = AppDomain.CurrentDomain.FriendlyName.Replace(".exe", ""); string User = Environment.UserName + "." + Environment.UserDomainName; string PId = System.Diagnostics.Process.GetCurrentProcess().Id.ToString(); string Path = $"C:\\ProgramData\\SAP\\SAP Business One\\Log\\{AddOn}\\{User}"; LogFile = $"{Path}\\Addon.{DateTime.Now.ToString("yyyyMMdd_HH.mm.ss")}.pid{PId}.log.csv"; try { if (!Directory.Exists(Path)) { Directory.CreateDirectory(Path); } System.Threading.Tasks.Task.Run(() => CommonFunctions.DeleteOldLogFiles(Path)); SAPbouiCOM.Framework.Application oApp = null; if (args.Length < 1) { oApp = new SAPbouiCOM.Framework.Application(); } else { oApp = new SAPbouiCOM.Framework.Application(args[0]); } sbo_application = SAPbouiCOM.Framework.Application.SBO_Application; sbo_company = (SAPbobsCOM.Company)sbo_application.Company.GetDICompany(); oNumberFormatInfo.NumberDecimalSeparator = sbo_company.GetCompanyService().GetAdminInfo().DecimalSeparator; oNumberFormatInfo.NumberGroupSeparator = sbo_company.GetCompanyService().GetAdminInfo().ThousandsSeparator; RemoveMenus(); AddMenuItems(); sbo_application.MenuEvent += new SAPbouiCOM._IApplicationEvents_MenuEventEventHandler(SBO_Application_MenuEvent); sbo_application.AppEvent += new SAPbouiCOM._IApplicationEvents_AppEventEventHandler(SBO_Application_AppEvent); sbo_application.ItemEvent += new SAPbouiCOM._IApplicationEvents_ItemEventEventHandler(SBO_Application_ItemEvent); sbo_application.FormDataEvent += new SAPbouiCOM._IApplicationEvents_FormDataEventEventHandler(SBO_Application_FormDataEvent); sbo_application.ReportDataEvent += new SAPbouiCOM._IApplicationEvents_ReportDataEventEventHandler(SBO_Application_ReportDataEvent); sbo_application.PrintEvent += new SAPbouiCOM._IApplicationEvents_PrintEventEventHandler(SBO_Application_PrintEvent); sbo_application.RightClickEvent += new SAPbouiCOM._IApplicationEvents_RightClickEventEventHandler(SBO_Application_RightClickEvent); sbo_application.ProgressBarEvent += new SAPbouiCOM._IApplicationEvents_ProgressBarEventEventHandler(SBO_Application_ProgressBarEvent); sbo_application.StatusBar.SetText(string.Format("Revisando la estructura de la base de datos"), SAPbouiCOM.BoMessageTime.bmt_Short, SAPbouiCOM.BoStatusBarMessageType.smt_Warning); //System.Threading.Tasks.Task.Run(() => LoadUserTablesMDToXmlFile(AddonNamespace)); //System.Threading.Tasks.Task.Run(() => LoadUserFieldMDToXmlFile(AddonNamespace)); //System.Threading.Tasks.Task.Run(() => LoadUserObjectsMDToXmlFile(AddonNamespace)); //try { LoadUserTablesMDFromXmlFile(UserTablesFile); } catch (Exception e) { sbo_application.StatusBar.SetText(e.Message, SAPbouiCOM.BoMessageTime.bmt_Short, SAPbouiCOM.BoStatusBarMessageType.smt_Warning); } //try { LoadUserFieldMDFromXmlFile(UserFieldsFile); } catch (Exception e) { sbo_application.StatusBar.SetText(e.Message, SAPbouiCOM.BoMessageTime.bmt_Short, SAPbouiCOM.BoStatusBarMessageType.smt_Warning); } //try { LoadUserObjectMDFromXmlFile(UserObjectsFile); } catch (Exception e) { sbo_application.StatusBar.SetText(e.Message, SAPbouiCOM.BoMessageTime.bmt_Short, SAPbouiCOM.BoStatusBarMessageType.smt_Warning); } sbo_application.StatusBar.SetText(string.Format("Revision completada"), SAPbouiCOM.BoMessageTime.bmt_Short, SAPbouiCOM.BoStatusBarMessageType.smt_Success); sbo_application.StatusBar.SetText($"Addon {AddOnName} conectado", SAPbouiCOM.BoMessageTime.bmt_Short, SAPbouiCOM.BoStatusBarMessageType.smt_Success); #if DEBUG sbo_application.StatusBar.SetText(string.Format("{0} = {1}", DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss"), "Conectando al SL"), SAPbouiCOM.BoMessageTime.bmt_Medium, SAPbouiCOM.BoStatusBarMessageType.smt_Warning); #endif try { sessionId = sbo_application.Company.GetServiceLayerConnectionContext(ServiceLayer.Address); } catch { ShowInputDialog(ref UsrPass); if (string.IsNullOrEmpty(UsrPass)) { sbo_application.MessageBox("Debe ingresar su contraseña SAP, salga y vuelva a entrar"); Environment.Exit(0); } var log = new Login { CompanyDB = sbo_company.CompanyDB, UserName = sbo_company.UserName, Password = UsrPass }; sessionId = CommonFunctions.POST(ServiceLayer.Login, log, null, out System.Net.HttpStatusCode statusCode); if (statusCode != System.Net.HttpStatusCode.OK) { sbo_application.MessageBox("Clave incorrecta, salga y vuelva a entrar"); Environment.Exit(0); } } #if DEBUG sbo_application.StatusBar.SetText(string.Format("{0} = {1}", DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss"), "SL conectado"), SAPbouiCOM.BoMessageTime.bmt_Medium, SAPbouiCOM.BoStatusBarMessageType.smt_Warning); #endif oApp.Run(); } catch (Exception ex) { CommonFunctions.LogFile(LogFile, ex.Message); MessageBox.Show(ex.Message); } }