驰骋工作流快速开发平台的事件交互模式设计与实现

  1. 事件设计

事件分为流程事件与节点事件

  1. 流程\节点事件功能管理

事件分为流程事件与节点事件,事件是在流程运动过程中触发的执行的过程。

事件是流程的开发者与流程引擎系统交互的接口。

  1. 流程事件定义

流程事件分为如下几种类型:

驰骋工作流快速开发平台的事件交互模式设计与实现

 

  1. 节点事件定义

节点事件分为如下几种类型:

驰骋工作流快速开发平台的事件交互模式设计与实现

 

  1. 事件的实现分类

我们把流程事件类型与节点事件类型进行了分类,为了方便不同类型的用户配置,我们为用户的执行内容划分为多种模式,以满足不同应用层次的开发者需求。

驰骋工作流快速开发平台的事件交互模式设计与实现

  1. 事件配置定义
  2. 事件概述

关键字:流程事件,节点事件。

描述:流程在运动过程中,它是按照一定的时序进行的,所以ccbpm根据每个时序定义了一些事件,比如节点发送前、发送成功时、发送失败时、节点退回前、退回后。比如:流程删除前、删除后、结束前、结束后,流程开发人员可以在相关的事件里填写自己的业务逻辑。

打开节点属性点击事件标签:

驰骋工作流快速开发平台的事件交互模式设计与实现

实现业务逻辑的方法:ccbpm通过两种方式实现事件,分别是:配置的方法与事件基类实体。

配置的方法比较简单,可以执行多种方式,适合维护人员。

事件基类适合程序开发人员,编写事件基类可以非常灵活、执行效率非常高效。对于有开发能里的朋友我们推荐使用后者,在下面章节,我们将详细讲述如何使用它们实现您的业务逻辑,实现与您的系统交互。

  1. 节点事件分类

如下图,

驰骋工作流快速开发平台的事件交互模式设计与实现

 

  1. 事件的配置

 

驰骋工作流快速开发平台的事件交互模式设计与实现

 

  1. 配置事件

配置ccbpm的事件,我们知道配置ccbpm事件是实现ccbpm复杂的业务逻辑。

 

配置项

说明

禁用:

不实用,无配置,让配置的不起作用。

使用SQL:

编写SQL语句,请在执行内容里填写SQL,注意表达式支持变量。

如s果有多条sql ,可以用@GO 分开。比如:

DELETE WF_Emp WHERE 1=2

@GO

DELETE WF_Emp WHERE 2=3

如果要执行存储过程就要写:

EXEC  YourProName @OID

执行存储过程

 

驰骋工作流快速开发平台的事件交互模式设计与实现

执行存储过程

例如:EXEC  YourProName @OID

 

请在执行内容里填写一个存储过程名称,注意表达式支持变量。

执行SQL:

@OID 是一个当前的workid 参数。

如下图:

驰骋工作流快速开发平台的事件交互模式设计与实现

 

  1. 流程事件实体设计

关键字:ccbpm流程事件实体 FEE

  1. 概述与配置

说明:本属性适合高级开发者,该属性只读。流程事件实体全称是FlowEventBase简称 FEE。流程事件实体是Flow Event Entity。它是从ccbpm指定的基类BP.WF.FlowEventBase上集成下来的一个类,重写相关的事件方法,达到实现自己的业务逻辑目的。

驰骋工作流快速开发平台的事件交互模式设计与实现

BP.WF.FlowEventBase是ccbpm定义的一个基类,为开发者提供可以被继承下来并且重写相关的方法而实现特定的个性化的用户业务逻辑。

流程事件:流程在运动过程中,会发生很多事件,比如,节点表单装载前,节点保存前、保存后、节点发送前、发送成功时,发送失败实时。Ccbpm可以通过重写这个事件实体来表达自己的业务逻辑。

我们以表单的保存事件为例来说明如何对明细表求合计。

驰骋工作流快速开发平台的事件交互模式设计与实现

 

首先我们写一个FEE从BP.WF.FlowEventBase上继承下来,然后重写它的保存后的方法,希望实现的业务逻辑是在保存后,自动计算出来明细表中的合计数据。

其他:在2018年的版本中,我们对这样的应用已经可以做到配置处理,而不需要代码编写,请参考表单设计手册。

请参考: D:\ccflow\ \DemoAndTesting\BP.Demo\EventBase\F001.cs文件。重写

 

驰骋工作流快速开发平台的事件交互模式设计与实现

 

该实体必须重写 FlowMark 这个属性,就是给流程标记,在您编写完成后,编译您的工程然后填写上流程标记属性,ccbpm系统就会自动的把该文本框的标记信息填写上。

相关阅读:如何把ccbpm的待办写入其他的新系统?

在这里你可以重写流程事件类实现该它,如下图。

驰骋工作流快速开发平台的事件交互模式设计与实现

重写流程事件被重写的SendSucess 方法。

  1. 流程事件基类设计

如下图:

驰骋工作流快速开发平台的事件交互模式设计与实现

方法与属性,在该类里有详尽的描述,这里不再赘述。

 

 

  1. 业务单元设计

概要说明:

1.业务单元你可以把他看做一个函数,一个处理业务的过程,一段功能代码,一个业务包。2.该业务包接受一个workid参数,其余的参数都根据workid获取。

3.该业务包可以配置到不同节点下,甚至不同类型的流程里面,不同的事件里面去执行。

  1. 基类设计

首先ccbpm设计了一个基类,在基类里定义一些方法与属性,让子类重写。

流程引擎的开发者可以继承这些基类,实现相关的方法。

驰骋工作流快速开发平台的事件交互模式设计与实现

 

  1. 业务单元编写

业务单元子类: