概述
简单点说就是对流程中的任务以不同的逻辑或者规则串联起来。其本质就是实现一个流程状态的持久化。
为什么要使用工作流
系统将把工作流发挥到极致,比如审批、表务工单管理等都将使用工作流引擎。使用工作流引擎后,企业员工只需将精力集中在处理自己关心的数据上,从而缩短了业务的处理周期,达到提高劳动生产率的目的。
实现方式
最初我们使用K2进行工作流开发,中间也使用过微软dotnet自带的WF技术。但本系统将使用公司自己开发的工作流引擎进行工作流开发。下面介绍下一些基本的操作方法:
1.启动流程
/// <summary>
/// 启动流程,保存项目基本信息
/// </summary>
/// <param name="projectinfo">项目基本信息实体</param>
/// <param name="login">登陆信息</param>
/// <param name="service">引擎流程类型</param>
/// <param name="isEnd">输出是否最后一步</param>
/// <param name="tran">事务</param>
/// <returns>流程实例ID</returns>
public static int Start(WF_PROJECTINFO projectinfo, LoginInfo login, Engine_Service service, out bool isEnd, OracleTransaction tran)
/// 启动流程,保存项目基本信息
/// </summary>
/// <param name="projectinfo">项目基本信息实体</param>
/// <param name="login">登陆信息</param>
/// <param name="service">引擎流程类型</param>
/// <param name="isEnd">输出是否最后一步</param>
/// <param name="tran">事务</param>
/// <returns>流程实例ID</returns>
public static int Start(WF_PROJECTINFO projectinfo, LoginInfo login, Engine_Service service, out bool isEnd, OracleTransaction tran)
当需要启动一个流程时,需调用start方法。
2.GoToNext(流转到下一步)
/// <summary>
/// 流程流转到下一步
/// </summary>
/// <param name="kid">流程实例ID</param>
/// <param name="flowName">流程名称</param>
/// <param name="buZhouBh">步骤编号</param>
/// <param name="caoZuor">操作人</param>
/// <param name="tran">事务</param>
/// <returns>是否成功</returns>
public static bool GoToNext(int kid, string flowName, string buZhouBh, string caoZuor, OracleTransaction tran)
/// 流程流转到下一步
/// </summary>
/// <param name="kid">流程实例ID</param>
/// <param name="flowName">流程名称</param>
/// <param name="buZhouBh">步骤编号</param>
/// <param name="caoZuor">操作人</param>
/// <param name="tran">事务</param>
/// <returns>是否成功</returns>
public static bool GoToNext(int kid, string flowName, string buZhouBh, string caoZuor, OracleTransaction tran)
提交本步骤,使得流程流转到下一步
3.IsSubmit方法
/// <summary>
/// 判断步骤是否已经提交
/// </summary>
/// <param name="kid">流程实例ID</param>
/// <param name="buZhouBh">步骤编号</param>
/// <returns>true:已提交;false:未提交;</returns>
public static bool IsSubmit(int kid, string buZhouBh)
/// 判断步骤是否已经提交
/// </summary>
/// <param name="kid">流程实例ID</param>
/// <param name="buZhouBh">步骤编号</param>
/// <returns>true:已提交;false:未提交;</returns>
public static bool IsSubmit(int kid, string buZhouBh)
判断步骤是否提交过
4.GetWorkList(个人工作列表)
/// <summary>
/// 获得待处理项目列表
/// </summary>
/// <param name="account">操作人</param>
/// <returns>待处理项目列表</returns>
public static DataSet GetWorkList(string account)
/// 获得待处理项目列表
/// </summary>
/// <param name="account">操作人</param>
/// <returns>待处理项目列表</returns>
public static DataSet GetWorkList(string account)
根据当前用户,返回个人工作列表。
来源:https://www.cnblogs.com/zyizyizyi/archive/2012/09/03/2668747.html