jeesite 说明文档-6.工作流的应用实例

合集下载

现代工作流(workflow)实例介绍

现代工作流(workflow)实例介绍

4
流程系统的历史Βιβλιοθήκη 2009年2008年
2007年 2006年
2005年
5
流程系统的历史
2005-2006,应用 领域为OA办公系统。
第一阶段
第二阶段
2007-2008,应用领域 包括OA办公系统、房地 项目管理系统。
第三阶段
2009-2010,应用领域包括OA办公系 统、房地项目管理系统、施工项目管理 系统、人力资源管理系统等。
36
成功案例(4)
客户名称:上海建工
信息化平台室
37
成功案例(4)
客户名称:上海建工
客户的流程审批过程。
38
成功案例(4)
客户名称:上海建工
复杂的流程图。
39
成功案例(4)
客户名称:上海建工
40
流程系统与同行的比较
功能名称 可视化的定义工具 超时处理 流程的导入导出 支持weboffice 流程终止 挂起与恢复 消息提醒 可视化的流程监控 流程代理 工作日历 流程处理记忆 任务自由跳转 签章管理 PKPM √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ 金富瑞 √ √ √ 普元 √ √ √ √ √ √ √ √ √ √
19
经常遇到手工审批的表单 丢失、审批不规范等问题
流程应用现状与价值
对客户的价值
客户使用流程后,全部问题都得完美解决。
实现企业业务流程标准化,为企业快 速扩张保驾护航。 规范企业业务流程,提升企业执行力, 保障企业战略落地。
20
流程应用现状与价值
对软件公司的价值
1、减少人力成本 2、提高开发效率 3、缩短开发周期 4、提高了软件质量 5、降低运行维护成本

JeeSite的Excel导入、导出、支持大数据量,使用annotation最小化配置

JeeSite的Excel导入、导出、支持大数据量,使用annotation最小化配置

JeeSite的Excel导⼊、导出、⽀持⼤数据量,使⽤annotation最⼩化配置介绍:优点:1. 简单易⽤,⽀持⼤数量导出,配置简单,代码量少。

2. ⽀持Excel 2003、2007、2010(xls、xlsx)格式。

3. ⽀持简单格式设置,对齐⽅式,排序等4. 可导出字典类型数据,⾃定义数据字段类型(例如:部门关联对象,部门名称与部门编号互转)。

5. ⽆需建⽴导⼊模板,系统⾃动⽣成。

缺点:1. 格式单⼀,⽆法导出格式⽐较复杂的表格。

2. 不能使⽤模板进⾏导⼊,导出。

