public bool registerUDO(string UDOCode, string UDOName, SAPbobsCOM.BoUDOObjType UDOType, string[,] findAliasNDescription, string parentTableName, string childTable1 = "", string childTable2 = "", string childTable3 = "", string childTable4 = "", SAPbobsCOM.BoYesNoEnum LogOption = SAPbobsCOM.BoYesNoEnum.tNO, string MenuId = "", int parrentId = 0) { bool functionReturnValue = false; try { bool actionSuccess = false; SAPbobsCOM.UserObjectsMD v_udoMD = default(SAPbobsCOM.UserObjectsMD); functionReturnValue = false; v_udoMD = (SAPbobsCOM.UserObjectsMD)oDiCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oUserObjectsMD); v_udoMD.CanCancel = SAPbobsCOM.BoYesNoEnum.tYES; v_udoMD.CanClose = SAPbobsCOM.BoYesNoEnum.tYES; v_udoMD.CanCreateDefaultForm = SAPbobsCOM.BoYesNoEnum.tNO; v_udoMD.CanDelete = SAPbobsCOM.BoYesNoEnum.tYES; v_udoMD.CanFind = SAPbobsCOM.BoYesNoEnum.tYES; v_udoMD.CanLog = SAPbobsCOM.BoYesNoEnum.tNO; v_udoMD.CanYearTransfer = SAPbobsCOM.BoYesNoEnum.tYES; v_udoMD.ManageSeries = SAPbobsCOM.BoYesNoEnum.tYES; if (!string.IsNullOrEmpty(MenuId)) { v_udoMD.CanCreateDefaultForm = SAPbobsCOM.BoYesNoEnum.tYES; //v_udoMD.RebuildEnhancedForm = SAPbobsCOM.BoYesNoEnum.tYES v_udoMD.MenuItem = SAPbobsCOM.BoYesNoEnum.tYES; v_udoMD.MenuUID = MenuId; v_udoMD.MenuCaption = UDOName; // v_udoMD.EnableEnhancedForm = SAPbobsCOM.BoYesNoEnum.tYES v_udoMD.FatherMenuID = parrentId; v_udoMD.Position = 2; } v_udoMD.Code = UDOCode; v_udoMD.Name = UDOName; v_udoMD.TableName = parentTableName; if (LogOption == SAPbobsCOM.BoYesNoEnum.tYES) { v_udoMD.CanLog = SAPbobsCOM.BoYesNoEnum.tYES; v_udoMD.LogTableName = "A" + parentTableName; } v_udoMD.ObjectType = UDOType; for (Int16 i = 0; i <= findAliasNDescription.GetLength(0) - 1; i++) { if (i > 0) { v_udoMD.FindColumns.Add(); } v_udoMD.FindColumns.ColumnAlias = findAliasNDescription[i, 0]; v_udoMD.FindColumns.ColumnDescription = findAliasNDescription[i, 1]; } if (!string.IsNullOrEmpty(childTable1)) { v_udoMD.ChildTables.TableName = childTable1; v_udoMD.ChildTables.Add(); } if (!string.IsNullOrEmpty(childTable2)) { v_udoMD.ChildTables.TableName = childTable2; v_udoMD.ChildTables.Add(); } if (!string.IsNullOrEmpty(childTable3)) { v_udoMD.ChildTables.TableName = childTable3; v_udoMD.ChildTables.Add(); } if (!string.IsNullOrEmpty(childTable4)) { v_udoMD.ChildTables.TableName = childTable4; v_udoMD.ChildTables.Add(); } if (v_udoMD.Add() == 0) { functionReturnValue = true; } else { throw new Exception("Failed to Register UDO >" + UDOCode + ">" + UDOName + " >" + oDiCompany.GetLastErrorDescription()); functionReturnValue = false; } System.Runtime.InteropServices.Marshal.ReleaseComObject(v_udoMD); v_udoMD = null; GC.Collect(); } catch (Exception ex) { throw new Exception("Failed to UDO Register : " + ex.Message); } finally { } return(functionReturnValue); }
/// <summary> /// Funcion que permite crear los campos sus respectivas tablas /// </summary> /// <param name="nombretabla">Se especifica la tabla del campo a crear</param> /// <param name="nombrecampo">Se especifica el campo a crear</param> /// <param name="descripcion">Se especifica la descripción del campo a crear</param> /// <param name="longitud">Se especifica la longitud del campo a crear</param> /// <param name="tipo">Se especifica el tipo de dato del campo </param> /// <param name="subtipo">Se especifica el subtipo de dato del campo. Solo apliaca para tipo de datos Float</param> public static void CreaCampoMD(String nombretabla, String nombrecampo, String descripcion, int longitud, SAPbobsCOM.BoFieldTypes tipo, SAPbobsCOM.BoFldSubTypes subtipo, SAPbobsCOM.BoYesNoEnum mandatory, String defaultValue, ValorValido[] valores, String linkTable) { SAPbobsCOM.UserFieldsMD oUserFieldsMD; try { oUserFieldsMD = (SAPbobsCOM.UserFieldsMD)Conexion_SBO.m_oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oUserFields); oUserFieldsMD.TableName = nombretabla; //Se obtiene el nombre de la tabla de usario oUserFieldsMD.Name = nombrecampo; //Se asigna el nombre del campo de usuario oUserFieldsMD.Description = descripcion; //Se asigna una descripcion al campo de usuario oUserFieldsMD.Mandatory = mandatory; if (longitud > 0) { oUserFieldsMD.EditSize = longitud; //Se define una longitud al campo de usuario } oUserFieldsMD.Type = tipo; //Se asigna el tipo de dato al campo de usuario oUserFieldsMD.SubType = subtipo; if (defaultValue != null) { oUserFieldsMD.DefaultValue = defaultValue; } if (valores != null && valores.Length > 0) { foreach (ValorValido vv in valores) { oUserFieldsMD.ValidValues.Value = vv.valor; oUserFieldsMD.ValidValues.Description = vv.descripcion; oUserFieldsMD.ValidValues.Add(); } } oUserFieldsMD.LinkedTable = linkTable; ret = oUserFieldsMD.Add(); //Se agrega el campo de usuario if (ret != 0 && ret != -2035) //&& ret != -5002) { Conexion_SBO.m_oCompany.GetLastError(out ret, out errMsg); Msj_Appl.Errores(8, "CargarTabla -> " + errMsg); } Comunes.FuncionesComunes.LiberarObjetoGenerico(oUserFieldsMD); } catch { } }