事件处理
事件处理是流程主要扩展点, 通过事件可以满足不同业务的需求,如流程数据的导入,业务数据的回写, 以及和第三方系统的数据交换等等
如上图所示, 事件处理和处理人类似也是一个集合,可以添加多个业务处理逻辑。系统初始默认提供了
在执行事件的时候,是根据集合顺序,顺序执行的,可以通过上移、下移进行调整。
脚本处理
通过脚本处理几乎能满足所有的需求。脚本可以是一个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() {
// 处理逻辑
}
}
数据服务处理
使用数据服务是为了复用处理逻辑