public static void Agregar_UDF(string Name, string Description, SAPbobsCOM.BoFieldTypes Type, int Size, int FieldSize, string TableName)
        {
            try
            {
                SAPbobsCOM.UserFieldsMD oUserFieldsMD = (SAPbobsCOM.UserFieldsMD)oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oUserFields);

                oUserFieldsMD.Name        = Name;
                oUserFieldsMD.Description = Description;
                oUserFieldsMD.Type        = Type;
                oUserFieldsMD.Size        = Size;
                oUserFieldsMD.EditSize    = FieldSize;
                oUserFieldsMD.TableName   = TableName;


                // Adding the Field to the Table
                try
                {
                    int lRetCode = oUserFieldsMD.Add();
                }
                catch (Exception)
                { }
                finally
                {
                    System.Runtime.InteropServices.Marshal.ReleaseComObject(oUserFieldsMD);
                    oUserFieldsMD = null;
                    GC.Collect();
                }
            }
            catch (Exception)
            {
            }
        }
Beispiel #2
0
        /// <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
            {
            }
        }
 /// <summary>
 /// A method for adding new field to B1 table
 /// </summary>
 /// <param name="name">Field Name</param>
 /// <param name="description">Field description</param>
 /// <param name="tableName">Table the field will be added to</param>
 /// <param name="fieldType">Field Type</param>
 /// <param name="size">Field size in the database</param>
 /// <param name="mandatory">bool: if the value is mandatory to be filled</param>
 public void AddField(string name, string description, string tableName, SAPbobsCOM.BoFieldTypes fieldType, SAPbobsCOM.BoYesNoEnum mandatory, bool addedToUDT)
 {
     AddField(name, description, tableName, fieldType, null, mandatory, 0, addedToUDT);
 }
 /// <summary>
 /// A method for adding new field to B1 table
 /// </summary>
 /// <param name="name">Field Name</param>
 /// <param name="description">Field description</param>
 /// <param name="tableName">Table the field will be added to</param>
 /// <param name="fieldType">Field Type</param>
 /// <param name="size">Field size in the database</param>
 /// <param name="mandatory">bool: if the value is mandatory to be filled</param>
 /// <param name="subType"></param>
 /// <param name="addedToUDT">If this field will be added to system table or User defined table</param>
 public void AddField(string name, string description, string tableName, SAPbobsCOM.BoFieldTypes fieldType, Nullable <int> size, SAPbobsCOM.BoYesNoEnum mandatory, SAPbobsCOM.BoFldSubTypes subType, bool addedToUDT)
 {
     AddField(name, description, tableName, fieldType, size, mandatory, subType, addedToUDT, null);
 }
        /// <summary>
        /// A method for adding new field to B1 table
        /// </summary>
        /// <param name="name">Field Name</param>
        /// <param name="description">Field description</param>
        /// <param name="tableName">Table the field will be added to</param>
        /// <param name="fieldType">Field Type</param>
        /// <param name="size">Field size in the database</param>
        /// <param name="subType"></param>
        /// <param name="mandatory"></param>
        /// <param name="addedToUDT">If this field will be added to system table or User defined table</param>
        /// <param name="valiedValue">The default selected value</param>
        /// <param name="validValues">Add the values seperated by comma "," for value and description ex:(Value,Description)</param>
        public void AddField(string name, string description, string tableName, SAPbobsCOM.BoFieldTypes fieldType, Nullable <int> size, SAPbobsCOM.BoYesNoEnum mandatory, SAPbobsCOM.BoFldSubTypes subType, bool addedToUDT, string validValue, params string[] validValues)
        {
            var objUserFieldMD = B1Company.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oUserFields) as SAPbobsCOM.UserFieldsMD;

            try
            {
                if (addedToUDT)
                {
                    tableName = string.Format("@{0}", tableName);
                }
                if (!IsFieldExists(name, tableName))
                {
                    objUserFieldMD.TableName   = tableName;
                    objUserFieldMD.Name        = name;
                    objUserFieldMD.Description = description;
                    objUserFieldMD.Type        = fieldType;
                    objUserFieldMD.Mandatory   = mandatory;

                    if (size == null || size <= 0)
                    {
                        size = 50;
                    }

                    if (fieldType != SAPbobsCOM.BoFieldTypes.db_Numeric)
                    {
                        objUserFieldMD.Size = (int)size;
                    }
                    else
                    {
                        objUserFieldMD.EditSize = 10;
                    }

                    if (fieldType == BoFieldTypes.db_Float && subType == BoFldSubTypes.st_None)
                    {
                        objUserFieldMD.SubType = BoFldSubTypes.st_Quantity;
                    }
                    else
                    {
                        objUserFieldMD.SubType = subType;
                    }

                    if (validValue != null)
                    {
                        objUserFieldMD.DefaultValue = validValue;
                    }

                    if (validValues != null)
                    {
                        foreach (string s in validValues)
                        {
                            var valuesAttributes = s.Split(',');
                            if (valuesAttributes.Length == 2)
                            {
                                objUserFieldMD.ValidValues.Description = valuesAttributes[1];
                            }
                            objUserFieldMD.ValidValues.Value = valuesAttributes[0];
                            objUserFieldMD.ValidValues.Add();
                        }
                    }

                    if (objUserFieldMD.Add() != 0)
                    {
                        var test = _oCompany.GetLastErrorDescription();
                    }
                }
            }
            catch (Exception ex)
            {
            }
            finally
            {
                objUserFieldMD.ReleaseObject();
            }
        }
        public void AddField(string TableName, string FieldName, string FieldDescription, SAPbobsCOM.BoFieldTypes FieldType, SAPbobsCOM.BoFldSubTypes FieldSubType, Int32 FieldSize)
        {
            var oUserFieldsMD = (SAPbobsCOM.UserFieldsMD) this.sapCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oUserFields);

            oUserFieldsMD.TableName   = TableName;
            oUserFieldsMD.Name        = FieldName;
            oUserFieldsMD.Description = FieldDescription;
            oUserFieldsMD.Type        = FieldType;
            oUserFieldsMD.SubType     = FieldSubType;
            if (System.Convert.ToInt32(FieldSize) > 0)
            {
                oUserFieldsMD.EditSize = System.Convert.ToInt32(FieldSize);
            }

            var lRetCode = oUserFieldsMD.Add();

            oUserFieldsMD = null /* TODO Change to default(_) if this is not a reference type */;
            GC.Collect();
            if (lRetCode != 0)
            {
                var error = this.sapCompany.GetLastErrorDescription();
                if (error != "")
                {
                    //Console.WriteLine($"Error Adding UDF {TableName} {FieldName} : {error}");
                }
            }
            //else
            //Console.WriteLine($"Table:  {TableName} successfully added column: { FieldName}");
        }