使⽤⽰例:1、导出实体对象中的annotation的定义(ExcelField说明见:5、ExcelField定义说明):Java代码1. @Entity2. @Table(name = "sys_user")3. public class User extends BaseEntity {4.5. private Long id; // 编号6. ...7. ...8. ...9. private List<Role> roleList = Lists.newArrayList(); // 拥有⾓⾊列表10.11. @Id12. @ExcelField(title="ID", type=1, align=2, sort=1)13. public Long getId() {14. return id;15. }16. @ManyToOne17. @ExcelField(title="所属区域", align=2, sort=10)18. public Area getArea() {19. return area;20. }21. @ManyToOne22. @ExcelField(title="所属部门", align=2, sort=20)23. public Office getOffice() {24. return office;25. }26. @Length(min=1, max=100)27. @ExcelField(title="姓名", align=2, sort=40)28. public String getName() {29. return name;30. }31. @Length(min=0, max=100)32. @ExcelField(title="⽤户类型", align=2, sort=80, dictType="sys_user_type")33. public String getUserType() {34. return userType;35. }36. @ExcelField(title="创建时间", type=0, align=1, sort=90)37. public Date getCreateDate() {38. return createDate;39. }40. @ExcelField(title="最后登录⽇期", type=1, align=1, sort=110)41. public Date getLoginDate() {42. return loginDate;43. }44. @ManyToMany45. @ExcelField(title="拥有⾓⾊", align=1, sort=800, fieldType=RoleListType.class)46. public List<Role> getRoleList() {47. return roleList;48. }49. }2、Excel导出⽰例:Java代码1. public String exportFile(User user) {2. try {3. String fileName = "⽤户数据"+DateUtils.getDate("yyyyMMddHHmmss")+".xlsx";4. // 查询数据5. Page<User> page = systemService.findUser(new Page<User>(request, response, -1), user);6. // 1:创建Excel导出对象;2:设置数据;3:写⼊输出流;4:临时数据销毁7. new ExportExcel("⽤户数据", User.class)8. .setDataList(page.getList())9. .write(response, fileName)10. .dispose();11. return null;12. } catch (Exception e) {13. addFlashMessage("导出⽤户失败!失败信息:"+e.getMessage());14. }15. return "redirect:"+BaseController.ADMIN_PATH+"/sys/user/?repage";16. }3、Excel 导⼊⽰例:Java代码1. public String importFile(MultipartFile file) {2. try {3. int successNum = 0;4. int failureNum = 0;5. StringBuilder failureMsg = new StringBuilder();6. // 创建导⼊Excel对象7. ImportExcel ei = new ImportExcel(file, 1, 0);8. // 获取传⼊Excel⽂件的数据,根据传⼊参数类型,⾃动转换为对象9. List<User> list = ei.getDataList(User.class);10. // 遍历数据,保存数据11. for (User user : list){12. try{13. if ("true".equals(checkLoginName("", user.getLoginName()))){14. user.setPassword(SystemService.entryptPassword("123456"));15. BeanValidators.validateWithException(validator, user);16. systemService.saveUser(user);17. successNum++;18. }else{19. failureMsg.append("<br/>登录名 "+user.getLoginName()+" 已存在; ");20. failureNum++;21. }22. }catch(ConstraintViolationException ex){23. failureMsg.append("<br/>登录名 "+user.getLoginName()+" 导⼊失败:");24. List<String> messageList = BeanValidators.extractPropertyAndMessageAsList(ex, ": ");25. for (String message : messageList){26. failureMsg.append(message+"; ");27. failureNum++;28. }29. }catch (Exception ex) {30. failureMsg.append("<br/>登录名 "+user.getLoginName()+" 导⼊失败:"+ex.getMessage());31. }32. }33. if (failureNum>0){34. failureMsg.insert(0, ",失败 "+failureNum+" 条⽤户,导⼊信息如下:");35. }36. addFlashMessage("已成功导⼊ "+successNum+" 条⽤户"+failureMsg);37. } catch (Exception e) {38. addFlashMessage("导⼊⽤户失败!失败信息:"+e.getMessage());39. }40. return "redirect:"+BaseController.ADMIN_PATH+"/sys/user/?repage";41. }4、Excel 导⼊模板下载⽰例Java代码1. public String importFileTemplate() {2. try {3. String fileName = "⽤户数据导⼊模板.xlsx";4. List<User> list = Lists.newArrayList(); list.add(UserUtils.getUser(true));5. // 第三个参数设置为“2”表⽰输出为导⼊模板(1:导出数据;2:导⼊模板)6. new ExportExcel("⽤户数据", User.class, 2).setDataList(list).write(response, fileName).dispose();7. return null;8. } catch (Exception e) {9. addFlashMessage("导出⽤户失败!失败信息:"+e.getMessage());10. }11. return "redirect:"+BaseController.ADMIN_PATH+"/sys/user/?repage";12. }5、ExcelField定义说明:Java代码1. /**2. * Copyright &copy; 2012-2013 <a href="https:///thinkgem/jeesite">JeeSite</a> All rights reserved.3. *4. * Licensed under the Apache License, Version 2.0 (the "License");5. */6. package mon.utils.excel.annotation;7.8. import ng.annotation.ElementType;9. import ng.annotation.Retention;10. import ng.annotation.RetentionPolicy;11. import ng.annotation.Target;12.13. /**14. * Excel注解定义15. * @author ThinkGem16. * @version 2013-03-1017. */18. @Target({ElementType.METHOD, ElementType.FIELD, ElementType.TYPE})19. @Retention(RetentionPolicy.RUNTIME)20. public @interface ExcelField {21.22. /**23. * 导出字段名(默认调⽤当前字段的“get”⽅法,如指定导出字段为对象,请填写“对象名.对象属性”,例:“”、“”)24. */25. String value() default "";26.27. /**28. * 导出字段标题29. */30. String title();31.32. /**33. * 字段类型(0:导出导⼊;1:仅导出;2:仅导⼊)34. */35. int type() default 0;36.37. /**38. * 导出字段对齐⽅式(0:⾃动;1:靠左;2:居中;3:靠右)39. */40. int align() default 0;41.42. /**43. * 导出字段字段排序(升序)44. */45. int sort() default 0;46.47. /**48. * 如果是字典类型,请设置字典的type值49. */50. String dictType() default "";51.52. /**53. * 反射类型54. */55. Class<?> fieldType() default Class.class;56.57. }。

jeesite说明文档3.内置组件应用

jeesite说明文档3.内置组件应用

第3章内置组件的应用作者:ThinkGem更新日期:2014-01-05 1.经常使用组件1.1.布局组件布局文件配置:/ jeesite/src/main/webapp/WEB-INF/默许布局文件:/ jeesite/src/main/webapp/WEB-INF/views/layouts/非公共,自己成立的布局文件:/ jeesite/src/main/webapp/WEB-INF/views/模块途径/layouts/布局文件.jsp利用布局文件:JSP的head里添加:<meta name="decorator" content="default"/> 1.2.用户工具应用处景:在java文件或jsp页面上,获取当前用户相关信息1.获取当前用户:1)();2)()3)${fns:getUser()}2.获取当前用户部门:1)()2)${fns:getOfficeList()}3.获取当前用户区域:1)()2)${fns:getAreaList()}4.获取当前用户菜单:1)()2)${fns:getMenuList()}5.获取当前用户缓存:1)(key);2)${fns:getCache(cacheName, defaultValue)}6.设置当前用户缓存:1)(key);1.3.全局缓存应用处景:系统字典1.设置应用程序缓存:(key);2.获取应用程序缓存:(key);1.4.字典工具应用处景:系统全局固定的字典数据,java或jsp中获取字典相关数据。

