Table of Contents

Rule

Table

Database Table Entity On Key 5 Conversions On Key 5 Tables Other Entities stored in same Table
Transaction ampc.rule Rule ConvertRule
astRules

Columns

Property Db Table Db Column Db DataType Nullable Primary Key Joins
Code ampc.rule code character varying(50) False
IsActive ampc.rule is_active boolean False
CreatedByUserId ampc.rule created_by_user_id bigint False
CreatedByUserCode uam.user code character varying(50) False ampc.rule.created_by_user_id = uam.user.user_id
CreatedByUserFullName uam.user full_name character varying(200) False ampc.rule.created_by_user_id = uam.user.user_id
CreatedOn ampc.rule created_on timestamp without time zone False
ModifiedByUserId ampc.rule modified_by_user_id bigint False
ModifiedByUserCode uam.user code character varying(50) False ampc.rule.modified_by_user_id = uam.user.user_id
ModifiedByUserFullName uam.user full_name character varying(200) False ampc.rule.modified_by_user_id = uam.user.user_id
ModifiedOn ampc.rule modified_on timestamp without time zone False
Version ampc.rule version integer False
PermissionTreeId ampc.rule permission_tree_id bigint False
PermissionTreeCode uam.permission_tree code text False ampc.rule.permission_tree_id = uam.permission_tree.permission_tree_id
PermissionTreeDescription uam.permission_tree description text True ampc.rule.permission_tree_id = uam.permission_tree.permission_tree_id
Id ampc.rule rule_id bigint False True
Description ampc.rule description character varying(100) False
Notes ampc.rule notes text True
RuleCategoryId ampc.rule rule_category_id bigint True
RuleCategoryCode ampc.rule_category code character varying(50) False ampc.rule.rule_category_id = ampc.rule_category.rule_category_id
RuleCategoryDescription ampc.rule_category description character varying(100) False ampc.rule.rule_category_id = ampc.rule_category.rule_category_id
RuleText ampc.rule rule_text text True
SequenceNumber ampc.rule sequence_number integer True

Queries

The list of example Rule queries can be interpreted using the following legend:

Legend Description
Primary Table Alias The alias for the ampc.rule table in the query
Include References Include (true) or exclude (false) all lookup table joins in the query
Include Permissions Include (true) or exclude (false) the permission table join in the query to enforce or skip row-level security based on the permissions for the user

Query 1

Primary Table Alias Include References Include Permissions
_r False False
SELECT
    _r.code AS "Code",
    _r.is_active AS "IsActive",
    _r.created_by_user_id AS "CreatedByUserId",
    _r.created_on AS "CreatedOn",
    _r.modified_by_user_id AS "ModifiedByUserId",
    _r.modified_on AS "ModifiedOn",
    _r.version AS "Version",
    _r.permission_tree_id AS "PermissionTreeId",
    _r.rule_id AS "Id",
    _r.description AS "Description",
    _r.notes AS "Notes",
    _r.rule_category_id AS "RuleCategoryId",
    _r.rule_text AS "RuleText",
    _r.sequence_number AS "SequenceNumber"
FROM
    ampc.rule _r


Query 2

Primary Table Alias Include References Include Permissions
_r True False
SELECT
    _r.code AS "Code",
    _r.is_active AS "IsActive",
    _u.user_id AS "CreatedByUserId",
    _u.code AS "CreatedByUserCode",
    _u.full_name AS "CreatedByUserFullName",
    _r.created_on AS "CreatedOn",
    _u1.user_id AS "ModifiedByUserId",
    _u1.code AS "ModifiedByUserCode",
    _u1.full_name AS "ModifiedByUserFullName",
    _r.modified_on AS "ModifiedOn",
    _r.version AS "Version",
    _pt.permission_tree_id AS "PermissionTreeId",
    _pt.code AS "PermissionTreeCode",
    _pt.description AS "PermissionTreeDescription",
    _r.rule_id AS "Id",
    _r.description AS "Description",
    _r.notes AS "Notes",
    _rc.rule_category_id AS "RuleCategoryId",
    _rc.code AS "RuleCategoryCode",
    _rc.description AS "RuleCategoryDescription",
    _r.rule_text AS "RuleText",
    _r.sequence_number AS "SequenceNumber"
