コード例 #1
0
 // Floud API
 public UserDefinedTable CreateUDF(string fieldName, string fieldDescription,
                                   BoFieldTypes type = BoFieldTypes.db_Alpha, int size = 50, BoFldSubTypes subType = BoFldSubTypes.st_None,
                                   IDictionary <string, string> validValues = null, string defaultValue = null)
 {
     CreateField(TableName, fieldName, fieldDescription, type, size, subType, validValues, defaultValue);
     return(this);
 }
コード例 #2
0
 /// <summary>
 /// Create UDF on UDT
 /// </summary>
 /// <param name="tableName">UDT Name without @</param>
 /// <param name="fieldName">Field name</param>
 /// <param name="fieldDescription"></param>
 /// <param name="type">BoFieldTypes type</param>
 /// <param name="size"></param>
 /// <param name="subType"></param>
 /// <param name="validValues"></param>
 /// <param name="defaultValue"></param>
 /// <param name="linkedTable"> use '@' with usertables</param>
 /// <param name="editSize"></param>
 /// <returns></returns>
 public static void CreateFieldOnUDT(string tableName, string fieldName, string fieldDescription,
                                     BoFieldTypes type = BoFieldTypes.db_Alpha, int size = 50, BoFldSubTypes subType = BoFldSubTypes.st_None,
                                     IDictionary <string, string> validValues = null, string defaultValue = null,
                                     string linkedTable = null, int editSize = 0)
 {
     tableName = "@" + tableName;
     CreateField(tableName, fieldName, fieldDescription, type, size, subType, validValues, defaultValue, linkedTable, editSize);
 }
コード例 #3
0
        public Int32 CriaCampo(String Nome, string descricao, int tamanho, BoFieldTypes fldtype, BoFldSubTypes fldsubtype, string tabela, string tabelalink = "", Boolean validvalue = false, string ValidValue1 = "", string ValidDscr1 = "", string ValidValue2 = "", string ValidDscr2 = "", string ValidValue3 = "", string ValidDscr3 = "", string ValidValue4 = "", string ValidDscr4 = "", string ValidValue5 = "", string ValidDscr5 = "")
        {
            Int32 i = 0;

            try
            {
                UserFieldsMD oUserFieldsMD;
                oUserFieldsMD             = (UserFieldsMD)ocompany.GetBusinessObject(BoObjectTypes.oUserFields);
                oUserFieldsMD.Name        = Nome;
                oUserFieldsMD.Type        = fldtype;
                oUserFieldsMD.Description = descricao;
                oUserFieldsMD.Size        = tamanho;
                oUserFieldsMD.SubType     = fldsubtype;
                oUserFieldsMD.TableName   = tabela;
                oUserFieldsMD.LinkedTable = tabelalink;

                if (validvalue == true)
                {
                    oUserFieldsMD.ValidValues.Value       = ValidValue1;
                    oUserFieldsMD.ValidValues.Description = ValidDscr1;
                    oUserFieldsMD.ValidValues.Add();

                    oUserFieldsMD.ValidValues.Value       = ValidValue2;
                    oUserFieldsMD.ValidValues.Description = ValidDscr2;
                    oUserFieldsMD.ValidValues.Add();

                    oUserFieldsMD.ValidValues.Value       = ValidValue3;
                    oUserFieldsMD.ValidValues.Description = ValidDscr3;
                    oUserFieldsMD.ValidValues.Add();

                    if (ValidValue4 != "")
                    {
                        oUserFieldsMD.ValidValues.Value       = ValidValue4;
                        oUserFieldsMD.ValidValues.Description = ValidDscr4;
                        oUserFieldsMD.ValidValues.Add();
                    }

                    if (ValidValue5 != "")
                    {
                        oUserFieldsMD.ValidValues.Value       = ValidValue5;
                        oUserFieldsMD.ValidValues.Description = ValidDscr5;
                        oUserFieldsMD.ValidValues.Add();
                    }
                }

                i = oUserFieldsMD.Add();

                //if (i != 0)
                //    throw new Exception(ocompany.GetLastErrorDescription());

                return(i);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message.ToString());
                return(i);
            }
        }