1.依照类型和值获取字典标签(列表取值):a)(String value, String type, String defaultValue)b)${ fns:getDictLabel (value, type, defaultValue)}2.依照类型和标签获取字典值(依照标签取值):a)(String label, String type, String defaultLabel)b)${fns:getDictValue(label, type, defaultValue)}3.依照类型获取字典列表(下拉框,复选框,单项选择框):a)(String type)b)${fns:getDictList(type)}1.5.功能权限操纵应用处景:访问功能授权,查看权限,编辑权限,导入权限,审核权限。

Activiti6.0工作流使用说明文档V1.0

Activiti6.0工作流使用说明文档V1.0

Activiti工作流使用说明文档V1.02019年8月9日目录一、模型设计器 (4)1.1任务 (5)1.1.1 用户任务 (5)1.1.2 服务任务 (5)1.1.3 脚本任务 (6)1.1.4 业务规则任务 (7)1.1.5 接收任务 (7)1.1.6 手动任务 (7)1.1.7 邮件任务 (8)1.1.8 Camel任务 (8)1.1.9 Mule任务 (8)1.1.10 决策任务 (9)1.2构造 (10)1.2.1 子流程 (10)1.2.2 事件子流程 (11)1.3泳道列表 (11)1.4分支 (12)1.4.1 排他分支 (12)1.4.2 并行分支 (12)1.4.3 包容分支 (13)1.4.4 事件分支 (13)1.5事件 (14)1.5.1 定时器事件 (14)1.5.2 信号事件 (14)1.5.3 消息事件 (16)1.5.4 错误事件 (16)1.5.5 边界事件 (17)1.5.6 中间事件 (18)1.5.7 开始事件 (18)1.5.8 结束事件 (18)1.6属性元素 (18)1.6.1 异步 (18)1.6.2 排他 (19)1.6.3 补偿 (19)1.6.4 中断任务 (20)1.6.5 分配 (21)1.6.6 到期时间 (22)1.6.7 表单 (22)1.6.8 表达式 (24)1.6.9 多实例 (25)1.7监听器配置 (28)1.7.1 执行监听器 (29)1.7.2 任务监听器 (30)1.7.3 事件监听器 (32)1.7.4 全局事件监听器 (33)二、workflow-service (34)2.1数据更新逻辑 (34)2.2方法表达式配置 (35)2.3自定义外置表单 (36)2.4事件监听器配置 (37)2.5方法调用说明 (37)三、常见问题 (37)一、模型设计器模型设计器项目qqdznyyglpt-workflow-designer主要完成自定义流程、表单设计,可以在模型设计器中完成整个功能的流转,但仅限与admin(密码默认为test)相同租户的用户可使用全功能,其他租户用户登录后只有流程设计、表单配置、决策表配置功能,无法在设计器进行流程执行。

