现代工作流(workflow)实例介绍(c#)
现代工作流(workflow)实例介绍共47页
Байду номын сангаасEND
16、业余生活要有意义,不要越轨。——华盛顿 17、一个人即使已登上顶峰,也仍要自强不息。——罗素·贝克 18、最大的挑战和突破在于用人,而用人最大的突破在于信任人。——马云 19、自己活着,就是为了使别人过得更美好。——雷锋 20、要掌握书,莫被书掌握;要为生而读,莫为读而生。——布尔沃
现代工作流(workflow)实例介绍
1、战鼓一响,法律无声。——英国 2、任何法律的根本;不,不成文法本 身就是 讲道理 ……法 律,也 ----即 明示道 理。— —爱·科 克
3、法律是最保险的头盔。——爱·科 克 4、一个国家如果纲纪不正,其国风一 定颓败 。—— 塞内加 5、法律不能使人人平等,但是在法律 面前人 人是平 等的。 ——波 洛克
workflow例子
Jbpm4.0工作流的例子借款申请流程关键字: jbpm4 例子借款申请流程工作流正在学习jbpm4, 于是就写了个例子这个例子的流程就用借款申请的流程, 因为学jbpm3的时候对这个例子比较熟悉.流程图如下:流程定义:Xml代码1.<?xml version="1.0"encoding="UTF-8"?>2.<process name="loan"xmlns="/4.0/jpdl">3.<start g="172,-1,48,48"name="start1">4.<transition g="-27,-6"name="发起借款"to="填写借款申请"/>5.</start>6.7.<task assignee="#{proposer}"g="260,63,109,56"name="填写借款申请">8.<transition g="-28,-16"name="提交申请"to="部门经理审批"/>9.</task>10.11. <task assignee="manager"g="113,141,114,52"name="部门经理审批">12. <transition g="61,167:-36,62"name="部门经理驳回"to="cancel"/>13. <transition g="-51,-8"name="部门经理审批通过"to="金额判断"/>14. </task>15.16. <decision expr="#{money>=5000?'>=5000元':'<5000元'}"17. g="301,205,48,48"name="金额判断">18. <transition g="-20,-2"name=">=5000元"to="总经理审批"/>19. <transition g="-18,-13"name="<5000元"to="财务拨款"/>20. </decision>21.22. <end g="190,407,48,48"name="end"/>23. <end-cancel g="37,374,48,48"name="cancel"/>24.25. <task assignee="ceo"g="150,286,100,52"name="总经理审批">26. <transition g="-41,-6"name="总经理审批通过"to="财务拨款"/>27. <transition g="-17,-12"name="总经理驳回"to="cancel"/>28. </task>29.30. <task assignee="finance"g="345,325,92,52"name="财务拨款">31. <transition g="-26,-6"name="完成拨款"to="end"/>32. </task>33.</process>测试代码:Java代码1./**2. * CopyRight (C) 2006-2009 yeyong3. * @author yy4. * @project JbpmExamples5. * @version 1.06. * @mail yy629_86 at 163 dot com7. * @date 2009-9-9 下午3:12:138. * @description9. */10.package loan;11.12.import java.util.HashMap;13.import java.util.List;14.import java.util.Map;15.16.import org.jbpm.api.ProcessInstance;17.import org.jbpm.api.history.HistoryProcessInstance;18.import org.jbpm.api.task.Task;19.import org.jbpm.test.JbpmTestCase;20.21./**22. * @author yeyong23. */24.public class LoanTest extends JbpmTestCase {25. String deploymentId;26.27. @Override28. protected void setUp() throws Exception {29. super.setUp();30. deploymentId = repositoryService.createDeployment().addResourceFromClasspath("loan/loan.jpdl.xml")31. .deploy();32. }33.34. @Override35. protected void tearDown() throws Exception {36. repositoryService.deleteDeploymentCascade(deploymentId);37. super.tearDown();38. }39.40. /**41. * 测试用例42. * <p>43. * 张三申请4000元, 部门经理驳回44. */45. public void test4000ButManagerDisapprove() {46. String curUser = "Zhang San";47. ProcessInstance pi = startLoanProcess(curUser);48. String piId = pi.getId();49. filloutApplication(piId, curUser, 4000);50.51. curUser = "manager";52. managerApprove(piId, curUser, false, "最近资金紧张,暂不同意."); // 部门经理不同意53.54. pi = executionService.findProcessInstanceById(piId);55. assertNull(pi); // 流程结束56.57. HistoryProcessInstance hpi = getHistoryProcessInstanceByProcessInstanceId(piId);58. assertEquals(hpi.getState(), "cancel"); // 流程结束状态是cancel , 取消59. }60.61. /**62. * 测试用例63. * <p>64. * 李四申请4000元,部门经理同意65. */66. public void test4000AndManagerApprove() {67. String curUser = "Li si";68. ProcessInstance pi = startLoanProcess(curUser);69. String piId = pi.getId();70. filloutApplication(piId, curUser, 4000);71.72. curUser = "manager";73. managerApprove(piId, curUser, true, "同意."); // 部门经理同意74.75. pi = executionService.findProcessInstanceById(piId);76. assertNotNull(pi); // 流程未结束77. assertNotNull(pi.findActiveExecutionIn("财务拨款")); // 财务拨款处于活动状态78.79. curUser = "finance";80. earmark(piId, curUser, piId); // 拨款81.82. pi = executionService.findProcessInstanceById(piId);83. assertNull(pi); //流程结束84.85. HistoryProcessInstance hpi = getHistoryProcessInstanceByProcessInstanceId(piId);86. assertEquals(hpi.getState(), "ended"); // 流程结束状态是ended, 正常结束87. }88.89. /**90. * 测试用例91. * <p>92. * 王五申请6000元,部门经理驳回93. */94. public void test6000ButManagerDisapprove() {95. String curUser = "Wang Wu";96. ProcessInstance pi = startLoanProcess(curUser);97. String piId = pi.getId();98. filloutApplication(piId, curUser, 6000);99.100. curUser = "manager";101. managerApprove(piId, curUser, false, "最近资金紧张,暂不同意.");102.103. pi = executionService.findProcessInstanceById(piId);104. assertNull(pi);105.106. HistoryProcessInstance hpi = getHistoryProcessInstance ByProcessInstanceId(piId);107. assertEquals(hpi.getState(), "cancel");108. }109.110. /**111. * 测试用例112. * <p>113. * 赵六申请6000元,部门经理同意,总经理驳回114. */115. public void test6000AndManagerApproveButCeoDisapprove() {116. String curUser = "Zhao Liu";117. ProcessInstance pi = startLoanProcess(curUser); 118. String piId = pi.getId();119. filloutApplication(piId, curUser, 6000);120.121. curUser = "manager";122. managerApprove(piId, curUser, true, "同意. manager");123. pi = executionService.findProcessInstanceById(piId);124. assertNotNull(pi);125. assertNotNull(pi.findActiveExecutionIn("总经理审批"));126.127. curUser = "ceo";128. ceoApprove(piId, curUser, false, "不同意.等资金周转过来再说吧");129.130. pi = executionService.findProcessInstanceById(piId);131. assertNull(pi);132.133. HistoryProcessInstance hpi = getHistoryProcessInstance ByProcessInstanceId(piId);134. assertEquals(hpi.getState(), "cancel");135. }136.137. /**138. * 测试用例139. * <p>140. * 孙七申请6000元,部门经理同意,总经理也同意141. */142. public void test6000AndManagerApproveAdnCeoApprove() {143. String curUser = "Sun Qi";144. ProcessInstance pi = startLoanProcess(curUser); 145. String piId = pi.getId();146. filloutApplication(piId, curUser, 6000);147.148. curUser = "manager";149. managerApprove(piId, curUser, true, "同意. manager");150. pi = executionService.findProcessInstanceById(piId);151. assertNotNull(pi);152. assertNotNull(pi.findActiveExecutionIn("总经理审批"));153.154. curUser = "ceo";155. ceoApprove(piId, curUser, true, "同意. ceo");156. pi = executionService.findProcessInstanceById(piId);157.158. assertNotNull(pi);159. assertNotNull(pi.findActiveExecutionIn("财务拨款"));160.161. curUser = "finance";162. earmark(piId, curUser, piId);163. pi = executionService.findProcessInstanceById(piId);164. assertNull(pi);165.166. HistoryProcessInstance hpi =167. getHistoryProcessInstanceByProcessInsta nceId(piId);168. assertEquals(hpi.getState(), "ended");169. }170.171. /**172. * 用户发起借款申请173. *174. * @param userId175. * @return176. */177. protected ProcessInstance startLoanProcess(String user) {178. Map<String, Object> variables = new HashMap<String, Ob ject>();179. variables.put("proposer", user);180. return executionService.startProcessInstanceByKey("loa n", variables);181. }182.183. /**184. * 填写借款申请185. *186. * @param piId187. * @param user188. * @param money189. */190. protected void filloutApplication(String piId, String us er, double money) {191. List<Task> tasks = taskService.findPersonalTasks(user) ;192. Task filloutTask = null;193. for (Task task : tasks) {194. if (task.getExecutionId().equals(piId)) {195. filloutTask = task;196. break;197. }198. }199. assertNotNull(filloutTask);200. Map<String, Object> variables = new HashMap<String, Ob ject>();201. variables.put("money", money);202. executionService.setVariables(piId, variables); 203. pleteTask(filloutTask.getId()); 204. }205.206. /**207. * 经理审批208. *209. * @param piId210. * @param user211. * @param isPass212. * @param comment213. */214. protected void managerApprove(String piId, String user, boolean isPass, String comment) {215. List<Task> tasks = taskService.findPersonalTasks(user) ;216. Task approveTask = null;217. for (Task task : tasks) {218. if (task.getExecutionId().equals(piId)) {219. approveTask = task;220. break;221. }222. }223. assertNotNull(approveTask);224.225. taskService.addTaskComment(approveTask.getId(), commen t);226. pleteTask(approveTask.getId(), 227. isPass ? "部门经理审批通过" : "部门经理驳回");228.229. }230.231. /**232. * 总经理审批233. *234. * @param piId235. * @param user236. * @param isPass237. * @param comment238. */239. protected void ceoApprove(String piId, String user, bool ean isPass, String comment) {240. List<Task> tasks = taskService.findPersonalTasks(user) ;241. Task approveTask = null;242. for (Task task : tasks) {243. if (task.getExecutionId().equals(piId)) {244. approveTask = task;245. break;246. }247. }248. assertNotNull(approveTask);249.250. taskService.addTaskComment(approveTask.getId(), commen t);251. pleteTask(approveTask.getId(), 252. isPass ? "总经理审批通过" : "总经理驳回");253. }254.255. /**256. * 拨款257. *258. * @param piId259. * @param user260. * @param isPass261. * @param comment262. */263. /**264. * @param piId265. * @param user266. * @param comment267. */268. protected void earmark(String piId, String user, String comment) {269. List<Task> tasks = taskService.findPersonalTasks(user) ;270. Task earmarkask = null;271. for (Task task : tasks) {272. if (task.getExecutionId().equals(piId)) {273. earmarkask = task;274. break;275. }276. }277. assertNotNull(earmarkask);278.279. taskService.addTaskComment(earmarkask.getId(), comment );280.281.// HistoryProcessInstance hpi =282. getHistoryProcessInstanceByProcessInstanceId(piI d,"填写借款申请");283.284. String proposer =(String) executionService.getVariable (piId,"proposer");285. pleteTask(earmarkask.getId()); 286.287. // 通知借款申请人288. System.err.println(">> to " + proposer +", 财务科已经给你拨款.");289. }290.291. public HistoryProcessInstance292. getHistoryProcessInstanceByProcessInstanceId (String piId) {293. return historyService.createHistoryProcessInstanceQuer y().294. processInstanceId(piId).uniqueResult(); 295. }。
中国式的工作流场景配置案例
中国式的工作流场景配置案例一、场景背景。
这家工厂主要生产各种小电器,像电水壶、电吹风啥的。
订单来源有国内的经销商,也有一些国外的小订单。
整个工作流得保证订单从接收到产品发货的每个环节都不出差错,而且要高效,毕竟时间就是金钱嘛。
二、工作流环节配置。
1. 订单接收。
销售部门是订单的第一道关卡。
有个专门的销售助理小王,他就像个守门员。
每天早上一上班,他就打开邮箱,查看来自各个渠道的订单邮件。
那些邮件就像雪花一样,有时候多得让人眼花缭乱。
如果订单信息完整,小王就把订单信息录入到公司内部的订单管理系统里。
这个系统就像一个大账本,记录着每个订单的“身家性命”。
要是订单信息不全,小王就得赶紧给客户打电话或者发邮件,就像个催债的(当然是很礼貌的那种),询问清楚缺少的信息。
这时候小王心里肯定在想:“您可快点告诉我吧,后面还有一堆事儿等着呢。
”2. 订单审核。
3. 生产计划安排。
审核通过的订单会被推送到生产部门。
生产部门的张主管看到订单后,就开始头疼了。
为啥呢?因为他得像个拼图高手一样,把这个订单安排到生产计划里。
他得考虑现有的原材料库存、生产线的繁忙程度、工人的排班等各种因素。
如果原材料不够,他就得赶紧通知采购部门去采购。
这时候采购部门的小赵就像个救火队员,接到通知就得马上去找供应商。
要是生产线很忙,张主管可能就得调整订单的生产顺序,就像在堵车的时候调整行车路线一样。
4. 生产环节。
工人师傅们接到生产任务后就开始干活了。
每个工人就像一个小螺丝钉,虽然不起眼,但是缺了谁都不行。
生产线上的班组长就像个小队长,监督着工人的工作进度和质量。
如果发现有产品质量不合格,班组长就得像个严厉的老师一样,让工人重新做。
这期间,质量检测部门也会时不时地来抽检,就像个神秘的督察员,随时给生产环节来个“突然袭击”。
5. 包装与发货。
产品生产好后,就到了包装环节。
包装车间的工人们会把产品包装得漂漂亮亮的,就像给女儿出嫁打扮一样。
包装好的产品会被送到仓库,仓库管理员老钱会根据发货单安排发货。
工作流概述
Windows Workflow Foundation
统一的工作流引擎 重新定义工作流
可用于Windows上所有的应用 可用于跨应用场景 以工作流为中心的可扩展框架及平台 可用于人工和自动化的工作场景 集成的开发环境
最核心的工作流框架
为微软产品及 相关的引用程 序提供通用的 工作流设计平 台和开发工具
发出订单 取消订单
工作流程绘制
根据上述 的流程需求, 绘制出流程图 四种状态: WaitingForOrderState OrderOpenState OrderProcessedState OrderCompletedState
实际业务与工作流的对照
现实业务 业务操作 状态维持 WorkflowRuntime ExternalDataExchangeService StateMachineWorkflowInstance
WWF架构
WWF开发对象
核心概念
Workflow是一组Activities Workflow在一个宿主程序中运行 开发人员可以开发自己的Activity 基本Activity库 Runtime Engine(运行工作流与状态管理) Runtime Service(Workflow宿主通讯) Visual Designer控件(可以在应用程序中调用设计器)
工作流对传统编程方式的冲击
编程思想的革新 程序和业务的表达图 软件开发方式的改变
编程思想的革新
面向过程 面向对象 面向服务 面向方面 面向流程
新职业——流程分析员: 位于业务专家和程序员之间的一个角色
程序和业务的表达图——流程图
类图 结构图 部署图 时序图——顺序工作流 时序图 顺序工作流 状态图——状态机工作流 状态图 状态机工作流
工作流Activit介绍与应用
工作流A c t i v i t介绍与应用标准化管理处编码[BBX968T-XBB8968-NNJ668-MM9N]工作流Activiti介绍与应用工作流(workflow)就是工作流程的计算模型,即将工作流程中的工作如何前后组织在一起的逻辑和规则在计算机中以恰当的模型进行表示并对其实施计算。
我的理解就是:将部分或者全部的工作流程、逻辑让计算机帮你来处理,实现自动化。
1Activiti简介Activiti是由Alfresco软件在2010年5月17日发布的业务流程管理(BPM)框架,它是覆盖了业务流程管理,工作流,服务协作等领域的一个开源,灵活的,易扩展的可执行流程语言框架。
它实现了BPMN 规范,可以发布设计好的流程定义,并通过api进行流程调度。
1.1Activiti基础编程框架Activiti的基础编程框架如下:Activiti基于Spring,ibatis等开源中间件作为软件平台,在此之上构建了非常清晰的开发框架。
上图列出了Activiti的核心组件。
:流程引擎的抽象,对于开发者来说,它是我们使用Activiti的外观(faade),通过它可以获得我们需要的一切服务。
(TaskService,RuntimeService,RepositoryService...):Activiti按照流程的生命周期(定义,部署,运行)把不同阶段的服务封装在不同的Service中,用户可以非常清晰地使用特定阶段的接口。
通过ProcessEngine能够获得这些Service实例。
1.2Activiti重要服务类ProcessEngine:流程引擎的抽象,通过它我们可以获得我们需要的一切服务。
RepositoryService: Activiti中每一个不同版本的业务流程的定义都需要使用一些定义文件,部署文件和支持数据(例如 XML文件,表单定义文件,流程定义图像文件等),这些文件都存储在Activiti内建的Repository中。
工作流(Workflow)学习---基础知识整理
⼯作流(Workflow)学习---基础知识整理⼯作流定义:⼯作流是将⼀组任务组织起来以完成某个经营:定义了任务的触发顺序和触发条件,每个任务可以由⼀个或多个完成,也可以由⼀个或⼀组⼈完成,还可以由⼀个或多个⼈与软件系统协作完成。
⼯作流2.0的定义是:实现⼯作过程管理的⾃动化、智能化和整合化。
⼯作流2.0最主要的特征就是可以灵便的实现数据整合和数据统计,消除信息孤岛,既能实现OA办公系统内部⼯作流之间的数据整合,如借款与报销、预算与决算等,⼜能实现OA办公系统⼯作流与其他业务系统之间的数据整合,如HR、ERP、CRM等。
⼯作流2.0能彻底的弥补⼯作流1.0的不⾜,它不但实现OA办公系统内部的数据整合,也实现OA办公系统和第三⽅应⽤系统之间的数据整合。
如果给⼯作流1.0打上标签的话,那就是“⽆纸化、重复⼯作、流程孤岛、系统孤岛、数据孤岛”;⼯作流2.0对应的便是“智能化、效率质量提升、外部数据整合、消除信息孤岛、内部数据整合”。
毫⽆疑问,⼯作流2.0更加智能,更加整合,能够实现数据的同步交换和共享的特征更受⽤户欢迎,能有效帮助企业简化多余流程,是未来⼯作流技术发展的⽅向。
适⽤⾏业消费品⾏业,,服务业,银证险等,物流服务业,物业服务业,物业管理,⼤中型进出⼝贸易公司,政府事业机构,研究院所及教育服务业等,特别是⼤的跨国企业和集团公司。
具体应⽤1.关键业务流程:订单、报价处理、采购处理、合同审核、客户电话处理、等。
2.⾏政管理类:出差申请、加班申请、请假申请、⽤车申请、各种办公⽤品申请、购买申请、⽇报周报等凡是原来⼿⼯流转处理的⾏政表单。
3.⼈事管理类:员⼯培训安排、绩效考评、职位变动处理、员⼯档案信息管理等。
4.财务相关类:付款请求、应收款处理、⽇常报销处理、出差报销、预算和计划申请等。
5.客户服务类:客户信息管理、客户投诉、请求处理、售后服务管理等。
6.特殊服务类:ISO系列对应流程、质量管理对应流程、产品数据信息管理、贸易公司报关处理、物流公司货物跟踪处理等各种通过逐步⼿⼯流转完成的任务均可应⽤⾃动规范地实施。
workflowcore的使用案例
workflowcore的使用案例WorkflowCore是一个开源的工作流引擎,可以帮助开发人员实现复杂的业务流程。
它提供了一种声明式的方式来定义和执行工作流,使得工作流的设计和维护更加简单和高效。
下面是十个使用WorkflowCore的案例。
1. 审批流程管理:通过WorkflowCore,可以轻松地实现复杂的审批流程。
例如,一个请假申请流程可以包含多个节点,包括提交申请、上级审批、人事审批等。
WorkflowCore可以帮助管理和自动化整个流程,并提供实时的状态跟踪和通知功能。
2. 订单处理:WorkflowCore可以用于管理订单处理流程。
例如,一个电商平台的订单处理流程可以包括订单创建、库存检查、支付确认、物流安排等环节。
通过WorkflowCore,可以将这些环节组织起来,并自动触发下一步操作。
3. 任务调度:WorkflowCore可以用于实现任务调度系统。
例如,一个定时任务的调度系统可以使用WorkflowCore来管理任务的创建、调度和执行。
WorkflowCore提供了灵活的定时触发器和条件判断,可以满足各种调度需求。
4. 异步处理:WorkflowCore支持异步处理,可以帮助开发人员处理耗时的操作,如发送邮件、调用外部接口等。
通过将这些操作封装成工作流的一部分,可以实现更高效的异步处理,提高系统的性能和响应速度。
5. 并行处理:WorkflowCore支持并行处理,可以同时执行多个任务。
例如,在一个工作流中,可以同时处理多个子任务,而不是按顺序依次执行。
这样可以提高系统的并发性能,加快任务处理的速度。
6. 异常处理:WorkflowCore提供了强大的异常处理机制,可以捕获和处理工作流中的异常情况。
例如,当某个任务执行失败时,可以通过WorkflowCore自动触发异常处理逻辑,如发送告警通知、重试任务等。
7. 长时间运行的工作流:WorkflowCore支持长时间运行的工作流,可以处理需要跨多个时间段执行的任务。
Workflow简明教程
Workflow简明教程注:我们将通过作一个workflow的实例来演示一个workflow工作流的建立。
首先建立new的项目在Workflows的file选择菜单中的选择向导选项,用向导作比较直观一些!选择后结果如下:上面两个栏位是新建立的项目的名称internal name 是程序需要的名字,display是显示的名字。
new process是项目中工作流过程的名称,同理,interal name是程序的名字,display name 是显示的名字需要注意的是,internal name是能用中文的,而且最好用大写,display name没有要求其余两个选项不作要求输入你需要的名字然后点ok,这时你的workflow整体框架就出来了,如图:左边是导航区,右边是工作区,跟form的风格和相似,注意右边他默认了两个图标,这是workflow流的两个端点,start和end 。
其中间的流过程是设计者来完成下面我将作一个关于审核工作票的工作流,其流程图如下第一步:我们要建立attribute ,即你在工作流中用到的所有的属性,这个例子中要用到4个属性,分别是send (审核人),view(修改人),gzpbg(工作票编号),p_url(打开的url地址)建立审核人,点右键,如图:建立新的attrib属性填写属性内容,注意如果是人员角色的属性,则要选择相对应的角色选项,如下填写完毕,确定,然后同理创建其余3个属性,这个时候属性创建完毕第二步!创建流程的节点,也就是关键点如图,我要创建一个审批的节点(p_check),还要创建一个审批不合格,需要重新审批的节点(p_ok)在导航区的notification上点右键,新增节点确立新的节点,同理,创建p_ok(复查节点)注意:1,message选项先不选择,因为稍后我们才创建message2, result type 是流程运行时当前节点的分支的类型,这个节点选择审批类型第三步,创建message,message是什么呢?通俗理解就是当流程走到这个节点上的时候,系统会自动根据这个节点上拥有的message发封邮件给你指定的人,通知她去接收信息,达到信息的流转。
工作流分析 及案例
Company slogan here
工作流分析
Company name
Company slogan here
2
工作流目录
1、什么是工作流 2、实际情况中的工作流 3、工作流进行的过程 4、工作流分析描述 5、工作流案例 6、工作流具体应用 7、工作流评价
Company name
Company name
Company slogan here
9
工作流具体应用
1.关键业务流程:订单、报价处理、采购处理、合同审核、客户电 话处理、供应链管理等 2.行政管理类:出差申请、加班申请、请假申请、用车申请、各种办 公用品申请、购买申请、日报周报等凡是原来手工流转处理的行政 表单。 3.人事管理类:员工培训安排、绩效考评、职位变动处理、员工档 案信息管理等。 4.财务相关类:付款请求、应收款处理、日常报销处理、出差报销、 预算和计划申请等。 5.客户服务类:客户信息管理、客户投诉、请求处理、售后服务管 理等管理等。
Company slogan here
3
什么是工作流
Georgakopoulos给出的工作流定义是:工作流是将一组任务组织起来以完成 某个经营过程:定义了任务的触发顺序和触发条件,每个任务可以由一个或 多个软件系统完成,也可以由一个或一组人完成,还可以由一个或多个人与 软件系统协作完成。
IBM Almaden Research Center将工作流定义为:工作流是经营过程的一种计 算机化的表示模式,定义了完成整个过程需要的所有参数;这些参数包括对 过程中每一个步骤的定义、步骤的执行顺序和条件、步骤由谁负责以及每个 活动所需要的应用程序等。 11项目小组将工作流定义为:工作流是一种在已设定好工作流程和人员配备 情况下,任务的进行将按照这种流程自动得进行并完成的系统。
OSWORKFLOW工作流描述介绍
OSWORKFLOW工作流描述介绍一、工作流的概念1. 步骤、状态和动作工作流要描述步骤(step)、步骤的状态(status)、各个步骤之间的关系以及执行各个步骤的条件和权限,每个步骤中可以含有一个或多个动作(action),动作将会使一个步骤的状态发生改变。
对于一个执行的工作流来讲,步骤的切换是不可避免的。
一个工作流在某一时刻会有一个或多个当前步骤,每个当前步骤都有一个状态值,当前步骤的状态值组成了工作流实例的状态值。
一旦完成了一个步骤,那么这个步骤将不再是当前步骤(而是切换到一个新的步骤),通常一个新的当前步骤将随之建立起来,以保证工作流继续执行。
完成了的步骤的最终状态值是用old-status属性指定的,这个状态值的设定将发生在切换到其他步骤之前。
old-status的值可以是任意的,但在一般情况下,我们设置为Finished。
切换本身是一个动作(action)的执行结果。
每个步骤可以含有多个动作,究竟要载入哪个动作是由最终用户、外部事件或者triggerd的自动调用决定的。
随着动作的完成,一个特定的步骤切换也将发生。
动作可以被限制在用户、用户组或当前状态。
每一个动作都必须包含一个unconditional result和0个或多个conditional results。
所以,总体来说,一个工作流由多个步骤组成。
每个步骤有一个当前状态(例如:Queued, Underway, or Finished),一个步骤包含多个动作。
每个步骤含有多个可以执行的动作。
每个动作都有执行的条件,也有要执行的函数。
动作包含有可以改变状态和当前工作流步骤的results。
2. Results, Joins, and Splits(1) Unconditional Result对于每一个动作来讲,必须存在一个Unconditional Result。
一个result是一系列指令,这些指令将告诉OSWorkFlow下一个任务要做什么。
工作流具体定义实例
工作流具体定义实例一个Excel表单可以带一个工作流。
工作流定义了Excel表单流动的步骤(任务)、人员和权限。
定义工作流的步骤:1.“新建”或“打开”一个模版,“工作流”主菜单自动出现。
2.点击“定义工作流”流程名称:工作流的名称。
流程描述:对工作流的说明。
输入“流程名称”和“流程描述”后,点击“确定”,进入工作流设计环境。
3.进入工作流设计环境可以发现在模版工作表后面增加了一个叫“workflow”的新工作表,以及出现了一个“工作流设计”菜单。
4.建立任务点击“工作流设计”上的“新建任务”,出现:(1)流程任务定义的“基本信息”:任务名称-工作流的任务名称。
任务描述-任务的说明。
本任务是流程的起始任务-如果选择,该任务是工作流的第一个任务。
每个工作流必须有一个起始任务。
完成此步后保存到数据库-如果选择,完成该步后,则将数据保存到数据库中。
在“我的工作台”中“报表数据”中查询到。
完成时限:到期时限-到了定义的时限后,任务完成者的待办事宜中,该任务显示红色。
到期后自动转向-如果选择,到期后自动转向所指定的任务。
(2)执行权限点击“从工作表上选择”,出现:选择需要在第一步中填写的工作表上,用鼠标左键点击所需要填写的数据项。
选择完成后,点击“确定”。
由哪些用户可执行此任务:•由上一步执行人指定•属于此部门和角色:可以选择具体部门角色或全部。
选择“全部”,可以任务发到所有部门和角色。
如果该任务不是起始任务,还需要确定任务的执行方式:•抢先式-将任务发给多个人,但只有第一个打开的人才能执行,执行完后,其他人的该任务被取消。
•并列时-将任务发给多人,每个人都必须执行。
(3)后续任务自动列出后续任务。
5.新建流向点击“工作流设计”上的“新建流向”,并且点击一个起始任务和一个终止任务,出现:流向条件:(1)无条件向下进行(2)当以下条件满足时向下进行点击“构造条件表达式”:显示该表单上的字段,可以构造流动规则。
工作流activiti介绍
Activiti6工作流1、Activiti工作流概述1.1、工作流概述工作流(Workflow),就是通过计算机对业务流程自动化执行管理。
它主要解决的是“使在多个参与者之间按照某种预定义的规则自动进行传递文档、信息或任务的过程,从而实现某个预期的业务目标,或者促使此目标的实现”。
在我们日常的工作中,每时每刻都在执行一个个的流程,我们可能是流程的发起人,也可能能是流程的中间人,甚至是最后终止一个流程的大boss,总体而言流程,即工作流就是为了团队协作而生,任何需要团队持续写作的场景都有必要用到工作流。
比如老生常谈的员工请假,发出请求,逐级上报,逐级审批。
在我们的项目中也是一样,很多项目都是存在业务流程。
1.2、工作流系统一个软件系统中具有工作流的功能,我们把它称为工作流系统,一个系统中工作流的功能是什么?就是对系统的业务流程进行自动化管理,所以工作流是建立在业务流程的基础上,所以一个软件的系统核心根本上还是系统的业务流程,工作流只是协助进行业务流程管理。
即使没有工作流业务系统也可以开发运行,只不过有了工作流可以更好的管理业务流程,提高系统的可扩展性。
常见的工作流有:请假流程、出差申请流程、出差申请流程项目研发流程1.3 工作流的实现没有用工作流之前我们是怎么做的?我们之前为了实现流程控制, 通常是通过状态(status)字段的值,来跟踪流程状态,但是不完美比如请假流程:员工申请-> 部门经理审批-> 人事存档我们要给status字段设置状态: 0 = 员工未提交; 1 = 员工已提交; 2= 部门经理拒绝审批; 3 = 部门经理同意审批; 最终人事查询status= 4也就是申请成功的请假单数据通过状态字段我们虽然可以实现流程的控制但是弊端也很明显: 当我们那不讲武德的产品经理说出“这个功能要改”的时候我们只能去改变代码比如: 在这个部门经理的后面在加一个总经理审批的功能, 则程序不能用了那么能不能做到流程业务变化后,程序可以不用变呢?使用工作流之后改善了我们哪些问题?Activiti能做到当需求变更时,代码不需要发生改变,只需要更新业务流程图即可.二、Activiti概述Activiti是一个工作流引擎,activiti可以将业务系统中复杂的业务流程抽取出来,使用专门的建模语言BPMN2.0进行定义,业务流程按照预先定义的流程进行执行,实现了系统的流程由activiti进行管理,减少业务系统由于流程变更进行系统升级改造的工作量,从而提高系统的健壮性,同时也减少了系统开发维护成本。
现代工作流(workflow)实例介绍(c#)
复杂的流程图。
信息化平台室
39
成功案例(4)
客户名称:上海建工
信息化平台室
40
流程系统与同行的比较
功能名称 可视化的定义工具 超时处理 PKPM √ √ 金富瑞 √ √ 普元 √ √
流程的导入导出
支持weboffice 流程终止 挂起与恢复 消息提醒 可视化的流程监控 流程代理 工作日历 流程处理记忆 任务自由跳转 签章管理 共享任务 逾期自动流转 流程告知
14
可视化的流程监控
使用者可以方便地以图形方式察看每个流程实例的运 转状况,用不同的颜色区分出每个节点的运行状态, 可以方便地掌握整个流程实例运转状态及每个节点的 执行状况。
信息化平台室
15
丰富的处理和管理功能
代理人设置 签章管理 工作日管理 会签 终止 退回 暂存 直送 知会 超时提醒
信息化平台室
35
成功案例(4)
客户名称:上海建工 项目负责人:王远功 项目类型:施工企业信息化综合项目管理系统 流程使用亮点:回退和直送跳跃
信息化平台室
36
成功案例(4)
客户名称:上海建工
信息化平台室
37
成功案例(4)
客户名称:上海建工
客户的流程审批过程。
信息化平台室
38
成功案例(4)
客户名称:上海建工
信息化平台室
16
流程应用现状与价值
目前信息化项目中,大约有90%的客户都在使 用流程,并且都当作核心业务。 在每个项目中,流程应用大概占20%-30%。
流程应用范围广。。。 项目应用比重大。。。
信息化平台室
17
流程应用现状与价值
流程应用价值
PowerBI技巧之工作流(Workflow)基本介绍
工作流简介工作流(Workflow),就是“业务过程的部分或整体在计算机应用环境下的自动化”,它主要解决的是“使在多个参与者之间按照某种预定义的规则传递文档、信息或任务的过程自动进行,从而实现某个预期的业务目标,或者促使此目标的实现”。
通俗的说,流程就是多个人在一起合作完成某件事情的步骤,把步骤变成计算机能理解的形式就是工作流。
工作流要解决的主要问题是:为实现某个业务目标,在多个参与者之间,利用计算机,按某种预定规则自动传递文档、信息或者任务。
工作流管理系统(Workflow Management System, WfMS)是一个软件系统,它完成工作流的定义和管理,并按照在系统中预先定义好的工作流规则进行工作流实例的执行。
工作流管理系统不是企业的业务系统,而是为企业的业务系统的运行提供了一个软件的支撑环境。
工作流管理联盟(WfMC,Workflow Management Coalition)给出的关于工作流管理系统的定义是:工作流管理系统是一个软件系统,它通过执行经过计算的流程定义去支持一批专门设定的业务流程。
工作流管理系统被用来定义、管理、和执行工作流程。
工作流应用广泛,在由任务驱动的各种系统中都有应用,例如OA、CRM、ERP、ECM、BI等。
在企业应用中还有很多产品或平台集成工作流引擎,用来处理系统运行过程中发起的业务流程。
工作流总是以任务(Task)的形式驱动人处理业务或者驱动业务系统自动完成作业。
有了工作流引擎之后,我们不必一直等待其他人的工作进度,直白地说,我们只需要关心系统首页的待办任务数即可,由系统提醒当前有多少待办任务需要处理。
采用工作流管理系统的优点:1)提高系统的柔性,适应业务流程的变化2)实现更好的业务过程控制,提高顾客服务质量3)降低系统开发和维护成本工作流生命周期一个完整的工作流生命周期会经过五个步骤,并且迭代循环:定义:工作流生命周期总是从流程定义开始。
此阶段的任务主要是收集业务需求并转化为流程定义。
工作流WorkFlow系统
太孛企业工作流系统产品介绍(V2.0)2009-2020 Taibo Computer Technology Co.,Ltd.All Rights Reserved.引言我公司自主研发的工作流引擎采用Java服务端,结合自主的中间件技术,支持C#,Php,Java前端开发接口,并且内置了权限管理,是一套完整的全功能平台。
设计该平台主要考虑公司都要自己的日常事务处理,这种日常事务要指派具体的人和部门来完成,当公司人员复杂,分支机构多时,可利用互联网和电话或传真技术,提高效率,节省成本。
同时还可以帮助决策者,更有效地制定管理决策。
例如电子工单系统,当工单完成后,处理结果还可以产生报表,报表可以展现每种事件的分布,数量对比,以及解决过程和解决时间,决策者可以清晰地知道已有管理决策的执行效果,以及新的决策产生了什么影响,于是策划出更好的决策。
另一方面,不同公司日常事务处理,千差万别,所谓软件及管理,每个公司都有自己的管理特色,也有自己的管理变迁过程,自然就需要不同的软件。
为了更快而有效地开发各种工作流软件,我们需要平台的支持,所以我们自主研发工作流引擎,为了更好的掌控软件开发管理。
目录引言 (2)一、系统框架 (3)二、工作流的流转设计 (3)三、案例介绍 (4)1)工单的开单模板管理 (5)2)工单的派发方式管理 (5)3)工单的流转流程管理 (6)4、工单的呈现方式 (6)5)工单的回单处理 (7)6)工单状态纪录 (8)7)其它功能 (8)(1)用户管理 (8)(2)值班管理 (9)(3)工单的统计分析功能 (9)四、尾言 (10)一、系统框架本软件采用客户端和服务器的模式来建立整个软件系统的框架,支持CS和BS,框架图如下所示:平台的数据库方面,支持SQL Server, MySQL, Oracle等主流数据库。
用Tomcat建立web服务器,并利用公司现有的办公网络连网访问web服务器。
二、工作流的流转设计为了快速开发流程,我们为自己的软件管理,开发了简单的流程设计工具。
orcle工作流介绍orcle工作流介绍
常见问题及其排除方法 PO:WorkflowProcessingMode
Online--- The WorkflowEnginewillrunthe PurchaseOrder and Requisitionworkflows onlinewhentransactionsare created. Background--- Thiscauses the purchaseorder and requisitionworkflows to be deferred to the backgroundengine. Thiscanincreasethroughput; but before settingthisvalue, ensure thatyouhave configuredat leastone backgroundengineand thatit is running.
·FAFLEXWF 89412 - FA Account Generator
·HRSSA Service
21 - Human Resources Self
·POAPPRV
820 - PO Approval
Persistencetype --- Permanent/Temporary
常见问题及其排除方法
发货确认
库存接口 应收接口
完成
常见问题及其排除方法
常见问题及其排除方法
·Q1提交了工作流的活动后,发现系统对你的 活动没有任何响应。
·启用相应的工作流后台进程。 ·以系统管理员登录应用系统 ·Navigate Requests Run Single Request
‘Workflow Background Process
Account Generator: RuninDebugMode Yes---The Account Generatorworkflows runs inauditmode and status informationis saved to the Workflowhistorytables. No --- The Account Generatorworkflows runsinnon-auditmode and no status informationis saved, thereforeincreasingperformanceand reducingthe waittime whengeneratinganaccount.
工作流实例
工作流数据库:workflow表1:wuser : username password表2:wflow:wid wname wflat wcontant 文件结构:Login.htm<body> <strong><spanstyle="font-size: 24pt"> 内部工作流系统</span></strong><br/><br/><br/><form action=do_login.aspx> 用户名:<input id="username"type="text"name="username"/><br/> <br/> 密码: <input id="password"style="width: 150px" type="password"name="password"/><br/><br/> <br/> <input id="Submit1"type="submit"value="提交"/> <input id="Reset1"type="reset"value="重置"/> </form></body>Htm中加入注册<head><title>无标题页</title><script language="javascript"type="text/javascript"><!--function Button1_onclick() {window.navigate("user/detail.aspx");}// --></script></head>检查页面do_login.aspxusing System;using System.Data;using System.Configuration;using System.Collections;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;using System.Data.SqlClient;public partial class do_login : System.Web.UI.Page {protected void Page_Load(object sender, EventArgs e){string username = Request["username"];string password = Request["password"];//连接数据库string strConn = "server=.\\sqlexpress;Initial Catalog=workflow;Integrated Security=SSPI;";SqlConnection conn = newSqlConnection(strConn);conn.Open();//sql语句string strSql = "select * from wuser where username='"+username+"' andpassword='"+password+"'";//创建Command对象查询数据;SqlCommand command = newSqlCommand(strSql,conn);//执行ExecuteReader()创建SqlDataReader数据读取器SqlDataReader dr = command.ExecuteReader();try{ //读出每一条记录if (dr.Read()){Session["username"] = dr["username"];Response.Redirect("user/Default.aspx");}else{Response.Redirect("login.htm");}}finally{dr.Close();conn.Close();}}}用户登录后的默认页面:Default.aspxusing System.Data.SqlClient;public partial class user_Default: System.Web.UI.Page {protected void Page_Load(object sender, EventArgs e){Label1.Text =Session["username"].ToString();//连接数据库string strConn ="server=.\\sqlexpress;InitialCatalog=workflow;Integrated Security=SSPI;";SqlConnection conn = newSqlConnection(strConn);conn.Open();//sql语句string strSql = "select * from wflow where wname='" + Session["username"] + "' and wflat='0'";SqlDataAdapter sda = newSqlDataAdapter(strSql, conn);DataSet ds = new DataSet();sda.Fill(ds,"workstep");GridView1.DataSource =ds.Tables["workstep"].DefaultView;GridView1.DataBind();}protected voidGridView1_SelectedIndexChanged(object sender, EventArgs e){}}。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一阶段
第二阶段
2007-2008,应用领域 包括OA办公系统、房地 项目管理系统。
第三阶段
2009-2010,应用领域包括OA办公系 统、房地项目管理系统、施工项目管理 系统、人力资源管理系统等。
信息化平台室
6
流程系统总体结构
Web客户端
流程管理程序
复杂的流程图。
信息化平台室
39
成功案例(4)
客户名称:上海建工
信息化平台室
40
流程系统与同行的比较
功能名称 可视化的定义工具 超时处理 PKPM √ √ 金富瑞 √ √ 普元 √ √
流程的导入导出
支持weboffice 流程终止 挂起与恢复 消息提醒 可视化的流程监控 流程代理 工作日历 流程处理记忆 任务自由跳转 签章管理 共享任务 逾期自动流转 流程告知
信息化平台室
21
流程应用现状与价值
1、减少人力成本
•压缩了项目组的规模,直接导致人力成本 的直线下降,整个项目的开发成本大大降 低。
信息化平台室
22
流程应用现状与价值
2、提高开发效率
•避免了重复开发工作,提高了开发人员的 效率,降低了项目开发的风险。
信息化平台室
23
流程应用现状与价值
3、缩短开发周期
•由于编码量的减少以及可视化的应用开发 设计,效率上得到了大大的提升。
项目开发周期缩短了。
信息化平台室
24
流程应用现状与价值
4、提高了软件质量
•整个项目软件开发使用配置化完成,总体 质量得到了提升。
信息化平台室
25
流程应用现状与价值
5、降低运行维护成本
•通过配置化开发出来的软件其系统的敏捷 性是很高的,在需求变更的应对方面要远 远优于其他中间件平台开发的软件;在后 期的项目运行维护时,也能降低运行维护 的成本。
信息化平台室
28
成功案例(1)
客户名称:中建公司
客户发起和处理了1万 多条流程实例。
信息化平台室
29
成功案例(1)
客户名称:中建公司
客户实际使用的审批流程图。
信息化平台室
30
成功案例(2)
客户名称:浙江省建工集团。 项目负责人:蒲秀杰 项目类型:包括项目管理、OA和人力资源管理等
信息化平台室
31
14
可视化的流程监控
使用者可以方便地以图形方式察看每个流程实例的运 转状况,用不同的颜色区分出每个节点的运行状态, 可以方便地掌握整个流程实例运转状态及每个节点的 执行状况。
信息化平台室
15
丰富的处理和管理功能
代理人设置 签章管理 工作日管理 会签 终止 退回 暂存 直送 知会 超时提醒
√
√ √ √ √ √ √ √ √ √ √ √ √ √
√
√ √ √ √
√
√ √ √ √ √ √ √
√ √ √ √
流程回退与直送
√
√
√
信息化平台室
41
流程系统的发展目标
程序升级部署简单
用户操作简单方便
解除与平台模型系统的绑定 功能的可配置化 移动办公,采用手机进行流程审批 预留接口,便于扩展
信息化平台室
成功案例(2)
客户名称:浙江省建工集团。
信息化平台室
32
成功案例(2)
客户名称:浙江省建工集团。
信息化平台室
33
成功案例(3)
客户名称:中建二局三公司 项目负责人:周耀明 项目类型:施工企业信息化项目管理系统。
信息化平台室
34
成功案例(3)
客户名称:中建二局三公司
客户自己完成了大量流程的定制工作。
发展目标
应用范围
主要特点
下一步计划
流程系统
信息化平台室
43
个人成长总结
说写能力
需求分析能力
沟通能力 团队合作精神 技术能力 解决问题的能力
信息化平台室
44
2011年工作计划
1、 继续解决流程在项目实施中提出的问题。 2、 做好项目中的流程技术支持。 3、 会签的优化问题。 4、 完善回退和直送保存数据。 5、 增加发起流程页面。 6、 加强流程维护修改的功能。 7、 流程共享任务和正常任务的合并。 8、 提供可以自定义的流程消息提醒内容 9、 解除与平台模型系统的绑定。 10、流程程序独立部署,需要修改相应AJAX方法。 11、完善流程定义工具。 12、研究微软WF流程技术,做好知识储备,为将来流程升级改 造打下良好的基础。 13、新增列表选择式流程发起功能。
信息化平台室
9
工作流应用场景实例
审批表单
审批意见
流程图
信息化平台室
10
流程系统特点
1、图形化的流程定义。 2、具有强大的工作流引擎服务。 3、流程定义基于XPDL,以XML为基础。 4 、可视化的流程监控。 5、全面支持串行、并行(或/与)、组合流转等业务流程应用。 6、灵活的参与者设置 ,复杂的任务分配体系。 7、丰富的工作流处理和管理功能。 8、集成各类消息提醒。(邮件、手机短信、即时通信) 9、具有中国特色的功能。(流程处理人记忆、回退和直送跳跃等) 10、远程定义和维护 11、流程导入导出方便 12、自动进行版本更新和下载,采用微软最新智能客户端。
信息化平台室
35
成功案例(4)
客户名称:上海建工 项目负责人:王远功 项目类型:施工企业信息化综合项目管理系统 流程使用亮点:回退和直送跳跃
信息化平台室
36
成功案例(4)
客户名称:上海建工
信息化平台室
37
成功案例(4)
客户名称:上海建工
客户的流程审批过程。
信息化平台室
38
成功案例(4)
客户名称:上海建工
信息化平台室
45
2011年工作计划
信息化平台室
46
谢谢大家!
信息化平台室
47
浪费公司的人力、物力等资源, 手工审批周期时间长。
对于每个人来说,公司业务十 分复杂,处理工作效率低。 时间黑洞会永无止境地吞噬 公司的宝贵时间。
没有使用流程前
公司往往存在制约、限制企业 发展的关键环节 公司员工无法集中精力到自己 的关键业务。
19
经常遇到手工审批的表单 丢失、审批不规范等问题
信息化平台室
信息化平台室
11
图形化流程定义
图形化的流程设计可以让客户拖拉式地设计流程,大大提 升了流程的设计效率,同时也大大降低了流程的设计难度。
信息化平台室
12
工作流引擎服务
工作流引擎负责任务的调度,分配,超时监控,事件 控制、逾期自动流转等。 工作流引擎实现了流程启动、挂起、恢复、删除、会 签、终止功能等。 目前支持11种常用的流程模式。
信息化平台室
16
流程应用现状与价值
目前信息化项目中,大约有90%的客户都在使 用流程,并且都当作核心业务。 在每个项目中,流程应用大概占20%-30%。
流程应用范围广。。。 项目应用比重大。。。
信息化平台室
17
流程应用现状与价值
流程应用价值
对客户价值
对软件公司 价值
信息化平台室
18
流程应用现状与价值
信息化平台室
26
成功案例(1)
客户名称:中建公司 项目负责人:黄文喜 项目类型:OA系统 流程使用时间:4年多 发起审批流程数量:1万条 流程相关数据量:10万以上 公司核心业务采用网上审批后,不仅规范了企业制度,还提高 了审批效率。
信息化平台室
27
成功案例(1)
客户名称:中建公司
公司的许多审批业务 都采用网上流程审批。
信息化平台室
3
流程系统介绍
工作流管理系统参照工作流管理联盟(WfMC)标准 设计,以业务管理为核心(BPM),以工作流平台技 术为依托,可以帮助企业快速构建高效、柔性的业务 流程管理系统。
信息化平台室
4
流程系统的历史
2009年
2008年
2007年 2006年
2005年
信息化平台室
5
流程系统的历史
流程引擎
流程定义工具
流程服务程序
7
信息化平台室
流程系统参考模型
参考模型一共分了五个接口, 通过这些接口可以访问工作流 的服务,还控制与其他组件的 交互。
信息化平台室
8
工作流应用场景实例
运营条线 项目ห้องสมุดไป่ตู้司 区域公司 集团总部
各个部门共同参 与审批
成本条线 项目公司 流程发起 财务条线 项目公司 区域公司 集团总部 决策意见 其他条线 项目公司 区域公司 集团总部 区域公司 集团总部 汇总意见
流程应用现状与价值
对客户的价值
客户使用流程后,全部问题都得完美解决。
实现企业业务流程标准化,为企业快 速扩张保驾护航。 规范企业业务流程,提升企业执行力, 保障企业战略落地。
信息化平台室
20
流程应用现状与价值
对软件公司的价值
1、减少人力成本 2、提高开发效率 3、缩短开发周期 4、提高了软件质量 5、降低运行维护成本
信息化平台室
13
任务分配体系
工作流系统可以由不同岗位、不同部门甚至是打破企 业界限的一组人一起协作完成; 工作流任务的参与者既可以支持固定角色,也可以支 持过滤角色; 工作流的任务分配不但可以支持系统配置、手工指定 方式进行任务分配。 按照组织范围过滤,可以满足大型施工企业。
信息化平台室
工作总结与流程系统介绍
平台室研发组:张冬
信息化平台室