コード例 #4
0
        /// <summary>
        /// Create field on table
        /// </summary>
        /// <param name="tableName"></param>
        /// <param name="fieldName"></param>
        /// <param name="fieldDescription"></param>
        /// <param name="type"></param>
        /// <param name="size"></param>
        /// <param name="subType"></param>
        /// <param name="validValues">Dropdown values</param>
        /// <param name="defaultValue"></param>
        /// <returns></returns>
        public static void CreateField(string tableName, string fieldName, string fieldDescription,
                                       BoFieldTypes type = BoFieldTypes.db_Alpha, int size = 50, BoFldSubTypes subType = BoFldSubTypes.st_None,
                                       IDictionary <string, string> validValues = null, string defaultValue = null)
        {
            UserFieldsMD userFieldsMd = null;

            try
            {
                userFieldsMd = SboApp.Company.GetBusinessObject(BoObjectTypes.oUserFields) as UserFieldsMD;

                if (userFieldsMd == null)
                {
                    throw new NullReferenceException("Failed to get UserFieldsMD object");
                }

                var fieldId = GetFieldId(tableName, fieldName);
                if (fieldId != -1)
                {
                    return;
                }

                userFieldsMd.TableName    = tableName;
                userFieldsMd.Name         = fieldName;
                userFieldsMd.Description  = fieldDescription;
                userFieldsMd.Type         = type;
                userFieldsMd.SubType      = subType;
                userFieldsMd.Size         = size;
                userFieldsMd.EditSize     = size;
                userFieldsMd.DefaultValue = defaultValue;

                if (validValues != null)
                {
                    foreach (var validValue in validValues)
                    {
                        userFieldsMd.ValidValues.Value       = validValue.Key;
                        userFieldsMd.ValidValues.Description = validValue.Value;
                        userFieldsMd.ValidValues.Add();
                    }
                }

                ErrorHelper.HandleErrorWithException(userFieldsMd.Add(), "Could not create field");
            }
            catch (Exception ex)
            {
                SboApp.Logger.Error($"Create Field {tableName}.{fieldName} Error: {ex.Message}", ex);
                throw;
            }
            finally
            {
                if (userFieldsMd != null)
                {
                    System.Runtime.InteropServices.Marshal.ReleaseComObject(userFieldsMd);
                }
            }
        }
コード例 #5
0
 /// <summary>
 /// Builds a B1DbColumn from its main members information.
 /// </summary>
 /// <param name="table">Name of the parent table that this field refers to.</param>
 /// <param name="name">Field name.</param>
 /// <param name="description">Description of the field.</param>
 /// <param name="type">Data type, which describes the nature of the data, of the specified field.</param>
 /// <param name="subtype">Data subtype, which describes the nature of the type, of the specified field.</param>
 /// <param name="size">Size of the field.</param>
 /// <param name="validValues">List of valid values for the specified user defined field.</param>
 /// <param name="defaultValue">Default value of the field.</param>
 public B1DbColumn(
     string table,
     string name,
     string description,
     BoFieldTypes type,
     int size,
     B1DbValidValue[] validValues,
     int defaultValue) : this(table, name, description, type,
                              BoFldSubTypes.st_None, size, validValues, defaultValue)
 {
 }
コード例 #6
0
        /////////////////////////////////////////////////////////////////////////////

        /// <summary>
        /// Builds a B1DbColumn from a Fields collection.
        /// </summary>
        /// <param name="fields">Collection of Field objects.</param>
        public B1DbColumn(
            Fields fields)
        {
            this.Name = (string)fields.Item(0).Value;
            this.Size = (int)fields.Item(1).Value;
            this.Type = (BoFieldTypes)fields.Item(2).Value;
            //Not given by SBObob.GetTableFieldList()  this.SubType			= (BoFldSubTypes)fields.Item(3).Value;
            this.IsNullable     = (((string)fields.Item(3).Value).Equals("0"))?false:true;
            this.HasValidValues = ((int)fields.Item(4).Value == 0)?false:true;
            this.LinkedTo       = (string)fields.Item(5).Value;
            this.Description    = (string)fields.Item(6).Value;
        }
