Back to OIM Explorer

dbo.QER_TIPersonWantsOrg

Database TriggerSQL_TRIGGERSandbox DB

Database Trigger on PersonWantsOrg. HOCallMethod -> PersonWantsOrg.MakeDecisionOnInsertAsync at line 21; Bulk DBQueue insert -> QER-K-ShoppingRackPWOHelperPWO / QER_ZITShopHelperFill at line 21; Bulk DBQueue insert -> QER-K-ShoppingRackPersonHasObject / QER_ZITShopPersonHasObjectFill at line 21; Bulk DBQueue insert -> QER-K-ShoppingRackPWOHelperPWO / QER_ZITShopHelperFill at line 25

Source: sandbox-db sys.sql_modules

Source size: 4.257 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

  • HOCallMethod -> PersonWantsOrg.MakeDecisionOnInsertAsync at line 21
  • Bulk DBQueue insert -> QER-K-ShoppingRackPWOHelperPWO / QER_ZITShopHelperFill at line 21
  • Bulk DBQueue insert -> QER-K-ShoppingRackPersonHasObject / QER_ZITShopPersonHasObjectFill at line 21
  • Bulk DBQueue insert -> QER-K-ShoppingRackPWOHelperPWO / QER_ZITShopHelperFill at line 25
  • Bulk DBQueue insert -> QER-K-ShoppingRackPersonHasObject / QER_ZITShopPersonHasObjectFill at line 25
  • References QBM_PJobCreate*
  • References QBM_PJobCreate_HOCallMethod*
  • References QBM_PDBQueueInsert_Bulk
  • Trigger parent table: PersonWantsOrg

Typed Edges

  • calls object method PersonWantsOrg.MakeDecisionOnInsertAsync HOCallMethod -> PersonWantsOrg.MakeDecisionOnInsertAsync at line 21
  • queues DBQueue task QER_ZITShopHelperFill at line 21 Bulk DBQueue insert -> QER-K-ShoppingRackPWOHelperPWO / QER_ZITShopHelperFill at line 21
  • queues DBQueue task QER_ZITShopPersonHasObjectFill at line 21 Bulk DBQueue insert -> QER-K-ShoppingRackPersonHasObject / QER_ZITShopPersonHasObjectFill at line 21
  • queues DBQueue task QER_ZITShopHelperFill at line 25 Bulk DBQueue insert -> QER-K-ShoppingRackPWOHelperPWO / QER_ZITShopHelperFill at line 25
  • queues DBQueue task QER_ZITShopPersonHasObjectFill at line 25 Bulk DBQueue insert -> QER-K-ShoppingRackPersonHasObject / QER_ZITShopPersonHasObjectFill at line 25
  • trigger on table PersonWantsOrg Trigger parent table: PersonWantsOrg
  • references source dbo.QBM_FGIConfigparmValue source text reference
  • references source dbo.QBM_FGISessionContext source text reference
  • references source dbo.QBM_PDBQueueInsert_Bulk source text reference
  • references source dbo.QBM_PJobCreate source text reference
  • references source dbo.QBM_PJobCreate_HOCallMethod source text reference
  • references source dbo.QBM_PJobCreate_HOCallMethod_L source text reference
  • references source dbo.QBM_PSessionErrorAdd source text reference
  • references source dbo.QER_PITShopPersonHasObjFill_b source text reference
  • references source dbo.QER_TIPerson source text reference

Complete Source

