前言:对于急切想了解引擎功能的开发人员,在下载版本后,就想尝试编写代码,完成一个流程的开发和测试。本文试图从一个最简单的流程来示例说明,如何快速了解引擎代码的编写。
1. 创建流程图形
串行流程(Sequence)用于顺序流程的创建,节点按照前后顺序生成。
var pmb = ProcessModelBuilder.CreateProcess("simple-process-name", "simple-process-code"); var process = pmb.Start() .Task("Task-01")
.Task("Task-02") .End() .Store();
上述代码创建了一个简单的串行流程,有4个节点,开始节点,两个任务节点和结束节点。其中Store()方法用于数据库存储流程。流程图示例如下:
2. 流程启动和运行
流程的启动和运行是最为常用的两个API接口。
2.1 流程启动
启动需要处理的是流程实例的创建,还有开始节点和开始节点之后任务节点的创建,示例代码如下:
IWorkflowService wfService = new WorkflowService(); var wfResult = wfService.CreateRunner(“10”, “jack”) .UseApp("DS-100", "Book-Order", "DS-100-LX") .UseProcess("PriceProcessCode") .Start();
流程记录列表:
2.2 流程运行
流程运行是由当前待办任务开始办理,并且运行到下一步的过程。在解析流程时,下一步可能有多个办理步骤,需要用户明确选择步骤列表(通常前端用户在弹出下一步步骤列表时候来指定),此处可以示例作为单步简单实例的运行。
IWorkflowService wfService = new WorkflowService(); var wfResult = wfService.CreateRunner(“10”, “jack”) .UseApp("DS-100", "Book-Order", "DS-100-LX") .UseProcess("PriceProcessCode") .NextStepInt("20", "Alice") .Run();
流程记录列表:
3 流程撤销和退回
3.1 流程撤销
如果用户在完成自己的待办任务,并且发出给下一步办理人时,发现有错误信息,需要撤销时,可以由自己发起,将当前流程撤销回来。撤销内部处理逻辑等同于退回处理,只不过发起人位置不同。代码示例如下:
IWorkflowService wfService = new WorkflowService();
var wfResult = wfService.CreateRunner(“10”, “Jack”)
.UseApp("DS-100", "Book-Order", "DS-100-LX")
.UseProcess("PriceProcessCode")
.OnTask(7976) //TaskID
.Withdraw();
流程记录列表:
3.2 流程退回
流程退回是由当前待办任务的办理人发起,退回到流程的上一步。在解析流程时,上一步可能有多个办理步骤,需要用户明确选择步骤列表(通常前端用户在弹出上一步步骤列表时候来指定),PrevStepInt()方法用于针对只退回其中的一个办理步骤的简化处理。
IWorkflowService wfService = new WorkflowService(); var wfResult = wfService.CreateRunner(“20”, “Alice”) .UseApp("DS-100", "Book-Order", "DS-100-LX") .UseProcess("PriceProcessCode")
.PrevStepInt()
.OnTask(7979) //TaskID .SendBack();
流程记录列表:
4. 总结
以上代码,可以帮助开发人员快速熟悉引擎组件的接口和简单序列流程的实用功能,完整功能需要在企业版以上版本获取。