转:http://www.cnblogs.com/dannyli/archive/2012/11/29/2794772.html

/************************************************************************************************

**  功能:根据实例ID,删除[K2Server]中的流程实例数据(物理删除,不可恢复,操作前请备份)

**  作者:Danny,Li [xing.dong.li@163.com]

**  日期:2012-11-28

**  版本:v121128

************************************************************************************************

**  返回值        返回值描述

**  ------        --------------------------------------------------------------

**   

**

************************************************************************************************

**  修订日期        修订作者        修订描述

**  ----------    --------    -----------------------------------------------

**   

**   

************************************************************************************************/

USE [K2Server]

GO

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

CREATE PROCEDURE [dbo].[uSP_DeleteK2ServerProcInst]

    @procInstID INT        -- Process Instance ID

AS

SET NOCOUNT ON

BEGIN

    PRINT 'Delete process instance from K2Server 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 _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 _Async'

        DELETE _Async WHERE ProcInstID = @procInstID

        PRINT CAST(@@ROWCOUNT AS VARCHAR(10)) + ' records removed from _Async'

        SELECT @iError = @@ERROR

    END

   

    IF @iError = 0

    BEGIN

        PRINT 'Removing process instance from _Code'

        DELETE _Code FROM (_Code INNER JOIN _ErrorLog E ON _Code.ID = E.CodeID ) WHERE E.ProcInstID = @procInstID

        PRINT CAST(@@ROWCOUNT AS VARCHAR(10)) + ' records removed from _Code'

        SELECT @iError = @@ERROR

    END

   

    IF @iError = 0

    BEGIN

        PRINT 'Removing process instance from _ErrorLog'

        DELETE _ErrorLog WHERE ProcInstID = @procInstID

        PRINT CAST(@@ROWCOUNT AS VARCHAR(10)) + ' records removed from _ErrorLog'

        SELECT @iError = @@ERROR

    END

   

    IF @iError = 0

    BEGIN

        PRINT 'Removing process instance from _ProcInstDestQueue'

        DELETE _ProcInstDestQueue WHERE ProcInstID = @procInstID

        PRINT CAST(@@ROWCOUNT AS VARCHAR(10)) + ' records removed from _ProcInstDestQueue'

        SELECT @iError = @@ERROR

    END

   

    IF @iError = 0

    BEGIN

        PRINT 'Removing process instance from _FieldOnDemand'

        DELETE _FieldOnDemand WHERE ProcInstID = @procInstID

        PRINT CAST(@@ROWCOUNT AS VARCHAR(10)) + ' records removed from _FieldOnDemand'

        SELECT @iError = @@ERROR

    END

   

    IF @iError = 0

    BEGIN

        PRINT 'Removing process instance from _IPCAsync'

        DELETE _IPCAsync FROM (_IPCAsync ia    JOIN _IPC i ON ia.ItemID = i.ID)        WHERE SrcProcInstID = @procInstID AND ia.[Type] IN (1, 3, 4)


        PRINT CAST(@@ROWCOUNT AS VARCHAR(10)) + ' records removed from _IPCAsync'

        SELECT @iError = @@ERROR

    END

   

    IF @iError = 0

    BEGIN

        PRINT 'Removing process instance from _IPCAsync'

        DELETE _IPCAsync FROM (_IPCAsync ia JOIN _IPCReturn i ON ia.ItemID = i.DstProcInstID)        WHERE DstProcInstID = @procInstID AND ia.[Type] IN (2)

        PRINT CAST(@@ROWCOUNT AS VARCHAR(10)) + ' records removed from _IPCAsync'

        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 _IPC'

        DELETE _IPC WHERE DstProcInstID = @procInstID

        PRINT CAST(@@ROWCOUNT AS VARCHAR(10)) + ' records removed from _IPC'

        SELECT @iError = @@ERROR

    END

   

    IF @iError = 0

    BEGIN

        PRINT 'Removing process instance from _IPCReturn'

        DELETE _IPCReturn WHERE SrcProcInstID = @procInstID

        PRINT CAST(@@ROWCOUNT AS VARCHAR(10)) + ' records removed from _IPCReturn'

        SELECT @iError = @@ERROR

    END

   

    IF @iError = 0

    BEGIN

        PRINT 'Removing process instance from _IPCReturn'

        DELETE _IPCReturn WHERE DstProcInstID = @procInstID

        PRINT CAST(@@ROWCOUNT AS VARCHAR(10)) + ' records removed from _IPCReturn'

        SELECT @iError = @@ERROR

    END

   

    IF @iError = 0

    BEGIN

        PRINT 'Removing process instance from _Log'

        DELETE _Log WHERE ProcInstID = @procInstID

        PRINT CAST(@@ROWCOUNT AS VARCHAR(10)) + ' records removed from _Log'

        SELECT @iError = @@ERROR

    END

   

    IF @iError = 0

    BEGIN

        PRINT 'Removing process instance from _ServerList'

        DELETE _ServerList WHERE ProcInstID = @procInstID

        PRINT CAST(@@ROWCOUNT AS VARCHAR(10)) + ' records removed from _ServerList'

        SELECT @iError = @@ERROR

    END

   

    IF @iError = 0

    BEGIN

        PRINT 'Removing process instance from _WorklistHeader'

        DELETE _WorklistHeader WHERE ProcInstID = @procInstID

        PRINT CAST(@@ROWCOUNT AS VARCHAR(10)) + ' records removed from _WorklistHeader'

        SELECT @iError = @@ERROR

    END

   

    IF @iError = 0

    BEGIN

        PRINT 'Removing process instance from _WorklistSlot'

        DELETE _WorklistSlot WHERE ProcInstID = @procInstID

        PRINT CAST(@@ROWCOUNT AS VARCHAR(10)) + ' records removed from _WorklistSlot'

        SELECT @iError = @@ERROR

    END

   

    IF @iError = 0

    BEGIN

        PRINT 'Removing process instance from _ActionActInstRights'

        DELETE _ActionActInstRights WHERE ProcInstID = @procInstID

        PRINT CAST(@@ROWCOUNT AS VARCHAR(10)) + ' records removed from _ActionActInstRights'

        SELECT @iError = @@ERROR

    END

   

    IF @iError = 0

    BEGIN

        PRINT 'Removing process instance from _ActionActInstShared'

        DELETE _ActionActInstShared WHERE ProcInstID = @procInstID

        PRINT CAST(@@ROWCOUNT AS VARCHAR(10)) + ' records removed from _ActionActInstShared'

        SELECT @iError = @@ERROR

    END

   

    IF @iError <> 0

    BEGIN

        ROLLBACK TRANSACTION

        PRINT 'Delete process instance from K2Server for ID = '+ CAST(@procInstID AS VARCHAR(50)) +' rollback'

    END

    ELSE

    BEGIN

        COMMIT TRANSACTION

        PRINT 'Delete process instance from K2Server for ID = '+ CAST(@procInstID AS VARCHAR(50)) +' commit'

    END