Beispiel #7
0
        public bool AddColumns(string TableName, string Name, string Description, SAPbobsCOM.BoFieldTypes Type, int Size = 0, SAPbobsCOM.BoFldSubTypes SubType = SAPbobsCOM.BoFldSubTypes.st_None, string LinkedTable = "", string[,] LOV = null, string DefV = "")
        {
            bool outResult = false;

            try
            {
                SAPbobsCOM.UserFieldsMD v_UserField = default(SAPbobsCOM.UserFieldsMD);

                if (TableName.StartsWith("@") == true)
                {
                    if (!ColumnExists(TableName, Name))
                    {
                        v_UserField           = (SAPbobsCOM.UserFieldsMD)oDiCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oUserFields);
                        v_UserField.TableName = TableName;
                        v_UserField.Name      = Name;
                        if (!string.IsNullOrEmpty(DefV))
                        {
                            v_UserField.DefaultValue = DefV;
                        }

                        if (LOV == null)
                        {
                        }
                        else
                        {
                            for (int k = 0; k <= LOV.Length - 1; k++)
                            {
                                v_UserField.ValidValues.Value = LOV[k, 0];
                                v_UserField.ValidValues.Value = LOV[k, 1];
                                v_UserField.ValidValues.Add();
                            }
                        }

                        v_UserField.Description = Description;
                        v_UserField.Type        = Type;
                        if (Type != SAPbobsCOM.BoFieldTypes.db_Date)
                        {
                            if (Size != 0)
                            {
                                v_UserField.Size     = Convert.ToInt16(Size);
                                v_UserField.EditSize = Convert.ToInt16(Size);
                            }
                        }
                        if (SubType != SAPbobsCOM.BoFldSubTypes.st_None)
                        {
                            v_UserField.SubType = SubType;
                        }
                        if (!string.IsNullOrEmpty(LinkedTable))
                        {
                            v_UserField.LinkedTable = LinkedTable;
                        }
                        v_RetVal = v_UserField.Add();
                        if (v_RetVal != 0)
                        {
                            oDiCompany.GetLastError(out v_ErrCode, out v_ErrMsg);
                            Program.objHrmsUI.oApplication.SetStatusBarMessage("Failed to add UserField " + Description + " - " + v_ErrCode + " " + v_ErrMsg);
                            return(false);
                        }
                        else
                        {
                            Program.objHrmsUI.oApplication.SetStatusBarMessage("[@" + TableName + "] - " + Description + " added successfully!!!");
                            outResult = true;
                            return(true);
                        }
                        System.Runtime.InteropServices.Marshal.ReleaseComObject(v_UserField);
                        v_UserField = null;
                    }
                    else
                    {
                        return(false);
                    }
                }


                if (TableName.StartsWith("@") == false)
                {
                    if (!UDFExists(TableName, Name))
                    {
                        v_UserField           = (SAPbobsCOM.UserFieldsMD)oDiCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oUserFields);
                        v_UserField.TableName = TableName;
                        v_UserField.Name      = Name;
                        if (!string.IsNullOrEmpty(DefV))
                        {
                            v_UserField.DefaultValue = DefV;
                        }

                        if (LOV == null)
                        {
                        }
                        else
                        {
                            for (int k = 0; k <= LOV.Length / 2 - 1; k++)
                            {
                                v_UserField.ValidValues.Value       = LOV[k, 0];
                                v_UserField.ValidValues.Description = LOV[k, 1];
                                v_UserField.ValidValues.Add();
                            }
                        }
                        v_UserField.Description = Description;
                        v_UserField.Type        = Type;
                        if (Type != SAPbobsCOM.BoFieldTypes.db_Date)
                        {
                            if (Size != 0)
                            {
                                v_UserField.Size     = Size;
                                v_UserField.EditSize = Size;
                            }
                        }
                        if (SubType != SAPbobsCOM.BoFldSubTypes.st_None)
                        {
                            v_UserField.SubType = SubType;
                        }
                        if (!string.IsNullOrEmpty(LinkedTable))
                        {
                            v_UserField.LinkedTable = LinkedTable;
                        }
                        v_RetVal = v_UserField.Add();
                        if (v_RetVal != 0)
                        {
                            oDiCompany.GetLastError(out v_ErrCode, out v_ErrMsg);
                            Program.objHrmsUI.oApplication.SetStatusBarMessage("Failed to add UserField " + Description + " - " + v_ErrCode + " " + v_ErrMsg);
                            return(false);
                        }
                        else
                        {
                            Program.objHrmsUI.oApplication.SetStatusBarMessage("Udf Created " + Description, SAPbouiCOM.BoMessageTime.bmt_Short, false);

                            outResult = true;
                            return(true);
                        }
                        System.Runtime.InteropServices.Marshal.ReleaseComObject(v_UserField);
                        v_UserField = null;
                    }
                    else
                    {
                        return(false);
                    }
                }
            }
            catch (Exception ex)
            {
                throw new Exception("Failed to Add Columns : " + ex.Message);
            }
            finally
            {
            }
            return(outResult);
        }
        public void CreateUserField(string TableName, string FieldName, string FieldDescription, SAPbobsCOM.BoFieldTypes oType, SAPbobsCOM.BoFldSubTypes oSubType, int FieldSize, bool MandatoryYN = false, string DefaultValue = "")
        {
            if (FieldDescription.Length > 30)
            {
                FieldDescription = FieldDescription.Substring(0, 30);
            }
            if (FindColumns != null)
            {
                FindColumns.Fields.Add(FieldName, FieldDescription);
            }

            Log.AppendFormat(Environment.NewLine + "Criação/Atualização do Campo {0}.{1}: ", TableName, FieldName);
            SAPbobsCOM.UserFieldsMD oUserFieldsMD = ((SAPbobsCOM.UserFieldsMD)(SBOApp.Company.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oUserFields)));
            bool bUpdate;

            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)
            {
                bUpdate = oUserFieldsMD.GetByKey(TableName, Convert.ToInt32(FieldId));
            }
            else
            {
                bUpdate = false;
            }

            oUserFieldsMD.TableName   = TableName;
            oUserFieldsMD.Name        = FieldName;
            oUserFieldsMD.Description = FieldDescription;
            oUserFieldsMD.Type        = oType;
            oUserFieldsMD.SubType     = oSubType;
            oUserFieldsMD.Mandatory   = GetSapBoolean(MandatoryYN);
            if (!String.IsNullOrEmpty(DefaultValue))
            {
                oUserFieldsMD.DefaultValue = DefaultValue;
            }

            if (FieldSize > 0)
            {
                oUserFieldsMD.EditSize = FieldSize;
            }

            if (bUpdate)
            {
                //CodErro = oUserFieldsMD.Update();
                CodErro = 0;
            }
            else
            {
                CodErro = oUserFieldsMD.Add();
            }
            this.ValidateAction();

            Marshal.ReleaseComObject(oUserFieldsMD);
            oUserFieldsMD = null;
        }