Back to OIM Explorer

dbo.ADS_ZAccountInADSGroup

Stored ProcedureSQL_STORED_PROCEDURESandbox DB

Stored Procedure.

Source: sandbox-db sys.sql_modules

Source size: 11.419 characters

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

Complete Source

SQL419 lines
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
SQL · Raw73 lines
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