public void addUDO(Company oCompany, string sObjeto, string sCode, string sName, string sTableName, BoUDOObjType TipoObjeto, BoYesNoEnum CanFind, BoYesNoEnum CanDelete, BoYesNoEnum CanCancel, BoYesNoEnum CanYearTransfer, BoYesNoEnum CanLog, string sLogTableName) { UserObjectsMD oUserObjectMD = null; oUserObjectMD = (UserObjectsMD)oCompany.GetBusinessObject(BoObjectTypes.oUserObjectsMD); int lRetVal; string lErrMsg = string.Empty; System.Runtime.InteropServices.Marshal.ReleaseComObject(oUserObjectMD); oUserObjectMD = null; GC.Collect(); oUserObjectMD = (UserObjectsMD)oCompany.GetBusinessObject(BoObjectTypes.oUserObjectsMD); if (oUserObjectMD.GetByKey(sObjeto) == false) { oUserObjectMD.Code = sCode; oUserObjectMD.Name = sName; oUserObjectMD.TableName = sTableName; oUserObjectMD.ObjectType = TipoObjeto; oUserObjectMD.CanFind = CanFind; oUserObjectMD.CanDelete = CanDelete; oUserObjectMD.CanCancel = CanCancel; oUserObjectMD.CanYearTransfer = CanYearTransfer; oUserObjectMD.CanLog = CanLog; oUserObjectMD.LogTableName = sLogTableName; lRetVal = oUserObjectMD.Add(); if (lRetVal != 0) { oCompany.GetLastError(out lRetVal, out lErrMsg); } } System.Runtime.InteropServices.Marshal.ReleaseComObject(oUserObjectMD); oUserObjectMD = null; GC.Collect(); }
public void MakeFieldsSearchable(string tableInitial) { Log.AppendFormat("Liberando campos para pesquisa"); Recordset rs = (Recordset)(SBOApp.Company.GetBusinessObject(SAPbobsCOM.BoObjectTypes.BoRecordset)); string sql = "SELECT * FROM CUFD WHERE TableID LIKE '{0}%'"; rs.DoQuery(String.Format(sql, tableInitial)); string tableName = String.Empty; UserObjectsMD userObjectsMD = (UserObjectsMD)SBOApp.Company.GetBusinessObject(BoObjectTypes.oUserObjectsMD); while (!rs.EoF) { if (tableName != rs.Fields.Item("TableID").Value.ToString()) { tableName = rs.Fields.Item("TableID").Value.ToString(); } // Remove a arroba do usertable Name tableName = tableName.Replace("@", ""); bool bUpdate = userObjectsMD.GetByKey(tableName); userObjectsMD.FindColumns.ColumnAlias = rs.Fields.Item("AliasID").Value.ToString(); userObjectsMD.FindColumns.ColumnDescription = rs.Fields.Item("Descr").Value.ToString(); userObjectsMD.FindColumns.Add(); if (bUpdate) { CodErro = userObjectsMD.Update(); } else { CodErro = userObjectsMD.Add(); } this.ValidateAction(); Marshal.ReleaseComObject(userObjectsMD); userObjectsMD = null; } }
internal static void removeUDO(UserObjectsMD uo, string name, SAPbouiCOM.Application app, SAPbobsCOM.Company company) { int ret; string errMsg; if (uo.GetByKey(name)) { ret = uo.Remove(); if (ret != 0) { company.GetLastError(out ret, out errMsg); app.SetStatusBarMessage(string.Format("Error removing object {0}", name), SAPbouiCOM.BoMessageTime.bmt_Short, true); throw new Exception(errMsg); } app.StatusBar.SetSystemMessage(string.Format("Removed field {0}", name), SAPbouiCOM.BoMessageTime.bmt_Short, SAPbouiCOM.BoStatusBarMessageType.smt_Success); } }
//static void SBO_Application_AppEvent(SAPbouiCOM.BoAppEventTypes EventType) //{ // switch (EventType) // { // case SAPbouiCOM.BoAppEventTypes.aet_ShutDown: // //Exit Add-On // System.Windows.Forms.Application.Exit(); // break; // case SAPbouiCOM.BoAppEventTypes.aet_CompanyChanged: // break; // case SAPbouiCOM.BoAppEventTypes.aet_FontChanged: // break; // case SAPbouiCOM.BoAppEventTypes.aet_LanguageChanged: // break; // case SAPbouiCOM.BoAppEventTypes.aet_ServerTerminition: // break; // default: // break; // } //} internal static bool UDOExist(string udoName) { UserObjectsMD UDO = (UserObjectsMD)AddOnUtilities.oCompany.GetBusinessObject(BoObjectTypes.oUserObjectsMD); try { bool result = UDO.GetByKey(udoName); System.Runtime.InteropServices.Marshal.ReleaseComObject(UDO); UDO = null; return(result); } catch (Exception ex) { throw; } finally { System.Runtime.InteropServices.Marshal.ReleaseComObject(UDO); } }
internal static void removeUDO(UserObjectsMD uo, string name, SAPbouiCOM.Application app, SAPbobsCOM.Company company) { int ret; string errMsg; if (uo.GetByKey(name)) { ret = uo.Remove(); if (ret != 0) { company.GetLastError(out ret, out errMsg); app.SetStatusBarMessage(string.Format("Error removing object {0}", name), SAPbouiCOM.BoMessageTime.bmt_Short, true); throw new Exception(errMsg); } app.StatusBar.SetSystemMessage(string.Format("Removed field {0}", name), SAPbouiCOM.BoMessageTime.bmt_Short, SAPbouiCOM.BoStatusBarMessageType.smt_Success); } }