- 1、本文档共55页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
业务流程自定义的实现
业务流程定义创建的表:
XT_LCXX:流程信息表
XT_JDXX:节点信息表
(原)
(改过)
XT_LCSL:流程实例
(原)
(改过)
流程实例表中添加了节点顺序,不再用上节点id,下节点id,功能类似,这样可以方便一个节点的下一个步骤允许两个节点同时操作的情况。所以稍做了改变。但是不太确定在其他情况是否都能够满足要求,还在观察中。
LC_LSJL:历史记录
逻辑顺序:
定义流程时:
定义流程客体,即流程中流转被操作的对象;
流程中需要经过的步骤,即节点,注意节点的先后顺序;
每个步骤中操作该对象的主体,即人员或角色;
这样一个完整的流程就定义好了。
实现界面:
1、
列表为已存在的流程,图片按钮为创建新流程。
2、
点击空的流程时出现起点。
点击已有流程时则展示流程示意图
3、
点击起点按钮时,开始定义节点(第一个)。
4、
第一个节点出现后,鼠标悬停在节点之上时,提示操作人员和操作类型,点击按钮时则出现菜单有3个选择:添加,修改和删除。
5、
点击增加时,弹出设置节点的窗口,在节点顺序的下拉框中可以选择要添加的节点的顺序,是与当前节点属于同一时间段进行的,还是下一步骤。
点击删除时,直接删除掉该节点。
操作流程时:
在创建流程信息表中包含对象的时候,同时向历史记录表中插入一条记录,并标明状态;
根据节点表中的操作人员和历史记录中待处理事件列表,选出待“我”处理的任务;
处理完成后,相应增加历史记录,表明目前状态,并把本流程上一个状态注销,(若有并行步骤则需添加多条记录);
最终完成后该流程的所有记录的状态都注销。
工作流类的设计:
实体类:
有属性:id,名称等等
有方法:add、edit、delete,添加的部分有选择添加下个节点是什么类型的有编制、审核、审批、结束
添加的时候,更新到数据库
有三个类:
public class LC
public class JD
public class LCSL
分别是流程类,节点类,和流程实例类。
一、在流程类中
有一个字段:
private string _lcid;
有四个属性:
public string Bz
public string Lcmc
public string Lczt
public string Lcyhid
实例化流程是有两种方法:
1是创建一个数据库中不存在的新流程,需要传入参数:
public LC(string lcmc,string lczt,string bz,string yhid)
2是实例化一个数据库中已存在的流程,则只需传入LCID即可:
public LC(string lcid)
string Sql_Select = select t.lc_mc,t.lc_zt,t.lc_yhid,t.lc_cjrq,t.lc_xgrq,t.lc_scbj,t.lc_bz from xt_lcxx t where t.lc_id= + lcid + ;
DataTable Dt = DBHelper.GetDataSet(Sql_Select);
if (Dt.Rows.Count == 1)
{
this._lcmc = Dt.Rows[0][lc_mc].ToString();
this._lczt = Dt.Rows[0][lc_lczt].ToString();
this._lcyhid = Dt.Rows[0][lc_yhid].ToString();
this._bz = Dt.Rows[0][lc_bz].ToString();
}
会将其他信息添加到流程类的属性中。
流程类中有方法:
/// 增加基本流程信息
public string Add_CL()
/// 修改流程基本信息
public string Edit_CL(string Lcid)
public string Delete_CL(string Lcid)
在节点类中:
有属性:
public string Jdid
public string Czlx
public string Czry
public string Yhid
public string Bz
有方法:
/// 增加一个新节点
public string Add_JD()
/// 修改节点
public string Edi
文档评论(0)