Skip to content

SQL-024: Retrieve all possible access groups for a user type

Retrieves all access groups defined for a user type code, LEFT-joining to existing EXT_USER_ACCESS_GROUP rows so that both assigned and unassigned groups are returned with their current assignment state.

Classification

Field Value
SQL ID SQL-024
Operation type Read
Execution method Inline SQL
Database Oracle
Schema [unqualified]**
Command type Text
Business object clsUserAccessGroup
Criteria property Local SQL
Lifecycle method GetAllPossibleUserAccessGroups

Parameters

Parameter Direction Type Max length Description
:UserTypeID Input Decimal N/A EXT_USER_TYPE_SEQ_NUM for the LEFT JOIN.
:UserTypeCode Input String 5 User type code to filter access group definitions.
:CultureCode Input String 5 Culture code for globalized description.

Tables

Table Access Columns used
EXT_USER_TYPE_ACCESS_GROUP SELECT All flag and sort-order columns
EXT_USER_ACCESS_GROUP_CODE JOIN CODE, CODE_DESCR
EXT_USER_ACCESS_GROUP LEFT JOIN EXT_USER_ACCESS_GROUP_CODE, EXT_USER_TYPE_SEQ_NUM, EXT_USER_ACCESS_GROUP_SEQ_NUM
EXT_USER_ACCESS_GROUP_GCODE LEFT OUTER JOIN CODE, CULTURE_CODE, CODE_DESCR

Sample SQL

SELECT
    CASE WHEN a.ext_user_access_group_seq_num IS NULL
         THEN 0 ELSE a.ext_user_access_group_seq_num
    END AS UserAccessGroupID,
    :UserTypeID AS UserTypeID,
    tag.ext_user_type_code AS UserTypeCode,
    agc.CODE AS AccessGroupCode,
    agc.code_descr AS AccessGroupDescription,
    a.EXPIRATION_DATE AS ExpirationDate,
    a.DEFAULT_ACCESS_FLAG AS IsDefaultAccess,
    tag.ADMIN_ACCESS_FLAG AS CanAdminAccess,
    tag.STEWARD_ACCESS_FLAG AS CanStewardAccess,
    tag.SELF_REG_ACCESS_FLAG AS CanSelfRegistrationAccess,
    tag.SYSTEM_CONTROLLED_FLAG AS IsControlledBySystem,
    tag.DEFAULT_STATUS_FLAG AS DefaultStatus,
    tag.SORT_ORDER_NUM AS SortOrder,
    a.CREATE_USER AS CreateUser,
    a.CREATE_DATE AS CreateDate,
    a.UPDATE_USER AS UpdateUser,
    a.UPDATE_DATE AS UpdateDate,
    a.UPDATE_NUM AS UpdateNum,
    '<AccessType>' AS AccessType
FROM ext_user_type_access_group tag
JOIN ext_user_access_group_code agc
    ON tag.ext_user_access_group_code = agc.code
LEFT JOIN ext_user_access_group a
    ON a.ext_user_access_group_code = agc.code
    AND a.ext_user_type_seq_num = :UserTypeID
LEFT OUTER JOIN ext_user_access_group_gcode aggc
    ON (agc.code = aggc.code AND upper(AGGC.CULTURE_CODE) = :CultureCode)
WHERE upper(tag.ext_user_type_code) = :UserTypeCode
ORDER BY tag.SYSTEM_CONTROLLED_FLAG, tag.SORT_ORDER_NUM

Operations and processes

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.External.Users\clsUserAccessGroup.vb