Back to OIM Explorer

dbo.ADS_ZGroupInADSGroup

Stored ProcedureSQL_STORED_PROCEDURESandbox DB

Stored Procedure. Single DBQueue insert -> ADS-K-ADSGroupInADSGroup-Circ / ADS_ZGroupInADSGroup_Circ at line 23; References QBM_PDBQueueInsert_Single

Source: sandbox-db sys.sql_modules

Source size: 4.805 characters

Interpretation

  • Database routine. Review parameters, called procedures, DBQueue inserts, and QBM_PJobCreate helper calls before assuming side effects.
  • DBQueue relation detected. Follow the task procedure and referenced-by list for async processing.

Relations

  • Single DBQueue insert -> ADS-K-ADSGroupInADSGroup-Circ / ADS_ZGroupInADSGroup_Circ at line 23
  • References QBM_PDBQueueInsert_Single

Typed Edges

  • queues DBQueue task ADS_ZGroupInADSGroup_Circ at line 23 Single DBQueue insert -> ADS-K-ADSGroupInADSGroup-Circ / ADS_ZGroupInADSGroup_Circ at line 23
  • references source dbo.QBM_FCVElementToObjectKey2 source text reference
  • references source dbo.QBM_FGISessionContext source text reference
  • references source dbo.QBM_PDBQueueCalculateDelta source text reference
  • references source dbo.QBM_PDBQueueInsert_Single source text reference
  • references source dbo.QBM_PSessionContextSet source text reference
  • references source dbo.QBM_PSessionErrorAdd source text reference
  • queues DBQueue task ADS-K-ADSGroupInADSGroup-Circ -> ADS_ZGroupInADSGroup_Circ QBM_PDBQueueInsert_Single 'ADS-K-ADSGroupInADSGroup-Circ' , '', '', @GenProcID end if @CountDeltaOrigin > 0 begin declare @GenProcIDs_CountDeltaOrigin QBM_YCursorBuffer insert into @GenProcIDs_CountDeltaOrigin (UID1) select distinct de.Gen…

Complete Source