FROM
    ampc.rule _r
    JOIN uam.user _u ON _r.created_by_user_id = _u.user_id
    JOIN uam.user _u1 ON _r.modified_by_user_id = _u1.user_id
    JOIN uam.permission_tree _pt ON _r.permission_tree_id = _pt.permission_tree_id
    LEFT JOIN ampc.rule_category _rc ON _r.rule_category_id = _rc.rule_category_id


Query 3

Primary Table Alias Include References Include Permissions
_r False True
Parameter Name Data Type Value
@permission_user_id Bigint 500000000000
@permission_id Bigint 155000
WITH permission_tree_ids AS
(
    SELECT DISTINCT unnest(psd.permission_tree_ids) AS permission_tree_id FROM uam.user_permission up JOIN uam.permission_set_data psd ON up.permission_set_id = psd.permission_set_id WHERE up.user_id = @permission_user_id AND up.permission_id = @permission_id
)
SELECT
    _r.code AS "Code",
    _r.is_active AS "IsActive",
    _r.created_by_user_id AS "CreatedByUserId",
    _r.created_on AS "CreatedOn",
    _r.modified_by_user_id AS "ModifiedByUserId",
    _r.modified_on AS "ModifiedOn",
    _r.version AS "Version",
    _r.permission_tree_id AS "PermissionTreeId",
    _r.rule_id AS "Id",
    _r.description AS "Description",
    _r.notes AS "Notes",
    _r.rule_category_id AS "RuleCategoryId",
    _r.rule_text AS "RuleText",
    _r.sequence_number AS "SequenceNumber",
    _r.permission_tree_id AS "_r_permission_tree_id"
FROM
    ampc.rule _r
    JOIN permission_tree_ids permission_join ON _r.permission_tree_id = permission_join.permission_tree_id


Query 4

Primary Table Alias Include References Include Permissions
_r True True
Parameter Name Data Type Value
@permission_user_id Bigint 500000000000
@permission_id Bigint 155000
WITH permission_tree_ids AS
(
    SELECT DISTINCT unnest(psd.permission_tree_ids) AS permission_tree_id FROM uam.user_permission up JOIN uam.permission_set_data psd ON up.permission_set_id = psd.permission_set_id WHERE up.user_id = @permission_user_id AND up.permission_id = @permission_id
)
SELECT
    _r.code AS "Code",
    _r.is_active AS "IsActive",
    _u.user_id AS "CreatedByUserId",
    _u.code AS "CreatedByUserCode",
    _u.full_name AS "CreatedByUserFullName",
    _r.created_on AS "CreatedOn",
    _u1.user_id AS "ModifiedByUserId",
    _u1.code AS "ModifiedByUserCode",
    _u1.full_name AS "ModifiedByUserFullName",
    _r.modified_on AS "ModifiedOn",
    _r.version AS "Version",
    _pt.permission_tree_id AS "PermissionTreeId",
    _pt.code AS "PermissionTreeCode",
    _pt.description AS "PermissionTreeDescription",
    _r.rule_id AS "Id",
    _r.description AS "Description",
    _r.notes AS "Notes",
    _rc.rule_category_id AS "RuleCategoryId",
    _rc.code AS "RuleCategoryCode",
    _rc.description AS "RuleCategoryDescription",
    _r.rule_text AS "RuleText",
    _r.sequence_number AS "SequenceNumber",
    _r.permission_tree_id AS "_r_permission_tree_id",
    _u.permission_tree_id AS "_u_permission_tree_id",
    _u1.permission_tree_id AS "_u1_permission_tree_id",
    _rc.permission_tree_id AS "_rc_permission_tree_id"
FROM
    ampc.rule _r
    JOIN permission_tree_ids permission_join ON _r.permission_tree_id = permission_join.permission_tree_id
    JOIN uam.user _u ON _r.created_by_user_id = _u.user_id
    JOIN uam.user _u1 ON _r.modified_by_user_id = _u1.user_id
    JOIN uam.permission_tree _pt ON _r.permission_tree_id = _pt.permission_tree_id
    LEFT JOIN ampc.rule_category _rc ON _r.rule_category_id = _rc.rule_category_id