驰骋工作引擎-底层开发API

登录与门户API

  1. 首先要进行代码集成与组织机构的集成
  2. 其次在自己的系统登录界面,登录成功后要执行ccbpm的框架登录。
  3. 所谓的登录就是调用ccbpm的登录接口,如左边的代码所示。

// 如下代码需要写入您的系统校验密码与用户名之后。 
string userNo = "zhangsan";
BP.WF.Dev2Interface.Port_Login(userNo);

菜单API

  1. 发起:一个操作员可以发起的工作
  2. 待办:等待处理的工作。
  3. 在途:我参与的,但是这条流程还没有结束的流程。
  4. 抄送:不需要我处理,但是需要我知晓的工作。

发起: //获得指定人员的可以发起的流程列表,调用这个接口返回一个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

  1. 创建工作ID是启动流程的开始。
  2. ccbpm的工作ID是一个Int64位的整数,始终是按照顺序号+1产生的。
  3. 该workid全局唯一,并且没有重复性,该信息记录到Sys_Serial,WorkID的生成从100开始。
  4. 该workid全局唯一,并且没有重复性,该信息记录到Sys_Serial,WorkID的生成从100开始。

//传入流程编号,调用创建一个工作ID。
Int64 workid = BP.WF. Dev2Interface.Node_CreateBlankWork("001");

发送 - 简单发送

  1. 工作发送就是让节点向下运动。
  2. 调用接口执行发送后,返回一个执行结果的对象,该对象是流程引擎执行过程中的变量。
  3. 解析该变量,可以检查出流程是否完成,运行到那一个节点上去了,下一个节点谁可以处理工作?
  4. 它的流向,是根据流程设计的规则执行的。
  5. 它的接收人,是根据接受人的规则确定的。

//传入流程编号, 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();

发送 - 要指定发送给谁?发送到那个节点?(万能发送接口)

  1. 如果程序员知道下一步要发送给谁,发送到那一个节点的情况下,就可以调用这个接口。
  2. 该接口就会摆脱流程引擎设计的方向条件规则与接受人规则。

//如果确定了(或者自己计算好了)下一步要达到的节点,下一步的接受人,就可以按照如下格式调用。
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();

撤销

  • 撤销是发送的逆向操作。
  • 撤销可以调用ccbpm提供的撤销窗口完成,这是最简单的方式。
  • 地址为:/WF/WorkOpt/UnSend.htm 参数为: FK_Flow,FK_Node,WorkID,FID,当前流程的4大参数。
  • 如果需要在其他设备上工作,或者要自己写一个移交界面,请参考。
  • 能否被撤销,是有当前活动节点的撤销规则所决定的。
  • 撤销的功能显示在,在途的流程列表里,只有在途的工作才能被撤销。
  • 在途工作:顾名思义,就是我参与的工作,并且工作尚未完成。
  • 回滚流程,是在流程结束后需要重新在指定的节点,让指定的人员从新向下走。

/*
*执行撤销,返回撤销是否成功信息,如果抛出异常就说明撤销失败。
*撤销失败的原因多种,最有可能的是因为当前活动节点不允许撤销规则决定的。
*/

string msg= BP.WF.Dev2Interface.Flow_DoUnSend("001", workID);

回滚

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

//执行回滚,返回的是回滚执行信息,如果回滚失败,则会抛出异常。 
string msg= BP.WF.Dev2Interface.Flow_DoRebackWorkFlow("001", workID, 103, "因为审批错误,需要回滚,从节点103重新开始审批。");

退回

  1. 退回可以调用ccbpm提供的退回窗口完成,这是最简单的方式。
  2. 地址为:/WF/WorkOpt/ReturnWork.htm 参数为: FK_Flow,FK_Node,WorkID,FID,当前流程的4大参数。
  3. 如果需要在其他设备上工作,或者要自己写一个退回界面,请参考。

/*
* 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);

移交

  1. 移交也可以调用ccbpm提供的移交窗口完成,这是最简单的方式。
  2. 地址为:/WF/WorkOpt/Forward.htm 参数为: FK_Flow,FK_Node,WorkID,FID,当前流程的4大参数。
  3. 移交就是把自己所要做的工作交给其他人处理。
  4. 如果需要在其他设备上工作,或者要自己写一个移交界面,请参考。

/*
* 调用移交接口,传入必要的参数执行移交.
* FID 在线性流程上始终等于0.
*/

BP.WF.Dev2Interface.Node_Shift("001", 103, workid, 0, "zhangsan", "因我需要出差,所以特把工作移交给您。");

/*
* 撤销移交
* 如果在移交之后,发现不需要移交,就需要撤销回来,调用撤销移交接口。
*/
BP.WF.Dev2Interface.Node_ShiftUn("001", workid);

加签

  • 加签也可以调用ccbpm提供的加签窗口完成,这是最简单的方式。
  • 地址为:/WF/WorkOpt/Forward.htm 参数为: FK_Flow,FK_Node,WorkID,FID,当前流程的4大参数。
  • 加签就是把自己所要做的工作参考其他人意见,或者让其他人处理。
  • 加签有两种模式:1,加签后由加签人发送到下一个节点。2,加签后由让加签人发送给当前人,由当前人发送给下一个节点。
  • 如果需要在其他设备上工作,或者要自己写一个加签界面,请参考。