中科汇联easySite内容管理系统使用手册

中科汇联easySite内容管理系统使用手册

内容管理系统师使用手册Version: 1.0目录1.系统操作界面 (5)1.1 系统启动登陆方法 (5)1.2 系统界面与按钮说明 (5)2.颜色代码列表 (7)2.1 功能模块简介 (9)3.频道管理 (13)3.1 频道简介 (13)3.2 频道设置 (13)3.3 频道简单操作 (15)4.模版管理 (18)4.1 模版简介 (18)4.2 如何应用频道模版 (19)4.3 如何按系统向导增加一个频道模板 (19)4.4 如何按系统向导增加一个模块模版 (20)4.5 如何按系统向导增加一个信息发布细览模版 (21)4.6 如何按系统向导增加一个内容管理模版 (21)4.7 如何编辑/复制/删除一个模版 (22)5.模块管理 (23)5.1 模块简介 (23)5.2 如何设置模块属性 (23)5.3 模块基本操作 (25)6.各个模块操作简介 (27)6.1 信息发布 (27)6.2 文字/HTML (28)6.3 链接 (29)6.4 图片 (31)6.5 网上调查 (32)6.7 通知公告 (34)6.8 I FARME (36)6.9 RSS新闻 (37)6.10 常见问题 (38)6.11 XML/XSL转换 (39)6.12 联系人 (40)6.13 讨论组 (41)6.14 自定义表单 (42)6.15 在线视频 (44)6.16 文件下载 (46)6.17 在线广告 (48)6.18 意见反馈 (50)6.19 页面选项 (50)6.20 日程活动 (51)6.21 在线用户 (54)6.22 在线文档 (54)6.23 网站地图 (55)6.24 强制链接 (55)6.25 用户帐号 (55)6.26 用户登录 (56)6.27 二级菜单 (56)6.28 模块镜像 (58)6.29 分页内容 (59)6.30 高级论坛 (61)6.31 通用MIS (62)6.32 内容管理模块 (65)7.站点管理 (68)7.1 站点设置管理 (68)7.1.1站点基本设置 (70)7.1.2站点基础样式设置 (71)7.1.3频道模板管理 (71)7.1.5设置用户注册类型和信息 (72)7.2 频道管理 (73)7.3 广告商管理 (75)7.4 站点日志统计分析 (76)7.5 邮件群发 (76)7.6 站点资源文件管理 (77)7.7 回收站管理 (79)8.角色权限管理 (80)8.1 用户管理 (80)8.2 角色管理 (80)8.3 如何分配频道角色权限 (82)8.4 如何分配模块角色权限 (82)8.5 如何E-MAIL授权确认注册用户 (83)9.主机管理 (84)9.1 主机配置 (84)9.2 站点管理 (87)9.3 模块组件管理 (89)9.4 主机资源文件管理 (90)9.5 广告商管理 (92)9.6 SQL管理 (92)9.7 备份恢复 (92)9.8 产品激活 (93)9.9 事件查看器 (93)1. 系统操作界面1.1 系统启动登陆方法直接在IE地址栏中输入即可进入系统(网站),此时是非登陆状态,如果是各个学校则在IE中直接输入自己学校的域名,例如北京学校,则输入就可以进入系统了。

