驰骋工作引擎-底层开发API
| |
登录与门户API | |
| // 如下代码需要写入您的系统校验密码与用户名之后。 string userNo = "zhangsan"; BP.WF.Dev2Interface.Port_Login(userNo); |
菜单API | |
| 发起: //获得指定人员的可以发起的流程列表,调用这个接口返回一个datatable, 可以参考一个demo实现发起列表的输出。 System.Data.DataTable dtStart = BP.WF.Dev2Interface.DB_GenerCanStartFlowsOfDataTable("zhangsan"); 待办: //获得指定人员的待办,调用这个接口返回一个datatable, 可以参考一个demo实现发起列表的输出。 DataTable dtTodolist = BP.WF.Dev2Interface.DB_GenerEmpWorksOfDataTable(); 在途: //获得指定人员的在途,调用这个接口返回一个datatable ,代码参考:。 DataTable dtRuning = BP.WF.Dev2Interface.DB_GenerRuning(); 查询: //ccbpm给你提供了一个link ,您可以调用这个link ,也可以自己去根据代码实现。 实现列表输出代码,请参考: http://localhost:2207/WF/App/Simple/Search.htm 运行Demo: |
创建WorkID | |
| //传入流程编号,调用创建一个工作ID。 Int64 workid = BP.WF. Dev2Interface.Node_CreateBlankWork("001"); |
发送 - 简单发送 | |
| //传入流程编号, WorkID执行发送. BP.WF.SendReturnObjs objs= BP.WF.Dev2Interface.Node_SendWork("001",workid);// 检查流程是否结束? bool isFlowOver = objs.IsStopFlow;// 获得发送到那个节点上去了? int toNodeID = objs.VarToNodeID;string toNodeName = objs.VarToNodeName;// 获得发送给谁了? 注意:这里如果是多个接受人员就会使用逗号分开。 string toEmpID = objs.VarAcceptersID;string toEmpName = objs.VarAcceptersName;// 输出提示信息, 这个信息可以提示给操作员. string infoMsg = objs.ToMsgOfHtml(); |
发送 - 要指定发送给谁?发送到那个节点?(万能发送接口) | |
| //如果确定了(或者自己计算好了)下一步要达到的节点,下一步的接受人,就可以按照如下格式调用。 BP.WF.SendReturnObjs objs = null; objs = BP.WF.Dev2Interface.Node_SendWork("001", workid, 103, "zhangsan" ); //发送给一个人,如果发送给多个人用逗号分开比如: zhangsan,lisi,wangwu //下面调用方式,是知道要发送到那一个节点,但是不知道要发送给谁,让当前的节点定义的接受人规则来确定。objs = BP.WF.Dev2Interface.Node_SendWork("001", workid, 103, null); //下面调用方式,是知道要发送到那些人,但是不知道要发送到那个节点,让当前的节点定义的方向条件来确定。objs = BP.WF.Dev2Interface.Node_SendWork("001", workid, 103,"zhangsan"); // 输出提示信息, 这个信息可以提示给操作员.string infoMsg = objs.ToMsgOfHtml(); |
撤销 | |
| /* *执行撤销,返回撤销是否成功信息,如果抛出异常就说明撤销失败。*撤销失败的原因多种,最有可能的是因为当前活动节点不允许撤销规则决定的。*/string msg= BP.WF.Dev2Interface.Flow_DoUnSend("001", workID); |
回滚 | |
| //执行回滚,返回的是回滚执行信息,如果回滚失败,则会抛出异常。 string msg= BP.WF.Dev2Interface.Flow_DoRebackWorkFlow("001", workID, 103, "因为审批错误,需要回滚,从节点103重新开始审批。"); |
退回 | |
| /* * 1, 获得当前节点可以退回的节点,该接口返回一个datatable。 * 2, 一个节点能够退回到那写节点是由当前节点的退回规则确定的。 * 3, 调用退回需要三个参数:节点编号,工作ID, 流程ID, 对于线性流程FID始终等于0. */ System.Data.DataTable dtCanReturnNodes = BP.WF.Dev2Interface.DB_GenerWillReturnNodes(103, workid, 0); // 返回的是可以退回的节点。 //执行退回,当前的节点是103,要退回的节点是105, string msg = BP.WF.Dev2Interface.Node_ReturnWork("001", workid, 0, 103, 105, "您的申请信息不完整,请修改后重新发送。", false); |
移交 | |
| /* * 调用移交接口,传入必要的参数执行移交.* FID 在线性流程上始终等于0.*/BP.WF.Dev2Interface.Node_Shift("001", 103, workid, 0, "zhangsan", "因我需要出差,所以特把工作移交给您。"); /** 撤销移交 * 如果在移交之后,发现不需要移交,就需要撤销回来,调用撤销移交接口。 */ BP.WF.Dev2Interface.Node_ShiftUn("001", workid); |
加签 | |
| /** 调用加签接口,传入必要的参数执行.* FID 在线性流程上始终等于0.*///技术人员zhangsan接受工作后,点击发送还会发送给当前人员,由当前人员发送给下一节点。string info1= BP.WF.Dev2Interface.Node_Askfor(workid, BP.WF.AskforHelpSta.AfterDealSendByWorker, "zhangsan", "这里需要您出具技术鉴定意见."); //技术人员填写后,直接就发送了下一节点.string info2 = BP.WF.Dev2Interface.Node_Askfor(workid, BP.WF.AskforHelpSta.AfterDealSend, "zhangsan", "这里需要您出具技术鉴定意见."); //技术人员回复加签,在由当前人发送到下一个节点。string infoReply = BP.WF.Dev2Interface.Node_AskforReply("001", 103, workid,0, "我已经出具了技术鉴定意见,请参考."); |
结束流程 | |
| /* * 手工的结束流程,这种方式会记录日志.*/string overInfo = BP.WF.Dev2Interface .Flow_DoFlowOver("001" , workID, "该供应商找不到了,要结束掉该流程。"); /* * 删除流程, * 删除流程有多种方式,用户可以根据自己的需求,调用不同的方式.* 最后一个参数是是否删除子流程. *///按照标记删除流程string delInfo0 = BP.WF.Dev2Interface .Flow_DoDeleteFlowByFlag("001", workID, "我不需要请假了", true);//彻底的删除流程,无日志记录.string delInfo1 = BP.WF.Dev2Interface .Flow_DoDeleteFlowByReal("001", workID, "我不需要请假了", true);//彻底的删除流程,有日志记录.string delInfo2 = BP.WF.Dev2Interface .Flow_DoDeleteFlowByWriteLog("001", workID, "我不需要请假了", true); |