Back to OIM Explorer

dbo.ADS_TUAdsGroup

Database TriggerSQL_TRIGGERSandbox DB

Database Trigger on ADSGroup. 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

Source: sandbox-db sys.sql_modules

Source size: 17.541 characters

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

Complete Source

SQL747 lines
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
SQL ยท Raw116 lines
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