コード例 #7
0
ファイル: FieldAttribute.cs プロジェクト: xavl369/UGRS
        /// <summary> Constructor. </summary>
        /// <remarks> Ranaya, 02/05/2017. </remarks>
        /// <param name="pIntPriority">    The int priority. </param>
        /// <param name="pStrName">        Name of the string. </param>
        /// <param name="pStrDescription"> Information describing the string. </param>
        /// <param name="pEnmType">        Type of the enm. </param>
        /// <param name="pEnmSubType">     Type of the enm sub. </param>
        /// <param name="pIntSize">        Size of the int. </param>
        /// <param name="pIntSubSize">     Size of the int sub. </param>

        public FieldAttribute(int pIntPriority, string pStrName, string pStrDescription, BoFieldTypes pEnmType, BoFldSubTypes pEnmSubType, int pIntSize, int pIntSubSize)
        {
            mIntPriority    = pIntPriority;
            mStrName        = pStrName;
            mStrDescription = pStrDescription;
            mEnmType        = pEnmType;
            mEnmSubType     = pEnmSubType;
            mIntSize        = pIntSize;
            mIntSubSize     = pIntSubSize;
            mStrLinkedTable = "";
            mStrLinkedUDO   = "";
        }
コード例 #8
0
ファイル: FieldAttribute.cs プロジェクト: xavl369/UGRS
        /// <summary> Constructor. </summary>
        /// <remarks> Ranaya, 02/05/2017. </remarks>
        /// <param name="pStrName">        Name of the string. </param>
        /// <param name="pStrDescription"> Information describing the string. </param>

        public FieldAttribute(string pStrName, string pStrDescription)
        {
            mIntPriority    = 0;
            mStrName        = pStrName;
            mStrDescription = pStrDescription;
            mEnmType        = BoFieldTypes.db_Alpha;
            mEnmSubType     = BoFldSubTypes.st_None;
            mIntSize        = 11;
            mIntSubSize     = 10;
            mStrLinkedTable = "";
            mStrLinkedUDO   = "";
        }
コード例 #9
0
        public AlterTableCommand Column(string columnName, string columnDescription, BoFieldTypes dbType, Action <CreateColumnCommand> column = null)
        {
            var command = new CreateColumnCommand(Name, columnName, columnDescription);

            command.WithType(dbType);
            if (column != null)
            {
                column(command);
            }
            TableCommands.Add(command);
            NeedIndex(command);
            return(this);
        }
コード例 #10
0
 public static void AddUserFieldIfNotExist(string tableName, string name, string description,
                                           BoFieldTypes type = BoFieldTypes.db_Alpha, BoFldSubTypes subType    = BoFldSubTypes.st_None, int?editSize = null,
                                           Dictionary <string, string> validValues = null, string defaultValue = null, string linkedUdo              = null, bool?mandatory = false)
 {
     if (UserFieldExists(tableName, name))
     {
         Logger.Info("UserField {1} found in table {0}, skipping creation.", tableName, name);
     }
     else
     {
         AddUserField(tableName, name, description, type, subType, editSize, validValues, defaultValue, linkedUdo, mandatory);
     }
 }
コード例 #11
0
 public UserDefiniedField(string tableName, string fieldName, string fieldDescription,
                          BoFieldTypes type = BoFieldTypes.db_Alpha, int size = 50, BoFldSubTypes subType = BoFldSubTypes.st_None,
                          IDictionary <string, string> validValues = null, string defaultValue = null)
 {
     TableName        = tableName;
     FieldName        = fieldName;
     FieldDescription = fieldDescription;
     Type             = type;
     Size             = size;
     SubType          = subType;
     ValidValues      = validValues;
     DefaultValue     = defaultValue;
 }
