internal static int DeleteCampo(string nomeTabela, string nomeCampo) { int intRetCode = -1; SAPbobsCOM.UserFieldsMD objUserFieldsMD = null; //instancia objeto para criar campo objUserFieldsMD = (UserFieldsMD)B1AppDomain.Company.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oUserFields); if (objUserFieldsMD.GetByKey(nomeTabela, idCampo(nomeCampo, nomeTabela))) { intRetCode = objUserFieldsMD.Remove(); //verifica e retorna erro if (intRetCode != 0 && intRetCode != -2035) { B1Exception.throwException("MetaData.CriaCampos: ", new Exception(B1AppDomain.Company.GetLastErrorDescription())); } } //mata objeto para reutilizar senao trava Marshal.FinalReleaseComObject(objUserFieldsMD); objUserFieldsMD = null; GC.Collect(); return(0); }
public void RemoveUserField(string TableName, string FieldName) { Log.AppendFormat("Remoção do Campo {0}.{1}: ", TableName, FieldName); SAPbobsCOM.UserFieldsMD oUserFieldsMD = ((SAPbobsCOM.UserFieldsMD)(SBOApp.Company.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oUserFields))); string Sql = " SELECT FieldId FROM CUFD WHERE TableID = '{0}' AND AliasID = '{1}' "; Sql = String.Format(Sql, TableName, FieldName); string FieldId = QueryForValue(Sql); if (FieldId != null) { if (oUserFieldsMD.GetByKey(TableName, Convert.ToInt32(FieldId))) { CodErro = oUserFieldsMD.Remove(); this.ValidateAction(); } } else { MsgErro = ""; CodErro = 0; Log.AppendLine(" Tabela/Campo não encontrado "); } Marshal.ReleaseComObject(oUserFieldsMD); oUserFieldsMD = null; }