Back to OIM Explorer

dbo.QBM_ZDeferredOperationExecute

Stored ProcedureSQL_STORED_PROCEDURESandbox DB

Stored Procedure. HOFireEvent -> DialogDeferredOperation.EXECUTE at line 17; Single DBQueue insert -> QBM-K-DeferredOperationExecute / QBM_ZDeferredOperationExecute at line 17; Single DBQueue insert -> QBM-K-DeferredOperationExecute / QBM_ZDeferredOperationExecute at line 20; References QBM_PJobCreate*

Source: sandbox-db sys.sql_modules

Source size: 3.272 characters

Interpretation

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

Relations

  • HOFireEvent -> DialogDeferredOperation.EXECUTE at line 17
  • Single DBQueue insert -> QBM-K-DeferredOperationExecute / QBM_ZDeferredOperationExecute at line 17
  • Single DBQueue insert -> QBM-K-DeferredOperationExecute / QBM_ZDeferredOperationExecute at line 20
  • References QBM_PJobCreate*
  • References QBM_PJobCreate_HOFireEvent*
  • References QBM_PDBQueueInsert_Single

Typed Edges

  • fires event DialogDeferredOperation.EXECUTE HOFireEvent -> DialogDeferredOperation.EXECUTE at line 17
  • queues DBQueue task QBM_ZDeferredOperationExecute at line 17 Single DBQueue insert -> QBM-K-DeferredOperationExecute / QBM_ZDeferredOperationExecute at line 17
  • queues DBQueue task QBM_ZDeferredOperationExecute at line 20 Single DBQueue insert -> QBM-K-DeferredOperationExecute / QBM_ZDeferredOperationExecute at line 20
  • references source dbo.QBM_FTParameter1AsInClause 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_HOFireEvent source text reference
  • references source dbo.QBM_PSessionErrorAdd source text reference
  • queues DBQueue task QBM-K-DeferredOperationExecute -> QBM_ZDeferredOperationExecute QBM_PDBQueueInsert_Single 'QBM-K-DeferredOperationExecute', '', '', @GenProcidTask end END TRY BEGIN CATCH exec QBM_PSessionErrorAdd default RAISERROR ('', 18, 1) WITH NOWAIT END CATCH end

Complete Source