コード例 #12
0
ファイル: BD.cs プロジェクト: szarblewskiout/SapFramework
        internal static int AddCampo(string nomeCampo, string nomeTabela, BoFieldTypes tipoCampo, BoFldSubTypes subTipo, int tamanho, BoYesNoEnum mandatory, string descricao, string valorPadrao, List <ValoresValidos> valoresValidos, Tipos.TipoTabela tipoTabela, string nomeUdoReferencia = "", string nomeTabelaReferencia = "")
        {
            int intRetCode = -1;

            SAPbobsCOM.UserFieldsMD objUserFieldsMD = null;

            //instancia objeto para criar campo
            objUserFieldsMD = (UserFieldsMD)B1AppDomain.Company.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oUserFields);

            //seta propriedades
            objUserFieldsMD.Name        = nomeCampo;
            objUserFieldsMD.TableName   = tipoTabela == Tipos.TipoTabela.Usuario ? "@" + nomeTabela : nomeTabela;
            objUserFieldsMD.Type        = tipoCampo;
            objUserFieldsMD.SubType     = subTipo;
            objUserFieldsMD.EditSize    = tamanho;
            objUserFieldsMD.Mandatory   = (BoYesNoEnum)mandatory;
            objUserFieldsMD.Description = descricao;
            objUserFieldsMD.AddValidValues(valoresValidos);
            if (!string.IsNullOrEmpty(nomeUdoReferencia))
            {
                objUserFieldsMD.LinkedUDO = nomeUdoReferencia;
            }

            if (!string.IsNullOrEmpty(nomeTabelaReferencia))
            {
                objUserFieldsMD.LinkedTable = nomeTabelaReferencia;
            }


            objUserFieldsMD.DefaultValue = valorPadrao;
            //adiciona campo
            intRetCode = objUserFieldsMD.Add();
            //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(intRetCode);
        }
コード例 #13
0
 public B1DbColumn(
     string table,
     string name,
     string description,
     BoFieldTypes type,
     BoFldSubTypes subtype,
     int size,
     bool mandatory,
     B1DbValidValue[] validValues,
     int defaultValue)
 {
     this.Table        = table;
     this.Name         = name;
     this.Description  = description;
     this.Type         = type;
     this.SubType      = subtype;
     this.Size         = size;
     this.IsNullable   = mandatory;
     this.ValidValues  = validValues;
     this.DefaultValue = defaultValue;
 }
コード例 #14
0
        /// <summary>
        /// Builds a B1DbColumn from a Fields collection.
        /// </summary>
        /// <param name="field">Collection of Field objects.</param>
        public B1DbColumn(
            UserFieldsMD field)
        {
            this.Table      = field.TableName;
            this.Name       = field.Name;
            this.Size       = field.Size;
            this.Type       = field.Type;
            this.SubType    = field.SubType;
            this.IsNullable = (field.Mandatory == BoYesNoEnum.tYES? false: true);
            // Count = 0 => Value and Description empty
            if (field.ValidValues.Count == 0)
            {
                this.HasValidValues = false;
            }
            else
            {
                field.ValidValues.SetCurrentLine(0);
                this.HasValidValues = (field.ValidValues.Value == ""? false: true);
            }

            this.LinkedTo    = field.LinkedTable;
            this.Description = field.Description;
        }
コード例 #15
0
 public CreateColumnCommand WithType(BoFieldTypes fieldType)
 {
     ColumnType = fieldType;
     return(this);
 }
