zoukankan      html  css  js  c++  java
  • K2 Blackpearl中从数据库直接删除流程实例之K2ServerLog表

    /************************************************************************************************
    **  功能:根据实例ID,删除[K2ServerLog]中的流程实例数据(物理删除,不可恢复,操作前请备份)
    **  作者:Danny,Li [xing.dong.li@163.com]
    **  日期:2012-11-28
    **  版本:v121128
    ************************************************************************************************
    **  返回值        返回值描述
    **  ------        --------------------------------------------------------------
    **    
    **
    ************************************************************************************************
    **  修订日期        修订作者        修订描述
    **  ----------    --------    -----------------------------------------------
    **    
    **    
    ************************************************************************************************/
    
    USE [K2ServerLog]
    GO
    
    SET ANSI_NULLS ON
    GO
    
    SET QUOTED_IDENTIFIER ON
    GO
    
    CREATE PROCEDURE [dbo].[uSP_DeleteK2ServerLogProcInst]
        @procInstID INT        -- Process Instance ID
    AS
    
    SET NOCOUNT ON
    
    BEGIN
        PRINT 'Delete process instance from K2ServerLog for ID = '+ CAST(@procInstID AS VARCHAR(50)) +' starting'
        
        DECLARE @iError INT
        SELECT @iError = @@Error
        
        BEGIN TRANSACTION
        
        IF @iError = 0
        BEGIN
            PRINT 'Removing process instance from _ActInst'
            DELETE _ActInst WHERE ProcInstID = @procInstID
            PRINT CAST(@@ROWCOUNT AS VARCHAR(10)) + ' records removed from _ActInst'
            SELECT @iError = @@ERROR
        END
        
        IF @iError = 0
        BEGIN
            PRINT 'Removing process instance from _ActInstAudit'
            DELETE _ActInstAudit WHERE ProcInstID = @procInstID
            PRINT CAST(@@ROWCOUNT AS VARCHAR(10)) + ' records removed from _ActInstAudit'
            SELECT @iError = @@ERROR
        END
        
        IF @iError = 0
        BEGIN
            PRINT 'Removing process instance from _ActInstDest'
            DELETE _ActInstDest WHERE ProcInstID = @procInstID
            PRINT CAST(@@ROWCOUNT AS VARCHAR(10)) + ' records removed from _ActInstDest'
            SELECT @iError = @@ERROR
        END
        
        IF @iError = 0
        BEGIN
            PRINT 'Removing process instance from _ActInstDestData'
            DELETE _ActInstDestData WHERE ProcInstID = @procInstID
            PRINT CAST(@@ROWCOUNT AS VARCHAR(10)) + ' records removed from _ActInstDestData'
            SELECT @iError = @@ERROR
        END
        
        IF @iError = 0
        BEGIN
            PRINT 'Removing process instance from _ActInstDestDataAudit'
            DELETE _ActInstDestDataAudit WHERE ProcInstID = @procInstID
            PRINT CAST(@@ROWCOUNT AS VARCHAR(10)) + ' records removed from _ActInstDestDataAudit'
            SELECT @iError = @@ERROR
        END
        
        IF @iError = 0
        BEGIN
            PRINT 'Removing process instance from _ActInstDestXml'
            DELETE _ActInstDestXml WHERE ProcInstID = @procInstID
            PRINT CAST(@@ROWCOUNT AS VARCHAR(10)) + ' records removed from _ActInstDestXml'
            SELECT @iError = @@ERROR
        END
        
        IF @iError = 0
        BEGIN
            PRINT 'Removing process instance from _ActInstDestXmlAudit'
            DELETE _ActInstDestXmlAudit WHERE ProcInstID = @procInstID
            PRINT CAST(@@ROWCOUNT AS VARCHAR(10)) + ' records removed from _ActInstDestXmlAudit'
            SELECT @iError = @@ERROR
        END
        
        IF @iError = 0
        BEGIN
            PRINT 'Removing process instance from _EscInst'
            DELETE _EscInst WHERE ProcInstID = @procInstID
            PRINT CAST(@@ROWCOUNT AS VARCHAR(10)) + ' records removed from _EscInst'
            SELECT @iError = @@ERROR
        END
        
        IF @iError = 0
        BEGIN
            PRINT 'Removing process instance from _EventInst'
            DELETE _EventInst WHERE ProcInstID = @procInstID
            PRINT CAST(@@ROWCOUNT AS VARCHAR(10)) + ' records removed from _EventInst'
            SELECT @iError = @@ERROR
        END
        
        IF @iError = 0
        BEGIN
            PRINT 'Removing process instance from _IPC'
            DELETE _IPC WHERE SrcProcInstID = @procInstID
            PRINT CAST(@@ROWCOUNT AS VARCHAR(10)) + ' records removed from _IPC'
            SELECT @iError = @@ERROR
        END
        
        IF @iError = 0
        BEGIN
            PRINT 'Removing process instance from _LogBatch'
            DELETE _LogBatch WHERE ProcInstID = @procInstID
            PRINT CAST(@@ROWCOUNT AS VARCHAR(10)) + ' records removed from _LogBatch'
            SELECT @iError = @@ERROR
        END
        
        IF @iError = 0
        BEGIN
            PRINT 'Removing process instance from _LineInst'
            DELETE _LineInst WHERE ProcInstID = @procInstID
            PRINT CAST(@@ROWCOUNT AS VARCHAR(10)) + ' records removed from _LineInst'
            SELECT @iError = @@ERROR
        END
        
        IF @iError = 0
        BEGIN
            PRINT 'Removing process instance from _ProcInst'
            DELETE _ProcInst WHERE ID = @procInstID
            PRINT CAST(@@ROWCOUNT AS VARCHAR(10)) + ' records removed from _ProcInst'
            SELECT @iError = @@ERROR
        END
        
        IF @iError = 0
        BEGIN
            PRINT 'Removing process instance from _ProcInstAudit'
            DELETE _ProcInstAudit WHERE ProcInstID = @procInstID
            PRINT CAST(@@ROWCOUNT AS VARCHAR(10)) + ' records removed from _ProcInstAudit'
            SELECT @iError = @@ERROR
        END
        
        IF @iError = 0
        BEGIN
            PRINT 'Removing process instance from _ProcInstData'
            DELETE _ProcInstData WHERE ProcInstID = @procInstID
            PRINT CAST(@@ROWCOUNT AS VARCHAR(10)) + ' records removed from _ProcInstData'
            SELECT @iError = @@ERROR
        END
        
        IF @iError = 0
        BEGIN
            PRINT 'Removing process instance from _ProcInstDataAudit'
            DELETE _ProcInstDataAudit WHERE ProcInstID = @procInstID
            PRINT CAST(@@ROWCOUNT AS VARCHAR(10)) + ' records removed from _ProcInstDataAudit'
            SELECT @iError = @@ERROR
        END
        
        IF @iError = 0
        BEGIN
            PRINT 'Removing process instance from _ProcInstXml'
            DELETE _ProcInstXml WHERE ProcInstID = @procInstID
            PRINT CAST(@@ROWCOUNT AS VARCHAR(10)) + ' records removed from _ActInst'
            SELECT @iError = @@ERROR
        END
        
        IF @iError = 0
        BEGIN
            PRINT 'Removing process instance from _ProcInstXmlAudit'
            DELETE _ProcInstXmlAudit WHERE ProcInstID = @procInstID
            PRINT CAST(@@ROWCOUNT AS VARCHAR(10)) + ' records removed from _ProcInstXmlAudit'
            SELECT @iError = @@ERROR
        END
        
        IF @iError <> 0
        BEGIN
            ROLLBACK TRANSACTION
            PRINT 'Delete process instance from K2ServerLog for ID = '+ CAST(@procInstID AS VARCHAR(50)) +' rollback'
        END
        ELSE
        BEGIN
            COMMIT TRANSACTION
            PRINT 'Delete process instance from K2ServerLog for ID = '+ CAST(@procInstID AS VARCHAR(50)) +' commit'
        END
    END
  • 相关阅读:
    一个简单的C++程序反汇编解析
    一个简单的C++程序反汇编解析
    Oracle 10g 用户数及价格
    若何应对被公开的Oracle口令加密算法(3)
    Solaris办事管理对象 SMF快速入门指南(1)
    Solaris 10完成安好Kerberos身份验证(1)
    Solaris效力操持工具 SMF疾速入门指南(3)
    Oracle Warehouse Builder 自动化ETL措置历程(4)
    如何经过PHP获得MySQL procedure成效
    Solaris 10下设置EJB 3.0情况(2)
  • 原文地址:https://www.cnblogs.com/dannyli/p/2794845.html
Copyright © 2011-2022 走看看