END

K2 Blackpearl中从数据库直接删除流程实例之K2Server表的更多相关文章

  1. K2 Blackpearl中从数据库直接删除流程实例之K2ServerLog表

    转:http://www.cnblogs.com/dannyli/archive/2012/11/29/2794845.html /********************************** ...

  2. EBS中OPM成本更新处理流程及对应的表结构、SLA表

    OPM成本更新流程:  1.跑实际成本处理  功能作用:计算成本  2.成本更新        功能作用:更新成本  3.OPM会计预处理程序->活动->提交流程 功能作用:是创建会计事件 ...

  3. 工作流学习——Activiti流程实例、任务管理四步曲 (zhuan)

    http://blog.csdn.net/zwk626542417/article/details/46646565 ***************************************** ...

  4. Activiti的流程实例及挂起激活(七)

    1.1什么是流程实例 参与者(可以是用户也可以是程序)按照流程定义内容发起一个流程,这就是一个流程实例.是动态的.流程定义和流程实例的图解: 1.2启动流程实例 流程定义部署在 activiti 后, ...

  5. Activiti 流程实例、任务、执行对象及相关的表

    一个流程中,流程实例只有一个,执行对象可以有多个(如果存在分支和聚合) SELECT * FROM activiti.act_ru_execution a;  #正在执行的执行对象表 SELECT * ...

  6. 将数据库中的表注册到K2服务中,并封装为Smart Object

    转:http://www.cnblogs.com/dannyli/archive/2011/08/15/2139550.html K2 blackpearl项目中经常需要将其他数据中的表注册到K2服务 ...

  7. 使用C#代码发起K2 Blackpearl流程

    转:http://www.cnblogs.com/dannyli/archive/2011/08/02/2125285.html 使用C#代码,发起一个K2的流程,其形式和链接SQL Server数据 ...

  8. K2 blackpearl 流程开发(二)

    转:http://blog.csdn.net/gxiangzi/article/details/8444590 本来想一篇文章把流程开发介绍完的,后来发现实在是太多了,只好分成两部分了.上一篇很简单的 ...

  9. K2 blackpearl 流程开发(一)

    转:http://blog.csdn.net/gxiangzi/article/details/8444060 郁闷,今天K2的license过期了,很多东西都没法用了,还得去找PM大大帮忙申请一个. ...