jeesite 说明文档-2.文件结构与配置

jeesite  说明文档-2.文件结构与配置

第2章文件结构与配置作者:ThinkGem更新日期:2014-4-8 1.文件结构1.1.源码目录src/main/java1.2.资源目录src/main/resource1.3.发布目录src/main/webapp1.4.执行目录dbbin2.jeesite.properties2.1.数据源配置# 数据库驱动,连接设置。

jdbc.driver=oracle.jdbc.driver.OracleDriverjdbc.url=jdbc:oracle:thin:@127.0.0.1:1521:orclername=jeesitejdbc.password=123456# 连接池设置,初始大小,最小,最大连接数。

jdbc.pool.init=1jdbc.pool.minIdle=3jdbc.pool.maxActive=20# 测试连接sql语句jdbc.testSql=SELECT'x'FROM DUAL2.2.系统配置# 配置产品名称,版权日期和版本号productName=JeeSite AdmincopyrightYear=2014version=V1.1.1# 是否是演示模式,如果是,则如下模块,无法进行保存操作# sys: area/office/user/role/menu/dict, cms: site/category demoMode=false# 管理端跟路径adminPath=/a# 前端跟路径frontPath=/f# 信息发布时的URL后缀,可配置HTML后缀的页面进行缓存urlSuffix=.html# 分页大小,默认每页15条page.pageSize=15# 硕正组件是否使用Cache(一般开发阶段,关闭Cache)eCache=false# 设置通知间隔访问时间,单位毫秒.oa.notify.remind.interval=600002.3.框架参数配置# 设置SESSION超时时间,web.xml里设置无效,单位毫秒. session.sessionTimeout=120000session.sessionTimeoutClean=120000# 缓存设置ehcache.configFile=cache/ehcache-local.xml#ehcache.configFile=cache/ehcache-rmi.xml# 首页地址web.view.index=/a# 视图文件配置,前缀和后缀web.view.prefix=/WEB-INF/views/web.view.suffix=.jsp# 最大上传字节数 10M=10*1024*1024(B)=10485760web.maxUploadSize=10485760# 设置日志拦截器,拦击的URI,@RequestMapping 值web.logInterceptExcludeUri=/,/login,/sys/menu/tree,/sys/menu/treeData,/oa/oaNotify/self/countweb.logInterceptIncludeRequestMapping=save,delete,import,updateSort# 工作流配置activiti.isSynActivitiIndetity=falseactiviti.export.diagram.path=c:/activiti_diagram#activiti font (windows font: \u5B8B\u4F53 linux font: simsun)activiti.diagram.activityFontName=\u5B8B\u4F53belFontName=\u5B8B\u4F53activiti.form.server.url=http://127.0.0.1:8075/xxxx3.pom.xml3.1.修改项目名称artifactId:项目名称version:版本修改完成后运行eclipse.bat重新生成项目文件。

JeeSite

JeeSite

JeeSite企业信息管理系统基础框架目录1.JEESITE概述 (4)1.1.简介 (4)1.2.为何选择 (4)1.3.相关技术 (5)1.4.安全考虑 (6)2.管理功能演示 (7)2.1.管理登录 (7)2.1.1.登录界面 (7)2.1.2.主题切换 (8)2.2.总体介绍 (11)2.2.1.客户端验证 (11)2.2.2.提交结果信息 (11)2.3.控制面板 (12)2.3.1.个人资料 (12)2.3.2.修改密码 (12)2.4.机构用户 (12)2.4.1.用户管理 (12)2.4.2.机构管理 (14)2.4.3.区域管理 (16)2.5.系统设置 (18)2.5.1.菜单管理 (18)2.5.2.角色管理 (19)2.5.3.字典管理 (21)2.6.内容管理 (22)2.6.1.内容管理 (22)2.6.2.评论管理 (27)2.6.3.栏目管理 (28)2.6.4.站点管理 (29)2.6.5.公共留言 (31)2.6.6.文件管理 (32)2.6.7.网站展示(基础主题) (34)3.功能组件 (40)3.1.U TILS (41)3.2.T AGLIB (42)3.3.EL F UNCTION (42)3.4.J AVA S CRIPT (42)4.快速体验 (42)4.1.在线体验 (42)4.2.本地体验 (43)5.交流、反馈、参与贡献 (43)6.未来开发计划 (43)1.JeeSite概述1.1.简介JeeSite是一个开源的企业信息管理系统基础框架。