/*
* 调用加签接口,传入必要的参数执行.
* 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);

驰骋工作流引擎-底层开发API 说明文档的更多相关文章

  1. 驰骋工作流引擎-ccflow单据模式介绍与使用

    Ccflow单据模式 关键字: 驰骋工作流程快速开发平台 工作流程管理系统 工作流引擎 asp.net工作流引擎 java工作流引擎.  表单引擎  表单单据模式增删改查   应用场景: 一些客户在使 ...

  2. 驰骋工作流引擎与jFinal集成版本2.0

    驰骋工作流引擎与jFinal集成版本2.0 发布说明 关键字: 驰骋工作流程快速开发平台 工作流程管理系统java工作流引擎. 使用协议:GPL. 关于JFinal: https://www.jfin ...

  3. ASP.NET Core WebApi使用Swagger生成api说明文档看这篇就够了

    引言 在使用asp.net core 进行api开发完成后,书写api说明文档对于程序员来说想必是件很痛苦的事情吧,但文档又必须写,而且文档的格式如果没有具体要求的话,最终完成的文档则完全取决于开发者 ...

  4. 【转】ASP.NET Core WebApi使用Swagger生成api说明文档看这篇就够了

    原文链接:https://www.cnblogs.com/yilezhu/p/9241261.html 引言 在使用asp.net core 进行api开发完成后,书写api说明文档对于程序员来说想必 ...

  5. 驰骋工作流引擎ccflow-ccbpm工作流引擎sdk表单装载逻辑处理注意事项

    cbpm工作流引擎sdk表单装载逻辑处理注意事项 关键字:驰骋工作流引擎 sdk表单 装载接口调用   说明:如果您要采用ccbpm的sdk表单开发,在表单 加载前您需要调用一个接口来获得当前节点的信 ...

  6. NetCore 3.0 中使用Swagger生成Api说明文档及升级报错原因

    认识Swagger Swagger 是一个规范和完整的框架,用于生成.描述.调用和可视化 RESTful 风格的 Web 服务.总体目标是使客户端和文件系统作为服务器以同样的速度来更新.文件的方法,参 ...

  7. .NET Core WebApi帮助文档使用Swagger生成Api说明文档

    Swagger也称为Open API,Swagger从API文档中手动完成工作,并提供一系列用于生成,可视化和维护API文档的解决方案.简单的说就是一款让你更好的书写API文档的框架. 我们为什么选择 ...

  8. Asp.Net Core Web Api 使用 Swagger 生成 api 说明文档

    最近使用 Asp.Net Core Web Api 开发项目服务端.Swagger 是最受欢迎的 REST APIs 文档生成工具之一,进入我的视野.以下为学习应用情况的整理. 一.Swagger 介 ...

  9. 使用swagger生成API说明文档

    使用swagger生成API说明文档本文由个人总结,如需转载使用请标明原著及原文地址没有导出!!!!!不要整天给我留言导出呢,那个是你们百度的时候下面的推荐文章带的关键字,要做导出从swagger取数 ...

随机推荐

  1. 关于easyui Datagrid一些样式记录

    此篇文章主要记录在使用datagrid中常见的修改样式方式以及样式效果配图!!!! 一丶存在选中框的时候标题栏合并显示序号字段. 代码展示: onLoadSuccess: function (data ...

  2. 关于html以及js相关格式验证的记录

    关于html中禁止输入的一些写法主要是实现实时监听值:      下面的例子实现的事只运行输入数字切小数位数不能超过两位的示例.      1. onkeyup事件是在输的时候在键盘松开的时候进行触发 ...

  3. python_汉塔诺

    '''据说古代有一个梵塔,塔内有三个底座A.B.C,A座上有64个盘子,盘子大小不等,大的在下,小的在上.有一个和尚想把这64个盘子从A座移到C座,但每次只能允许移动一个盘子,在移动盘子的过程中可以利 ...

  4. 微软project文件mpp解析

    最近在做一个项目管理的项目,主要是将用户在project文件中写的一些东西,读出来,并将其写入到数据库中. 也是借鉴了好多大佬的思想和代码,感觉自己需要整理一遍,所以,接下来就是表演的时候了. 第一步 ...

  5. 多进程IPC与Python支持

    多进程IPC与Python支持 linux下进程间通信的几种主要手段简介: 管道(Pipe)及有名管道(named pipe):管道可用于具有亲缘关系进程间的通信,有名管道克服了管道没有名字的限制,因 ...

  6. linux线程及互斥锁

    进程是资源管理的最小单元,线程是程序执行的最小单元.在操作系统的设计上,从进程演化出线程,最主要的目的就是更好的支持SMP以及减小(进程/线程)上下文切换开销. 就像进程有一个PID一样,每个线程也有 ...

  7. 在Python中用Request库模拟登录(一):字幕库(无加密,无验证码)

    字幕库的登录表单如下所示,其中省去了无关紧要的内容: <form class="login-form" action="/User/login.html" ...

  8. 解决Apache Web Server的几个错误

    一.安装好Apache后服务里没有Apache服务 在命令行进入安装apache的bin目录下,输入命令 httpd.exe -k install -n Apache2.4 二.Apache web ...

  9. Python3 venv 创建虚拟环境

    简介 Python3.3以上的版本通过venv模块原生支持虚拟环境,可以代替Python之前的virtualenv. 该venv模块提供了创建轻量级"虚拟环境",提供与系统Pyth ...

  10. java语言为什么能跨平台

    参考https://blog.csdn.net/woailuo453786790/article/details/51660015 因为Java程序编译之后的代码不是能被硬件系统直接运行的代码,而是一 ...