コード例 #16
0
        //Cria campo de usuario
        public void CreateField(string tableName, string tableField, string fieldDescr,
                                BoFieldTypes type, int size, BoFldSubTypes subType = SAPbobsCOM.BoFldSubTypes.st_None,
                                string defaultValue = "", string[] validValues = null, BoYesNoEnum mandatory = BoYesNoEnum.tNO)
        {
            int          err           = 0;
            string       errMsg        = "";
            UserFieldsMD oUserFieldsMD = null;

            try
            {
                bool exist = UserFieldsExist(tableName, tableField);
                oUserFieldsMD = ((UserFieldsMD)(oConnection.Company.GetBusinessObject(BoObjectTypes.oUserFields)));


                //se o campo nao existe, cria
                if (!exist)
                {
                    if (tableField.Length >= 20)
                    {
                        throw new Exception("Nome de campo maior que 19 caracteres: " + tableField + " Len: " + tableField.Length);
                    }
                    if (fieldDescr.Length >= 30)
                    {
                        throw new Exception("Descrição de campo maior que 29 caracteres: " + fieldDescr + " Len: " + fieldDescr.Length);
                    }
                    //Adiciona o campo
                    oUserFieldsMD.TableName    = tableName;//.Length >= 20 ? tableName.Substring(0, 20) : tableName;
                    oUserFieldsMD.Name         = tableField;
                    oUserFieldsMD.Description  = fieldDescr;
                    oUserFieldsMD.Type         = type;
                    oUserFieldsMD.Size         = size;
                    oUserFieldsMD.EditSize     = size;
                    oUserFieldsMD.SubType      = subType;
                    oUserFieldsMD.DefaultValue = defaultValue;
                    oUserFieldsMD.Mandatory    = mandatory;

                    if (validValues != null)
                    {
                        IValidValuesMD vals = oUserFieldsMD.ValidValues;

                        for (int i = 0; i < validValues.Length; i++)
                        {
                            string[] dv = validValues[i].Trim().Split(new char[] { ',', '|', '=' });
                            vals.SetCurrentLine(i);
                            vals.Value       = dv[0];
                            vals.Description = dv[1];
                            vals.Add();
                        }

                        System.Runtime.InteropServices.Marshal.ReleaseComObject(vals);
                        vals = null;
                        System.GC.Collect();
                    }

                    if (oUserFieldsMD.Add() != 0)
                    {
                        oConnection.Company.GetLastError(out err, out errMsg);
                        logMessage = "Erro ao criar Campo de Usuário: '" +
                                     tableField + "' em '" + tableName + "': " + errMsg + " : " + err;
                        logger.log(logMessage, Logger.LogType.ERROR, null, false);
                    }
                    else
                    {
                        //mostra msg
                        logMessage = "Criado campo de Usuário: '" + tableField + "' em '" + tableName;
                        logger.log(logMessage, Logger.LogType.INFO);
                    }
                    System.Runtime.InteropServices.Marshal.ReleaseComObject(oUserFieldsMD);
                    oUserFieldsMD = null;
                    System.GC.Collect();
                }
            }
            catch (Exception e)
            {
                oConnection.Company.GetLastError(out err, out errMsg);
                logMessage = "Erro ao criar Campo de Usuário: '"
                             + tableField + "' em '" + tableName + "': " + errMsg + " : " + err;
                logger.log(logMessage, Logger.LogType.ERROR, e);

                //SB1ControlException.SB1ControlException.Save(e);

                if (oUserFieldsMD != null)
                {
                    System.Runtime.InteropServices.Marshal.ReleaseComObject(oUserFieldsMD);
                }
                oUserFieldsMD = null;
                System.GC.Collect();

                if (oUserFieldsMD != null)
                {
                    System.Runtime.InteropServices.Marshal.ReleaseComObject(oUserFieldsMD);
                }
                oUserFieldsMD = null;
                System.GC.Collect();
            }
        }
コード例 #17
0
        public static void AddUserField(string tableName, string name, string description, BoFieldTypes type = BoFieldTypes.db_Alpha, BoFldSubTypes subType = BoFldSubTypes.st_None, int?editSize = null,
                                        Dictionary <string, string> validValues = null, string defaultValue = null, string linkedUdo = null, bool?mandatory = false)
        {
            if (UserFieldExists(tableName, name))
            {
                throw new Exception(string.Format("Userfield {0} already exists in table {1}", name, tableName));
            }

            using (var factory = new SboDisposableBusinessObjectFactory())
            {
                var userFieldsMd = factory.Create <UserFieldsMD>(BoObjectTypes.oUserFields);

                userFieldsMd.TableName   = tableName;
                userFieldsMd.Name        = name;
                userFieldsMd.Description = description;
                userFieldsMd.Type        = type;
                userFieldsMd.SubType     = subType;
                if (!editSize.HasValue)
                {
                    switch (type)
                    {
                    case BoFieldTypes.db_Alpha:
                        editSize = 254;
                        break;

                    case BoFieldTypes.db_Memo:
                        break;

                    case BoFieldTypes.db_Numeric:
                        break;

                    case BoFieldTypes.db_Date:
                        break;

                    case BoFieldTypes.db_Float:
                        break;

                    default:
                        throw new ArgumentOutOfRangeException(nameof(type), type, null);
                    }
                }

                if (!type.Equals(BoFieldTypes.db_Date) && editSize.HasValue)
                {
                    userFieldsMd.EditSize = editSize.Value;
                }
                if (validValues != null)
                {
                    int insertedValues = 0;
                    foreach (string key in validValues.Keys)
                    {
                        userFieldsMd.ValidValues.Value       = key;
                        userFieldsMd.ValidValues.Description = validValues[key];

                        if (insertedValues < validValues.Count - 1)
                        {
                            userFieldsMd.ValidValues.Add();
                        }

                        insertedValues++;
                    }
                }
                if (defaultValue != null)
                {
                    userFieldsMd.DefaultValue = defaultValue;
                }

                if (linkedUdo != null)
                {
                    userFieldsMd.LinkedUDO = linkedUdo;
                }

                userFieldsMd.Mandatory = mandatory.GetValueOrDefault(false) ? BoYesNoEnum.tYES : BoYesNoEnum.tNO;

                Logger.Debug("Adding field {0} to table {1}", name, tableName);
                if (userFieldsMd.Add() != 0)
                {
                    throw new Exception(SboAddon.Instance.Company.GetLastErrorDescription());
                }

                Logger.Info("Added field {0} to table {1}", name, tableName);
            }
        }
