Skip to content

SQL-016: Retrieve authorized menu items for all users

This statement is the RetrieveAllSQL implementation of clsMenuAuthorizedItemCollection.Criteria, executed from BeforeRetrieve against MENU_ITEM, MENU_SECURITY, MENU_SECURITY_USER, MENU_PAGE, BUSONLINE_APPS_CODE, MENU_CATEGORY_CODE. Retrieve authorized menu items for all users.

Classification

Field Value
SQL ID SQL-016
Operation type Read
Execution method StringBuilder-assembled
Database Oracle
Schema [unqualified]**
Command type Text
Business object clsMenuAuthorizedItemCollection
Criteria property RetrieveAllSQL
Lifecycle method BeforeRetrieve

Parameters

This statement takes no bind parameters.

Tables

Table Access Columns used
MENU_ITEM SELECT MENU_ITEM_SEQ_NUM, PAGE_ORDER_NUM, MENU_CATEGORY_CODE, TOOL_TIP_TXT, VISIBLE_FLAG
MENU_SECURITY SELECT / JOIN MENU_ITEM_SEQ_NUM, SECURITY_GROUP_TXT (join / NOT EXISTS)
MENU_SECURITY_USER SELECT / JOIN MENU_USER, SECURITY_GROUP_TXT, MENU_USER_EMPLID
MENU_PAGE SELECT / JOIN MENU_PAGE_SEQ_NUM, PAGE_NAME, PAGE_LINK_TXT, APPLICATION_CODE, toolbar flags/tips
BUSONLINE_APPS_CODE SELECT / JOIN CODE, CODE_DESCR (application path)
MENU_CATEGORY_CODE SELECT / JOIN CODE, CODE_DESCR (category)

Sample SQL

-- Retrieve authorized menu items for all users
SELECT DISTINCT
  ITM.MENU_ITEM_SEQ_NUM AS MenuItemSeqNum,
  USR.MENU_USER AS MenuUser,
  ITM.PAGE_ORDER_NUM AS MenuOrder,
  'N' AS FavoriteFlag,
  USR.MENU_USER_EMPLID AS MenuUserEmplid,
  ITM.MENU_CATEGORY_CODE AS MenuCategoryCode,
  CAT.CODE_DESCR AS Category,
  ITM.TOOL_TIP_TXT AS ToolTip,
  ITM.VISIBLE_FLAG AS VisibleFlag,
  PAG.MENU_PAGE_SEQ_NUM AS MenuPageSeqNum,
  PAG.PAGE_NAME AS PageName,
  PAG.PAGE_LINK_TXT AS PageLink,
  PAG.APPLICATION_CODE AS ApplicationCode,
  APP.CODE_DESCR AS ApplicationPath,
  PAG.FAVORITE_NAME AS FavoriteName,
  PAG.SAVE_PREFERENCES_FLAG AS SavePreferencesFlag,
  PAG.PRINT_FLAG AS PrintFlag,
  PAG.DOWNLOAD_FLAG AS DownloadFlag,
  PAG.HELP_FLAG AS HelpFlag,
  PAG.SAVE_FLAG AS SaveFlag,
  PAG.INSERT_FLAG AS InsertFlag,
  PAG.DELETE_FLAG AS DeleteFlag,
  PAG.PRINT_TIP_TXT AS PrintTip,
  PAG.DOWNLOAD_TIP_TXT AS DownloadTip,
  PAG.SAVE_TOOLTIP_TXT AS SaveTip,
  PAG.DELETE_TOOLTIP_TXT AS DeleteTip,
  PAG.INSERT_TOOLTIP_TXT AS InsertTip,
  'N' as UnsecuredFlag
FROM
  menu_item itm,
  menu_security sec,
  menu_security_user usr,
  MENU_PAGE PAG,
  BUSONLINE_APPS_CODE app,
  MENU_CATEGORY_CODE cat
WHERE
  SEC.MENU_ITEM_SEQ_NUM = ITM.MENU_ITEM_SEQ_NUM
  AND PAG.MENU_PAGE_SEQ_NUM = ITM.MENU_PAGE_SEQ_NUM
  AND APP.CODE = PAG.APPLICATION_CODE
  AND CAT.CODE = ITM.MENU_CATEGORY_CODE
  AND upper(USR.SECURITY_GROUP_TXT) = upper(SEC.SECURITY_GROUP_TXT)
UNION
SELECT
  ITM.MENU_ITEM_SEQ_NUM AS MenuItemSeqNum,
  'UNSECURED' AS MenuUser,
  ITM.PAGE_ORDER_NUM AS MenuOrder,
  'N' AS FavoriteFlag,
  NULL AS MenuUserEmplid,
  ITM.MENU_CATEGORY_CODE AS MenuCategoryCode,
  CAT.CODE_DESCR AS Category,
  ITM.TOOL_TIP_TXT AS ToolTip,
  ITM.VISIBLE_FLAG AS VisibleFlag,
  PAG.MENU_PAGE_SEQ_NUM AS MenuPageSeqNum,
  PAG.PAGE_NAME AS PageName,
  PAG.PAGE_LINK_TXT AS PageLink,
  PAG.APPLICATION_CODE AS ApplicationCode,
  APP.CODE_DESCR AS ApplicationPath,
  PAG.FAVORITE_NAME AS FavoriteName,
  PAG.SAVE_PREFERENCES_FLAG AS SavePreferencesFlag,
  PAG.PRINT_FLAG AS PrintFlag,
  PAG.DOWNLOAD_FLAG AS DownloadFlag,
  PAG.HELP_FLAG AS HelpFlag,
  PAG.SAVE_FLAG AS SaveFlag,
  PAG.INSERT_FLAG AS InsertFlag,
  PAG.DELETE_FLAG AS DeleteFlag,
  PAG.PRINT_TIP_TXT AS PrintTip,
  PAG.DOWNLOAD_TIP_TXT AS DownloadTip,
  PAG.SAVE_TOOLTIP_TXT AS SaveTip,
  PAG.DELETE_TOOLTIP_TXT AS DeleteTip,
  PAG.INSERT_TOOLTIP_TXT AS InsertTip,
  'Y' as UnsecuredFlag
FROM
  menu_item itm,
  MENU_PAGE PAG,
  BUSONLINE_APPS_CODE app,
  MENU_CATEGORY_CODE cat
WHERE
  PAG.MENU_PAGE_SEQ_NUM = ITM.MENU_PAGE_SEQ_NUM
  AND APP.CODE = PAG.APPLICATION_CODE
  AND CAT.CODE = ITM.MENU_CATEGORY_CODE
  AND NOT EXISTS (SELECT 1 FROM menu_security SEC
                  WHERE SEC.MENU_ITEM_SEQ_NUM = ITM.MENU_ITEM_SEQ_NUM)

Operations and processes

Business rules

Note: Statements marked with ** could not be confirmed; treat as unknown until verified.

Sources

  • SAIF.Business.Menu/clsMenuAuthorizedItemCollection.vb