dbo.ADS_TUAdsGroup
Database TriggerSQL_TRIGGERSandbox DB
Interpretation
- Database trigger. Treat parent table and enqueue/object-layer calls as the main relation points.
- Object-layer bridge detected through QBM_PJobCreate helper usage.
- DBQueue relation detected. Follow the task procedure and referenced-by list for async processing.
Relations
- Single DBQueue insert -> QBM-K-CommonReCalculate / QBM_ZRecalculate at line 81
- Bulk DBQueue insert -> ADS-K-ADSAccountInADSGroup / ADS_ZAccountInADSGroup at line 81
- Single DBQueue insert -> QBM-K-CommonReCalculate / QBM_ZRecalculate at line 81
- Bulk DBQueue insert -> ADS-K-ADSAccountInADSGroup / ADS_ZAccountInADSGroup at line 81
- Single DBQueue insert -> QBM-K-CommonReCalculate / QBM_ZRecalculate at line 81
- Bulk DBQueue insert -> ADS-K-ADSContactInADSGroup / ADS_ZContactInADSGroup at line 81
- Single DBQueue insert -> QBM-K-CommonReCalculate / QBM_ZRecalculate at line 81
- Bulk DBQueue insert -> ADS-K-ADSContactInADSGroup / ADS_ZContactInADSGroup at line 81
- Single DBQueue insert -> QBM-K-CommonReCalculate / QBM_ZRecalculate at line 81
- Bulk DBQueue insert -> ADS-K-ADSMachineInADSGroup / ADS_ZADSMachineInADSGroup at line 81
- Bulk DBQueue insert -> ADS-K-ADSAccountInADSGroup / ADS_ZAccountInADSGroup at line 82
- Single DBQueue insert -> QBM-K-CommonReCalculate / QBM_ZRecalculate at line 82
- Bulk DBQueue insert -> ADS-K-ADSAccountInADSGroup / ADS_ZAccountInADSGroup at line 82
- Single DBQueue insert -> QBM-K-CommonReCalculate / QBM_ZRecalculate at line 82
- Bulk DBQueue insert -> ADS-K-ADSContactInADSGroup / ADS_ZContactInADSGroup at line 82
- Single DBQueue insert -> QBM-K-CommonReCalculate / QBM_ZRecalculate at line 82
- Bulk DBQueue insert -> ADS-K-ADSContactInADSGroup / ADS_ZContactInADSGroup at line 82
- Single DBQueue insert -> QBM-K-CommonReCalculate / QBM_ZRecalculate at line 82
- Bulk DBQueue insert -> ADS-K-ADSMachineInADSGroup / ADS_ZADSMachineInADSGroup at line 82
- Single DBQueue insert -> QBM-K-CommonReCalculate / QBM_ZRecalculate at line 90
- Bulk DBQueue insert -> ADS-K-ADSAccountInADSGroup / ADS_ZAccountInADSGroup at line 90
- Single DBQueue insert -> QBM-K-CommonReCalculate / QBM_ZRecalculate at line 90
- Bulk DBQueue insert -> ADS-K-ADSContactInADSGroup / ADS_ZContactInADSGroup at line 90
- Single DBQueue insert -> QBM-K-CommonReCalculate / QBM_ZRecalculate at line 90
- Bulk DBQueue insert -> ADS-K-ADSContactInADSGroup / ADS_ZContactInADSGroup at line 90
- Single DBQueue insert -> QBM-K-CommonReCalculate / QBM_ZRecalculate at line 90
- Bulk DBQueue insert -> ADS-K-ADSMachineInADSGroup / ADS_ZADSMachineInADSGroup at line 90
- Single DBQueue insert -> QBM-K-CommonReCalculate / QBM_ZRecalculate at line 90
- Bulk DBQueue insert -> ADS-K-ADSMachineInADSGroup / ADS_ZADSMachineInADSGroup at line 90
- Single DBQueue insert -> QBM-K-CommonReCalculate / QBM_ZRecalculate at line 94
- Bulk DBQueue insert -> ADS-K-ADSContactInADSGroup / ADS_ZContactInADSGroup at line 94
- Single DBQueue insert -> QBM-K-CommonReCalculate / QBM_ZRecalculate at line 94
- Bulk DBQueue insert -> ADS-K-ADSContactInADSGroup / ADS_ZContactInADSGroup at line 94
- Single DBQueue insert -> QBM-K-CommonReCalculate / QBM_ZRecalculate at line 94
- Bulk DBQueue insert -> ADS-K-ADSMachineInADSGroup / ADS_ZADSMachineInADSGroup at line 94
- Single DBQueue insert -> QBM-K-CommonReCalculate / QBM_ZRecalculate at line 94
- Bulk DBQueue insert -> ADS-K-ADSMachineInADSGroup / ADS_ZADSMachineInADSGroup at line 94
- Bulk DBQueue insert -> ADS-K-ADSContactInADSGroup / ADS_ZContactInADSGroup at line 95
- Single DBQueue insert -> QBM-K-CommonReCalculate / QBM_ZRecalculate at line 95
- Bulk DBQueue insert -> ADS-K-ADSContactInADSGroup / ADS_ZContactInADSGroup at line 95
- Single DBQueue insert -> QBM-K-CommonReCalculate / QBM_ZRecalculate at line 95
- Bulk DBQueue insert -> ADS-K-ADSMachineInADSGroup / ADS_ZADSMachineInADSGroup at line 95
- Single DBQueue insert -> QBM-K-CommonReCalculate / QBM_ZRecalculate at line 95
- Bulk DBQueue insert -> ADS-K-ADSMachineInADSGroup / ADS_ZADSMachineInADSGroup at line 95
- Single DBQueue insert -> QBM-K-CommonReCalculate / QBM_ZRecalculate at line 102
- Bulk DBQueue insert -> ADS-K-ADSContactInADSGroup / ADS_ZContactInADSGroup at line 102
- Single DBQueue insert -> QBM-K-CommonReCalculate / QBM_ZRecalculate at line 102
- Bulk DBQueue insert -> ADS-K-ADSMachineInADSGroup / ADS_ZADSMachineInADSGroup at line 102
- Single DBQueue insert -> QBM-K-CommonReCalculate / QBM_ZRecalculate at line 102
- Bulk DBQueue insert -> ADS-K-ADSMachineInADSGroup / ADS_ZADSMachineInADSGroup at line 102
- Bulk DBQueue insert -> ADS-K-ADSContactInADSGroup / ADS_ZContactInADSGroup at line 103
- Single DBQueue insert -> QBM-K-CommonReCalculate / QBM_ZRecalculate at line 103
- Bulk DBQueue insert -> ADS-K-ADSMachineInADSGroup / ADS_ZADSMachineInADSGroup at line 103
- Single DBQueue insert -> QBM-K-CommonReCalculate / QBM_ZRecalculate at line 103
- Bulk DBQueue insert -> ADS-K-ADSMachineInADSGroup / ADS_ZADSMachineInADSGroup at line 103
- Single DBQueue insert -> QBM-K-CommonReCalculate / QBM_ZRecalculate at line 106
- Bulk DBQueue insert -> ADS-K-ADSMachineInADSGroup / ADS_ZADSMachineInADSGroup at line 106
- Single DBQueue insert -> QBM-K-CommonReCalculate / QBM_ZRecalculate at line 106
- Bulk DBQueue insert -> ADS-K-ADSMachineInADSGroup / ADS_ZADSMachineInADSGroup at line 106
- Bulk DBQueue insert -> ADS-K-ADSMachineInADSGroup / ADS_ZADSMachineInADSGroup at line 107
- Single DBQueue insert -> QBM-K-CommonReCalculate / QBM_ZRecalculate at line 107
- Bulk DBQueue insert -> ADS-K-ADSMachineInADSGroup / ADS_ZADSMachineInADSGroup at line 107
- Single DBQueue insert -> QBM-K-CommonReCalculate / QBM_ZRecalculate at line 113
- Bulk DBQueue insert -> ADS-K-ADSMachineInADSGroup / ADS_ZADSMachineInADSGroup at line 113
- References QBM_PJobCreate*
- References QBM_PDBQueueInsert_Single
- References QBM_PDBQueueInsert_Bulk
- Trigger parent table: ADSGroup
Typed Edges
- queues DBQueue task QBM_ZRecalculate at line 81 Single DBQueue insert -> QBM-K-CommonReCalculate / QBM_ZRecalculate at line 81
- queues DBQueue task ADS_ZAccountInADSGroup at line 81 Bulk DBQueue insert -> ADS-K-ADSAccountInADSGroup / ADS_ZAccountInADSGroup at line 81
- queues DBQueue task ADS_ZContactInADSGroup at line 81 Bulk DBQueue insert -> ADS-K-ADSContactInADSGroup / ADS_ZContactInADSGroup at line 81
- queues DBQueue task ADS_ZADSMachineInADSGroup at line 81 Bulk DBQueue insert -> ADS-K-ADSMachineInADSGroup / ADS_ZADSMachineInADSGroup at line 81
- queues DBQueue task ADS_ZAccountInADSGroup at line 82 Bulk DBQueue insert -> ADS-K-ADSAccountInADSGroup / ADS_ZAccountInADSGroup at line 82
- queues DBQueue task QBM_ZRecalculate at line 82 Single DBQueue insert -> QBM-K-CommonReCalculate / QBM_ZRecalculate at line 82
- queues DBQueue task ADS_ZContactInADSGroup at line 82 Bulk DBQueue insert -> ADS-K-ADSContactInADSGroup / ADS_ZContactInADSGroup at line 82
- queues DBQueue task ADS_ZADSMachineInADSGroup at line 82 Bulk DBQueue insert -> ADS-K-ADSMachineInADSGroup / ADS_ZADSMachineInADSGroup at line 82
- queues DBQueue task QBM_ZRecalculate at line 90 Single DBQueue insert -> QBM-K-CommonReCalculate / QBM_ZRecalculate at line 90
- queues DBQueue task ADS_ZAccountInADSGroup at line 90 Bulk DBQueue insert -> ADS-K-ADSAccountInADSGroup / ADS_ZAccountInADSGroup at line 90
- queues DBQueue task ADS_ZContactInADSGroup at line 90 Bulk DBQueue insert -> ADS-K-ADSContactInADSGroup / ADS_ZContactInADSGroup at line 90
- queues DBQueue task ADS_ZADSMachineInADSGroup at line 90 Bulk DBQueue insert -> ADS-K-ADSMachineInADSGroup / ADS_ZADSMachineInADSGroup at line 90
- queues DBQueue task QBM_ZRecalculate at line 94 Single DBQueue insert -> QBM-K-CommonReCalculate / QBM_ZRecalculate at line 94
- queues DBQueue task ADS_ZContactInADSGroup at line 94 Bulk DBQueue insert -> ADS-K-ADSContactInADSGroup / ADS_ZContactInADSGroup at line 94
- queues DBQueue task ADS_ZADSMachineInADSGroup at line 94 Bulk DBQueue insert -> ADS-K-ADSMachineInADSGroup / ADS_ZADSMachineInADSGroup at line 94
- queues DBQueue task ADS_ZContactInADSGroup at line 95 Bulk DBQueue insert -> ADS-K-ADSContactInADSGroup / ADS_ZContactInADSGroup at line 95
- queues DBQueue task QBM_ZRecalculate at line 95 Single DBQueue insert -> QBM-K-CommonReCalculate / QBM_ZRecalculate at line 95
- queues DBQueue task ADS_ZADSMachineInADSGroup at line 95 Bulk DBQueue insert -> ADS-K-ADSMachineInADSGroup / ADS_ZADSMachineInADSGroup at line 95
- queues DBQueue task QBM_ZRecalculate at line 102 Single DBQueue insert -> QBM-K-CommonReCalculate / QBM_ZRecalculate at line 102
- queues DBQueue task ADS_ZContactInADSGroup at line 102 Bulk DBQueue insert -> ADS-K-ADSContactInADSGroup / ADS_ZContactInADSGroup at line 102
- queues DBQueue task ADS_ZADSMachineInADSGroup at line 102 Bulk DBQueue insert -> ADS-K-ADSMachineInADSGroup / ADS_ZADSMachineInADSGroup at line 102
- queues DBQueue task ADS_ZContactInADSGroup at line 103 Bulk DBQueue insert -> ADS-K-ADSContactInADSGroup / ADS_ZContactInADSGroup at line 103
- queues DBQueue task QBM_ZRecalculate at line 103 Single DBQueue insert -> QBM-K-CommonReCalculate / QBM_ZRecalculate at line 103
- queues DBQueue task ADS_ZADSMachineInADSGroup at line 103 Bulk DBQueue insert -> ADS-K-ADSMachineInADSGroup / ADS_ZADSMachineInADSGroup at line 103
- queues DBQueue task QBM_ZRecalculate at line 106 Single DBQueue insert -> QBM-K-CommonReCalculate / QBM_ZRecalculate at line 106
- queues DBQueue task ADS_ZADSMachineInADSGroup at line 106 Bulk DBQueue insert -> ADS-K-ADSMachineInADSGroup / ADS_ZADSMachineInADSGroup at line 106
- queues DBQueue task ADS_ZADSMachineInADSGroup at line 107 Bulk DBQueue insert -> ADS-K-ADSMachineInADSGroup / ADS_ZADSMachineInADSGroup at line 107
- queues DBQueue task QBM_ZRecalculate at line 107 Single DBQueue insert -> QBM-K-CommonReCalculate / QBM_ZRecalculate at line 107
- queues DBQueue task QBM_ZRecalculate at line 113 Single DBQueue insert -> QBM-K-CommonReCalculate / QBM_ZRecalculate at line 113
- queues DBQueue task ADS_ZADSMachineInADSGroup at line 113 Bulk DBQueue insert -> ADS-K-ADSMachineInADSGroup / ADS_ZADSMachineInADSGroup at line 113
- trigger on table ADSGroup Trigger parent table: ADSGroup
- references source dbo.QBM_FCVBigIntToString source text reference
- references source dbo.QBM_FCVElementToObjectKey1 source text reference
- references source dbo.QBM_FGIBitPatternXMarkedForDel source text reference
- 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_PJobCreate source text reference
- references source dbo.QBM_PJobCreate_HOUpdate source text reference
- references source dbo.QBM_PJobCreate_HOUpdate_B source text reference
References
- dbo.QBM_FCVBigIntToString
- dbo.QBM_FCVElementToObjectKey1
- dbo.QBM_FGIBitPatternXMarkedForDel
- dbo.QBM_FGISessionContext
- dbo.QBM_PDBQueueInsert_Bulk
- dbo.QBM_PDBQueueInsert_Single
- dbo.QBM_PJobCreate
- dbo.QBM_PJobCreate_HOUpdate
- dbo.QBM_PJobCreate_HOUpdate_B
- dbo.QBM_PSessionErrorAdd
- dbo.QER_PIsForITShopFlagCheck
- dbo.QER_PITShopHelperFill
- dbo.QER_PITShopHelperFill_Recalc
Referenced By
- No direct source references extracted.
Complete Source
1CREATE trigger ADS_TUAdsGroup2 ON AdsGroup FOR3UPDATE NOT FOR Replication4AS5BEGIN6 DECLARE @Parameter nvarchar(256)7 DECLARE @LoadLimit int = 750008 DECLARE @LoadSumme int9 DECLARE @GroupsChanged QBM_YParameterList10 DECLARE @DebugSwitch int = 011 DECLARE @ObjectkeyOrdered varchar(138)12 DECLARE @UID_AccProduct varchar(38)13 DECLARE @whereclauseOrg nvarchar(max)14 DECLARE @whereclauseMuster nvarchar(max) = ' UID_ITShopOrg in ( select UID_OrgPR 15 from QER_VPWOProductNodesSlim16 where ObjectkeyOrdered = ''@ObjectkeyOrdered'' 17 and isnull(UID_AccProduct, '''') <> ''@UID_AccProduct''18 )19'20 DECLARE @ElementBuffer QBM_YCursorBuffer21 DECLARE @ElementCount int22 DECLARE @ElementIndex int23 DECLARE @QBM_BitPatternXMarkedForDel_Out int = dbo.QBM_FGIBitPatternXMarkedForDel('|OutStanding|',24 0)25 BEGIN TRY26 IF EXISTS(27 SELECT TOP 1 128 FROM inserted)29 GOTO start30 IF EXISTS(31 SELECT TOP 1 132 FROM deleted)33 GOTO start34 RETURN start:35 DECLARE @GenProcID varchar(38)36 SELECT @GenProcID = dbo.QBM_FGISessionContext('')37 IF38 UPDATE(HasReadOnlyMemberships)39 BEGIN40 IF EXISTS(41 SELECT TOP 1 142 FROM deleted d43 JOIN ADSGroup g44 ON d.uid_ADSGroup = g.uid_ADSGroup AND d.HasReadOnlyMemberships = 0 AND g.HasReadOnlyMemberships = 145 JOIN ADSGroupExclusion bhg46 ON g.uid_ADSGroup = bhg.uid_ADSGroupLower) OR EXISTS(47 SELECT TOP 1 148 FROM deleted d49 JOIN ADSGroup g50 ON d.uid_ADSGroup = g.uid_ADSGroup AND d.HasReadOnlyMemberships = 0 AND g.HasReadOnlyMemberships = 151 JOIN ADSGroupExclusion bhg52 ON g.uid_ADSGroup = bhg.uid_ADSGroupHigher)53 BEGIN54 IF dbo.QBM_FGISessionContext('Fullsync') > ' '55 BEGIN56 DELETE ADSGroupExclusion57 FROM deleted d58 JOIN ADSGroup g59 ON d.uid_ADSGroup = g.uid_ADSGroup AND d.HasReadOnlyMemberships = 0 AND g.HasReadOnlyMemberships = 160 JOIN ADSGroupExclusion bhg61 ON g.uid_ADSGroup IN(bhg.uid_ADSGroupLower,62 bhg.UID_ADSGroupHigher)63 END64 ELSE65 BEGIN66 RAISERROR('#LDS#Changes can not be made because there are still assignments in group exclusion.|',67 18,68 2)69 WITH nowait70 END71 END72 IF EXISTS(73 SELECT TOP 1 174 FROM deleted d75 JOIN ADSGroup g76 ON d.uid_ADSGroup = g.uid_ADSGroup AND d.HasReadOnlyMemberships = 0 AND g.HasReadOnlyMemberships = 177 JOIN BaseTreeHasADSGroup bhg78 ON g.uid_ADSGroup = bhg.uid_ADSGroup AND bhg.XOrigin > 0)79 BEGIN80 IF dbo.QBM_FGISessionContext('Fullsync') > ' '81 BEGIN82 UPDATE BaseTreeHasADSGroup83 SET XOrigin = 0,84 XIsInEffect = 085 FROM deleted d86 JOIN ADSGroup g87 ON d.uid_ADSGroup = g.uid_ADSGroup AND d.HasReadOnlyMemberships = 0 AND g.HasReadOnlyMemberships = 188 JOIN BaseTreeHasADSGroup bhg89 ON g.uid_ADSGroup = bhg.uid_ADSGroup90 END91 ELSE92 BEGIN93 RAISERROR('#LDS#Changes cannot be made because assignment still exist for {0}.|BaseTree|',94 18,95 1)96 WITH nowait97 END98 END99 IF EXISTS(100 SELECT TOP 1 1101 FROM deleted d102 JOIN ADSGroup g103 ON d.uid_ADSGroup = g.uid_ADSGroup AND d.HasReadOnlyMemberships = 0 AND g.HasReadOnlyMemberships = 1104 JOIN ADSAccountInADSGroup bhg105 ON g.uid_ADSGroup = bhg.uid_ADSGroup AND bhg.XOrigin > 0)106 BEGIN107 IF dbo.QBM_FGISessionContext('Fullsync') > ' '108 BEGIN109 UPDATE ADSAccountInADSGroup110 SET XOrigin = 0,111 XIsInEffect = 0112 FROM deleted d113 JOIN ADSGroup g114 ON d.uid_ADSGroup = g.uid_ADSGroup AND d.HasReadOnlyMemberships = 0 AND g.HasReadOnlyMemberships = 1115 JOIN ADSAccountInADSGroup bhg116 ON g.uid_ADSGroup = bhg.uid_ADSGroup117 END118 ELSE119 BEGIN120 RAISERROR('#LDS#Changes cannot be made because assignment still exist for {0}.|ADSAccount|',121 18,122 1)123 WITH nowait124 END125 END126 IF EXISTS(127 SELECT TOP 1 1128 FROM deleted d129 JOIN ADSGroup g130 ON d.uid_ADSGroup = g.uid_ADSGroup AND d.HasReadOnlyMemberships = 0 AND g.HasReadOnlyMemberships = 1131 JOIN ADSContactInADSGroup bhg132 ON g.uid_ADSGroup = bhg.uid_ADSGroup AND bhg.XOrigin > 0)133 BEGIN134 IF dbo.QBM_FGISessionContext('Fullsync') > ' '135 BEGIN136 UPDATE ADSContactInADSGroup137 SET XOrigin = 0,138 XIsInEffect = 0139 FROM deleted d140 JOIN ADSGroup g141 ON d.uid_ADSGroup = g.uid_ADSGroup AND d.HasReadOnlyMemberships = 0 AND g.HasReadOnlyMemberships = 1142 JOIN ADSContactInADSGroup bhg143 ON g.uid_ADSGroup = bhg.uid_ADSGroup144 END145 ELSE146 BEGIN147 RAISERROR('#LDS#Changes cannot be made because assignment still exist for {0}.|ADSContact|',148 18,149 1)150 WITH nowait151 END152 END153 IF EXISTS(154 SELECT TOP 1 1155 FROM deleted d156 JOIN ADSGroup g157 ON d.uid_ADSGroup = g.uid_ADSGroup AND d.HasReadOnlyMemberships = 0 AND g.HasReadOnlyMemberships = 1158 JOIN ADSGroupInADSGroup bhg159 ON g.uid_ADSGroup = bhg.UID_ADSGroupParent)160 BEGIN161 IF dbo.QBM_FGISessionContext('Fullsync') > ' '162 BEGIN163 DELETE ADSGroupInADSGroup164 FROM deleted d165 JOIN ADSGroup g166 ON d.uid_ADSGroup = g.uid_ADSGroup AND d.HasReadOnlyMemberships = 0 AND g.HasReadOnlyMemberships = 1167 JOIN ADSGroupInADSGroup bhg168 ON g.uid_ADSGroup = bhg.UID_ADSGroupParent169 END170 ELSE171 BEGIN172 RAISERROR('#LDS#Changes cannot be made because assignment still exist for {0}.|ADSGroupInADSGroup|',173 18,174 1)175 WITH nowait176 END177 END178 IF EXISTS(179 SELECT TOP 1 1180 FROM deleted d181 JOIN ADSGroup g182 ON d.uid_ADSGroup = g.uid_ADSGroup AND d.HasReadOnlyMemberships = 0 AND g.HasReadOnlyMemberships = 1183 JOIN ADSMachineInADSGroup bhg184 ON g.uid_ADSGroup = bhg.uid_ADSGroup AND bhg.XOrigin > 0)185 BEGIN186 IF dbo.QBM_FGISessionContext('Fullsync') > ' '187 BEGIN188 UPDATE ADSMachineInADSGroup189 SET XOrigin = 0,190 XIsInEffect = 0191 FROM deleted d192 JOIN ADSGroup g193 ON d.uid_ADSGroup = g.uid_ADSGroup AND d.HasReadOnlyMemberships = 0 AND g.HasReadOnlyMemberships = 1194 JOIN ADSMachineInADSGroup bhg195 ON g.uid_ADSGroup = bhg.uid_ADSGroup196 END197 ELSE198 BEGIN199 RAISERROR('#LDS#Changes cannot be made because assignment still exist for {0}.|ADSMachine|',200 18,201 1)202 WITH nowait203 END204 END205 IF EXISTS(206 SELECT TOP 1 1207 FROM deleted d208 JOIN ADSGroup g209 ON d.uid_ADSGroup = g.uid_ADSGroup AND d.HasReadOnlyMemberships = 0 AND g.HasReadOnlyMemberships = 1210 JOIN EsetHasEntitlement bhg211 ON g.XObjectKey = bhg.Entitlement AND bhg.XOrigin > 0)212 BEGIN213 IF dbo.QBM_FGISessionContext('Fullsync') > ' '214 BEGIN215 UPDATE EsetHasEntitlement216 SET XOrigin = 0,217 XIsInEffect = 0218 FROM deleted d219 JOIN ADSGroup g220 ON d.uid_ADSGroup = g.uid_ADSGroup AND d.HasReadOnlyMemberships = 0 AND g.HasReadOnlyMemberships = 1221 JOIN EsetHasEntitlement bhg222 ON g.XObjectKey = bhg.Entitlement223 END224 ELSE225 BEGIN226 RAISERROR('#LDS#Changes cannot be made because assignment still exist for {0}.|Eset|',227 18,228 1)229 WITH nowait230 END231 END232 END233 IF234 UPDATE(isITShopOnly)235 BEGIN236 IF EXISTS(237 SELECT TOP 1 1238 FROM deleted d239 JOIN ADSGroup g240 ON d.UID_ADSGroup = g.UID_ADSGroup241 WHERE242 g.IsITshopOnly = 1 AND EXISTS(243 SELECT TOP 1 1244 FROM ADSAccount u245 WHERE246 u.UID_ADSGroupPrimary = g.UID_ADSGroup))247 BEGIN248 RAISERROR('#LDS#The definition of a group as "IsITshopOnly = 1" and simultaneous use as primary group is not allowed.|',249 18,250 2)251 WITH nowait252 END253 END254 IF255 UPDATE(ObjectSID)256 BEGIN257 IF EXISTS(258 SELECT TOP 1 1259 FROM ADSGroup x260 JOIN deleted d261 ON x.uid_ADSGroup= d.uid_ADSGroup262 WHERE263 isnull(d.ObjectSID, N '') <> isnull(x.ObjectSID, N ''))264 BEGIN265 INSERT INTO ADSOtherSID(UID_ADSOtherSID,266 ObjectSID,267 DistinguishedName,268 canonicalName,269 Ident_ADSOtherSID,270 XDateInserted,271 XDateUpdated,272 XUserInserted,273 XUserUpdated,274 XObjectKey)275 SELECT276 x.UID_ADSOtherSID,277 x.ObjectSID,278 x.DistinguishedName,279 x.canonicalName,280 x.Ident_ADSOtherSID,281 x.XDateInserted,282 x.XDateUpdated,283 x.XUserInserted,284 x.XUserUpdated,285 dbo.QBM_FCVElementToObjectKey1('ADSOtherSID',286 'UID_ADSOtherSID',287 x.UID_ADSOtherSID)288 FROM(289 SELECT290 newid() AS UID_ADSOtherSID,291 d.ObjectSID,292 d.DistinguishedName,293 d.canonicalName,294 d.cn AS Ident_ADSOtherSID,295 d.XDateInserted,296 d.XDateUpdated,297 d.XUserInserted,298 d.XUserUpdated299 FROM ADSGroup x300 JOIN deleted d301 ON x.uid_ADSGroup= d.uid_ADSGroup302 WHERE303 d.ObjectSID > ' ' AND isnull(d.ObjectSID, N '') <> isnull(x.ObjectSID, N '') AND NOT EXISTS(304 SELECT TOP 1 1305 FROM ADSOtherSID x306 WHERE307 x.ObjectSID = d.ObjectSID)) AS x308 END309 IF EXISTS(310 SELECT TOP 1 1311 FROM ADSOtherSID a312 JOIN inserted d313 ON a.ObjectSID = d.ObjectSID)314 BEGIN315 DELETE ADSOtherSID316 WHERE317 objectSID IN(318 SELECT x.ObjectSID319 FROM ADSGroup x320 JOIN deleted d321 ON x.uid_ADSGroup = d.uid_ADSGroup322 WHERE323 isnull(x.ObjectSID, N '') <> isnull(d.ObjectSID, N '')) AND UID_ADSOtherSID NOT LIKE 'ADS-%'324 END325 END326 IF327 UPDATE(isForITShop) OR328 UPDATE(isITShopOnly)329 BEGIN330 DECLARE @FlagTest QBM_YParameterlist331 INSERT INTO @FlagTest(Parameter1,332 Parameter2,333 HasContentFull,334 e.Parameter3)335 SELECT336 i.UID_AdsGroup,337 i.XObjectKey,338 i.IsForITShop,339 dbo.QBM_FCVBigIntToString(i.IsITShopOnly)340 FROM inserted i341 EXEC QER_PIsForITShopFlagCheck 'AdsGroup',342 @FlagTest,343 'ADSAccountInADSGroup|ADSMachineInADSGroup'344 END345 IF346 UPDATE(uid_accproduct)347 BEGIN348 INSERT INTO @elementbuffer(ObjectKey1,349 uid1)350 SELECT351 x.XObjectKey,352 isnull(x.uid_accproduct,353 '')354 FROM ADSGroup x355 JOIN deleted d356 ON x.uid_ADSGroup = d.uid_ADSGroup AND isnull(x.uid_accproduct,357 '') <> isnull(d.uid_accproduct,358 '') AND d.uid_accproduct > ' '359 JOIN dialogColumn c360 ON c.UID_DialogTable = 'QER-T-ITShopOrg' AND c.columnname = 'uid_ACCProduct' AND c.IsDeactivatedByPreProcessor = 0361 SELECT @ElementCount = @@rowcount362 SELECT @ElementIndex = 1363 WHILE @ElementIndex <= @ElementCount364 BEGIN365 SELECT366 TOP 1 @ObjectkeyOrdered = bu.Objectkey1,367 @UID_AccProduct = bu.uid1368 FROM @elementbuffer bu369 WHERE370 bu.ElementIndex = @ElementIndex371 SELECT @whereclauseOrg = @whereclauseMuster372 SELECT373 @whereclauseOrg = replace(@whereclauseOrg,374 N '@ObjectkeyOrdered',375 @ObjectkeyOrdered)376 SELECT377 @whereclauseOrg = replace(@whereclauseOrg,378 N '@uid_accproduct',379 rtrim(@uid_accproduct))380 EXEC QBM_PJobCreate_HOUpdate_B N 'ITShopOrg',381 @whereclauseOrg,382 @GenProcID,383 @p1 = 'uid_ACCProduct',384 @v1 = @uid_accproduct,385 @AdditionalObjectKeysAffected = DEFAULT386 SELECT @ElementIndex += 1387 END388 END389 IF390 UPDATE(UID_AccProduct)391 BEGIN392 DECLARE @RecalcParameter_OA QBM_YCursorBuffer393 INSERT INTO @RecalcParameter_OA(UID1,394 ObjectKey1,395 Ident1)396 SELECT397 'QER-PWODecisionRule-OA',398 a.XObjectKey,399 'I'400 FROM inserted i401 JOIN ADSGroup g402 ON i.UID_ADSGroup = g.UID_ADSGroup403 JOIN QERAccProductUsage u404 ON g.XObjectKey = u.XObjectKey405 JOIN AccProduct a406 ON u.UID_AccProduct = a.UID_AccProduct407 UNION408 SELECT409 'QER-PWODecisionRule-OA',410 a.XObjectKey,411 'I'412 FROM deleted d413 JOIN ADSGroup g414 ON d.UID_ADSGroup = g.UID_ADSGroup415 JOIN QERAccProductUsage u416 ON g.XObjectKey = u.XObjectKey417 JOIN AccProduct a418 ON u.UID_AccProduct = a.UID_AccProduct419 EXEC QER_PITShopHelperFill_Recalc @RecalcParameter_OA,420 @GenprocID421 DECLARE @RecalcParameter_OA2 QBM_YCursorBuffer422 INSERT INTO @RecalcParameter_OA2(UID1,423 ObjectKey1,424 Ident1)425 SELECT426 'QER-PWODecisionRule-OA',427 pwo.XObjectKey,428 'I'429 FROM inserted i430 JOIN ADSGroup g431 ON i.UID_ADSGroup = g.UID_ADSGroup432 JOIN AccProduct a433 ON i.UID_AccProduct = a.UID_AccProduct434 JOIN PersonWantsOrg pwo435 ON g.XObjectKey = pwo.ObjectKeyElementUsedInAssign436 UNION437 SELECT438 'QER-PWODecisionRule-OA',439 pwo.XObjectKey,440 'I'441 FROM deleted d442 JOIN ADSGroup g443 ON d.UID_ADSGroup = g.UID_ADSGroup444 JOIN AccProduct a445 ON d.UID_AccProduct = a.UID_AccProduct446 JOIN PersonWantsOrg pwo447 ON g.XObjectKey = pwo.ObjectKeyElementUsedInAssign448 EXEC QER_PITShopHelperFill_Recalc @RecalcParameter_OA2,449 @GenprocID450 END451 IF452 UPDATE(islocal) OR453 UPDATE(isuniversal) OR454 UPDATE(isGlobal) OR455 UPDATE(isSecurity) OR456 UPDATE(IsDistributionGroup) OR457 UPDATE(MatchPatternForMembership) OR458 UPDATE(XMarkedForDeletion)459 BEGIN460 INSERT INTO @GroupsChanged(Parameter1,461 Parameter2)462 SELECT463 g.uid_ADSGroup AS uid,464 g.XObjectKey465 FROM ADSGroup g466 JOIN deleted d467 ON g.UID_ADSGroup = d.UID_ADSGroup468 WHERE469 (g.islocal <> d.islocal OR g.isGlobal <> d.isGlobal OR g.isuniversal <> d.isuniversal OR g.isSecurity <> d.isSecurity OR g.IsDistributionGroup470 <> d.IsDistributionGroup OR g.MatchPatternForMembership <> d.MatchPatternForMembership OR(g.XMarkedForDeletion & @QBM_BitPatternXMarkedForDel_Out471 = 0 AND d.XMarkedForDeletion & @QBM_BitPatternXMarkedForDel_Out > 0))472 IF @DebugSwitch > 0473 BEGIN474 print 'Groups '475 SELECT476 Parameter1,477 parameter2,478 parameter3479 FROM @GroupsChanged480 END481 IF(482 SELECT count(*)483 FROM @GroupsChanged) > 0484 BEGIN485 DECLARE @DBQueueElements_01 QBM_YDBQueueRaw486 INSERT INTO @DBQueueElements_01(object,487 subobject,488 genprocid)489 SELECT490 x.uid,491 NULL,492 @GenProcID493 FROM(494 SELECT495 DISTINCT TOP(@LoadLimit) aig.uid_ADSAccount AS uid496 FROM @GroupsChanged g497 JOIN adsAccountInADSGroup aig498 ON g.Parameter1 = aig.uid_ADSGroup AND aig.XOrigin > 0) AS x499 SELECT @LoadSumme = @@ROWCOUNT500 IF @debugSwitch > 0501 BEGIN502 print 'Accounts zugewiesen, @LoadSumme ' + str(@LoadSumme)503 END504 IF @LoadSumme >= @loadlimit505 BEGIN506 EXEC QBM_PDBQueueInsert_Single 'QBM-K-CommonReCalculate',507 'ADS-K-ADSAccountInADSGroup',508 '',509 @genprocid510 END511 ELSE512 BEGIN513 EXEC QBM_PDBQueueInsert_Bulk 'ADS-K-ADSAccountInADSGroup',514 @DBQueueElements_01515 END516 IF @LoadSumme < @LoadLimit517 BEGIN518 DECLARE @DBQueueElements_02 QBM_YDBQueueRaw519 INSERT INTO @DBQueueElements_02(object,520 subobject,521 genprocid)522 SELECT523 x.uid,524 NULL,525 @GenProcID526 FROM(527 SELECT TOP(@LoadLimit) u.UID_ADSAccount AS uid528 FROM @GroupsChanged g529 JOIN BaseTreeHasObject bho530 ON g.Parameter2 = bho.ObjectKey531 JOIN PersonInBaseTree pho532 ON bho.UID_Org = pho.UID_Org533 JOIN ADSAccount u534 ON u.UID_Person = pho.UID_Person535 UNION536 SELECT TOP(@LoadLimit) u.UID_ADSAccount AS uid537 FROM @GroupsChanged g538 JOIN BaseTreeHasObject bho539 ON g.Parameter2 = bho.ObjectKey540 JOIN HelperPersonOrg pho541 ON bho.UID_Org = pho.UID_Org542 JOIN ADSAccount u543 ON u.UID_Person = pho.UID_Person544 UNION545 SELECT TOP(@LoadLimit) u.UID_ADSAccount AS uid546 FROM @GroupsChanged g547 JOIN ESetHasEntitlement ehe548 ON g.Parameter2 = ehe.Entitlement549 JOIN PersonHasESet phe550 ON phe.UID_ESet = ehe.UID_ESet551 JOIN ADSAccount u552 ON u.UID_Person = phe.UID_Person) AS x553 SELECT @LoadSumme += @@ROWCOUNT554 END555 IF @debugSwitch > 0556 BEGIN557 print 'Accounts irgendwie geerbt, @LoadSumme ' + str(@LoadSumme)558 END559 IF @LoadSumme >= @loadlimit560 BEGIN561 EXEC QBM_PDBQueueInsert_Single 'QBM-K-CommonReCalculate',562 'ADS-K-ADSAccountInADSGroup',563 '',564 @genprocid565 END566 ELSE567 BEGIN568 EXEC QBM_PDBQueueInsert_Bulk 'ADS-K-ADSAccountInADSGroup',569 @DBQueueElements_02570 END571 DECLARE @DBQueueElements_03 QBM_YDBQueueRaw572 INSERT INTO @DBQueueElements_03(object,573 subobject,574 genprocid)575 SELECT576 x.uid,577 NULL,578 @GenProcID579 FROM(580 SELECT581 DISTINCT TOP(@LoadLimit) aig.uid_ADSContact AS uid582 FROM @GroupsChanged g583 JOIN ADSContactInADSGroup aig584 ON g.Parameter1 = aig.uid_ADSGroup AND aig.XOrigin > 0) AS x585 SELECT @LoadSumme = @@ROWCOUNT586 IF @debugSwitch > 0587 BEGIN588 print 'Contacts zugewiesen, @LoadSumme ' + str(@LoadSumme)589 END590 IF @LoadSumme >= @loadlimit591 BEGIN592 EXEC QBM_PDBQueueInsert_Single 'QBM-K-CommonReCalculate',593 'ADS-K-ADSContactInADSGroup',594 '',595 @genprocid596 END597 ELSE598 BEGIN599 EXEC QBM_PDBQueueInsert_Bulk 'ADS-K-ADSContactInADSGroup',600 @DBQueueElements_03601 END602 IF @LoadSumme < @LoadLimit603 BEGIN604 DECLARE @DBQueueElements_04 QBM_YDBQueueRaw605 INSERT INTO @DBQueueElements_04(object,606 subobject,607 genprocid)608 SELECT609 x.uid,610 NULL,611 @GenProcID612 FROM(613 SELECT TOP(@LoadLimit) u.UID_ADSContact AS uid614 FROM @GroupsChanged g615 JOIN BaseTreeHasObject bho616 ON g.Parameter2 = bho.ObjectKey617 JOIN PersonInBaseTree pho618 ON bho.UID_Org = pho.UID_Org619 JOIN ADSContact u620 ON u.UID_Person = pho.UID_Person621 UNION622 SELECT TOP(@LoadLimit) u.UID_ADSContact AS uid623 FROM @GroupsChanged g624 JOIN BaseTreeHasObject bho625 ON g.Parameter2 = bho.ObjectKey626 JOIN HelperPersonOrg pho627 ON bho.UID_Org = pho.UID_Org628 JOIN ADSContact u629 ON u.UID_Person = pho.UID_Person630 UNION631 SELECT TOP(@LoadLimit) u.UID_ADSContact AS uid632 FROM @GroupsChanged g633 JOIN ESetHasEntitlement ehe634 ON g.Parameter2 = ehe.Entitlement635 JOIN PersonHasESet phe636 ON phe.UID_ESet = ehe.UID_ESet637 JOIN ADSContact u638 ON u.UID_Person = phe.UID_Person) AS x639 SELECT @LoadSumme += @@ROWCOUNT640 END641 IF @debugSwitch > 0642 BEGIN643 print 'Contacts irgendwie geerbt @LoadSumme ' + str(@LoadSumme)644 END645 IF @LoadSumme >= @loadlimit646 BEGIN647 EXEC QBM_PDBQueueInsert_Single 'QBM-K-CommonReCalculate',648 'ADS-K-ADSContactInADSGroup',649 '',650 @genprocid651 END652 ELSE653 BEGIN654 EXEC QBM_PDBQueueInsert_Bulk 'ADS-K-ADSContactInADSGroup',655 @DBQueueElements_04656 END657 DECLARE @DBQueueElements_05 QBM_YDBQueueRaw658 INSERT INTO @DBQueueElements_05(object,659 subobject,660 genprocid)661 SELECT662 x.uid,663 NULL,664 @GenProcID665 FROM(666 SELECT667 DISTINCT TOP(@LoadLimit) aig.uid_ADSMachine AS uid668 FROM @GroupsChanged g669 JOIN ADSMachineInADSGroup aig670 ON g.Parameter1 = aig.uid_ADSGroup AND aig.XOrigin > 0) AS x671 SELECT @LoadSumme = @@ROWCOUNT672 IF @debugSwitch > 0673 BEGIN674 print 'Machines zugewiesen @LoadSumme ' + str(@LoadSumme)675 END676 IF @LoadSumme >= @loadlimit677 BEGIN678 EXEC QBM_PDBQueueInsert_Single 'QBM-K-CommonReCalculate',679 'ADS-K-ADSMachineInADSGroup',680 '',681 @genprocid682 END683 ELSE684 BEGIN685 EXEC QBM_PDBQueueInsert_Bulk 'ADS-K-ADSMachineInADSGroup',686 @DBQueueElements_05687 END688 IF @LoadSumme < @LoadLimit689 BEGIN690 DECLARE @DBQueueElements_06 QBM_YDBQueueRaw691 INSERT INTO @DBQueueElements_06(object,692 subobject,693 genprocid)694 SELECT695 x.uid,696 NULL,697 @GenProcID698 FROM(699 SELECT700 DISTINCT TOP(@LoadLimit) m.UID_ADSMachine AS uid701 FROM @GroupsChanged g702 JOIN BaseTreeHasObject bho703 ON g.Parameter2 = bho.ObjectKey704 JOIN(705 SELECT706 hpo.UID_WorkDesk, hpo.UID_Org707 FROM HelperWorkDeskOrg hpo708 UNION709 SELECT710 pio.UID_WorkDesk, pio.UID_Org711 FROM WorkDeskInBaseTree pio) AS hwo712 ON bho.UID_Org = hwo.UID_Org713 JOIN Hardware h714 ON h.UID_WorkDesk = hwo.UID_WorkDesk715 JOIN ADSMachine m716 ON m.UID_Hardware = h.UID_Hardware) AS x717 SELECT @LoadSumme += @@ROWCOUNT718 END719 IF @debugSwitch > 0720 BEGIN721 print 'Machines irgendwie geerbt @LoadSumme ' + str(@LoadSumme)722 END723 IF @LoadSumme >= @loadlimit724 BEGIN725 EXEC QBM_PDBQueueInsert_Single 'QBM-K-CommonReCalculate',726 'ADS-K-ADSMachineInADSGroup',727 '',728 @genprocid729 END730 ELSE731 BEGIN732 EXEC QBM_PDBQueueInsert_Bulk 'ADS-K-ADSMachineInADSGroup',733 @DBQueueElements_06734 END735 END736 END737 END TRY738 BEGIN CATCH739 EXEC QBM_PSessionErrorAdd DEFAULT740 RAISERROR('',741 18,742 1)743 WITH NOWAIT744 END CATCH745 ende:746 RETURN747END
Open raw exported source
1create trigger ADS_TUAdsGroup on AdsGroup for Update not for Replication as begin declare @Parameter nvarchar(256) declare @LoadLimit int = 275000 declare @LoadSumme int declare @GroupsChanged QBM_YParameterList declare @DebugSwitch int = 0 declare @ObjectkeyOrdered varchar(138) declare @UID_AccProduct3 varchar(38) declare @whereclauseOrg nvarchar(max) declare @whereclauseMuster nvarchar(max) = ' UID_ITShopOrg in ( select UID_OrgPR 4 from QER_VPWOProductNodesSlim5 where ObjectkeyOrdered = ''@ObjectkeyOrdered'' 6 and isnull(UID_AccProduct, '''') <> ''@UID_AccProduct''7 )8'9 declare @ElementBuffer QBM_YCursorBuffer declare @ElementCount int declare @ElementIndex int declare @QBM_BitPatternXMarkedForDel_Out int = dbo.QBM_FGIBitPatternXMarkedForDel10('|OutStanding|', 0) BEGIN TRY if exists (select top 1 1 from inserted) goto start if exists (select top 1 1 from deleted) goto start return start: declare11 @GenProcID varchar(38) select @GenProcID = dbo.QBM_FGISessionContext('') if update(HasReadOnlyMemberships) begin if exists (select top 1 1 from deleted12 d join ADSGroup g on d.uid_ADSGroup = g.uid_ADSGroup and d.HasReadOnlyMemberships = 0 and g.HasReadOnlyMemberships = 1 join ADSGroupExclusion bhg on g.uid_ADSGroup13 = bhg.uid_ADSGroupLower ) or exists (select top 1 1 from deleted d join ADSGroup g on d.uid_ADSGroup = g.uid_ADSGroup and d.HasReadOnlyMemberships = 014 and g.HasReadOnlyMemberships = 1 join ADSGroupExclusion bhg on g.uid_ADSGroup = bhg.uid_ADSGroupHigher ) begin if dbo.QBM_FGISessionContext ('Fullsync'15) > ' ' begin delete ADSGroupExclusion from deleted d join ADSGroup g on d.uid_ADSGroup = g.uid_ADSGroup and d.HasReadOnlyMemberships = 0 and g.HasReadOnlyMemberships16 = 1 join ADSGroupExclusion bhg on g.uid_ADSGroup in( bhg.uid_ADSGroupLower, bhg.UID_ADSGroupHigher) end else begin raiserror( '#LDS#Changes can not be made because there are still assignments in group exclusion.|'17, 18, 2) with nowait end end if exists (select top 1 1 from deleted d join ADSGroup g on d.uid_ADSGroup = g.uid_ADSGroup and d.HasReadOnlyMemberships 18= 0 and g.HasReadOnlyMemberships = 1 join BaseTreeHasADSGroup bhg on g.uid_ADSGroup = bhg.uid_ADSGroup and bhg.XOrigin > 0 ) begin if dbo.QBM_FGISessionContext19 ('Fullsync') > ' ' begin update BaseTreeHasADSGroup set XOrigin = 0 , XIsInEffect = 0 from deleted d join ADSGroup g on d.uid_ADSGroup = g.uid_ADSGroup20 and d.HasReadOnlyMemberships = 0 and g.HasReadOnlyMemberships = 1 join BaseTreeHasADSGroup bhg on g.uid_ADSGroup = bhg.uid_ADSGroup end else begin raiserror21( '#LDS#Changes cannot be made because assignment still exist for {0}.|BaseTree|', 18, 1) with nowait end end if exists (select top 1 1 from deleted d 22join ADSGroup g on d.uid_ADSGroup = g.uid_ADSGroup and d.HasReadOnlyMemberships = 0 and g.HasReadOnlyMemberships = 1 join ADSAccountInADSGroup bhg on g.uid_ADSGroup23 = bhg.uid_ADSGroup and bhg.XOrigin > 0 ) begin if dbo.QBM_FGISessionContext ('Fullsync') > ' ' begin update ADSAccountInADSGroup set XOrigin = 0 , XIsInEffect24 = 0 from deleted d join ADSGroup g on d.uid_ADSGroup = g.uid_ADSGroup and d.HasReadOnlyMemberships = 0 and g.HasReadOnlyMemberships = 1 join ADSAccountInADSGroup25 bhg on g.uid_ADSGroup = bhg.uid_ADSGroup end else begin raiserror( '#LDS#Changes cannot be made because assignment still exist for {0}.|ADSAccount|', 2618, 1) with nowait end end if exists (select top 1 1 from deleted d join ADSGroup g on d.uid_ADSGroup = g.uid_ADSGroup and d.HasReadOnlyMemberships = 027 and g.HasReadOnlyMemberships = 1 join ADSContactInADSGroup bhg on g.uid_ADSGroup = bhg.uid_ADSGroup and bhg.XOrigin > 0 ) begin if dbo.QBM_FGISessionContext28 ('Fullsync') > ' ' begin update ADSContactInADSGroup set XOrigin = 0 , XIsInEffect = 0 from deleted d join ADSGroup g on d.uid_ADSGroup = g.uid_ADSGroup29 and d.HasReadOnlyMemberships = 0 and g.HasReadOnlyMemberships = 1 join ADSContactInADSGroup bhg on g.uid_ADSGroup = bhg.uid_ADSGroup end else begin raiserror30( '#LDS#Changes cannot be made because assignment still exist for {0}.|ADSContact|', 18, 1) with nowait end end if exists (select top 1 1 from deleted 31d join ADSGroup g on d.uid_ADSGroup = g.uid_ADSGroup and d.HasReadOnlyMemberships = 0 and g.HasReadOnlyMemberships = 1 join ADSGroupInADSGroup bhg on g.uid_ADSGroup32 = bhg.UID_ADSGroupParent ) begin if dbo.QBM_FGISessionContext ('Fullsync') > ' ' begin delete ADSGroupInADSGroup from deleted d join ADSGroup g on d.uid_ADSGroup33 = g.uid_ADSGroup and d.HasReadOnlyMemberships = 0 and g.HasReadOnlyMemberships = 1 join ADSGroupInADSGroup bhg on g.uid_ADSGroup = bhg.UID_ADSGroupParent34 end else begin raiserror( '#LDS#Changes cannot be made because assignment still exist for {0}.|ADSGroupInADSGroup|', 18, 1) with nowait end end if exists35 (select top 1 1 from deleted d join ADSGroup g on d.uid_ADSGroup = g.uid_ADSGroup and d.HasReadOnlyMemberships = 0 and g.HasReadOnlyMemberships = 1 join36 ADSMachineInADSGroup bhg on g.uid_ADSGroup = bhg.uid_ADSGroup and bhg.XOrigin > 0 ) begin if dbo.QBM_FGISessionContext ('Fullsync') > ' ' begin update37 ADSMachineInADSGroup set XOrigin = 0 , XIsInEffect = 0 from deleted d join ADSGroup g on d.uid_ADSGroup = g.uid_ADSGroup and d.HasReadOnlyMemberships 38= 0 and g.HasReadOnlyMemberships = 1 join ADSMachineInADSGroup bhg on g.uid_ADSGroup = bhg.uid_ADSGroup end else begin raiserror( '#LDS#Changes cannot be made because assignment still exist for {0}.|ADSMachine|'39, 18, 1) with nowait end end if exists (select top 1 1 from deleted d join ADSGroup g on d.uid_ADSGroup = g.uid_ADSGroup and d.HasReadOnlyMemberships =40 0 and g.HasReadOnlyMemberships = 1 join EsetHasEntitlement bhg on g.XObjectKey = bhg.Entitlement and bhg.XOrigin > 0 ) begin if dbo.QBM_FGISessionContext41 ('Fullsync') > ' ' begin update EsetHasEntitlement set XOrigin = 0 , XIsInEffect = 0 from deleted d join ADSGroup g on d.uid_ADSGroup = g.uid_ADSGroup42 and d.HasReadOnlyMemberships = 0 and g.HasReadOnlyMemberships = 1 join EsetHasEntitlement bhg on g.XObjectKey = bhg.Entitlement end else begin raiserror43( '#LDS#Changes cannot be made because assignment still exist for {0}.|Eset|', 18, 1) with nowait end end end if update (isITShopOnly) begin if exists44 (select top 1 1 from deleted d join ADSGroup g on d.UID_ADSGroup = g.UID_ADSGroup where g.IsITshopOnly = 1 and exists (select top 1 1 from ADSAccount 45u where u.UID_ADSGroupPrimary = g.UID_ADSGroup ) ) begin raiserror( '#LDS#The definition of a group as "IsITshopOnly = 1" and simultaneous use as primary group is not allowed.|'46, 18, 2) with nowait end end if update(ObjectSID) begin if exists (select top 1 1 from ADSGroup x join deleted d on x.uid_ADSGroup= d.uid_ADSGroup where47 isnull(d.ObjectSID, N'') <> isnull(x.ObjectSID, N'') ) begin insert into ADSOtherSID (UID_ADSOtherSID, ObjectSID , DistinguishedName, canonicalName, Ident_ADSOtherSID48 , XDateInserted, XDateUpdated, XUserInserted, XUserUpdated, XObjectKey) select x.UID_ADSOtherSID, x.ObjectSID , x.DistinguishedName, x.canonicalName, 49x.Ident_ADSOtherSID , x.XDateInserted, x.XDateUpdated, x.XUserInserted, x.XUserUpdated, dbo.QBM_FCVElementToObjectKey1('ADSOtherSID', 'UID_ADSOtherSID'50, x.UID_ADSOtherSID) from ( select newid() as UID_ADSOtherSID, d.ObjectSID , d.DistinguishedName, d.canonicalName, d.cn as Ident_ADSOtherSID , d.XDateInserted51, d.XDateUpdated, d.XUserInserted, d.XUserUpdated from ADSGroup x join deleted d on x.uid_ADSGroup= d.uid_ADSGroup where d.ObjectSID > ' ' and isnull(d.ObjectSID52, N'') <> isnull(x.ObjectSID, N'') and not exists (select top 1 1 from ADSOtherSID x where x.ObjectSID = d.ObjectSID ) ) as x end if exists (select top53 1 1 from ADSOtherSID a join inserted d on a.ObjectSID = d.ObjectSID ) begin delete ADSOtherSID where objectSID in (select x.ObjectSID from ADSGroup x 54join deleted d on x.uid_ADSGroup = d.uid_ADSGroup where isnull(x.ObjectSID, N'') <> isnull(d.ObjectSID, N'') ) and UID_ADSOtherSID not like 'ADS-%' end55 end if update(isForITShop) or update(isITShopOnly) begin declare @FlagTest QBM_YParameterlist insert into @FlagTest(Parameter1, Parameter2, HasContentFull56, e.Parameter3) select i.UID_AdsGroup, i.XObjectKey, i.IsForITShop, dbo.QBM_FCVBigIntToString(i.IsITShopOnly) from inserted i exec QER_PIsForITShopFlagCheck57 'AdsGroup', @FlagTest, 'ADSAccountInADSGroup|ADSMachineInADSGroup' end if update(uid_accproduct) begin insert into @elementbuffer( ObjectKey1, uid1) 58select x.XObjectKey, isnull(x.uid_accproduct,'') from ADSGroup x join deleted d on x.uid_ADSGroup = d.uid_ADSGroup and isnull(x.uid_accproduct,'') <> isnull59(d.uid_accproduct,'') and d.uid_accproduct > ' ' join dialogColumn c on c.UID_DialogTable = 'QER-T-ITShopOrg' and c.columnname = 'uid_ACCProduct' and60 c.IsDeactivatedByPreProcessor = 0 select @ElementCount = @@rowcount select @ElementIndex = 1 while @ElementIndex <= @ElementCount begin select top 1 61@ObjectkeyOrdered = bu.Objectkey1 , @UID_AccProduct = bu.uid1 from @elementbuffer bu where bu.ElementIndex = @ElementIndex select @whereclauseOrg = @whereclauseMuster62 select @whereclauseOrg = replace(@whereclauseOrg, N'@ObjectkeyOrdered' , @ObjectkeyOrdered) select @whereclauseOrg = replace(@whereclauseOrg, N'@uid_accproduct'63 , rtrim(@uid_accproduct)) exec QBM_PJobCreate_HOUpdate_B N'ITShopOrg', @whereclauseOrg, @GenProcID , @p1 = 'uid_ACCProduct', @v1 = @uid_accproduct 64, @AdditionalObjectKeysAffected = DEFAULT select @ElementIndex += 1 end end if update (UID_AccProduct) begin declare @RecalcParameter_OA QBM_YCursorBuffer65 insert into @RecalcParameter_OA (UID1, ObjectKey1, Ident1) select 'QER-PWODecisionRule-OA', a.XObjectKey, 'I' from inserted i join ADSGroup g on i.UID_ADSGroup66 = g.UID_ADSGroup join QERAccProductUsage u on g.XObjectKey = u.XObjectKey join AccProduct a on u.UID_AccProduct = a.UID_AccProduct union select 'QER-PWODecisionRule-OA'67, a.XObjectKey, 'I' from deleted d join ADSGroup g on d.UID_ADSGroup = g.UID_ADSGroup join QERAccProductUsage u on g.XObjectKey = u.XObjectKey join AccProduct68 a on u.UID_AccProduct = a.UID_AccProduct exec QER_PITShopHelperFill_Recalc @RecalcParameter_OA, @GenprocID declare @RecalcParameter_OA2 QBM_YCursorBuffer69 insert into @RecalcParameter_OA2 (UID1, ObjectKey1, Ident1) select 'QER-PWODecisionRule-OA', pwo.XObjectKey, 'I' from inserted i join ADSGroup g on i.UID_ADSGroup70 = g.UID_ADSGroup join AccProduct a on i.UID_AccProduct = a.UID_AccProduct join PersonWantsOrg pwo on g.XObjectKey = pwo.ObjectKeyElementUsedInAssign union71 select 'QER-PWODecisionRule-OA', pwo.XObjectKey, 'I' from deleted d join ADSGroup g on d.UID_ADSGroup = g.UID_ADSGroup join AccProduct a on d.UID_AccProduct72 = a.UID_AccProduct join PersonWantsOrg pwo on g.XObjectKey = pwo.ObjectKeyElementUsedInAssign exec QER_PITShopHelperFill_Recalc @RecalcParameter_OA2, 73@GenprocID end if update(islocal) or update(isuniversal) or update(isGlobal) or update(isSecurity) or update(IsDistributionGroup) or update(MatchPatternForMembership74) or update(XMarkedForDeletion) begin insert into @GroupsChanged (Parameter1, Parameter2) select g.uid_ADSGroup as uid, g.XObjectKey from ADSGroup g join75 deleted d on g.UID_ADSGroup = d.UID_ADSGroup where ( g.islocal <> d.islocal or g.isGlobal <> d.isGlobal or g.isuniversal <> d.isuniversal or g.isSecurity76 <> d.isSecurity or g.IsDistributionGroup <> d.IsDistributionGroup or g.MatchPatternForMembership <> d.MatchPatternForMembership or (g.XMarkedForDeletion77 & @QBM_BitPatternXMarkedForDel_Out = 0 and d.XMarkedForDeletion & @QBM_BitPatternXMarkedForDel_Out > 0 ) ) if @DebugSwitch > 0 begin print 'Groups ' select78 Parameter1, parameter2, parameter3 from @GroupsChanged end if (select count(*) from @GroupsChanged) > 0 begin declare @DBQueueElements_01 QBM_YDBQueueRaw79 insert into @DBQueueElements_01 (object, subobject, genprocid) select x.uid, null, @GenProcID from ( select distinct top (@LoadLimit) aig.uid_ADSAccount80 as uid from @GroupsChanged g join adsAccountInADSGroup aig on g.Parameter1 = aig.uid_ADSGroup and aig.XOrigin > 0 ) as x select @LoadSumme = @@ROWCOUNT81 if @debugSwitch > 0 begin print 'Accounts zugewiesen, @LoadSumme ' + str(@LoadSumme) end if @LoadSumme >= @loadlimit begin exec QBM_PDBQueueInsert_Single82 'QBM-K-CommonReCalculate', 'ADS-K-ADSAccountInADSGroup', '', @genprocid end else begin exec QBM_PDBQueueInsert_Bulk 'ADS-K-ADSAccountInADSGroup', @DBQueueElements_0183 end if @LoadSumme < @LoadLimit begin declare @DBQueueElements_02 QBM_YDBQueueRaw insert into @DBQueueElements_02 (object, subobject, genprocid) 84select x.uid, null, @GenProcID from ( select top (@LoadLimit) u.UID_ADSAccount as uid from @GroupsChanged g join BaseTreeHasObject bho on g.Parameter2 85 = bho.ObjectKey join PersonInBaseTree pho on bho.UID_Org = pho.UID_Org join ADSAccount u on u.UID_Person = pho.UID_Person union select top (@LoadLimit86) u.UID_ADSAccount as uid from @GroupsChanged g join BaseTreeHasObject bho on g.Parameter2 = bho.ObjectKey join HelperPersonOrg pho on bho.UID_Org = pho.UID_Org87 join ADSAccount u on u.UID_Person = pho.UID_Person union select top (@LoadLimit) u.UID_ADSAccount as uid from @GroupsChanged g join ESetHasEntitlement88 ehe on g.Parameter2 = ehe.Entitlement join PersonHasESet phe on phe.UID_ESet = ehe.UID_ESet join ADSAccount u on u.UID_Person = phe.UID_Person ) as x89 select @LoadSumme += @@ROWCOUNT end if @debugSwitch > 0 begin print 'Accounts irgendwie geerbt, @LoadSumme ' + str(@LoadSumme) end if @LoadSumme >= 90@loadlimit begin exec QBM_PDBQueueInsert_Single 'QBM-K-CommonReCalculate', 'ADS-K-ADSAccountInADSGroup', '', @genprocid end else begin exec QBM_PDBQueueInsert_Bulk91 'ADS-K-ADSAccountInADSGroup', @DBQueueElements_02 end declare @DBQueueElements_03 QBM_YDBQueueRaw insert into @DBQueueElements_03 (object, subobject92, genprocid) select x.uid, null, @GenProcID from ( select distinct top (@LoadLimit) aig.uid_ADSContact as uid from @GroupsChanged g join ADSContactInADSGroup93 aig on g.Parameter1 = aig.uid_ADSGroup and aig.XOrigin > 0 ) as x select @LoadSumme = @@ROWCOUNT if @debugSwitch > 0 begin print 'Contacts zugewiesen, @LoadSumme '94 + str(@LoadSumme) end if @LoadSumme >= @loadlimit begin exec QBM_PDBQueueInsert_Single 'QBM-K-CommonReCalculate', 'ADS-K-ADSContactInADSGroup', '', @genprocid95 end else begin exec QBM_PDBQueueInsert_Bulk 'ADS-K-ADSContactInADSGroup', @DBQueueElements_03 end if @LoadSumme < @LoadLimit begin declare @DBQueueElements_0496 QBM_YDBQueueRaw insert into @DBQueueElements_04 (object, subobject, genprocid) select x.uid, null, @GenProcID from ( select top (@LoadLimit) u.UID_ADSContact97 as uid from @GroupsChanged g join BaseTreeHasObject bho on g.Parameter2 = bho.ObjectKey join PersonInBaseTree pho on bho.UID_Org = pho.UID_Org join ADSContact98 u on u.UID_Person = pho.UID_Person union select top (@LoadLimit) u.UID_ADSContact as uid from @GroupsChanged g join BaseTreeHasObject bho on g.Parameter299 = bho.ObjectKey join HelperPersonOrg pho on bho.UID_Org = pho.UID_Org join ADSContact u on u.UID_Person = pho.UID_Person union select top (@LoadLimit100) u.UID_ADSContact as uid from @GroupsChanged g join ESetHasEntitlement ehe on g.Parameter2 = ehe.Entitlement join PersonHasESet phe on phe.UID_ESet =101 ehe.UID_ESet join ADSContact u on u.UID_Person = phe.UID_Person ) as x select @LoadSumme += @@ROWCOUNT end if @debugSwitch > 0 begin print 'Contacts irgendwie geerbt @LoadSumme '102 + str(@LoadSumme) end if @LoadSumme >= @loadlimit begin exec QBM_PDBQueueInsert_Single 'QBM-K-CommonReCalculate', 'ADS-K-ADSContactInADSGroup', '', @genprocid103 end else begin exec QBM_PDBQueueInsert_Bulk 'ADS-K-ADSContactInADSGroup', @DBQueueElements_04 end declare @DBQueueElements_05 QBM_YDBQueueRaw insert104 into @DBQueueElements_05 (object, subobject, genprocid) select x.uid, null, @GenProcID from ( select distinct top (@LoadLimit) aig.uid_ADSMachine as 105uid from @GroupsChanged g join ADSMachineInADSGroup aig on g.Parameter1 = aig.uid_ADSGroup and aig.XOrigin > 0 ) as x select @LoadSumme = @@ROWCOUNT if106 @debugSwitch > 0 begin print 'Machines zugewiesen @LoadSumme ' + str(@LoadSumme) end if @LoadSumme >= @loadlimit begin exec QBM_PDBQueueInsert_Single 107'QBM-K-CommonReCalculate', 'ADS-K-ADSMachineInADSGroup', '', @genprocid end else begin exec QBM_PDBQueueInsert_Bulk 'ADS-K-ADSMachineInADSGroup', @DBQueueElements_05108 end if @LoadSumme < @LoadLimit begin declare @DBQueueElements_06 QBM_YDBQueueRaw insert into @DBQueueElements_06 (object, subobject, genprocid) select109 x.uid, null, @GenProcID from ( select distinct top (@LoadLimit) m.UID_ADSMachine as uid from @GroupsChanged g join BaseTreeHasObject bho on g.Parameter2110 = bho.ObjectKey join ( select hpo.UID_WorkDesk , hpo.UID_Org from HelperWorkDeskOrg hpo union select pio.UID_WorkDesk , pio.UID_Org from WorkDeskInBaseTree111 pio ) as hwo on bho.UID_Org = hwo.UID_Org join Hardware h on h.UID_WorkDesk = hwo.UID_WorkDesk join ADSMachine m on m.UID_Hardware = h.UID_Hardware ) 112as x select @LoadSumme += @@ROWCOUNT end if @debugSwitch > 0 begin print 'Machines irgendwie geerbt @LoadSumme ' + str(@LoadSumme) end if @LoadSumme >=113 @loadlimit begin exec QBM_PDBQueueInsert_Single 'QBM-K-CommonReCalculate', 'ADS-K-ADSMachineInADSGroup', '', @genprocid end else begin exec QBM_PDBQueueInsert_Bulk114 'ADS-K-ADSMachineInADSGroup', @DBQueueElements_06 end end end END TRY BEGIN CATCH exec QBM_PSessionErrorAdd default RAISERROR ('', 18, 1) WITH NOWAIT115 END CATCH ende: return end 116