dbo.ADS_ZAccountInADSGroup
Stored ProcedureSQL_STORED_PROCEDURESandbox DB
Interpretation
- Database routine. Review parameters, called procedures, DBQueue inserts, and QBM_PJobCreate helper calls before assuming side effects.
Relations
- No extracted relations.
Typed Edges
- references source dbo.QER_FTAccountInheritFromOrg_L source text reference
- references source dbo.DPR_FGIProjectionRootRunning source text reference
- references source dbo.QBM_FCVDatetimeToString source text reference
- references source dbo.QBM_FGIBitPatternXMarkedForDel source text reference
- references source dbo.QBM_FGIBitPatternXOrigin source text reference
- references source dbo.QBM_FGIConfigparmValue source text reference
- references source dbo.QBM_FGIModuleExists source text reference
- references source dbo.TSB_FGIGroupAccountMatching source text reference
- references source dbo.TSB_FGIUserInGroupValid source text reference
- references source dbo.TSB_FGIUserInGroupValid_OVR source text reference
- references source dbo.TSB_FGIUserInGroupValid_OVR_Ke source text reference
- references source dbo.DPR_PSlotResetWhileProj_L source text reference
- references source dbo.QBM_PDBQueueCalculateDelta source text reference
- references source dbo.QBM_PJournal source text reference
- references source dbo.QBM_PMNTableInsert source text reference
- references source dbo.QBM_PMNTableOriginUpdate source text reference
- references source dbo.QBM_PSessionErrorAdd source text reference
References
- dbo.QER_FTAccountInheritFromOrg_L
- dbo.DPR_FGIProjectionRootRunning
- dbo.QBM_FCVDatetimeToString
- dbo.QBM_FGIBitPatternXMarkedForDel
- dbo.QBM_FGIBitPatternXOrigin
- dbo.QBM_FGIConfigparmValue
- dbo.QBM_FGIModuleExists
- dbo.TSB_FGIGroupAccountMatching
- dbo.TSB_FGIUserInGroupValid
- dbo.TSB_FGIUserInGroupValid_OVR
- dbo.TSB_FGIUserInGroupValid_OVR_Ke
- dbo.DPR_PSlotResetWhileProj_L
- dbo.QBM_PDBQueueCalculateDelta
- dbo.QBM_PJournal
- dbo.QBM_PMNTableInsert
- dbo.QBM_PMNTableOriginUpdate
- dbo.QBM_PSessionErrorAdd
Referenced By
- No direct source references extracted.
Complete Source
1CREATE PROCEDURE ADS_ZAccountInADSGroup(2 @SlotNumber int3)4AS5BEGIN6 DECLARE @Sourcedata QBM_YDataForDelta,7 @CountDeltaQantity int,8 @CountDeltaOrigin int9 DECLARE @GenProcID varchar(38)10 DECLARE @PersonToCheck_L QBM_YSingleGUID11 DECLARE @UID_BaseTreeAssignToUse varchar(38) = 'ADS-AsgnBT-ADSGroup'12 DECLARE @DebugSwitch int = 013 DECLARE @DebugLevel varchar(1) = 'W'14 DECLARE @DebugMessage nvarchar(1000)15 DECLARE @DBQueueCurrent QBM_YDBQueueCurrent16 DECLARE @RowsToReset int17 DECLARE @MyName nvarchar(64) = object_name(@@procid)18 DECLARE @QBM_BitPatternXMarkedForDel_Delay int = dbo.QBM_FGIBitPatternXMarkedForDel('|Delay|',19 0)20 DECLARE @QBM_BitPatternXMarkedForDel_Out int = dbo.QBM_FGIBitPatternXMarkedForDel('|OutStanding|',21 0)22 DECLARE @QBM_BitPatternXOrigin_Direct int = dbo.QBM_FGIBitPatternXOrigin('|Direct|',23 0)24 DECLARE @QBM_BitPatternXOrigin_Inherit int = dbo.QBM_FGIBitPatternXOrigin('|Inherit|',25 0)26 DECLARE @QBM_BitPatternXOrigin_Inherit_inv int = dbo.QBM_FGIBitPatternXOrigin('|Inherit|',27 1)28 DECLARE @PMDKeepMembershipsOfLinkedAccount varchar(16) =29 LEFT(dbo.QBM_FGIConfigparmValue('QER\Person\User\KeepMembershipsOfLinkedAccount'),30 16)31 BEGIN TRY32 INSERT INTO @DBQueueCurrent(UID_DialogDBQueue,33 UID_Parameter,34 UID_SubParameter,35 GenProcID)36 SELECT37 UID_DialogDBQueue,38 UID_Parameter,39 UID_SubParameter,40 GenProcID41 FROM QBMDBQueueCurrent cu42 WITH(readpast)43 WHERE44 cu.SlotNumber = @SlotNumber45 IF @@rowcount = 046 BEGIN47 GOTO EndLabel48 END49 INSERT INTO @PersonToCheck_L(UID_SingleGuid)50 SELECT51 DISTINCT a.UID_Person52 FROM @DBQueueCurrent cu53 JOIN ADSAccount a54 ON cu.UID_Parameter = a.UID_ADSAccount55 WHERE56 a.UID_Person > ' '57 INSERT INTO @SourceData(IsUpcommingContent,58 XOriginAfter,59 Element,60 AssignedElement,61 XOriginBefore,62 XIsInEffectBefore,63 XIsInEffectAfter)64 SELECT65 0,66 0,67 aig.uid_ADSaccount,68 aig.uid_ADSgroup,69 aig.XOrigin,70 aig.XIsInEffect,71 072 FROM ADSAccountInADSGroup aig73 JOIN @DBQueueCurrent x74 ON uid_adsaccount = x.uid_parameter75 JOIN ADSGroup g76 ON aig.uid_adsGroup = g.uid_adsgroup AND g.IsApplicationGroup = 077 WHERE78 aig.XMarkedForDeletion & @QBM_BitPatternXMarkedForDel_Delay = 0 AND g.XMarkedForDeletion & @QBM_BitPatternXMarkedForDel_Out = 079 INSERT INTO @SourceData(IsUpcommingContent,80 XOriginBefore,81 XOriginAfter,82 Element,83 AssignedElement,84 XIsInEffectBefore,85 XIsInEffectAfter)86 SELECT87 1,88 0,89 aig.XOrigin & @QBM_BitPatternXOrigin_Inherit_inv,90 aig.uid_ADSaccount,91 aig.uid_ADSGroup,92 0,93 dbo.TSB_FGIUserInGroupValid_OVR_Ke(p.IsInActive,94 p.IsTemporaryDeactivated,95 p.XMarkedForDeletion,96 bh.PFDInheritGroup,97 bh.PTDInheritGroup,98 bh.PMDInheritGroup,99 1,100 p.IsSecurityIncident,101 bh.PSIInheritGroup,102 n.AccountDisabled,103 bh.ADAInheritGroup,104 ovr.PFDInheritOverwrite,105 ovr.PTDInheritOverwrite,106 ovr.PSIInheritOverwrite,107 ovr.PMDInheritOverwrite,108 ovr.ADAInheritOverwrite,109 @PMDKeepMembershipsOfLinkedAccount) & CASE110 WHEN n.UID_ADSGroupPrimary = aig.UID_ADSGroup THEN111 0112 ELSE 1113 END114 FROM ADSAccountInADSGroup aig115 JOIN @DBQueueCurrent x116 ON aig.uid_adsaccount = x.uid_parameter117 JOIN ADSGroup g118 ON aig.uid_adsGroup = g.uid_adsgroup AND g.IsApplicationGroup = 0 AND g.XMarkedForDeletion & @QBM_BitPatternXMarkedForDel_Out = 0119 JOIN ADSAccount n120 ON aig.uid_ADSAccount = n.uid_ADSAccount121 JOIN ADSDomain d122 ON n.UID_ADSDomain = d.UID_ADSDomain123 LEFT124 OUTER125 JOIN TSBSpecificGroupBehavior ovr126 ON ovr.ObjectKeyGroup = g.XObjectKey127 LEFT128 OUTER129 JOIN person p130 ON n.uid_person = p.uid_person131 LEFT132 OUTER133 JOIN TSBBehavior bh134 ON n.UID_TSBBehavior = bh.UID_TSBBehavior135 INSERT INTO @SourceData(IsUpcommingContent,136 XOriginBefore,137 XOriginAfter,138 Element,139 AssignedElement,140 XIsInEffectBefore,141 XIsInEffectAfter)142 SELECT143 1,144 0,145 @QBM_BitPatternXOrigin_Direct,146 a.uid_ADSaccount,147 a.UID_ADSGroupPrimary,148 0,149 0150 FROM ADSAccount a151 JOIN @DBQueueCurrent x152 ON a.uid_adsaccount = x.uid_parameter153 WHERE154 a.UID_ADSGroupPrimary > ' '155 INSERT INTO @SourceData(IsUpcommingContent,156 XOriginBefore,157 Element,158 AssignedElement,159 XOriginAfter,160 XIsInEffectBefore,161 XIsInEffectAfter)162 SELECT163 1,164 0,165 uid_ADSaccount,166 uid_ADSgroup,167 @QBM_BitPatternXOrigin_Inherit,168 0,169 y.XIsInEffect170 FROM(171 SELECT172 x.uid_ADSaccount,173 x.uid_ADSgroup,174 dbo.TSB_FGIUserInGroupValid_OVR_Ke(p.IsInActive, p.IsTemporaryDeactivated, p.XMarkedForDeletion, bh.PFDInheritGroup,175 bh.PTDInheritGroup, bh.PMDInheritGroup, 0, p.IsSecurityIncident, bh.PSIInheritGroup, x.AccountDisabled,176 bh.ADAInheritGroup, ovr.PFDInheritOverwrite, ovr.PTDInheritOverwrite, ovr.PSIInheritOverwrite, ovr.PMDInheritOverwrite,177 ovr.ADAInheritOverwrite, @PMDKeepMembershipsOfLinkedAccount) & CASE178 WHEN aa.UID_ADSGroupPrimary = x.UID_ADSGroup THEN179 0180 ELSE 1181 END AS XIsInEffect182 FROM(183 SELECT184 nt.uid_ADSaccount, ohg.uid_ADSgroup, nt.UID_ADSDomain, nt.uid_person, nt.AccountDisabled, nt.UID_TSBAccountDef,185 nt.UID_TSBBehavior, gg.XObjectKey186 FROM @DBQueueCurrent x187 JOIN ADSaccount nt188 ON nt.uid_ADSAccount = x.uid_parameter AND nt.isGroupAccount = 1189 JOIN dbo.QER_FTAccountInheritFromOrg_L(@PersonToCheck_L, @UID_BaseTreeAssignToUse) pfo190 ON pfo.UID_Person = nt.UID_Person191 JOIN BaseTreeHasADSGroup ohg192 ON pfo.uid_org = ohg.uid_org AND ohg.XOrigin > 0 AND ohg.XIsInEffect = 1193 JOIN ADSGroup gg194 ON ohg.UID_ADSGroup = gg.UID_ADSGroup195 UNION all196 SELECT197 nt.uid_ADSaccount, gg.uid_ADSgroup, nt.UID_ADSDomain, nt.uid_person, nt.AccountDisabled, nt.UID_TSBAccountDef,198 nt.UID_TSBBehavior, gg.XObjectKey199 FROM @DBQueueCurrent x200 JOIN ADSaccount nt201 ON nt.uid_ADSAccount = x.uid_parameter AND nt.isGroupAccount = 1202 JOIN person px203 ON nt.UID_Person = px.uid_person AND px.isNoInherite = 0204 JOIN personHasESet phe205 ON nt.uid_person = phe.uid_person AND phe.XOrigin > 0 AND phe.XIsInEffect = 1206 JOIN ESetHasEntitlement ehe207 ON phe.uid_ESet = ehe.uid_ESet AND ehe.XOrigin > 0 AND ehe.XIsInEffect = 1208 JOIN ADSgroup gg209 ON ehe.Entitlement = gg.XObjectKey AND gg.IsApplicationGroup = 0210 WHERE211 dbo.QBM_FGIModuleExists('RMS') = 1) AS x212 JOIN ADSAccount aa213 ON x.UID_ADSAccount = aa.UID_ADSAccount214 JOIN ADSGroup ag215 WITH(nolock)216 ON x.UID_ADSGroup = ag.UID_ADSGroup AND ag.IsApplicationGroup = 0 AND ag.XMarkedForDeletion & @QBM_BitPatternXMarkedForDel_Out = 0217 LEFT218 OUTER219 JOIN TSBSpecificGroupBehavior ovr220 ON ovr.ObjectKeyGroup = x.XObjectKey221 LEFT222 OUTER223 JOIN ADS_VDomainTrustExists td224 ON td.UID_ADSDomainMember = aa.UID_ADSDomain AND td.UID_ADSDomainGroup = ag.UID_ADSDomain225 LEFT226 OUTER227 JOIN Person p228 ON x.UID_Person = p.UID_Person229 LEFT230 OUTER231 JOIN TSBBehavior bh232 ON x.UID_TSBBehavior = bh.UID_TSBBehavior233 WHERE234 dbo.TSB_FGIGroupAccountMatching(ag.MatchPatternForMembership, aa.MatchPatternForMembership) = 1 AND(aa.UID_ADSDomain = ag.UID_ADSDomain OR235 td.UID_ADSDomainGroup > ' ') AND EXISTS(236 SELECT TOP 1 1237 FROM ADS_VGroupMemberValid_Account v238 WHERE239 v.UID_ADSDomainContainer = ag.UID_ADSDomain AND v.uid_adsgroupcontainer = ag.uid_adsgroup AND v.UID_ADSDomainMember = aa.UID_ADSDomain) AND240 (NOT(isnull(p.XMarkedForDeletion, 0) & @QBM_BitPatternXMarkedForDel_Delay > 0 AND bh.PMDInheritGroup IS NULL AND @PMDKeepMembershipsOfLinkedAccount241 <> 'ALL' AND ovr.PMDInheritOverwrite IS NULL))) AS y242 IF 1 = dbo.DPR_FGIProjectionRootRunning('ADSDomain')243 BEGIN244 DECLARE @ObjectKeysToCheck_Projection QBM_YParameterList245 INSERT INTO @ObjectKeysToCheck_Projection(Parameter1,246 Parameter2)247 SELECT248 cu.UID_Parameter,249 ro.ObjectKeyRoot250 FROM @DBQueueCurrent cu251 JOIN @Sourcedata sd252 ON cu.UID_Parameter = sd.Element253 JOIN AdsGroup g254 ON sd.AssignedElement = g.uid_adsGroup AND g.IsApplicationGroup = 0255 JOIN ADS_VElementAndRoot ro256 ON g.XObjectKey = ro.ObjectKeyElement257 JOIN ADSAccount a258 ON cu.UID_Parameter = a.UID_ADSAccount AND a.UID_ADSDomain <> g.UID_ADSDomain259 WHERE260 ro.ElementTable = 'AdsGroup'261 EXEC @RowsToReset = DPR_PSlotResetWhileProj_L @DBQueueCurrent,262 @ObjectKeysToCheck_Projection,263 @MyName,264 @SlotNumber265 IF @RowsToReset > 0266 BEGIN267 DELETE @DBQueueCurrent268 FROM @DBQueueCurrent cu269 LEFT270 OUTER271 JOIN QBMDBQueueCurrent d272 WITH(readpast)273 ON cu.UID_DialogDBQueue = d.UID_DialogDBQueue AND d.SlotNumber = @SlotNumber274 WHERE275 d.UID_DialogDBQueue IS NULL276 DELETE @Sourcedata277 FROM @Sourcedata s278 LEFT279 OUTER280 JOIN @DBQueueCurrent cu281 ON s.Element = cu.UID_Parameter282 WHERE283 cu.UID_DialogDBQueue IS NULL284 END285 END286 IF dbo.QBM_FGIConfigparmValue('QER\Structures\Inherite\GroupExclusion') > ' '287 BEGIN288 IF EXISTS(289 SELECT TOP 1 1290 FROM ADSGroupExclusion ex291 WITH(nolock)292 JOIN @Sourcedata s293 ON ex.UID_ADSGroupLower = s.AssignedElement294 WHERE295 s.IsUpcommingContent = 1 AND s.XOriginAfter > 0 AND s.XIsInEffectAfter = 1)296 BEGIN297 IF @DebugSwitch > 0298 BEGIN299 SELECT300 @DebugMessage = 'Eintritt Ausschlußberechnung ' + dbo.QBM_FCVDatetimeToString(getutcdate()) + str(@SlotNumber)301 EXEC QBM_PJournal @DebugMessage,302 @@PROCID,303 'D',304 @Debuglevel305 END306 DECLARE @ExcludeCandidate QER_YExcludeCandidate307 INSERT INTO @ExcludeCandidate(Element,308 AssignedElement,309 XIsInEffectAfter)310 SELECT311 s.Element,312 s.AssignedElement,313 1314 FROM @Sourcedata s315 JOIN(316 SELECT exe.UID_ADSGroupLower AS UID_Excluded317 FROM ADSGroupExclusion exe) AS ex318 ON s.AssignedElement = ex.UID_Excluded319 WHERE320 s.IsUpcommingContent = 1 AND s.XOriginAfter > 0 AND s.XIsInEffectAfter = 1321 UNION all322 SELECT323 s.Element,324 s.AssignedElement,325 1326 FROM @Sourcedata s327 JOIN(328 SELECT exe.UID_ADSGroupHigher AS UID_Excluding329 FROM ADSGroupExclusion exe) AS ex330 ON s.AssignedElement = ex.UID_Excluding331 WHERE332 s.IsUpcommingContent = 1 AND s.XOriginAfter > 0 AND s.XIsInEffectAfter = 1333 IF @DebugSwitch > 0334 BEGIN335 SELECT336 @DebugMessage = 'umladen fertig ' + dbo.QBM_FCVDatetimeToString(getutcdate()) + str(@SlotNumber)337 EXEC QBM_PJournal @DebugMessage,338 @@PROCID,339 'D',340 @Debuglevel341 END342 UPDATE @ExcludeCandidate343 SET XIsInEffectAfter = 0344 FROM @ExcludeCandidate l345 JOIN(346 SELECT347 exe.UID_ADSGroupLower AS UID_Excluded,348 exe.UID_ADSGroupHigher AS UID_Excluding349 FROM ADSGroupExclusion exe) AS ex350 ON l.AssignedElement = ex.UID_Excluded351 JOIN(352 SELECT sh.*353 FROM @ExcludeCandidate sh) AS h354 ON l.Element = h.Element AND h.AssignedElement = ex.UID_Excluding355 IF @@ROWCOUNT > 0356 BEGIN357 IF @DebugSwitch > 0358 BEGIN359 SELECT360 @DebugMessage = 'exclude update fertig ' + dbo.QBM_FCVDatetimeToString(getutcdate()) + str(@SlotNumber)361 EXEC QBM_PJournal @DebugMessage,362 @@PROCID,363 'D',364 @Debuglevel365 END366 UPDATE @Sourcedata367 SET XIsInEffectAfter = 0368 FROM @Sourcedata l369 JOIN @ExcludeCandidate k370 ON l.Element = k.Element AND l.AssignedElement = k.AssignedElement AND k.XIsInEffectAfter = 0371 WHERE372 l.IsUpcommingContent = 1 AND l.XOriginAfter > 0 AND l.XIsInEffectAfter = 1373 END374 IF @DebugSwitch > 0375 BEGIN376 SELECT377 @DebugMessage = 'Austritt Ausschlußberechnung ' + dbo.QBM_FCVDatetimeToString(getutcdate()) + str(@SlotNumber)378 EXEC QBM_PJournal @DebugMessage,379 @@PROCID,380 'D',381 @Debuglevel382 END383 END384 END385 EXEC QBM_PDBQueueCalculateDelta @SourceData,386 @DeltaQuantity = 0,387 @DeltaDelete = 0,388 @DeltaInsert = 1,389 @DeltaOrigin = 1,390 @CountDeltaQantity = @CountDeltaQantity OUTPUT,391 @CountDeltaOrigin = @CountDeltaOrigin OUTPUT,392 @UseIsInEffect = 1,393 @SlotNumber = @SlotNumber,394 @DBQueueCurrentExtern = @DBQueueCurrent395 IF @CountDeltaOrigin > 0396 BEGIN397 EXEC QBM_PMNTableOriginUpdate 'ADSAccountInADSGroup',398 'UID_ADSAccount',399 'UID_ADSGroup'400 END401 IF @CountDeltaQantity > 0402 BEGIN403 EXEC QBM_PMNTableInsert 'ADSAccountInADSGroup',404 'UID_ADSAccount',405 'UID_ADSGroup',406 @TargetIsView = 0,407 @FKTableNameElement = 'ADSAccount',408 @FKColumnNameElement = 'UID_ADSAccount'409 END410 END TRY411 BEGIN CATCH412 EXEC QBM_PSessionErrorAdd DEFAULT413 RAISERROR('',414 18,415 1)416 WITH NOWAIT417 END CATCH418 endLabel:419END
Open raw exported source
1 create procedure ADS_ZAccountInADSGroup (@SlotNumber int) AS begin declare @Sourcedata QBM_YDataForDelta , @CountDeltaQantity int , @CountDeltaOrigin2 int declare @GenProcID varchar(38) declare @PersonToCheck_L QBM_YSingleGUID declare @UID_BaseTreeAssignToUse varchar(38) = 'ADS-AsgnBT-ADSGroup' declare3 @DebugSwitch int = 0 declare @DebugLevel varchar(1) = 'W' declare @DebugMessage nvarchar(1000) declare @DBQueueCurrent QBM_YDBQueueCurrent declare @RowsToReset4 int declare @MyName nvarchar(64) = object_name(@@procid) declare @QBM_BitPatternXMarkedForDel_Delay int = dbo.QBM_FGIBitPatternXMarkedForDel('|Delay|'5, 0) declare @QBM_BitPatternXMarkedForDel_Out int = dbo.QBM_FGIBitPatternXMarkedForDel('|OutStanding|', 0) declare @QBM_BitPatternXOrigin_Direct int = 6dbo.QBM_FGIBitPatternXOrigin('|Direct|', 0) declare @QBM_BitPatternXOrigin_Inherit int = dbo.QBM_FGIBitPatternXOrigin('|Inherit|', 0) declare @QBM_BitPatternXOrigin_Inherit_inv7 int = dbo.QBM_FGIBitPatternXOrigin('|Inherit|', 1) declare @PMDKeepMembershipsOfLinkedAccount varchar(16) = left(dbo.QBM_FGIConfigparmValue('QER\Person\User\KeepMembershipsOfLinkedAccount'8), 16) BEGIN TRY insert into @DBQueueCurrent(UID_DialogDBQueue, UID_Parameter, UID_SubParameter, GenProcID) select UID_DialogDBQueue, UID_Parameter, UID_SubParameter9, GenProcID from QBMDBQueueCurrent cu with (readpast) where cu.SlotNumber = @SlotNumber if @@rowcount = 0 begin goto EndLabel end insert into @PersonToCheck_L10(UID_SingleGuid) select distinct a.UID_Person from @DBQueueCurrent cu join ADSAccount a on cu.UID_Parameter = a.UID_ADSAccount where a.UID_Person > ' '11 insert into @SourceData( IsUpcommingContent, XOriginAfter , Element, AssignedElement, XOriginBefore , XIsInEffectBefore, XIsInEffectAfter ) select 012, 0 , aig.uid_ADSaccount, aig.uid_ADSgroup, aig.XOrigin , aig.XIsInEffect, 0 from ADSAccountInADSGroup aig join @DBQueueCurrent x on uid_adsaccount = x.uid_parameter13 join ADSGroup g on aig.uid_adsGroup = g.uid_adsgroup and g.IsApplicationGroup = 0 where aig.XMarkedForDeletion & @QBM_BitPatternXMarkedForDel_Delay =14 0 and g.XMarkedForDeletion & @QBM_BitPatternXMarkedForDel_Out = 0 insert into @SourceData( IsUpcommingContent, XOriginBefore, XOriginAfter , Element,15 AssignedElement , XIsInEffectBefore, XIsInEffectAfter ) select 1, 0, aig.XOrigin & @QBM_BitPatternXOrigin_Inherit_inv , aig.uid_ADSaccount, aig.uid_ADSGroup16 , 0, dbo.TSB_FGIUserInGroupValid_OVR_Ke ( p.IsInActive, p.IsTemporaryDeactivated, p.XMarkedForDeletion, bh.PFDInheritGroup, bh.PTDInheritGroup, bh.PMDInheritGroup17, 1, p.IsSecurityIncident, bh.PSIInheritGroup, n.AccountDisabled, bh.ADAInheritGroup , ovr.PFDInheritOverwrite, ovr.PTDInheritOverwrite, ovr.PSIInheritOverwrite18, ovr.PMDInheritOverwrite, ovr.ADAInheritOverwrite, @PMDKeepMembershipsOfLinkedAccount) & case when n.UID_ADSGroupPrimary = aig.UID_ADSGroup then 0 else19 1 end from ADSAccountInADSGroup aig join @DBQueueCurrent x on aig.uid_adsaccount = x.uid_parameter join ADSGroup g on aig.uid_adsGroup = g.uid_adsgroup20 and g.IsApplicationGroup = 0 and g.XMarkedForDeletion & @QBM_BitPatternXMarkedForDel_Out = 0 join ADSAccount n on aig.uid_ADSAccount = n.uid_ADSAccount21 join ADSDomain d on n.UID_ADSDomain = d.UID_ADSDomain left outer join TSBSpecificGroupBehavior ovr on ovr.ObjectKeyGroup = g.XObjectKey left outer join22 person p on n.uid_person = p.uid_person left outer join TSBBehavior bh on n.UID_TSBBehavior = bh.UID_TSBBehavior insert into @SourceData( IsUpcommingContent23, XOriginBefore, XOriginAfter , Element, AssignedElement , XIsInEffectBefore, XIsInEffectAfter ) select 1, 0, @QBM_BitPatternXOrigin_Direct , a.uid_ADSaccount24, a.UID_ADSGroupPrimary , 0, 0 from ADSAccount a join @DBQueueCurrent x on a.uid_adsaccount = x.uid_parameter where a.UID_ADSGroupPrimary > ' ' insert25 into @SourceData( IsUpcommingContent, XOriginBefore , Element, AssignedElement, XOriginAfter , XIsInEffectBefore, XIsInEffectAfter ) select 1, 0 , uid_ADSaccount26, uid_ADSgroup, @QBM_BitPatternXOrigin_Inherit , 0, y.XIsInEffect from ( select x.uid_ADSaccount, x.uid_ADSgroup, dbo.TSB_FGIUserInGroupValid_OVR_Ke ( 27p.IsInActive, p.IsTemporaryDeactivated, p.XMarkedForDeletion, bh.PFDInheritGroup, bh.PTDInheritGroup, bh.PMDInheritGroup, 0, p.IsSecurityIncident, bh.PSIInheritGroup28, x.AccountDisabled, bh.ADAInheritGroup , ovr.PFDInheritOverwrite, ovr.PTDInheritOverwrite, ovr.PSIInheritOverwrite, ovr.PMDInheritOverwrite, ovr.ADAInheritOverwrite29, @PMDKeepMembershipsOfLinkedAccount) & case when aa.UID_ADSGroupPrimary = x.UID_ADSGroup then 0 else 1 end as XIsInEffect from ( select nt.uid_ADSaccount30 , ohg.uid_ADSgroup , nt.UID_ADSDomain , nt.uid_person, nt.AccountDisabled , nt.UID_TSBAccountDef , nt.UID_TSBBehavior, gg.XObjectKey from @DBQueueCurrent31 x join ADSaccount nt on nt.uid_ADSAccount = x.uid_parameter and nt.isGroupAccount = 1 join dbo.QER_FTAccountInheritFromOrg_L(@PersonToCheck_L , @UID_BaseTreeAssignToUse32 ) pfo on pfo.UID_Person = nt.UID_Person join BaseTreeHasADSGroup ohg on pfo.uid_org = ohg.uid_org and ohg.XOrigin > 0 and ohg.XIsInEffect = 1 join ADSGroup33 gg on ohg.UID_ADSGroup = gg.UID_ADSGroup union all select nt.uid_ADSaccount , gg.uid_ADSgroup , nt.UID_ADSDomain , nt.uid_person , nt.AccountDisabled34 , nt.UID_TSBAccountDef , nt.UID_TSBBehavior, gg.XObjectKey from @DBQueueCurrent x join ADSaccount nt on nt.uid_ADSAccount = x.uid_parameter and nt.isGroupAccount35 = 1 join person px on nt.UID_Person = px.uid_person and px.isNoInherite = 0 join personHasESet phe on nt.uid_person = phe.uid_person and phe.XOrigin36 > 0 and phe.XIsInEffect = 1 join ESetHasEntitlement ehe on phe.uid_ESet = ehe.uid_ESet and ehe.XOrigin > 0 and ehe.XIsInEffect = 1 join ADSgroup gg on37 ehe.Entitlement = gg.XObjectKey and gg.IsApplicationGroup = 0 where dbo.QBM_FGIModuleExists('RMS') = 1 ) as x join ADSAccount aa on x.UID_ADSAccount 38= aa.UID_ADSAccount join ADSGroup ag with (nolock) on x.UID_ADSGroup = ag.UID_ADSGroup and ag.IsApplicationGroup = 0 and ag.XMarkedForDeletion & @QBM_BitPatternXMarkedForDel_Out39 = 0 left outer join TSBSpecificGroupBehavior ovr on ovr.ObjectKeyGroup = x.XObjectKey left outer join ADS_VDomainTrustExists td on td.UID_ADSDomainMember40 = aa.UID_ADSDomain and td.UID_ADSDomainGroup = ag.UID_ADSDomain left outer join Person p on x.UID_Person = p.UID_Person left outer join TSBBehavior bh41 on x.UID_TSBBehavior = bh.UID_TSBBehavior where dbo.TSB_FGIGroupAccountMatching( ag.MatchPatternForMembership, aa.MatchPatternForMembership) = 1 and 42(aa.UID_ADSDomain = ag.UID_ADSDomain or td.UID_ADSDomainGroup > ' ' ) and exists (select top 1 1 from ADS_VGroupMemberValid_Account v where v.UID_ADSDomainContainer43 = ag.UID_ADSDomain and v.uid_adsgroupcontainer = ag.uid_adsgroup and v.UID_ADSDomainMember = aa.UID_ADSDomain ) and (not (isnull(p.XMarkedForDeletion44, 0) & @QBM_BitPatternXMarkedForDel_Delay > 0 and bh.PMDInheritGroup is null and @PMDKeepMembershipsOfLinkedAccount <> 'ALL' and ovr.PMDInheritOverwrite45 is null ) ) ) as y if 1 = dbo.DPR_FGIProjectionRootRunning ('ADSDomain') begin declare @ObjectKeysToCheck_Projection QBM_YParameterList insert into 46@ObjectKeysToCheck_Projection(Parameter1, Parameter2) select cu.UID_Parameter, ro.ObjectKeyRoot from @DBQueueCurrent cu join @Sourcedata sd on cu.UID_Parameter47 = sd.Element join AdsGroup g on sd.AssignedElement = g.uid_adsGroup and g.IsApplicationGroup = 0 join ADS_VElementAndRoot ro on g.XObjectKey = ro.ObjectKeyElement48 join ADSAccount a on cu.UID_Parameter = a.UID_ADSAccount and a.UID_ADSDomain <> g.UID_ADSDomain where ro.ElementTable = 'AdsGroup' exec @RowsToReset49 = DPR_PSlotResetWhileProj_L @DBQueueCurrent, @ObjectKeysToCheck_Projection, @MyName, @SlotNumber if @RowsToReset > 0 begin delete @DBQueueCurrent from50 @DBQueueCurrent cu left outer join QBMDBQueueCurrent d with (readpast) on cu.UID_DialogDBQueue = d.UID_DialogDBQueue and d.SlotNumber = @SlotNumber where51 d.UID_DialogDBQueue is null delete @Sourcedata from @Sourcedata s left outer join @DBQueueCurrent cu on s.Element = cu.UID_Parameter where cu.UID_DialogDBQueue52 is null end end if dbo.QBM_FGIConfigparmValue('QER\Structures\Inherite\GroupExclusion') > ' ' begin if exists (select top 1 1 from ADSGroupExclusion 53ex with (nolock) join @Sourcedata s on ex.UID_ADSGroupLower = s.AssignedElement where s.IsUpcommingContent = 1 and s.XOriginAfter > 0 and s.XIsInEffectAfter54 = 1 ) begin if @DebugSwitch > 0 begin select @DebugMessage = 'Eintritt Ausschlußberechnung ' + dbo.QBM_FCVDatetimeToString(getutcdate()) + str(@SlotNumber55) exec QBM_PJournal @DebugMessage, @@PROCID , 'D', @Debuglevel end declare @ExcludeCandidate QER_YExcludeCandidate insert into @ExcludeCandidate56(Element, AssignedElement, XIsInEffectAfter) select s.Element, s.AssignedElement, 1 from @Sourcedata s join ( select exe.UID_ADSGroupLower as UID_Excluded57 from ADSGroupExclusion exe ) as ex on s.AssignedElement = ex.UID_Excluded where s.IsUpcommingContent = 1 and s.XOriginAfter > 0 and s.XIsInEffectAfter58 = 1 union all select s.Element, s.AssignedElement, 1 from @Sourcedata s join ( select exe.UID_ADSGroupHigher as UID_Excluding from ADSGroupExclusion exe59 ) as ex on s.AssignedElement = ex.UID_Excluding where s.IsUpcommingContent = 1 and s.XOriginAfter > 0 and s.XIsInEffectAfter = 1 if @DebugSwitch > 0 begin60 select @DebugMessage = 'umladen fertig ' + dbo.QBM_FCVDatetimeToString(getutcdate()) + str(@SlotNumber) exec QBM_PJournal @DebugMessage, @@PROCID , 'D'61, @Debuglevel end update @ExcludeCandidate set XIsInEffectAfter = 0 from @ExcludeCandidate l join ( select exe.UID_ADSGroupLower as UID_Excluded, exe.UID_ADSGroupHigher62 as UID_Excluding from ADSGroupExclusion exe ) as ex on l.AssignedElement = ex.UID_Excluded join (select sh.* from @ExcludeCandidate sh ) as h on l.Element63 = h.Element and h.AssignedElement = ex.UID_Excluding if @@ROWCOUNT > 0 begin if @DebugSwitch > 0 begin select @DebugMessage = 'exclude update fertig '64 + dbo.QBM_FCVDatetimeToString(getutcdate()) + str(@SlotNumber) exec QBM_PJournal @DebugMessage, @@PROCID , 'D', @Debuglevel end update @Sourcedata set65 XIsInEffectAfter = 0 from @Sourcedata l join @ExcludeCandidate k on l.Element = k.Element and l.AssignedElement = k.AssignedElement and k.XIsInEffectAfter66 = 0 where l.IsUpcommingContent = 1 and l.XOriginAfter > 0 and l.XIsInEffectAfter = 1 end if @DebugSwitch > 0 begin select @DebugMessage = 'Austritt Ausschlußberechnung '67 + dbo.QBM_FCVDatetimeToString(getutcdate()) + str(@SlotNumber) exec QBM_PJournal @DebugMessage, @@PROCID , 'D', @Debuglevel end end end exec QBM_PDBQueueCalculateDelta68 @SourceData, @DeltaQuantity = 0, @DeltaDelete = 0, @DeltaInsert = 1, @DeltaOrigin = 1, @CountDeltaQantity = @CountDeltaQantity output , @CountDeltaOrigin69 = @CountDeltaOrigin output , @UseIsInEffect = 1 , @SlotNumber = @SlotNumber , @DBQueueCurrentExtern = @DBQueueCurrent if @CountDeltaOrigin > 0 begin exec70 QBM_PMNTableOriginUpdate 'ADSAccountInADSGroup', 'UID_ADSAccount', 'UID_ADSGroup' end if @CountDeltaQantity > 0 begin exec QBM_PMNTableInsert 'ADSAccountInADSGroup'71, 'UID_ADSAccount', 'UID_ADSGroup', @TargetIsView = 0 , @FKTableNameElement = 'ADSAccount' , @FKColumnNameElement = 'UID_ADSAccount' end END TRY72 BEGIN CATCH exec QBM_PSessionErrorAdd default RAISERROR ('', 18, 1) WITH NOWAIT END CATCH endLabel: end 73