SQL139 lines
1CREATE PROCEDURE QBM_ZDeferredOperationExecute(2  @SlotNumberDummy int,3  @Dummy1 varchar(38),4  @Dummy2 varchar(38),5  @GenProcidTask varchar(38)6)7AS8BEGIN9  DECLARE @whereclause nvarchar(max)10  DECLARE @GenProcID varchar(38)11  DECLARE @DebugSwitch int = 012  DECLARE @InClauses QBM_YCursorBuffer13  DECLARE @ElementCount int14  DECLARE @ElementIndex int15  DECLARE @ElementsProcessed int16  DECLARE @Portion int = 1000017  DECLARE @PartitionSize int = 10118  DECLARE @Elemente QBM_YParameterList19  DECLARE @ElementPartition QBM_YParameterList20  DECLARE @XUser nvarchar(64) = object_name(@@procid)21  DECLARE @Xdate datetime = getutcdate()22  DECLARE @ObjectKeysPerRun QBM_YParameterList23  DECLARE @BasisObjectKey varchar(138) = NULL24  BEGIN TRY25    INSERT INTO @Elemente(Parameter1,26    Parameter2,27    Parameter3)28    SELECT29      TOP(@Portion) o.UID_DialogDeferredOperation,30      isnull(o.GenProcID,31      @GenProcidTask),32      o.XObjectKey33    FROM DialogDeferredOperation o34    WHERE35      TargetDate < GetUTCDate() AND isnull(XTouched,36    '') <> 'X'37    SELECT @ElementsProcessed = @@ROWCOUNT38    SELECT @ElementIndex = 139    IF @DebugSwitch > 040    BEGIN41      SELECT42        e.Parameter1,43        e.Parameter244      FROM @Elemente e45    END46    IF @ElementsProcessed = 147    BEGIN48      SELECT49        TOP 1 @GenProcID = e.Parameter2,50        @BasisObjectKey = e.Parameter351      FROM @Elemente e52    END53    ELSE54    BEGIN55      SELECT @GenProcID = @GenProcidTask;56      merge INTO DialogProcessSubstitute AS t using(57      SELECT58        DISTINCT e.Parameter2 AS GenProcIDOrigin,59        @GenProcid AS GenProcIDNew60      FROM @Elemente e61      WHERE62        e.Parameter2 <> @GenProcID) AS s63        ON t.GenProcIDOrigin = s.GenProcIDOrigin AND t.GenProcIDNew = s.GenProcIDNew WHEN matched AND t.ReadyForDeleteOrExport <> 0 THEN64      UPDATE65      SET t.ReadyForDeleteOrExport = 0 WHEN NOT matched BY target THEN66      INSERT(GenProcIDOrigin,67      GenProcIDNew,68      ReadyForDeleteOrExport)69      VALUES(s.GenProcIDOrigin,70      s.GenProcIDNew,71      0);72    END73    SELECT @ElementCount = ceiling(@ElementsProcessed /(1.0 * @PartitionSize))74    SELECT @ElementIndex = 175    WHILE @ElementIndex <= @ElementCount76    BEGIN77      DELETE @ElementPartition78      INSERT INTO @ElementPartition(Parameter1,79      Parameter2,80      Parameter3)81      SELECT82        TOP(@partitionSize) Parameter1,83        Parameter2,84        Parameter385      FROM @Elemente86      WHERE87        HasContentFull = 088      UPDATE @Elemente89      SET HasContentFull = 190      WHERE91        Parameter1 IN(92      SELECT Parameter193      FROM @ElementPartition)94      SELECT TOP 1 @whereclause = 'UID_DialogDeferredOperation in ' + i.CollectedLine95      FROM dbo.QBM_FTParameter1AsInClause(@ElementPartition) i96      IF @DebugSwitch > 097      BEGIN98        print @whereclause99      END100      DELETE @ObjectKeysPerRun101      INSERT INTO @ObjectKeysPerRun(Parameter1)102      SELECT e.Parameter3103      FROM @ElementPartition e104      EXEC QBM_PJobCreate_HOFireEvent 'DialogDeferredOperation',105        @whereclause,106      'EXECUTE',107        @GenProcid,108        @ObjectKeysAffected = @ObjectKeysPerRun,109        @BasisObjectKey = @BasisObjectKey110      SELECT @ElementIndex += 1111    END112    UPDATE DialogDeferredOperation113    SET xtouched = 'X',114    XDateUpdated = @Xdate,115    XUserUpdated = @XUser116    WHERE117      UID_DialogDeferredOperation IN(118    SELECT e.Parameter1119    FROM @Elemente e)120    IF @ElementsProcessed = @Portion121    BEGIN122      IF @GenProcidTask IS NULL123      BEGIN124        SELECT @GenProcidTask = newid()125      END126      EXEC QBM_PDBQueueInsert_Single 'QBM-K-DeferredOperationExecute',127      '',128      '',129        @GenProcidTask130    END131  END TRY132  BEGIN CATCH133    EXEC QBM_PSessionErrorAdd DEFAULT134    RAISERROR('',135    18,136    1)137      WITH NOWAIT138  END CATCH139END
Open raw exported source
SQL ยท Raw22 lines
1     create   procedure QBM_ZDeferredOperationExecute (@SlotNumberDummy int , @Dummy1 varchar(38) , @Dummy2 varchar(38) , @GenProcidTask varchar2(38) ) as begin declare @whereclause nvarchar(max) declare @GenProcID varchar(38) declare @DebugSwitch int = 0 declare @InClauses QBM_YCursorBuffer declare3 @ElementCount int declare @ElementIndex int declare @ElementsProcessed int declare @Portion int = 10000 declare @PartitionSize int = 101 declare @Elemente4 QBM_YParameterList declare @ElementPartition QBM_YParameterList declare @XUser nvarchar(64) = object_name(@@procid) declare @Xdate datetime = getutcdate5() declare @ObjectKeysPerRun QBM_YParameterList declare @BasisObjectKey varchar(138) = null BEGIN TRY  insert into @Elemente (Parameter1, Parameter2, Parameter36) select top (@Portion) o.UID_DialogDeferredOperation, isnull(o.GenProcID, @GenProcidTask)      , o.XObjectKey from DialogDeferredOperation o where TargetDate7 < GetUTCDate() and isnull(XTouched, '') <> 'X' select @ElementsProcessed = @@ROWCOUNT select @ElementIndex = 1 if @DebugSwitch > 0 begin select e.Parameter18, e.Parameter2 from @Elemente e end if @ElementsProcessed = 1 begin  select top 1 @GenProcID = e.Parameter2 , @BasisObjectKey = e.Parameter3 from @Elemente9 e end else begin  select @GenProcID = @GenProcidTask           ; merge into DialogProcessSubstitute as t using ( select distinct e.Parameter2 as GenProcIDOrigin10 , @GenProcid as GenProcIDNew from @Elemente e where e.Parameter2 <> @GenProcID ) as s on t.GenProcIDOrigin = s.GenProcIDOrigin and t.GenProcIDNew = s.GenProcIDNew11 when matched and t.ReadyForDeleteOrExport <> 0 then update set t.ReadyForDeleteOrExport = 0 when not matched by target then insert ( GenProcIDOrigin ,12 GenProcIDNew , ReadyForDeleteOrExport ) values ( s.GenProcIDOrigin , s.GenProcIDNew , 0 ) ; end select @ElementCount = ceiling(@ElementsProcessed / (1.013 * @PartitionSize)) select @ElementIndex = 1 while @ElementIndex <= @ElementCount begin delete @ElementPartition insert into @ElementPartition (Parameter114, Parameter2, Parameter3) select top (@partitionSize) Parameter1, Parameter2, Parameter3 from @Elemente where HasContentFull = 0 Update @Elemente set HasContentFull15 = 1 where Parameter1 in (select Parameter1 from @ElementPartition) select top 1 @whereclause ='UID_DialogDeferredOperation in ' + i.CollectedLine from16 dbo.QBM_FTParameter1AsInClause(@ElementPartition) i if @DebugSwitch > 0 begin print @whereclause end delete @ObjectKeysPerRun insert into @ObjectKeysPerRun17(Parameter1) select e.Parameter3 from @ElementPartition e exec QBM_PJobCreate_HOFireEvent 'DialogDeferredOperation', @whereclause, 'EXECUTE', @GenProcid18 , @ObjectKeysAffected = @ObjectKeysPerRun , @BasisObjectKey = @BasisObjectKey select @ElementIndex += 1 end   update DialogDeferredOperation set xtouched19 = 'X' , XDateUpdated = @Xdate , XUserUpdated = @XUser where UID_DialogDeferredOperation in ( select e.Parameter1 from @Elemente e ) if @ElementsProcessed20 = @Portion begin if @GenProcidTask is null begin select @GenProcidTask = newid() end exec QBM_PDBQueueInsert_Single 'QBM-K-DeferredOperationExecute', 21'', '', @GenProcidTask end END TRY BEGIN CATCH exec QBM_PSessionErrorAdd default RAISERROR ('', 18, 1) WITH NOWAIT END CATCH end 22