dbo.QBM_ZDeferredOperationExecute
Stored ProcedureSQL_STORED_PROCEDURESandbox DB
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
References
- dbo.QBM_FTParameter1AsInClause
- dbo.QBM_PDBQueueInsert_Single
- dbo.QBM_PJobCreate
- dbo.QBM_PJobCreate_HOFireEvent
- dbo.QBM_PSessionErrorAdd
Referenced By
- No direct source references extracted.
Complete Source
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
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