主要定位于“企业信息管理”领域,可用作企业信息管理类系统、网站后台管理类系统等。

JeeSite是非常强调开发的高效性、健壮性和安全性的。

JeeSite是轻量级的,简单易学,本框架以Spring Framework为核心、Spring MVC(相比Struts2更容易上手、更易用)作为模型视图控制器、Spring Data JPA + Hibernate作为数据库操作层,此组合是Java界业内最经典、最优的搭配组合进行封装。

jeesite流程

jeesite流程

Jeesite流程1.Jeesite流程2.关于shiro授权3.Orm对象关系映射4.Mybatis的总体流程是一.Jeesite流程(主要是jsp,entity,dao,dao.xml,service,controller)(1).MyBatisRegisterDao.xml(2).MyBatisRegisterDao.java(3).Register.java实体(4).RegisterService.java(5).RegisterController.java(6).Register.jsp二.关于shiro授权1.Shiro授权的三要素是:权限,角色,用户2.三要素的关联:因为通过声明权限我们仅仅能了解这个权限在项目中能做什么,而不能确定谁有这个权限,所以,我们需要在应用程序中对用户和权限建立关系。

3.在项目上: 我们一般将权限分配给某个角色,然后将这个角色分配给一个或多个用户,例如:修改的权限是只有管理员才拥护的,那么,在这个时候,管理员就相当于被设于拥有修改权限的用户,4.shiro支持三种授权方式:编码实现,注解实现,jsp Tag实现三.Orm对象关系映射1.用于实现面向对象编程语言里不同类型系统的数据之间的转换2.在jeesite框架中用到的就是mybatis四.Mybatis的总体流程是1.加载配置并初始化,其触发条件是加载配置文件将SQL 的配置信息加载成为一个个MappingStatement对象(包括传入参数映射配置,执行的sql语句,结果映射配置) 存储在内存中2.接收调用请求,其触发条件是调用mybatis中的api,将请求传递给下层的请求处理层处理3.处理操作请求,api接口层传递传递请求过来,传入sql的id和传入参数,根据sql的id查找对应的MappingStatement对象,和传入参数对象解析MappingStatement对象,得到最终要执行的sql和执行传入参数,后获取数据库连接,根据最终得到的sql语句和传入参数到数据库执行,得到最终的处理结果,最后释放资源4.将最终处理结果返回。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第6章工作流的应用实例
作者:ThinkGem
更新日期:2014-01-03 1新建流程模型
在线办公→流程管理→模型管理→新建模型
点击“提交”后会立即跳转到“流程在线设计器”页面,请看下一章节2在线流程设计器
在线办公→流程管理→模型管理→模型管理→编辑
注意:此功能不支持IE,请用谷歌或火狐浏览器编辑。

2.1设置流程属性
●名称:流程定义名称
●描述:流程定义描述
●流程标识:流程定义KEY,对应procDefKey,用来标识一个流程
2.2拖拽形状元素
●Start event:开始事件
●End entit:结束事件
●User task:用户任务活动
●Service task:服务任务活动
●Exclusive gateway:排它网关通道,只能有一条分支执行,如if else
●Parallel gateway:并行网关通道,所有分支一块执行
●Enclusive gateway:包含网关通道,执行符合条件的分支
参考:/docs/activiti/#bpmnConstructs
2.3流程发起人流程变量
在开始节点的属性中设置“流程发起人”变量名:如:apply
这时,任务的参与者可设置${apply},来指定谁发起谁执行
如发起人发起流程,被驳回是,驳回到发起人,可使用方法。