SQL199 lines
1CREATE trigger QER_TIPersonWantsOrg2  ON PersonWantsOrg FOR3INSERT NOT FOR Replication4AS5BEGIN6  DECLARE @DecisionOnInsert int = 07  DECLARE @uid_personwantsorg varchar(38)8  DECLARE @isMassInsert BIT = 09  DECLARE @XUser nvarchar(64)10  DECLARE @heute datetime = getutcdate()11  DECLARE @Processes QBM_YParameterList12  DECLARE @PWOsToFillObject QBM_YParameterlist13  BEGIN TRY14    IF EXISTS(15      SELECT TOP 1 116      FROM inserted)17    GOTO start18    RETURN start:19    DECLARE @GenProcID varchar(38)20    SELECT @GenProcID = dbo.QBM_FGISessionContext('')21    SELECT @XUser = dbo.QBM_FGISessionContext('XUser')22    IF EXISTS(23      SELECT TOP 1 124      FROM inserted i25      JOIN PersonWantsOrg pwo26        ON i.UID_PersonWantsOrg = pwo.UID_PersonWantsOrg27      JOIN QER_VPWOOrderState s28        ON pwo.OrderState = s.OrderState29      WHERE30        sign(len(isnull(pwo.UID_QERWorkingMethod, ''))) ^ s.HasWorkingMethod = 1)31    BEGIN32      RAISERROR('#LDS#Invalid combination of Orderstate and QERWorkingMethod.|',33      18,34      1)35        WITH nowait36    END37    IF dbo.QBM_FGIConfigparmValue('Common\ProcessState') > ' '38    BEGIN39      IF dbo.QBM_FGIConfigparmValue('Common\ProcessState\UseGenProcIDFromPWO') > ' '40      BEGIN41        INSERT INTO @Processes(Parameter1,42        Parameter2)43        SELECT44          isnull(i.GenProcID,45          @GenProcID),46          min(i.XObjectKey)47        FROM inserted i48        GROUP BY i.GenProcID49      END50      ELSE51      BEGIN52        INSERT INTO @Processes(Parameter1,53        Parameter2)54        SELECT55          @GenProcID,56          min(i.XObjectKey)57        FROM inserted i58      END59      DELETE @Processes60      FROM @Processes p61      WHERE62        EXISTS(63      SELECT TOP 1 164      FROM DialogProcess e65        WITH(nolock)66      WHERE67        e.GenProcID = p.Parameter1)68      IF EXISTS(69        SELECT TOP 1 170        FROM @Processes)71      BEGIN72        INSERT INTO DialogProcess(GenProcID,73        BasisObjectType,74        ObjectKey,75        ProcessState,76        XDateInserted,77        XDateUpdated,78        XUserInserted,79        XUserUpdated,80        CustomComment,81        DisplayName)82        SELECT83          p.Parameter1,84          'PersonWantsOrg' AS BasisObjectType,85          p.Parameter2 AS ObjectKey,86          'E',87          @heute,88          @heute,89          @XUser,90          @XUser,91          '' AS CustomComment,92          'Insert PersonWantsOrg' AS DisplayName93        FROM @Processes p94        WHERE95          NOT EXISTS(96        SELECT TOP 1 197        FROM Dialogprocess98        WHERE99          GenProcID = p.Parameter1)100      END101    END102    IF dbo.QBM_FGIConfigparmValue('QER\ITShop\DecisionOnInsert') > ' '103    BEGIN104      SELECT @DecisionOnInsert = 1105    END106    IF(107      SELECT count(*)108    FROM inserted) > 500109    BEGIN110      SELECT @isMassInsert = 1111    END112    IF EXISTS(113      SELECT TOP 1 1114      FROM inserted i115      WHERE116        i.UID_ITShopOrgFinal IS NULL)117    BEGIN118      UPDATE personwantsorg119      SET UID_ITShopOrgFinal = Personwantsorg.uid_Org,120      XDateUpdated = @heute,121      XUserUpdated = @XUser122      FROM Personwantsorg123      JOIN inserted i124        ON Personwantsorg.uid_personwantsorg = i.uid_Personwantsorg125      WHERE126        i.UID_ITShopOrgFinal IS NULL127    END128    IF @isMassInsert = 0129    BEGIN130      DELETE @PWOsToFillObject131      INSERT INTO @PWOsToFillObject(Parameter1,132      Parameter2,133      Parameter3,134      HasContentFull)135      SELECT136        UID_PersonWantsOrg,137        @GenProcID,138        '1' AS CurrentLevelOnly,139        1 AS isNewDecisionLevel140      FROM inserted141      WHERE142        OrderState IN('OrderProduct',143      'OrderProlongate',144      'OrderUnsubscribe')145      EXEC QER_PITShopPersonHasObjFill_b @PWOsToFillObject,146        @IsCalledFromTrigger = 1147    END148    IF @DecisionOnInsert = 1149    BEGIN150      DECLARE @PWOsToFire QBM_YParameterList151      INSERT INTO @PWOsToFire(Parameter1)152      SELECT i.XObjectKey153      FROM inserted i154      WHERE155        OrderState IN('OrderProduct',156      'OrderProlongate',157      'OrderUnsubscribe')158      EXEC QBM_PJobCreate_HOCallMethod_L @objecttype = 'PersonWantsOrg',159        @XObjectKeys = @PWOsToFire,160        @save = 1,161        @MethodName = 'MakeDecisionOnInsertAsync',162        @GenProcID = @GenProcID,163        @AdditionalObjectKeysAffected = DEFAULT,164        @Retries = 3,165        @isToFreezeOnError = 1,166        @WhereClauseAdditional = 'DecisionLevel = 0 and  OrderState in (''OrderProduct'', ''OrderProlongate'', ''OrderUnsubscribe'')',167        @checkForExisting = 1168    END169    IF @DecisionOnInsert = 0 OR @isMassInsert = 1170    BEGIN171      DECLARE @DBQueueElements_01 QBM_YDBQueueRaw172      INSERT INTO @DBQueueElements_01(object,173      subobject,174      genprocid)175      SELECT176        x.uid,177        NULL,178        @GenProcID179      FROM(180      SELECT i.UID_PersonWantsOrg AS uid181      FROM inserted i182      WHERE183        i.OrderState IN('OrderProduct', 'OrderProlongate', 'OrderUnsubscribe')) AS x184      EXEC QBM_PDBQueueInsert_Bulk 'QER-K-ShoppingRackPWOHelperPWO',185        @DBQueueElements_01186      EXEC QBM_PDBQueueInsert_Bulk 'QER-K-ShoppingRackPersonHasObject',187        @DBQueueElements_01188    END189  END TRY190  BEGIN CATCH191    EXEC QBM_PSessionErrorAdd DEFAULT192    RAISERROR('',193    18,194    1)195      WITH NOWAIT196  END CATCH197  ende:198  RETURN199END
Open raw exported source
SQL ยท Raw28 lines
1    create   trigger QER_TIPersonWantsOrg on PersonWantsOrg  for Insert not for Replication as begin  declare @DecisionOnInsert int = 0 declare 2@uid_personwantsorg varchar(38)  declare @isMassInsert bit = 0 declare @XUser nvarchar(64) declare @heute datetime = getutcdate() declare @Processes QBM_YParameterList3   declare @PWOsToFillObject QBM_YParameterlist      BEGIN TRY if exists (select top 1 1 from inserted) goto start return start: declare @GenProcID varchar4(38) select @GenProcID = dbo.QBM_FGISessionContext('') select @XUser = dbo.QBM_FGISessionContext('XUser') if exists (select top 1 1  from inserted i join5 PersonWantsOrg pwo on i.UID_PersonWantsOrg = pwo.UID_PersonWantsOrg join QER_VPWOOrderState s on pwo.OrderState = s.OrderState where  sign(len(isnull(pwo.UID_QERWorkingMethod6, ''))) ^ s.HasWorkingMethod = 1 ) begin raiserror('#LDS#Invalid combination of Orderstate and QERWorkingMethod.|', 18, 1) with nowait end  if dbo.QBM_FGIConfigparmValue7('Common\ProcessState') > ' ' begin if dbo.QBM_FGIConfigparmValue('Common\ProcessState\UseGenProcIDFromPWO') > ' ' begin insert into @Processes(Parameter18, Parameter2) select isnull(i.GenProcID, @GenProcID) , min(i.XObjectKey)  from inserted i group by i.GenProcID  end else begin  insert into @Processes(Parameter19, Parameter2) select @GenProcID , min(i.XObjectKey) from inserted i end delete  @Processes from @Processes p where exists (select top 1 1 from DialogProcess10 e with (nolock) where e.GenProcID = p.Parameter1 ) if exists (select top 1 1 from @Processes ) begin insert into DialogProcess (GenProcID, BasisObjectType11 , ObjectKey, ProcessState , XDateInserted, XDateUpdated , XUserInserted , XUserUpdated , CustomComment, DisplayName ) select p.Parameter1 , 'PersonWantsOrg'12 as BasisObjectType , p.Parameter2 as ObjectKey, 'E'  , @heute, @heute , @XUser , @XUser , '' as CustomComment, 'Insert PersonWantsOrg' as DisplayName 13from @Processes p  where not exists (select top 1 1 from Dialogprocess where GenProcID = p.Parameter1) end end    if dbo.QBM_FGIConfigparmValue('QER\ITShop\DecisionOnInsert'14) > ' ' begin select @DecisionOnInsert = 1 end if (select count(*) from inserted) > 500 begin select @isMassInsert = 1 end  if exists (select top 1 1 from15 inserted i where i.UID_ITShopOrgFinal is null ) begin update personwantsorg set UID_ITShopOrgFinal = Personwantsorg.uid_Org  , XDateUpdated = @heute ,16 XUserUpdated = @XUser from Personwantsorg join inserted i on Personwantsorg.uid_personwantsorg = i.uid_Personwantsorg where i.UID_ITShopOrgFinal is null17 end    if @isMassInsert = 0 begin delete  @PWOsToFillObject insert into @PWOsToFillObject(Parameter1, Parameter2, Parameter3, HasContentFull) select UID_PersonWantsOrg18, @GenProcID  , '1' as CurrentLevelOnly , 1 as isNewDecisionLevel from inserted   where OrderState in ('OrderProduct', 'OrderProlongate', 'OrderUnsubscribe'19)  exec QER_PITShopPersonHasObjFill_b @PWOsToFillObject, @IsCalledFromTrigger = 1 end  if @DecisionOnInsert = 1 begin  declare @PWOsToFire QBM_YParameterList20  insert into @PWOsToFire(Parameter1) select i.XObjectKey from inserted i where OrderState in ('OrderProduct', 'OrderProlongate', 'OrderUnsubscribe') exec21 QBM_PJobCreate_HOCallMethod_L @objecttype = 'PersonWantsOrg' , @XObjectKeys = @PWOsToFire  , @save = 1 , @MethodName = 'MakeDecisionOnInsertAsync' , @GenProcID22 = @GenProcID , @AdditionalObjectKeysAffected = default , @Retries = 3 , @isToFreezeOnError = 1 , @WhereClauseAdditional = 'DecisionLevel = 0 and  OrderState in (''OrderProduct'', ''OrderProlongate'', ''OrderUnsubscribe'')'23 , @checkForExisting = 1 end  if @DecisionOnInsert = 0 or @isMassInsert = 1 begin declare @DBQueueElements_01 QBM_YDBQueueRaw insert into @DBQueueElements_0124 (object, subobject, genprocid) select x.uid, null, @GenProcID from (select i.UID_PersonWantsOrg as uid from inserted i   where i.OrderState in ('OrderProduct'25, 'OrderProlongate', 'OrderUnsubscribe') ) as x  exec QBM_PDBQueueInsert_Bulk 'QER-K-ShoppingRackPWOHelperPWO', @DBQueueElements_01 exec QBM_PDBQueueInsert_Bulk26 'QER-K-ShoppingRackPersonHasObject', @DBQueueElements_01    end  END TRY BEGIN CATCH exec QBM_PSessionErrorAdd default RAISERROR ('', 18, 1) WITH NOWAIT27 END CATCH ende: return end 28