Skip to content

clsMenuSecurityUser

clsMenuSecurityUser is a BOF business object that associates an individual user with a security-group record in the MENU_SECURITY_USER table.

Purpose

  • Persist and retrieve a single user-to-security-group mapping used by the authorized-item UNION queries.
  • Support insert (with inline NEXTVAL key generation), update, and delete with contention checking per BR-MNU-02.

Context

  • Namespace: SAIF.Business.Menu
  • Assembly/package: SAIF.BOF.Business.Menu

Public members

Member Signature Purpose
MenuSecurityUserSeq Property MenuSecurityUserSeq As Decimal Primary key; generated inline via MENU_SECURITY_USER_SEQ.NEXTVAL in InsertSQL.*
SecurityGroupTxt Property SecurityGroupTxt As String Security-group text (max 255 chars).*
MenuUser Property MenuUser As String User login name (max 30 chars).*
MenuUserID Property MenuUserID As String User employee ID; stored as m_MenuUserID (max 11 chars).*

Inherited public members

The members below are inherited from the BOF framework base class clsBusinessBase used by clsMenuSecurityUser.

Member Signature Purpose
MyGuid Public ReadOnly Property MyGuid() As String Returns the object's generated GUID identifier.
IsNew Public ReadOnly Property IsNew() As Boolean Indicates whether the object represents unsaved or newly created data.
IsDeleted Public ReadOnly Property IsDeleted() As Boolean Indicates whether the object is marked for deferred deletion.
IsDirty Public Overridable ReadOnly Property IsDirty() As Boolean Indicates whether the object has changed since it was loaded or saved.
SetValueOnChange Public Function SetValueOnChange(Of T)(ByRef inFieldValue As T, ByVal inSetValue As T, Optional ByVal inMarkDirty As Boolean = True) As Boolean Compares and assigns a field value, optionally marking the object dirty when the value changes.
IsSavable Public Overridable ReadOnly Property IsSavable() As Boolean Returns True only when the object is both dirty and valid.
PreviousLinkItem Public ReadOnly Property PreviousLinkItem() As ILinkItem Returns the previous item in the linked-list chain maintained by the framework.
NextLinkItem Public ReadOnly Property NextLinkItem() As ILinkItem Returns the next item in the linked-list chain maintained by the framework.
SetPreviousLink Public Sub SetPreviousLink(ByRef inLinkItem As ILinkItem) Sets the previous linked-list reference.
SetNextLink Public Sub SetNextLink(ByRef inLinkItem As ILinkItem) Sets the next linked-list reference.
InsertLinkAfter Public Sub InsertLinkAfter(ByRef inLinkItem As ILinkItem) Inserts another linked item immediately after the current item.
InsertLinkBefore Public Sub InsertLinkBefore(ByRef inLinkItem As ILinkItem) Inserts another linked item immediately before the current item.
RemoveLinks Public Sub RemoveLinks() Detaches the object from its linked-list neighbors.
BeginEdit Public Sub BeginEdit() Starts a nested edit session by snapshotting the object state.
CancelEdit Public Sub CancelEdit() Cancels the current edit session and restores the previous snapshot.
ApplyEdit Public Sub ApplyEdit() Commits the current edit session and accepts the edited state.
Delete Public Sub Delete() Marks a parent object for deletion during the next save operation.
Clone Public Function Clone() As Object Creates a cloned copy of the business object.
ValidateOnDelete Public Property ValidateOnDelete() As Boolean Controls whether business-rule validation also runs during delete saves.
Rules Public ReadOnly Property Rules() As clsRulesManager Exposes the framework rules manager for validation and message tracking.
IsValid Public Overridable ReadOnly Property IsValid() As Boolean Runs rule checking and reports whether the object is currently valid.
ErrorCount Public ReadOnly Property ErrorCount() As Integer Returns the number of current validation errors.
ErrorMessages Public ReadOnly Property ErrorMessages() As String() Returns the current validation error messages.
WarningCount Public ReadOnly Property WarningCount() As Integer Returns the number of current warning messages.
WarningMessages Public ReadOnly Property WarningMessages() As String() Returns the current warning messages.
InformationalCount Public ReadOnly Property InformationalCount() As Integer Returns the number of informational validation messages.
InformationalMessages Public ReadOnly Property InformationalMessages() As String() Returns the current informational messages.
Save Public Overridable Function Save() As Boolean Persists the object when it is valid and dirty.
SaveChild Public Overridable Function SaveChild() As Boolean Persists the object when it is operating as a child object.
IsReadOnly Public Overridable ReadOnly Property IsReadOnly() As Boolean Indicates whether the framework currently treats the object as read-only.
XMLElementName Public Property XMLElementName() As String Gets or sets the element name used when emitting XML.
GetDataset Public Sub GetDataset(ByRef inDS As DataSet) Adds the object data to the supplied DataSet using the default table name.
GetDataset Public Sub GetDataset(ByRef inDS As DataSet, ByVal inTableName As String) Adds the object data to the supplied DataSet using the specified table name.
GetReportXML Public Function GetReportXML(ByVal inElementName As String) As String Generates report-oriented XML using the supplied root element name.
GetReportXML Public Function GetReportXML() As String Generates report-oriented XML using the default element name.
ToXml Public Function ToXml() As String Serializes the object to XML using the configured or default tag name.
ToXml Public Function ToXml(ByVal inTagName As String) As String Serializes the object to XML using the supplied tag name.

Behavioral notes

  • On BeforeInsert, binds SecurityGroupTxt (max 255), MenuUser (max 30), MenuUserID (max 11); InsertSQL uses MENU_SECURITY_USER_SEQ.NEXTVAL inline for key generation; executes SQL-011.
  • On BeforeUpdate, binds SecurityGroupTxt (max 255), MenuUser (max 30), MenuUserID (max 11), MenuSecurityUserSeq; executes SQL-037.
  • On BeforeDelete, binds MenuSecurityUserSeq; executes SQL-044.
  • All DML enforce BR-MNU-02.
  • The SELECT_SQL reads MENU_USER_ID, while InsertSQL and UpdateSQL write to MENU_USER_EMPLID — a column-name discrepancy noted in the DB analysis.*

Constraints and usage notes

  • Security group matching against MENU_SECURITY uses case-insensitive UPPER() comparison — see BR-MNU-04.

Note: Statements marked with * were inferred from code structure, naming conventions, or contextual evidence where direct confirmation was not available in source artifacts.

Sources

  • Legacy\BusinessObjectFramework\clsBusinessBase.vb
  • Business\SAIF.Business.Menu\clsMenuSecurityUser.vb