Skip to content

SAIF.Business.Menu operations and processes

This page is the operation catalog and cross-operation hub for this library. Each operation's detailed, step-by-step logic lives in its own page under operations/.

Operation catalog

Operation Intent Trigger Inputs Outputs Rules Tables SQL
Menu tree construction Build and maintain the hierarchical menu structure (items grouped by page) Caller retrieves, creates, or saves a menu item or page Page/item keys; page, category, tooltip, visibility, and order fields Menu item and page records BR-MNU-02 MENU_ITEM, MENU_PAGE, DUAL SQL-002, SQL-003, SQL-008, SQL-009, SQL-022, SQL-023, SQL-024, SQL-025, SQL-034, SQL-035, SQL-041, SQL-042
Menu categorization Maintain the lookup of category codes used to classify menu items Caller retrieves, creates, or saves a category code Category code, description Category code records BR-MNU-02 MENU_CATEGORY_CODE SQL-006, SQL-017, SQL-018, SQL-032, SQL-039
Favorite menu management Let users bookmark, retrieve, deactivate, or remove frequently used menu items Caller retrieves favorites for a user (or all), or saves/deactivates/deletes a favorite User ID, menu item key, display order, inactive date Favorite records BR-MNU-02, BR-MNU-05 MENU_FAVORITE SQL-001, SQL-007, SQL-019, SQL-020, SQL-021, SQL-033, SQL-040
Menu authorization data lookup Record which security groups/users are authorized for each menu item, and resolve the authorized/favorited item projection for a user Caller requests the authorized-item projection for a user (or all users), or maintains a security-group or user-to-group mapping Menu item key, user, security group Authorized item collection; authorization mapping records BR-MNU-01, BR-MNU-02, BR-MNU-04, BR-MNU-05 MENU_SECURITY, MENU_SECURITY_USER, MENU_ITEM SQL-004, SQL-010, SQL-011, SQL-015, SQL-016, SQL-026, SQL-027, SQL-028, SQL-029, SQL-030, SQL-036, SQL-037, SQL-043, SQL-044
Application code scoping Maintain the lookup of application identifiers used to scope menu pages, filtering by active status Caller retrieves an application code by key, active-only, or all, or saves a code Application code, path, active flag Application code records BR-MNU-02, BR-MNU-03 BUSONLINE_APPS_CODE SQL-005, SQL-012, SQL-013, SQL-014, SQL-031, SQL-038

Process flow diagram

The following diagram visualizes the primary authorized-menu-item retrieval flow, which draws together data maintained by every other operation on this page.

flowchart TD
    Start([Start: request authorized menu items]) --> CheckUser{MenuUser provided?}
    CheckUser -->|Yes| SQL016[Execute per-user<br>3-part UNION with favorites]
    CheckUser -->|No| SQL015[Execute all-user<br>2-part UNION without favorites]
    SQL016 --> Result([Return authorized item collection])
    SQL015 --> Result
    Result --> Presentation[Presentation layer enforces<br>final authorization decision]

Inherited operations and processes

SAIF.Business.Menu types extend the BOF framework base classes (clsBusinessBase, clsBusinessCollection(Of T)), which define standard lifecycle operations such as object creation, retrieval, save, validation, and deletion through the Data Portal infrastructure. Specific inherited operation details could not be enumerated: the Legends CLI has no indexed content for BOF framework base classes in this run.*

Database interactions

Operation SQL Tables Type
Menu authorization data lookup SQL-016 MENU_ITEM, MENU_SECURITY, MENU_SECURITY_USER, MENU_PAGE, BUSONLINE_APPS_CODE, MENU_CATEGORY_CODE, MENU_FAVORITE Read
Menu authorization data lookup SQL-015 MENU_ITEM, MENU_SECURITY, MENU_SECURITY_USER, MENU_PAGE, BUSONLINE_APPS_CODE, MENU_CATEGORY_CODE Read
Menu tree construction SQL-002 DUAL Read (Sequence)
Menu tree construction SQL-008 MENU_ITEM Write
Menu tree construction SQL-009 MENU_PAGE Write
Favorite menu management SQL-007 MENU_FAVORITE Write
Menu authorization data lookup SQL-010 MENU_SECURITY Write
Menu authorization data lookup SQL-011 MENU_SECURITY_USER Write

Failure and edge-case behavior

  • Any insert, update, or delete that affects a row count other than 1 raises an error via AddErrorMessage (see BR-MNU-02).
  • Active application codes are filtered using NVL(ACTIVE_CODE, 'Y') = 'Y' (see BR-MNU-03).
  • Security group matching is case-insensitive via UPPER() (see BR-MNU-04).
  • Favorites are only included in the authorized-item projection when ITEM_INACTIVE_DATE IS NULL (see BR-MNU-05).
  • clsMenuSecurityUserCollection.BeforeRetrieve has an inverted parameter-binding branch that is a likely source defect — see Menu authorization data lookup for details.**

Note: Statements marked with * were inferred from code structure, naming conventions, or contextual evidence where direct confirmation was not available in source artifacts. Statements marked with ** could not be confirmed; treat as unknown until verified.

Sources

  • Business\SAIF.Business.Menu\clsApplicationCode.vb
  • Business\SAIF.Business.Menu\clsApplicationCodeCollection.vb
  • Business\SAIF.Business.Menu\clsMenuAuthorizedItem.vb
  • Business\SAIF.Business.Menu\clsMenuAuthorizedItemCollection.vb
  • Business\SAIF.Business.Menu\clsMenuCategoryCode.vb
  • Business\SAIF.Business.Menu\clsMenuCategoryCodeCollection.vb
  • Business\SAIF.Business.Menu\clsMenuFavorite.vb
  • Business\SAIF.Business.Menu\clsMenuFavoriteCollection.vb
  • Business\SAIF.Business.Menu\clsMenuItem.vb
  • Business\SAIF.Business.Menu\clsMenuItemCollection.vb
  • Business\SAIF.Business.Menu\clsMenuPage.vb
  • Business\SAIF.Business.Menu\clsMenuPageCollection.vb
  • Business\SAIF.Business.Menu\clsMenuSecurity.vb
  • Business\SAIF.Business.Menu\clsMenuSecurityCollection.vb
  • Business\SAIF.Business.Menu\clsMenuSecurityUser.vb
  • Business\SAIF.Business.Menu\clsMenuSecurityUserCollection.vb