コード例 #18
0
 /// <summary>
 /// Initializes a new instance of the <see cref="UserFieldAttribute" /> class.
 /// </summary>
 /// <param name="type">The type.</param>
 /// <param name="subtype">The subtype.</param>
 /// <exception cref="ArgumentException">
 /// Thrown when the size provided for the type is invalid.
 /// <para />
 /// Valid sizes are:
 /// <para />
 /// Alpha [1..254]
 /// <para />
 /// Numeric [1..11]
 /// </exception>
 public UserFieldAttribute(BoFieldTypes type, BoFldSubTypes subtype) : this(type, subtype, 0)
 {
 }
コード例 #19
0
 /// <summary>
 /// Initializes a new instance of the <see cref="UserFieldAttribute" /> class.
 /// </summary>
 /// <param name="type">The type.</param>
 /// <param name="subtype">The subtype.</param>
 /// <param name="size">The size.</param>
 /// <exception cref="System.ArgumentException">
 /// Thrown when the size provided for the type is invalid.
 /// <para />
 /// Valid sizes are:
 /// <para />
 /// Alpha [1..254]
 /// <para />
 /// Numeric [1..11]
 /// </exception>
 public UserFieldAttribute(BoFieldTypes type, BoFldSubTypes subtype, int size)
 {
     Type    = type;
     SubType = subtype;
     Size    = size;
 }
コード例 #20
0
        public static string CreateField(string tablename, string fieldname, string description, BoFieldTypes type, int size, bool isMandatory, bool isSapTable = false, string likedToTAble = "", string defaultValue = "", BoFldSubTypes subType = BoFldSubTypes.st_None)
        {
            // Get a new Recordset object
            Recordset oRecordSet = (Recordset)Company.GetBusinessObject(BoObjectTypes.BoRecordset);
            string    sqlQuery   = $"SELECT T0.TableID, T0.FieldID FROM CUFD T0 WHERE T0.TableID = '@{tablename}' AND T0.AliasID = '{fieldname}'";

            oRecordSet.DoQuery(sqlQuery);
            var updateFlag = oRecordSet.RecordCount == 1;
            var fieldId    = int.Parse(oRecordSet.Fields.Item("FieldID").Value.ToString());

            System.Runtime.InteropServices.Marshal.ReleaseComObject(oRecordSet);

            UserFieldsMD oUfield = (UserFieldsMD)Company.GetBusinessObject(BoObjectTypes.oUserFields);

            if (updateFlag)
            {
                return("");
                //oUfield.GetByKey(tablename, fieldId);
            }
            try
            {
                oUfield.TableName    = tablename;
                oUfield.Name         = fieldname;
                oUfield.Description  = description;
                oUfield.Type         = type;
                oUfield.Mandatory    = isMandatory ? BoYesNoEnum.tYES : BoYesNoEnum.tNO;
                oUfield.DefaultValue = defaultValue;

                if (type == BoFieldTypes.db_Float)
                {
                    oUfield.SubType = subType;
                }

                if (type == BoFieldTypes.db_Alpha || type == BoFieldTypes.db_Numeric)
                {
                    oUfield.EditSize = size;
                }

                oUfield.LinkedTable = likedToTAble;
                int ret = updateFlag ? oUfield.Update() : oUfield.Add();
                if (ret == 0)
                {
                    System.Runtime.InteropServices.Marshal.ReleaseComObject(oUfield);
                    return(string.Empty);
                }
                else
                {
                    System.Runtime.InteropServices.Marshal.ReleaseComObject(oUfield);
                    return(Company.GetLastErrorDescription());
                }
            }
            catch (Exception e)
            {
                return($"exeption : {e.Message}, Sap Error {Company.GetLastErrorDescription()}");
            }
            finally
            {
                System.Runtime.InteropServices.Marshal.ReleaseComObject(oUfield);
            }
        }