2.4挂接表单地址
●全局表单:新建流程时或活动元素上未设置表单标识时调用的表单,位
于开始事件属性中“表单标识”字段,指定表单访问地址。

●活动表单:当前步骤使用的表单,使用活动节点属性“表单标识”字段。

2.5设置参与者
在活动节点属性中找到“参与者”属性,点击“…”弹出如下窗口
●assignee:任务执行人,设置系统中的“登录名”(loginName)。

●candidateUsers:任务执行人,多个用逗号“,”隔开。

●candidateGroups:任务执行组,多个用逗号“,”隔开,设置系统中的“角
色英文名(enname)”。

assignee和candidateUsers的区别是:assignee不需要签收任务,直接可执行任务;candidateUsers为竞争方式分配任务,被指定人待办中都有一条任务,谁先签收谁就获得任务的执行权。

参与者可指定流程变量(EL表达式),动态指定参与者,如:${processer} 2.6设置流转条件
在流转线的属性中找到“流转条件”,这里,写EL表达式,返回true或false,如:${flag == ‘1’}
2.7保存流程设计图
工具栏上点击“保存”按钮
填写名称和描述,点击“保存”按钮。

此时可点击浏览器上的“叉号”关闭流程设计窗口。

2.8注意事项
所有编号,如:模型编号、流程编号、活动节点编号,都不允许以数字开头。

3部署流程
上步咱们学习了流程设计,产生流程设计图,如何将我们的图部署到系统中
并使用呢,请看如下操作:
●在线办公→流程管理→模型管理→模型管理→部署
●接着系统会提示“部署成功”信息,如果提示错误,说明你流程设计图
有问题,请检查错误,重新执行部署操作。

●另外两种部署方法,通过eclipse插件设计好的流程:
✧在线办公→流程管理→流程管理→部署流程→选择流程.bpmn.xml
✧编写并执行ant脚本,启动系统将自动部署
/ jeesite/src/main/resources/act/build.xml。

●设置流程分类:在流程管理中直接点击流程分类进行设置。

●同一标识流程,部署多次,版本号自动加1
●正在运行的流程,再次部署新流程后,正在运行的流程还按照原来流程
设置走,再次新建的流程使用新流程走。

4流程表单流转
4.1数据库设计
使用erm进行数据库建模,然后使用代码生成工具生成增删改查代码。

流程业务表中必须包含,如下字段:
生成ddl导入数据库
4.2代码生成代码
功能访问路径与第2章挂接表单对应(/oa/testAudit/form);
请参考:“在线办公->个人办公->审批测试”模块
源码:com.thinkgem.jeesite.modules.oa.*. TestAudit*.java,testAudit*.jsp 4.3启动流程接口
TestAuditService.java第62行,传递参数如下:
/**
* 启动流程
* @param procDefKey 流程定义KEY
* @param businessTable 业务表表名
* @param businessId 业务表编号
*/
@Transactional(readOnly = false)
public void startProcess(String procDefKey, String businessTable, String businessId)
4.4提交任务接口
TestAuditService.java第123行,传递参数如下:
/**
* 提交任务, 并保存意见
* @param taskId 任务ID
* @param procInsId 流程实例ID,如果为空,则不保存任务提交意见
* @param comment 任务提交意见的内容
* @param vars 任务变量
*/
@Transactional(readOnly = false)
public void complete(String taskId, String procInsId, String comment, Map<String, Object> vars)
4.5视图流转信息调用组件
传递流程实例ID,如下:
<tags:actHistoicFlow procInsId="${testAudit.act.procInsId}"/>
5测试执行
在线办公→个人办公→新建任务→test_audit→启动流程
系统自动调用流程设计时设置的开始节点中的“表单标识”地址
这事待办人的待办中出现一条待办项
点击进入办理,下方显示流转信息:
流程跟踪图:
在待办中点击“环节名称”,进入流程跟踪图界面
办理任务,最下方显示流转信息:。

相关文档
最新文档