public void CreateUserTable(string UserTableName, string UserTableDesc, SAPbobsCOM.BoUTBTableType UserTableType) { FindColumns = new GenericModel(); FindColumns.Fields = new Dictionary<string, object>(); Log.AppendLine(); Log.AppendLine(UserTableName); Log.AppendFormat("Criação/Atualização da tabela de usuário {0}: ", UserTableName); SAPbobsCOM.UserTablesMD oUserTableMD = (SAPbobsCOM.UserTablesMD)SBOApp.Company.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oUserTables); // Remove a arroba do usertable Name UserTableName = UserTableName.Replace("@", ""); bool bUpdate = oUserTableMD.GetByKey(UserTableName); oUserTableMD.TableName = UserTableName; oUserTableMD.TableDescription = UserTableDesc; oUserTableMD.TableType = UserTableType; if (bUpdate) //CodErro = oUserTableMD.Update(); CodErro = 0; else CodErro = oUserTableMD.Add(); this.ValidateAction(); Marshal.ReleaseComObject(oUserTableMD); oUserTableMD = null; }
/// <summary> /// Preenche lista de model generico /// </summary> /// <param name="sql">Comando SELECT</param> /// <param name="forceNoLock">Força comando NOLOCK</param> /// <returns>Lista de model generico preenchido</returns> public List<GenericModel> FillGenericModelList(string sql, bool forceNoLock) { List<GenericModel> genericModelList = new List<GenericModel>(); GenericModel genericModel; // SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED tem o mesmo efeito do WITH (NOLOCK) if (forceNoLock) { sql = " SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED " + sql; } // Lê os dados em um Recordset Recordset rs = (Recordset)SBOApp.Company.GetBusinessObject(BoObjectTypes.BoRecordset); sql = SBOApp.TranslateToHana(sql); rs.DoQuery(sql); // Lê os dados e insere no model if (rs.RecordCount > 0) { while (!rs.EoF) { genericModel = new GenericModel(); genericModel.Fields = new Dictionary<string, object>(); for (int i = 0; i < rs.Fields.Count; i++) { genericModel.Fields.Add(rs.Fields.Item(i).Name, rs.Fields.Item(i).Value); } genericModelList.Add(genericModel); rs.MoveNext(); } } Marshal.ReleaseComObject(rs); rs = null; GC.Collect(); return genericModelList; }
public void CreateUserObject(string ObjectName, string ObjectDesc, string TableName, SAPbobsCOM.BoUDOObjType ObjectType, bool CanLog, bool CanYearTransfer, bool CanCancel, bool CanClose, bool CanCreateDefaultForm, bool CanDelete, bool CanFind, int FatherMenuId, int menuPosition, GenericModel findColumns) { // se não preenchido um table name separado, usa o mesmo do objeto if (String.IsNullOrEmpty(TableName)) TableName = ObjectName; Log.AppendFormat("Criação/Atualização do Objeto de usuário {0}", ObjectName); SAPbobsCOM.UserObjectsMD UserObjectsMD = (SAPbobsCOM.UserObjectsMD)SBOApp.Company.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oUserObjectsMD); // Remove a arroba do usertable Name TableName = TableName.Replace("@", ""); bool bUpdate = UserObjectsMD.GetByKey(ObjectName); UserObjectsMD.Code = ObjectName; UserObjectsMD.Name = ObjectDesc; UserObjectsMD.ObjectType = ObjectType; UserObjectsMD.TableName = TableName; //UserObjectsMD.CanArchive = GetSapBoolean(CanArchive); UserObjectsMD.CanCancel = GetSapBoolean(CanCancel); UserObjectsMD.CanClose = GetSapBoolean(CanClose); UserObjectsMD.CanCreateDefaultForm = GetSapBoolean(CanCreateDefaultForm); UserObjectsMD.CanDelete = GetSapBoolean(CanDelete); UserObjectsMD.CanFind = GetSapBoolean(CanFind); UserObjectsMD.CanLog = GetSapBoolean(CanLog); UserObjectsMD.CanYearTransfer = GetSapBoolean(CanYearTransfer); if (CanCreateDefaultForm) { UserObjectsMD.CanCreateDefaultForm = SAPbobsCOM.BoYesNoEnum.tYES; UserObjectsMD.CanCancel = GetSapBoolean(CanCancel); UserObjectsMD.CanClose = GetSapBoolean(CanClose); UserObjectsMD.CanDelete = GetSapBoolean(CanDelete); UserObjectsMD.CanFind = GetSapBoolean(CanFind); UserObjectsMD.ExtensionName = ""; UserObjectsMD.OverwriteDllfile = SAPbobsCOM.BoYesNoEnum.tYES; UserObjectsMD.UseUniqueFormType = SAPbobsCOM.BoYesNoEnum.tYES; UserObjectsMD.ManageSeries = SAPbobsCOM.BoYesNoEnum.tYES; UserObjectsMD.FormColumns.FormColumnAlias = "Code"; UserObjectsMD.FormColumns.FormColumnDescription = "Código"; UserObjectsMD.FormColumns.Add(); UserObjectsMD.FormColumns.FormColumnAlias = "Name"; UserObjectsMD.FormColumns.FormColumnDescription = "Descrição"; UserObjectsMD.FormColumns.Editable = SAPbobsCOM.BoYesNoEnum.tYES; UserObjectsMD.FormColumns.Add(); UserObjectsMD.FindColumns.ColumnAlias = "Code"; UserObjectsMD.FindColumns.ColumnDescription = "Código"; UserObjectsMD.FindColumns.Add(); UserObjectsMD.FindColumns.ColumnAlias = "Name"; UserObjectsMD.FindColumns.ColumnDescription = "Descrição"; UserObjectsMD.FindColumns.Add(); if (findColumns != null) { FindColumns = findColumns; } if (FindColumns != null && FindColumns.Fields != null) { foreach (KeyValuePair<string, object> pair in FindColumns.Fields) { UserObjectsMD.FindColumns.ColumnAlias = pair.Key; UserObjectsMD.FindColumns.ColumnDescription = pair.Value.ToString(); UserObjectsMD.FindColumns.Add(); } } UserObjectsMD.FatherMenuID = FatherMenuId; UserObjectsMD.Position = menuPosition; UserObjectsMD.MenuItem = SAPbobsCOM.BoYesNoEnum.tYES; UserObjectsMD.MenuUID = ObjectName; UserObjectsMD.MenuCaption = ObjectDesc; } if (bUpdate) { //CodErro = UserObjectsMD.Update(); } else CodErro = UserObjectsMD.Add(); this.ValidateAction(); Marshal.ReleaseComObject(UserObjectsMD); UserObjectsMD = null; FindColumns = new GenericModel(); FindColumns.Fields = new Dictionary<string, object>(); }
public void CreateUserObject(string ObjectName, string ObjectDesc, string TableName, SAPbobsCOM.BoUDOObjType ObjectType, bool CanLog, bool CanYearTransfer, GenericModel findColumns) { this.CreateUserObject(ObjectName, ObjectDesc, TableName, ObjectType, CanLog, CanYearTransfer, false, false, false, true, true, 0, 0, findColumns); }