コード例 #21
0
 /// <summary>
 /// Create UDF on UDT
 /// </summary>
 /// <param name="tableName">UDT Name without @</param>
 /// <param name="fieldName">Field name</param>
 /// <param name="fieldDescription"></param>
 /// <param name="type">BoFieldTypes type</param>
 /// <param name="size"></param>
 /// <param name="subType"></param>
 /// <returns></returns>
 public static void CreateFieldOnUDT(string tableName, string fieldName, string fieldDescription,
                                     BoFieldTypes type = BoFieldTypes.db_Alpha, int size = 50, BoFldSubTypes subType = BoFldSubTypes.st_None)
 {
     tableName = "@" + tableName;
     CreateField(tableName, fieldName, fieldDescription, type, size, subType);
 }
コード例 #22
0
 /// <summary>
 /// Initializes a new instance of the <see cref="Column" /> class.
 /// </summary>
 /// <param name="name">The column name.</param>
 /// <param name="type">The column type.</param>
 public Column(string name, BoFieldTypes type)
 {
     Name = name;
     Type = type;
 }
コード例 #23
0
        public void CriaCampo(Company oCompany, string sTabela, string sCampo, string sDescricao, BoFieldTypes Tipo, BoFldSubTypes SubTipo, int iComprimento, BoYesNoEnum Obrigatorio, bool bValorPadrao, string sValorPadrao, bool bValoresValidos, string[,] sValoresValidos, out string sMensagem)
        {
            sMensagem = string.Empty;

            try
            {
                if (!VerificaExistenciaCampo(oCompany, sTabela, sCampo))
                {
                    int    lErrCode;
                    string lErrStr;
                    int    lRetVal;

                    UserFieldsMD oUserFieldMD = null;

                    //Limpa a memória
                    oUserFieldMD = (UserFieldsMD)oCompany.GetBusinessObject(BoObjectTypes.oUserFields);
                    System.Runtime.InteropServices.Marshal.ReleaseComObject(oUserFieldMD);
                    oUserFieldMD = null;
                    GC.Collect();
                    oUserFieldMD             = (UserFieldsMD)oCompany.GetBusinessObject(BoObjectTypes.oUserFields);
                    oUserFieldMD.TableName   = sTabela;
                    oUserFieldMD.Name        = sCampo;
                    oUserFieldMD.Description = sDescricao;
                    oUserFieldMD.Type        = Tipo;
                    oUserFieldMD.SubType     = SubTipo;
                    oUserFieldMD.Mandatory   = Obrigatorio;

                    if (bValoresValidos)
                    {
                        for (int i = 0; i < sValoresValidos.GetLength(0); i++)
                        {
                            oUserFieldMD.ValidValues.Value       = sValoresValidos[i, 0];
                            oUserFieldMD.ValidValues.Description = sValoresValidos[i, 1];
                            oUserFieldMD.ValidValues.Add();
                        }
                    }

                    if (bValorPadrao)
                    {
                        oUserFieldMD.DefaultValue = sValorPadrao;
                    }

                    if (iComprimento > 0)
                    {
                        oUserFieldMD.Size = iComprimento;
                    }

                    lRetVal = oUserFieldMD.Add();
                    if (lRetVal != 0)
                    {
                        oCompany.GetLastError(out lErrCode, out lErrStr);
                        sMensagem = string.Format("Falha! Descricao B1: {0} - Codigo Erro B1: {1}", lErrStr, lErrCode.ToString());
                    }
                    else
                    {
                        sMensagem = string.Format("Campo {0} - {1}, criado com sucesso..", sCampo, sDescricao);
                    }

                    //Limpa a Memória
                    System.Runtime.InteropServices.Marshal.ReleaseComObject(oUserFieldMD);
                    oUserFieldMD = null;
                    GC.Collect();
                }
            }
            catch (Exception ex)
            {
                sMensagem = string.Format("Erro ao criar Tabela/Campos SAP, Erro: {0}", ex.Message);
            }
        }