dbo.QER_TIDynamicGroup
Database TriggerSQL_TRIGGERSandbox DB
Interpretation
- Database trigger. Treat parent table and enqueue/object-layer calls as the main relation points.
- DBQueue relation detected. Follow the task procedure and referenced-by list for async processing.
Relations
- Bulk DBQueue insert -> QER-K-DynamicGroupMakeProc / QER_ZDynamicGroupMakeProc at line 22
- Bulk DBQueue insert -> QER-K-DynamicGroupTest / QER_ZDynamicGroupTest at line 22
- Single DBQueue insert -> QER-K-DynamicGroupMakeTrigger / QER_ZDynamicGroupMakeTrigger at line 22
- Bulk DBQueue insert -> QER-K-DynamicGroupTest / QER_ZDynamicGroupTest at line 23
- Single DBQueue insert -> QER-K-DynamicGroupMakeTrigger / QER_ZDynamicGroupMakeTrigger at line 23
- References QBM_PDBQueueInsert_Single
- References QBM_PDBQueueInsert_Bulk
- Trigger parent table: DynamicGroup
Typed Edges
- queues DBQueue task QER_ZDynamicGroupMakeProc at line 22 Bulk DBQueue insert -> QER-K-DynamicGroupMakeProc / QER_ZDynamicGroupMakeProc at line 22
- queues DBQueue task QER_ZDynamicGroupTest at line 22 Bulk DBQueue insert -> QER-K-DynamicGroupTest / QER_ZDynamicGroupTest at line 22
- queues DBQueue task QER_ZDynamicGroupMakeTrigger at line 22 Single DBQueue insert -> QER-K-DynamicGroupMakeTrigger / QER_ZDynamicGroupMakeTrigger at line 22
- queues DBQueue task QER_ZDynamicGroupTest at line 23 Bulk DBQueue insert -> QER-K-DynamicGroupTest / QER_ZDynamicGroupTest at line 23
- queues DBQueue task QER_ZDynamicGroupMakeTrigger at line 23 Single DBQueue insert -> QER-K-DynamicGroupMakeTrigger / QER_ZDynamicGroupMakeTrigger at line 23
- trigger on table DynamicGroup Trigger parent table: DynamicGroup
- references source dbo.QBM_FGISessionContext source text reference
- references source dbo.QBM_PDBQueueInsert_Bulk source text reference
- references source dbo.QBM_PDBQueueInsert_Single source text reference
- references source dbo.QBM_PSessionErrorAdd source text reference
- references source dbo.QBM_PSQLCheckExecutable source text reference
Complete Source
1CREATE trigger QER_TIDynamicGroup2 ON DynamicGroup FOR3INSERT NOT FOR Replication4AS5BEGIN6 DECLARE @SQLToCheck QBM_YParameterList7 DECLARE @ErrorMessage nvarchar(4000)8 DECLARE @ErrorSeverity int9 DECLARE @ErrorState int10 BEGIN TRY11 IF EXISTS(12 SELECT TOP 1 113 FROM inserted)14 GOTO start15 RETURN start:16 DECLARE @GenProcID varchar(38)17 SELECT @GenProcID = dbo.QBM_FGISessionContext('')18 IF EXISTS(19 SELECT TOP 1 120 FROM inserted i21 JOIN BaseTree b22 ON i.ObjectKeyBaseTree = b.XObjectKey23 WHERE24 b.IsInvalidForDynamicGroup = 1)25 BEGIN26 RAISERROR('#LDS#Selected BaseTree is invalid for dynamic groups.|',27 18,28 1)29 WITH nowait30 END31 IF32 UPDATE(WhereClause)33 BEGIN34 INSERT INTO @SQLToCheck(Parameter1,35 ContentFull)36 SELECT37 c.XObjectKey,38 'select top 1 1 as columnvalue from ' + t.TableName + ' 39 where(40 ' + c.WhereClause + '41 )'42 FROM inserted c43 JOIN DialogTable t44 ON c.UID_DialogTableObjectClass = t.uid_dialogtable45 WHERE46 c.WhereClause > ' '47 UPDATE @SQLToCheck48 SET ContentFull = REPLACE(contentFull,49 '@UID_Org',50 '''#''')51 EXEC QBM_PSQLCheckExecutable @SQLToCheck,52 @RaiseError = 153 END54 IF EXISTS(55 SELECT56 i.UID_DynamicGroup,57 i.UID_DialogTableObjectClass,58 a.*59 FROM inserted i60 JOIN BaseTree b61 ON i.ObjectKeyBaseTree = b.XObjectKey62 JOIN orgrootassign a63 ON b.UID_OrgRoot = a.UID_OrgRoot64 JOIN BaseTreeAssign ba65 ON ba.UID_BaseTreeAssign = a.UID_BaseTreeAssign66 JOIN DialogTable t67 ON ba.UID_DialogTableElement = t.UID_DialogTable AND i.UID_DialogTableObjectClass = t.UID_DialogTable68 WHERE69 a.IsAssignmentAllowed = 0) AND dbo.QBM_FGISessionContext('Transport') = ''70 BEGIN71 RAISERROR('#LDS#Combinations of role and object classes are not permitted because (direct) assignment are not allowed according to OrgRoot.|'72 ,73 18,74 1)75 WITH nowait76 END77 IF EXISTS(78 SELECT TOP 1 179 FROM inserted i80 JOIN BaseTree b181 ON i.ObjectKeyBaseTree = b1.XObjectKey82 JOIN BaseTreeExcludesBaseTree exc83 ON exc.uid_org = b1.UID_Org84 JOIN BaseTree b285 ON b2.UID_Org = exc.uid_orgExcluded86 JOIN DynamicGroup d87 ON b2.XObjectKey = d.ObjectKeyBaseTree) OR EXISTS(88 SELECT TOP 1 189 FROM inserted i90 JOIN BaseTree b191 ON i.ObjectKeyBaseTree = b1.XObjectKey92 JOIN BaseTreeExcludesBaseTree exc93 ON exc.uid_orgExcluded = b1.UID_Org94 JOIN BaseTree b295 ON b2.UID_Org = exc.uid_org96 JOIN DynamicGroup d97 ON b2.XObjectKey = d.ObjectKeyBaseTree)98 BEGIN99 RAISERROR('#LDS#Cannot make a definition because there is a role exclusion with another dynamic role.|',100 18,101 1)102 WITH nowait103 END104 IF EXISTS(105 SELECT TOP 1 1106 FROM inserted i107 JOIN DialogTable t108 ON i.UID_DialogTableObjectClass = t.UID_DialogTable109 WHERE110 t.TableName NOT IN('Hardware', 'Person', 'WorkDesk'))111 BEGIN112 SELECT @ErrorMessage = '#LDS#Object category is not permitted for dynamic groups:.|'113 RAISERROR(@ErrorMessage,114 18,115 1)116 WITH nowait117 END118 DECLARE @DBQueueElements_01 QBM_YDBQueueRaw119 INSERT INTO @DBQueueElements_01(object,120 subobject,121 genprocid)122 SELECT123 x.uid,124 NULL,125 @GenProcID126 FROM(127 SELECT UID_DynamicGroup AS uid128 FROM inserted) AS x129 EXEC QBM_PDBQueueInsert_Bulk 'QER-K-DynamicGroupMakeProc',130 @DBQueueElements_01131 EXEC QBM_PDBQueueInsert_Bulk 'QER-K-DynamicGroupTest',132 @DBQueueElements_01133 EXEC QBM_PDBQueueInsert_Single 'QER-K-DynamicGroupMakeTrigger',134 '',135 '',136 @GenProcID137 END TRY138 BEGIN CATCH139 EXEC QBM_PSessionErrorAdd DEFAULT140 RAISERROR('',141 18,142 1)143 WITH NOWAIT144 END CATCH145END
Open raw exported source
1 create trigger QER_TIDynamicGroup on DynamicGroup for Insert not for Replication as begin declare @SQLToCheck QBM_YParameterList declare2 @ErrorMessage nvarchar(4000) declare @ErrorSeverity int declare @ErrorState int BEGIN TRY if exists (select top 1 1 from inserted) goto start return start:3 declare @GenProcID varchar(38) select @GenProcID = dbo.QBM_FGISessionContext('') if exists (select top 1 1 from inserted i join BaseTree b on i.ObjectKeyBaseTree4 = b.XObjectKey where b.IsInvalidForDynamicGroup = 1 ) begin raiserror( '#LDS#Selected BaseTree is invalid for dynamic groups.|', 18, 1) with nowait end5 if update(WhereClause) begin insert into @SQLToCheck(Parameter1, ContentFull) select c.XObjectKey, 'select top 1 1 as columnvalue from ' + t.TableName6 + ' 7 where(8 '+ c.WhereClause + '9 )' from inserted c join DialogTable t on c.UID_DialogTableObjectClass = t.uid_dialogtable where c.WhereClause10 > ' ' update @SQLToCheck set ContentFull = REPLACE(contentFull , '@UID_Org', '''#''') exec QBM_PSQLCheckExecutable @SQLToCheck, @RaiseError = 1 end 11if exists (select i.UID_DynamicGroup, i.UID_DialogTableObjectClass, a.* from inserted i join BaseTree b on i.ObjectKeyBaseTree = b.XObjectKey join orgrootassign12 a on b.UID_OrgRoot = a.UID_OrgRoot join BaseTreeAssign ba on ba.UID_BaseTreeAssign = a.UID_BaseTreeAssign join DialogTable t on ba.UID_DialogTableElement13 = t.UID_DialogTable and i.UID_DialogTableObjectClass = t.UID_DialogTable where a.IsAssignmentAllowed = 0 ) and dbo.QBM_FGISessionContext ('Transport'14) = '' begin raiserror( '#LDS#Combinations of role and object classes are not permitted because (direct) assignment are not allowed according to OrgRoot.|'15, 18, 1) with nowait end if exists (select top 1 1 from inserted i join BaseTree b1 on i.ObjectKeyBaseTree = b1.XObjectKey join BaseTreeExcludesBaseTree16 exc on exc.uid_org = b1.UID_Org join BaseTree b2 on b2.UID_Org = exc.uid_orgExcluded join DynamicGroup d on b2.XObjectKey = d.ObjectKeyBaseTree ) or exists17 (select top 1 1 from inserted i join BaseTree b1 on i.ObjectKeyBaseTree = b1.XObjectKey join BaseTreeExcludesBaseTree exc on exc.uid_orgExcluded = b1.UID_Org18 join BaseTree b2 on b2.UID_Org = exc.uid_org join DynamicGroup d on b2.XObjectKey = d.ObjectKeyBaseTree ) begin raiserror( '#LDS#Cannot make a definition because there is a role exclusion with another dynamic role.|'19, 18, 1) with nowait end if exists (select top 1 1 from inserted i join DialogTable t on i.UID_DialogTableObjectClass = t.UID_DialogTable where t.TableName20 not in ('Hardware' , 'Person' , 'WorkDesk' ) ) begin select @ErrorMessage = '#LDS#Object category is not permitted for dynamic groups:.|' raiserror( 21@ErrorMessage, 18, 1) with nowait end declare @DBQueueElements_01 QBM_YDBQueueRaw insert into @DBQueueElements_01 (object, subobject, genprocid) select22 x.uid, null, @GenProcID from ( select UID_DynamicGroup as uid from inserted ) as x exec QBM_PDBQueueInsert_Bulk 'QER-K-DynamicGroupMakeProc', @DBQueueElements_0123 exec QBM_PDBQueueInsert_Bulk 'QER-K-DynamicGroupTest', @DBQueueElements_01 exec QBM_PDBQueueInsert_Single 'QER-K-DynamicGroupMakeTrigger', '', '', @GenProcID24 END TRY BEGIN CATCH exec QBM_PSessionErrorAdd default RAISERROR ('', 18, 1) WITH NOWAIT END CATCH end 25