做最好用的工作流引擎,奉献社会.http://ccflow.org

CCBPM 常用API接口说明

接口参数说明:

Fk_flow:流程编号

userNo、BP.Web.WebUser.No:登录帐号

Fk_node:节点编号

Workid:工作ID

FID:父流程ID

 

 

1.系统登录

a) 前台登录:BP.WF.Dev2Interface.Port_Login(userNo);

b) 登录流程设计器:/WF/Admin/XAP/Designer.aspx

c) 自动登录流程设计器:/WF/Admin/XAP/Designer.aspx?userNo=admin&SID=1234556.

SID需要读取数据库中,对应admin的SID。

2.当前登陆人可以发起的流程(发起)

Dt=BP.WF.Dev2Interface.DB_GenerCanStartFlowsOfDataTable(BP.Web.WebUser.No);

3.当前登陆人可以处理的工作(待办)

Dt=BP.WF.Dev2Interface.DB_GenerEmpWorksOfDataTable(userNo,FK_Flow);

Dt=BP.WF.Dev2Interface.DB_GenerEmpWorksOfDataTable();

4.当前登陆人处理过的流程(在途)

Dt=BP.WF.Dev2Interface.DB_GenerRuning(userNo,FK_Flow);

Dt=BP.WF.Dev2Interface.DB_GenerRuning();

5.当前人收到的抄送信息(阅知件)

Dt=BP.WF.Dev2Interface.DB_CCList(userNo);

6.创建空白的WorkID:

Int64 workid=BP.WF.Dev2Interface.Node_CreateBlankWork(fk_flow);

CCBPM的工作ID是一个int64位的证书,始终是按照顺序号+1产生的。该值全局唯一,并没有重复性,该信息记录到Sys_Serial表中,Workid的生成冲100开始。

7.执行流程发送:

//执行发送

BP.WF.SendReturnObjs objs=BP.WF.Dev2Interface.Node_SendWork(fk_flow,workid);

//流程是否结束

Bool isFlowOver=objs.IsStopFlow;

//下一步节点ID

Int toNodeID=objs.VarToNodeID;

//下一步节点名称

String toNodeName=objs.VarToNodeName;

//下一步处理人ID

String toEmpID=objs.VarAcceptersID;

//下一步处理人名称

String toEmpName=objs.VarAcceptersName;

//发送后信息

String msgInfo=objs.ToMsgHtml();

发送说明:发送就是让节点向下运动。调用接口执行发送后,返回一个执行结果的对象SendReturnObjs,该对象是流程引擎执行过程中的编号,解析该变量,可以检查流程是否完成、晕倒到哪一个节点、一下节点由谁来执行工作。他的流向和接受人是根据流程设计的规则而定的。

Objs=BP.WF.Dev2Interface.Node_SendWork(fk_flow,workid,fk_node,userNo);

如果程序员知道下一步要送给谁、到达哪一步节点,可以调用上面的接口,该接口就会摆脱流程引擎的节点运行规则,自定义运行。

8.撤销发送:

String msg=BP.WF.Dev2Interface.Flow_DoUnSend(fk_flow,workid);

撤销是发送的逆向操作。能否被撤销,是根据当前活动节点的撤销规则决定的。

9.流程回滚:

String msg=BP.WF.Dev2Interface.Flow_DoRebackWorkFlow(fk_flow,worjid,fk_node,’回滚’);

回滚,是在流程结束后需要重新在指定的节点,让指定的人员重新向下运行。与撤销不同的是,回滚是在流程完成以后的操作,并且由管理员操作。

10.退回:

msg=BP.WF.Dev2Interface.Node_ReturnWork(fk_flow,workid,FID,fk_Node,toNodeID,toemp,’原因’,’是否原路返回’);

11.移交:

BP.WF.Dev2Interface.Node_Shift(fk_flow,fk_node,workid,FID,toemp,’原因’);

移交就是把自己所要做的工作交给其他人处理。

12.加签:

//A将工作加签给B后,B处理完成后,会发送给A,由A发送到下一步。 msg=BP.WF.Dev2Interface.Node_Askfor(workid,BP.WF.AskforHelpSta.AfterDealSendByWorder,toemp,’原因’);
//A将工作加签给B后,B处理完成后,直接发送到下一步。

Msg=BP.WF.Dev2Interface.Node_Askfor(workid,BP.WF.AskforHelpSta.AskDealSend,toemp,’原因’);
//A将工作加签给B后,B回复加签

Msg=BP.WF.Dev2Interface.Node_AskforReply(fj_flow,fk_node,workid,fid,’原因’);

加签说明:

加签就是把自己所要做的工作参考其他人意见,或者让其他人处理。它分为两种模式:1.加签后,由加签人发送到下一步。2.加签后,由加签人发给当前人,由当前人发送到下一步。

13.结束流程:

//点击结束按钮,结束流程,这种方式会记录日志

Info=BP.WF.Dev2Interface.Flow_DoFlowOver(fk_flow,workid,’原因’);

//按照标记删除流程

Info=BP.WF.Dev2Interface.Flow_DoDeleteFlowByFlag(fk_flow,workid,’原因’,true);
//彻底的删除流程,无日志记录

Info=BP.WF.Dev2Interface.Flow_DoDeleteFlowByReal(fk_flow,workid,’原因’,true);
//彻底删除流程,有日志记录

Info=BP.WF.Dev2Interface.Flow_DoDeleteFlowByWriteLog(fk_flow,workid,’原因’,true);

结束流程的三种方式说明:

第一种,走到最后一个节点,自动结束。

第二种,在指定的节点上,设置流程结束条件。流程运行到当前节点时,符合条件就执行结束,如果不符合,继续向下运行,一直到自动结束。

第三种,在指定的节点上,启用结束流程按钮,强制结束流程。

posted on 2015-11-24 14:48  驰骋工作流  阅读(379)  评论(0编辑  收藏  举报

做最好用的工作流引擎,奉献社会.http://ccflow.org