事件处理

事件处理是流程主要扩展点, 通过事件可以满足不同业务的需求,如流程数据的导入,业务数据的回写, 以及和第三方系统的数据交换等等

事件设置列表
如上图所示, 事件处理和处理人类似也是一个集合,可以添加多个业务处理逻辑。系统初始默认提供了脚本处理数据服务处理两种方式。 在项目实施过程中,可以根据业务自行扩展。

在执行事件的时候,是根据集合顺序,顺序执行的,可以通过上移、下移进行调整。

脚本处理

通过脚本处理几乎能满足所有的需求。脚本可以是一个c#代码片段,或是一个完整的c#类。(注意, 事件是没有返回值的) 脚本编辑

如上图所示,脚本编辑框左侧提供了一个辅助编写脚本的树,该树上提供了流程流转的基本信息、变量、表单数据、常量、 人员信息和一些系统方法等常用信息。可以通过双击节点选到编辑器内。

示例:

c#片段

var sql = "UPDATE A01 SET A0101=@A0101";
DB.Execute(sql, new {A0101="xxx"}, Context.Transaction);

完整c#类

using System;
using System.IO;
using System.Collections.Generic;
using System.Linq;
using MySoft.HR.DataAccess.Bpm.Engine;
using MySoft.HR.Utils.Modal.Bpm;
using MySoft.HR.Utils.Modal.Bpm.Definition;
using MySoft.HR.DataAccess.Bpm.Scripts;
using MySoft.HR.DataAccess.Bpm.Utils;

// 事件
public class Program : BpmEventScript {
    public override void Execute() {
        // 处理逻辑
    }
}

数据服务处理

使用数据服务是为了复用处理逻辑

事件生命周期

eventlife