工作流

概述

     简单点说就是对流程中的任务以不同的逻辑或者规则串联起来。其本质就是实现一个流程状态的持久化。

为什么要使用工作流

     系统将把工作流发挥到极致,比如审批、表务工单管理等都将使用工作流引擎。使用工作流引擎后,企业员工只需将精力集中在处理自己关心的数据上,从而缩短了业务的处理周期,达到提高劳动生产率的目的。

实现方式

     最初我们使用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)

当需要启动一个流程时,需调用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)

提交本步骤,使得流程流转到下一步

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)

判断步骤是否提交过

4.GetWorkList(个人工作列表)

        /// <summary>
        
/// 获得待处理项目列表
        
/// </summary>
        
/// <param name="account">操作人</param>
        
/// <returns>待处理项目列表</returns>
        public static DataSet GetWorkList(string account)

根据当前用户,返回个人工作列表。

posted on 2012-09-03 14:23  zyi  阅读(744)  评论(0编辑  收藏  举报

导航