JWFEngine v3.3 使用说明

来源:互联网 发布:ubuntu镜像的安装教程 编辑:程序博客网 时间:2024/04/30 21:51

===提示:=====================
最新版本我已经开发好了,有时间,我会传上来,新版的使用方式更加友好,对于流程的定义采用XML文件定义,然后上传的方式。免去了使用程序定义的麻烦。

最近花了点时间写了个小型的工作流引擎JWFEngine v3.3;主要是为了一些 系统需要一些简单的工作审批之类的小流程而设计的,目的是为了方法开发人员使用。

目前已经发布到了v3.3基本的功能都已经有了。这里我主要说说他的使用。
使用步骤:
1.将所需dll文件引用到项目(JWFEngine.dll)
2.添加JWFEngine的数据库(使用workflow-AllScript.sql创建工作流数据库)
3.在web.config文件中的<appSettings></appSettings>中添加<add key="JworkflowEngineConnectionString" value="server=localhost;uid=sa;pwd=sa;database=workflow;"/>;注意这是连接工作流数据库用的
4.在项目中通过JWFEngine.JWFEngineAPI的形式使用(注意在整个项目中,要使用工作流,都只能通过JWFEngine.JWFEngineAPI这个类进行),比如:JWFEngine.JWFEngineAPI.StartUp(.......)
============================================================================
其他说明:
这里有流程模板,节点模板,流程实例,节点实例,本位人员,的概念(自己其的,方便理解)
流程模板:就是一个流程的模板,最终用户是用这个模板发起他的审批,审批过程也是按照这个模板所定义的步骤进行的。
节点模板:每个节点的雏形,配置每个节点上的一些信息(节点模板是包含在流程模板之中的)
流程实例:就是用户发起的审批。(每一个发起的审批就是一个流程实例)
节点实例:每个流程实例中的某个节点(节点实例是包含在流程实例之中的)
本位人员:主要是对节点模板和节点实例来说的。意思是,每个节点上必须要审批的人员(相对的,那就还有临时的审批人员,后面会看到的)
==========================================================================
我们看看每个流程实例是如何创建出来的:
1:每个流程实例是按照流程模板的规定来进行的,所以我们先要定义流程模板
int flowtempletid = JWFEngine.JWFEngineAPI.CreateFlow("流程模板的名字"); //定义一个流程模板
2.开始给这个流程模板定义它的节点模板:
int nodetempletid = JWFEngine.JWFEngineAPI.CreateNode(上一个节点的名字,这个节点的名字,false,这个节点的本位人员帐号)
这里要用到本位人员的帐号,所以我们要在使用这个API之前,将自己项目的人员信息同步到工作流中,同步人员用
JWFEngine.JWFEngineAPI.SynchronizationUserToWFEngineUser();
3.按照2的方法创建其他节点
[注意在必要的时候需要判断工作流的连接是否存在,可以使用JWFEngine.JWFEngineAPI.GetWorkFlowConnectionString()来获得工作流的链接,使用JWFEngine.JWFEngineAPI.SetWorkFlowConnectionString()来设置工作流的连接,参数就是在web.config中添加的那个值]

以上就是创建模板的过程,下面我们来使用他:
1.用户发起这个模板类型的审批
JWFEngine.JWFEngineAPI.StartUp(流程模板名,自己系统对流程的唯一关键字,发起人帐号);//自己系统对流程的唯一关键字,就是这个审批在你自己系统中的唯一标识,比如:PMK07120001
2.通过
JWFEngine.JWFEngineAPI.GetNeedSignFile();得到某个人员要审批的文件,返回的是你自己系统的流程的唯一关键字
3.审批
同意:JWFEngine.JWFEngineAPI.GoNext();
拒绝:JWFEngine.JWFEngineAPI.Stop();
回退:JWFEngine.JWFEngineAPI.GoBack();
为当前审批的节点添加临时审批人员(可以看作是临时会签人员,这里的临时审批人员是相对与本位人员来说的,临时人员是不作为主要人员对待的,如果有那个申请被退回了,则这个申请是不会退回给临时人员的,只会退回给本位人员):JWFEngine.JWFEngineAPI.AddTemporarilyMenForNowNode();
4. 将当前节点某人的审批转发给其他某人来处理:JWFEngine.JWFEngineAPI.TurntoOtherUser();
以上就是审批当中可能用到的API
JWFEngine中还提供了用于获取流程实例和节点实例的相关对象FlowInfo和NodeInfo,以及流程模板和节点模板的相关信息的对象FlowTempletInfo和NodeTempletInfo,用这些对象你可以随时查看工作流中流程和节点的相关信息。

================================
注意:流程模板的名字必须唯一,流程模板中每个节点模板的名字也必须唯一
[输入的字符不能包含特殊字符,因为工作流中暂时没有处理特殊字符,只是先实现]

================================
JWFEngine v3.3下载地址
http://download.csdn.net/source/312967

使用JWFEngine v3.0的例子(这里虽然是v3.0的例子,但是使用方式,是一样的,可以参考)
http://download.csdn.net/source/308974
===============================
 



 

===提示:=====================
最新版本我已经开发好了,有时间,我会传上来,新版的使用方式更加友好,对于流程的定义采用XML文件定义,然后上传的方式。免去了使用程序定义的麻烦。

原创粉丝点击