随机推荐

  1. js之简易计算器

    <!DOCTYPE html PUBLIC "-//W3C//Dli XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  2. linux自学(九)之开始centos学习,安装数据库MariaDB

    上一篇:linux自学(八)之开始centos学习,安装tomcat 数据库我们不安装mysql,我网上看了好多资料发现mysql安装比较麻烦,我们这里安装同一个父亲的产品MariaDB.驱动,端口等 ...

  3. BZOJ2199 奶牛议会 【2-sat】

    BZOJ2199 奶牛议会 Description 由于对Farmer John的领导感到极其不悦,奶牛们退出了农场,组建了奶牛议会.议会以"每头牛 都可以获得自己想要的"为原则, ...

  4. mongooseim xmpp 服务器docker 安装试用

    备注:    预备环境docker  xmpp client   1. 启动mongooseim docker run -d -t -h mongooseim-1 --name mongooseim- ...

  5. cnpm 私服搭建(基于docker)

    备注:   使用docker-compose 进行安装 1. 代码clone git clone https://github.com/cnpm/cnpmjs.org.git 2. docker bu ...

  6. Git 的分支和标签规则

    Git 的分支和标签规则 分支使用 x.x 命名,不加 V. 标签使用 v1.x.x-xxx 方式命名.(v 为小写) 分支和标签名不可重复.

  7. Oracle DB备份恢复篇之丢失控制文件

    实验目的 本篇主要模拟控制文件丢失后,如何根据实际情况恢复数据库,才能使数据库尽可能不丢失数据. 实验环境 1)Linux系统环境 [oracle@DG1 ~]$ lsb_release -a LSB ...

  8. XAMPP服务器在局域网只能本机访问且无法用IP访问的解决办法 (转)

    XAMPP服务器在局域网只能本机访问且无法用IP访问的解决办法 前几天安装了xampp for pc 1.7.4版本. 装好后在本地电脑通过https://localhost访问正常. 然后换了台电脑 ...

  9. 洛谷 4525 && 洛谷 4526 【模板】自适应辛普森法

    题目:https://www.luogu.org/problemnew/show/P4525 https://www.luogu.org/problemnew/show/P4526 参考:https: ...

  10. GOF23设计模式之外观模式(facade)

    一.外观模式概述 外观模式也称为门面模式. 核心:为了系统提供统一的入口,封装子系统的复杂性,便于客户端调用. 二.外观模式场景导入与示例代码 场景:要想自己去注册一个公司,首先去工商局检测命名是否合 ...