SQL219 lines
1CREATE PROCEDURE ADS_ZGroupInADSGroup(2  @SlotNumber int3)4AS5BEGIN6  DECLARE @Sourcedata QBM_YDataForDelta,7  @CountDeltaQantity int,8  @CountDeltaOrigin int9  DECLARE @lauf int10  DECLARE @GenProcID varchar(38)11  DECLARE @ElementCount int12  DECLARE @ElementIndex int13  DECLARE @ElementLast int14  DECLARE @GenProcID_R varchar(38) = dbo.QBM_FGISessionContext('')15  DECLARE @QBMDeltaHelper QBM_YDBQueueDeltaHelper16  DECLARE @DBQueueCurrent QBM_YDBQueueCurrent17  BEGIN TRY18    INSERT INTO @DBQueueCurrent(UID_DialogDBQueue,19    UID_Parameter,20    UID_SubParameter,21    GenProcID)22    SELECT23      UID_DialogDBQueue,24      UID_Parameter,25      UID_SubParameter,26      GenProcID27    FROM QBMDBQueueCurrent cu28      WITH(readpast)29    WHERE30      cu.SlotNumber = @SlotNumber31    IF @@rowcount = 032    BEGIN33      GOTO EndLabel34    END35    INSERT INTO @SourceData(IsUpcommingContent,36    XOriginAfter,37    Element,38    AssignedElement,39    XOriginBefore)40    SELECT41      0,42      0,43      UID_ADSGroupParent,44      UID_ADSGroupChild,45      Levelnumber + 146    FROM ADSGroupCollection47    JOIN @DBQueueCurrent x48      ON UID_ADSGroupParent = x.uid_parameter49    INSERT INTO @QBMDeltaHelper(Element,50    AssignedElement,51    XOrigin)52    SELECT53      uid_parameter,54      uid_parameter,55      156    FROM @DBQueueCurrent p57    SELECT @lauf = 158    WHILE @lauf > 059    BEGIN60      INSERT INTO @QBMDeltaHelper(Element,61      AssignedElement,62      XOrigin)63      SELECT64        DISTINCT a.Element,65        gig.uid_ADSGroupChild,66        a.XOrigin + 167      FROM @QBMDeltaHelper a68      JOIN ADSGroupInADSGroup gig69        ON a.assignedElement = gig.uid_ADSGroupParent70      WHERE71        NOT EXISTS(72      SELECT TOP 1 173      FROM @QBMDeltaHelper e74      WHERE75        e.Element = a.Element AND e.AssignedElement = gig.uid_ADSGroupChild)76      SELECT @lauf = @@rowcount77    END78    INSERT INTO @SourceData(IsUpcommingContent,79    XOriginBefore,80    XOriginAfter,81    Element,82    AssignedElement)83    SELECT84      1,85      0,86      XOrigin,87      Element,88      AssignedElement89    FROM @QBMDeltaHelper90    EXEC QBM_PDBQueueCalculateDelta @SourceData,91      @DeltaQuantity = 0,92      @DeltaDelete = 1,93      @DeltaInsert = 1,94      @DeltaOrigin = 1,95      @CountDeltaQantity = @CountDeltaQantity OUTPUT,96      @CountDeltaOrigin = @CountDeltaOrigin OUTPUT,97      @UseIsInEffect = 0,98      @SlotNumber = @SlotNumber,99      @DBQueueCurrentExtern = @DBQueueCurrent100    IF @CountDeltaQantity > 0101    BEGIN102      DECLARE @GenProcIDs_CountDeltaQuantity QBM_YCursorBuffer103      INSERT INTO @GenProcIDs_CountDeltaQuantity(UID1)104      SELECT de.GenProcID105      FROM #QBMDeltaDelete de106      UNION107      SELECT de.GenProcID108      FROM #QBMDeltaInsert de109      SELECT @ElementCount = @@ROWCOUNT110      SELECT @ElementIndex = @@IDENTITY - @ElementCount +1111      SELECT @ElementLast = @@IDENTITY112      WHILE @ElementIndex <= @ElementLast113      BEGIN114        SELECT TOP 1 @GenProcID = bu.UID1115        FROM @GenProcIDs_CountDeltaQuantity bu116        WHERE117          bu.ElementIndex = @ElementIndex118        IF EXISTS(119          SELECT TOP 1 1120          FROM #QBMDeltaDelete x121          WHERE122            x.GenProcID = @GenProcID)123        BEGIN124          EXEC QBM_PSessionContextSet 'GenProcID',125            @GenProcID126          DELETE ADSGroupCollection127          WHERE128            EXISTS(129          SELECT TOP 1 1130          FROM #QBMDeltaDelete d131          WHERE132            d.AssignedElement = ADSGroupCollection.uid_ADSGroupChild AND d.Element = ADSGroupCollection.uid_ADSGroupParent AND d.GenProcID = @GenProcID133          )134        END135        IF EXISTS(136          SELECT TOP 1 1137          FROM #QBMDeltaInsert x138          WHERE139            x.GenProcID = @GenProcID)140        BEGIN141          EXEC QBM_PSessionContextSet 'GenProcID',142            @GenProcID143          INSERT INTO ADSGroupCollection(UID_ADSGroupParent,144          UID_ADSGroupChild,145          LevelNumber,146          XObjectKey)147          SELECT148            x.uid_ADSGroupParent,149            x.uid_ADSGroupChild,150            x.LevelNumber - 1,151            dbo.QBM_FCVElementToObjectKey2('ADSGroupCollection',152            'UID_ADSGroupParent',153            x.UID_ADSGroupParent,154            'UID_ADSGroupChild',155            x.UID_ADSGroupChild)156          FROM(157          SELECT158            Element AS uid_ADSGroupParent,159            AssignedElement AS uid_ADSGroupChild,160            XOrigin AS Levelnumber161          FROM #QBMDeltaInsert162          WHERE163            GenProcID = @GenProcID) AS x164        END165        SELECT @ElementIndex += 1166      END167      EXEC QBM_PDBQueueInsert_Single 'ADS-K-ADSGroupInADSGroup-Circ',168      '',169      '',170        @GenProcID171    END172    IF @CountDeltaOrigin > 0173    BEGIN174      DECLARE @GenProcIDs_CountDeltaOrigin QBM_YCursorBuffer175      INSERT INTO @GenProcIDs_CountDeltaOrigin(UID1)176      SELECT177        DISTINCT de.GenProcID178      FROM #QBMDeltaOrigin de179      SELECT @ElementCount = @@ROWCOUNT180      SELECT @ElementIndex = @@IDENTITY - @ElementCount +1181      SELECT @ElementLast = @@IDENTITY182      WHILE @ElementIndex <= @ElementLast183      BEGIN184        SELECT TOP 1 @GenProcID = bu.UID1185        FROM @GenProcIDs_CountDeltaOrigin bu186        WHERE187          bu.ElementIndex = @ElementIndex188        EXEC QBM_PSessionContextSet 'GenProcID',189          @GenProcID190        UPDATE ADSGroupCollection191        SET Levelnumber = x.LevelNumber - 1192        FROM ADSGroupCollection co193        JOIN(194        SELECT195          Element AS uid_ADSGroupParent,196          AssignedElement AS uid_ADSGroupChild,197          XOrigin AS LevelNumber198        FROM #QBMDeltaOrigin199        WHERE200          GenProcID = @GenProcID) AS x201          ON co.uid_ADSGroupParent = x.uid_ADSGroupParent AND co.UID_ADSGroupChild = x.UID_ADSGroupChild202        WHERE203          co.LevelNumber <> x.Levelnumber -1204        SELECT @ElementIndex += 1205      END206    END207  END TRY208  BEGIN CATCH209    EXEC QBM_PSessionErrorAdd DEFAULT210    RAISERROR('',211    18,212    1)213      WITH NOWAIT214  END CATCH215  endLabel:216  EXEC QBM_PSessionContextSet 'GenProcID',217    @GenProcID_R218  RETURN219END
Open raw exported source
SQL · Raw32 lines
1   create   procedure ADS_ZGroupInADSGroup (@SlotNumber int ) AS begin declare @Sourcedata QBM_YDataForDelta , @CountDeltaQantity int , @CountDeltaOrigin2 int declare @lauf int declare @GenProcID varchar(38) declare @ElementCount int declare @ElementIndex int declare @ElementLast int declare @GenProcID_R3 varchar(38) = dbo.QBM_FGISessionContext('') declare @QBMDeltaHelper QBM_YDBQueueDeltaHelper declare @DBQueueCurrent QBM_YDBQueueCurrent BEGIN TRY insert4 into @DBQueueCurrent(UID_DialogDBQueue, UID_Parameter, UID_SubParameter, GenProcID) select UID_DialogDBQueue, UID_Parameter, UID_SubParameter, GenProcID5 from QBMDBQueueCurrent cu with (readpast) where cu.SlotNumber = @SlotNumber if @@rowcount = 0 begin goto EndLabel end insert into @SourceData( IsUpcommingContent6, XOriginAfter , Element, AssignedElement, XOriginBefore ) select 0, 0 , UID_ADSGroupParent, UID_ADSGroupChild, Levelnumber + 1  from ADSGroupCollection7 join @DBQueueCurrent x on UID_ADSGroupParent = x.uid_parameter   insert into @QBMDeltaHelper(Element, AssignedElement, XOrigin) select uid_parameter, 8uid_parameter, 1  from @DBQueueCurrent p  select @lauf = 1 while @lauf > 0 begin  insert into @QBMDeltaHelper (Element, AssignedElement, XOrigin) select9 distinct a.Element, gig.uid_ADSGroupChild, a.XOrigin + 1 from @QBMDeltaHelper a join ADSGroupInADSGroup gig on a.assignedElement = gig.uid_ADSGroupParent10 where Not exists (select top 1 1 from @QBMDeltaHelper e where e.Element = a.Element and e.AssignedElement = gig.uid_ADSGroupChild ) select @lauf = @@rowcount11 end insert into @SourceData( IsUpcommingContent, XOriginBefore, XOriginAfter , Element, AssignedElement ) select 1, 0, XOrigin , Element, AssignedElement12 from @QBMDeltaHelper exec QBM_PDBQueueCalculateDelta @SourceData, @DeltaQuantity = 0, @DeltaDelete = 1, @DeltaInsert = 1, @DeltaOrigin = 1, @CountDeltaQantity13 = @CountDeltaQantity output , @CountDeltaOrigin = @CountDeltaOrigin output , @UseIsInEffect = 0 , @SlotNumber = @SlotNumber , @DBQueueCurrentExtern = 14@DBQueueCurrent  if @CountDeltaQantity > 0 begin declare @GenProcIDs_CountDeltaQuantity QBM_YCursorBuffer insert into @GenProcIDs_CountDeltaQuantity (UID115) select de.GenProcID from #QBMDeltaDelete de union select de.GenProcID from #QBMDeltaInsert de select @ElementCount = @@ROWCOUNT select @ElementIndex 16= @@IDENTITY - @ElementCount +1 select @ElementLast = @@IDENTITY while @ElementIndex <= @ElementLast begin select top 1 @GenProcID = bu.UID1 from @GenProcIDs_CountDeltaQuantity17 bu where bu.ElementIndex = @ElementIndex if exists (select top 1 1 from #QBMDeltaDelete x where x.GenProcID = @GenProcID ) begin exec QBM_PSessionContextSet18 'GenProcID', @GenProcID delete ADSGroupCollection where exists (select top 1 1 from #QBMDeltaDelete d where d.AssignedElement = ADSGroupCollection.uid_ADSGroupChild19 and d.Element = ADSGroupCollection.uid_ADSGroupParent  and d.GenProcID = @GenProcID ) end  if exists (select top 1 1 from #QBMDeltaInsert x where x.GenProcID20 = @GenProcID ) begin exec QBM_PSessionContextSet 'GenProcID', @GenProcID insert into ADSGroupCollection ( UID_ADSGroupParent, UID_ADSGroupChild, LevelNumber21 , XObjectKey ) select x.uid_ADSGroupParent, x.uid_ADSGroupChild, x.LevelNumber - 1  ,dbo.QBM_FCVElementToObjectKey2('ADSGroupCollection', 'UID_ADSGroupParent'22, x.UID_ADSGroupParent, 'UID_ADSGroupChild', x.UID_ADSGroupChild) from ( select Element as uid_ADSGroupParent, AssignedElement as uid_ADSGroupChild, XOrigin23 as Levelnumber from #QBMDeltaInsert  where GenProcID = @GenProcID ) as x end  select @ElementIndex += 1 end  exec QBM_PDBQueueInsert_Single 'ADS-K-ADSGroupInADSGroup-Circ'24, '', '', @GenProcID end  if @CountDeltaOrigin > 0 begin declare @GenProcIDs_CountDeltaOrigin QBM_YCursorBuffer insert into @GenProcIDs_CountDeltaOrigin25 (UID1) select distinct de.GenProcID from #QBMDeltaOrigin de select @ElementCount = @@ROWCOUNT select @ElementIndex = @@IDENTITY - @ElementCount +1 select26 @ElementLast = @@IDENTITY while @ElementIndex <= @ElementLast begin select top 1 @GenProcID = bu.UID1 from @GenProcIDs_CountDeltaOrigin bu where bu.ElementIndex27 = @ElementIndex exec QBM_PSessionContextSet 'GenProcID', @GenProcID update ADSGroupCollection set Levelnumber = x.LevelNumber - 1  from ADSGroupCollection28 co join ( select Element as uid_ADSGroupParent, AssignedElement as uid_ADSGroupChild, XOrigin as LevelNumber from #QBMDeltaOrigin where GenProcID = @GenProcID29 ) as x on co.uid_ADSGroupParent = x.uid_ADSGroupParent and co.UID_ADSGroupChild = x.UID_ADSGroupChild where co.LevelNumber <> x.Levelnumber -1  select30 @ElementIndex += 1 end  end END TRY BEGIN CATCH exec QBM_PSessionErrorAdd default RAISERROR ('', 18, 1) WITH NOWAIT END CATCH  endLabel: exec QBM_PSessionContextSet31 'GenProcID', @GenProcID_R return end 32