1. 工作规划:完成系统请假管理的功能。

(1)根据系统需求完成请假管理model;

(2)进行请假流程的deployment;

(3)进行请假流程的流程定义管理;

(4)进行流程配置管理;

(5)发起请假管理模块;

(6)进行请假管理及之后各UserTask任务页面的表单页面编写。

(7)在各级页面设置代理功能

第一步:根据系统需求完成请假管理model

我想根据系统前端界面的操作过程,获取数据库的操作日志,从而得知有哪些表被变动了。所以,我要把mysql的日志功能打开:

可是我发现,网上找不到mysql 5.7 的正确打开方式,最后还是csdn的lvjin老师的博客给出了正确的配置方式。

mysql 新老版本之间的差异性还是有的。

但是,日志的原生格式可视化性较差,利用navicat的日志查看工具来看,效果更好一点儿。

为了得到程序的正常执行流程,我想通过slf4j进行log功能,并且lemon OA 已经集成这样的功能,直接调用就好了。

但是slf4j不会用,利用关键字“slf4j+ api”找到了slf4j的api页面:http://www.slf4j.org/api/org/slf4j/Logger.html

利用关键字“slf4j 使用教程”找到了一篇博客使用教程:http://yangzb.iteye.com/blog/245844

lemon OA 的 新建model操作java语句是:

RepositoryService repositoryService = processEngine.getRepositoryService();Model model = repositoryService.getModel(id);if (model == null) {model = repositoryService.newModel();repositoryService.saveModel(model);id = model.getId();}

,会执行如下三条sql语句:

(1)select * from ACT_GE_PROPERTY where NAME_ = 'next.dbid'
(2)update ACT_GE_PROPERTY SET REV_ = 24, VALUE_ = '57501' where NAME_ = 'next.dbid' and REV_ = 23  

(3)insert into ACT_RE_MODEL(ID_, REV_, NAME_, KEY_, CATEGORY_, CREATE_TIME_, LAST_UPDATE_TIME_, VERSION_, META_INFO_, DEPLOYMENT_ID_, EDITOR_SOURCE_VALUE_ID_, EDITOR_SOURCE_EXTRA_VALUE_ID_, TENANT_ID_)values('55001', 1,null,  null,  null,'2015-08-10 11:52:34.865', '2015-08-10 11:52:34.865',1, null, null, null, null,'')

由于activiti引擎图的绘制比较麻烦,我原打算通过数据库内数据的直接复制,将lemon老的请假流程model数据,进行行级复制,可是我发现老的数据不在了。而且在act_ge_bytearray表中的数据不是xml,而是json,如下图:

所以,利用手动,自己拖拽画一下图吧,以后避免不了的。

在modeler建模器中,连接线不是通过手动放上去而是当你制定下一级元素时,它能够为你自动添加。我一开始老实加不上去。

第二步 进行请假流程的deployment

在点击部署按钮后,会发生如下事件:

当在modeler建模器中,点击保存按钮后,会发生如下sql:

-- 从model表中,获得source表编号id
select * from ACT_RE_MODEL where ID_ = '55007'-- 在bytearray表中,根据编号id,获得具体的modeler
建模器类型数据
select * from ACT_GE_BYTEARRAY where ID_ = '55008'--  ACT_RE_PROCDEF
select *from ACT_RE_PROCDEF where KEY_ = 'process' and(TENANT_ID_ = ''  or TENANT_ID_ is null) andVERSION_ = (select max(VERSION_) from ACT_RE_PROCDEF where KEY_ = 'process' and (TENANT_ID_ = '' or TENANT_ID_ is null))-- ACT_RU_JOB
select * from ACT_RU_JOBwhere HANDLER_TYPE_ = 'timer-start-event'and HANDLER_CFG_ =  'process'-- ACT_RU_EVENT_SUBSCR
select * from ACT_RU_EVENT_SUBSCRwhere (EVENT_TYPE_ = 'message')and ( (CONFIGURATION_ = 'process:20:55020')or(PROC_DEF_ID_ = 'process:20:55020'))        and (TENANT_ID_ = '' or TENANT_ID_ is null)-- ACT_RU_EVENT_SUBSCR
select * from ACT_RU_EVENT_SUBSCRwhere (EVENT_TYPE_ = 'signal')and ( (CONFIGURATION_ = 'process:20:55020')or(PROC_DEF_ID_ = 'process:20:55020'))and (TENANT_ID_ = '' or TENANT_ID_ is null)-- 执行插入操作insert into ACT_RE_DEPLOYMENT(ID_, NAME_, CATEGORY_, TENANT_ID_, DEPLOY_TIME_)values('55021', 'vacation_requset003', null, '', '2015-08-10 14:35:11.611')-- 执行数据更新insert into ACT_GE_BYTEARRAY(ID_, REV_, NAME_, BYTES_, DEPLOYMENT_ID_, GENERATED_)values ('55022', 1, 'vacation_requset003.bpmn20.xml', _binary'<?xml version=\"1.0\" encoding=\"UTF-8\"?>
<definitions xmlns=\"http://www.omg.org/spec/BPMN/20100524/MODEL\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:activiti=\"http://activiti.org/bpmn\" xmlns:bpmndi=\"http://www.omg.org/spec/BPMN/20100524/DI\" xmlns:omgdc=\"http://www.omg.org/spec/DD/20100524/DC\" xmlns:omgdi=\"http://www.omg.org/spec/DD/20100524/DI\" typeLanguage=\"http://www.w3.org/2001/XMLSchema\" expressionLanguage=\"http://www.w3.org/1999/XPath\" targetNamespace=\"http://www.activiti.org/processdef\"><process id=\"process\" isExecutable=\"true\"><startEvent id=\"sid-73FC1A6A-796D-4A5F-9FFE-F2DBBEDE2CD2\"></startEvent><userTask id=\"sid-C0D9D4BF-4B7C-4C30-9354-D5AE8988292B\" name=\"填写请假单\"></userTask>-- xml数据</bpmndi:BPMNEdge></bpmndi:BPMNPlane></bpmndi:BPMNDiagram>
</definitions>', '55021', 0)-- 插入图片insert into ACT_GE_BYTEARRAY(ID_, REV_, NAME_, BYTES_, DEPLOYMENT_ID_, GENERATED_)values ('55023', 1, 'vacation_requset003.process.png', _binary'?PNG\0\0\0
IHDR\0\0n\0\01\0\0\0?\0\0DKIDATx???S?w*^??z??:ֱ^?:????WG?t۱???Zא]Ԉ??]?`?K,e??aI????R?RʥX???kQ??*ZD???[J?؞??????l???$??orr?Ir?N~??=?S-- 图片二进制数据\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0?!??ǻ1??0\0\0\0IEND?B`?', '55021', 1)-- 更新 act_re_procdef表
insert into ACT_RE_PROCDEF(ID_, REV_, CATEGORY_, NAME_, KEY_, VERSION_, DEPLOYMENT_ID_, RESOURCE_NAME_, DGRM_RESOURCE_NAME_, DESCRIPTION_, HAS_START_FORM_KEY_, SUSPENSION_STATE_, TENANT_ID_)values ('process:21:55024',1,'http://www.activiti.org/processdef',null,'process', 21,'55021','vacation_requset003.bpmn20.xml','vacation_requset003.process.png',null,0,1,'')-- 最后设置关联 将model和deployment关联起来update ACT_RE_MODEL setREV_ = 6,NAME_ = 'vacation_requset003',KEY_ = null,CATEGORY_ = null,LAST_UPDATE_TIME_ = '2015-08-10 14:35:12.294',VERSION_ = 1,META_INFO_ = null,DEPLOYMENT_ID_ = '55021',EDITOR_SOURCE_VALUE_ID_ = '55008',EDITOR_SOURCE_EXTRA_VALUE_ID_ = null,TENANT_ID_ = ''where ID_ = '55007' and REV_ = 5

上面的sql,都是用来操作sql语句的,其实为了能够更好地配置流程,咖啡兔老师还建立了以bpm_为前缀的表群,这些表主要是配置表的node节点数据,如下:

insert into BPM_CONF_BASE (PROCESS_DEFINITION_ID, PROCESS_DEFINITION_KEY, PROCESS_DEFINITION_VERSION) values ('vacation-test:3:55036', 'vacation-test', 3)insert into BPM_CONF_NODE (CONF_BASE_ID, CODE, CONF_FORM, CONF_LISTENER, CONF_NOTICE, CONF_OPERATION, CONF_RULE, CONF_USER, NAME, PRIORITY, TYPE) values (36, 'vacation-test', 0, 0, 2, 2, 2, 2, '全局', 1, 'process')--  还有很多insert into BPM_CONF_NODE (CONF_BASE_ID, CODE, CONF_FORM, CONF_LISTENER, CONF_NOTICE, CONF_OPERATION, CONF_RULE, CONF_USER, NAME, PRIORITY, TYPE) values (36, 'sid-27074EEB-618B-4A8E-8A7E-E3D44B650878', 0, 0, 0, 0, 0, 0, '调整申请', 8, 'userTask')

我们从以上sql语句可以知道,其实deploy操作,是一个非常复杂的步骤,在这一步中:

系统从act-ge-bytearray表中,根据原始的modeler绘图数据,首先进行语法校验,合格的话,就进行“编译操作”,将图形转换成xml数据和bng图片数据,然后存入act-ge-bytearray表,并且在act-re-procdef表中,建立一条流程记录,最后在act-re-deployment表中建立数据。

然后,在bpm_表群中,建立数据,这里会对整个流程进行按元素分解,存入base表和node表中,步骤超多的。

第四步 进行请假流程的流程定义管理和进行流程配置管理

流程管理的总后台页面是:

而这个页面是为了操作数据库中的xml文件

而我们的参考xml文件是这样的:

我现在还不清楚,具体的设置过程,所以需要一步一步设置来看一下xml改变的过程》》》》》》

现在,我卡在了Activiti modeler这个部分,正在网上到处搜寻这个建模器的使用教程。

转载于:https://www.cnblogs.com/haore147/p/4719922.html

2015-8-10工作日志相关推荐

  1. 职业成长微习惯(一):随手记录工作日志

    按:半瓦工作11年,工资涨了4,5倍:有快速成长,也有懈怠和跳坑:不舒服中逐渐看到了未来更多的可能性.想写几篇文章分享我的四个微习惯:随手记录工作日志,英语(关注信息来源和非母语资料),基本功与素养, ...

  2. 2015年10月15日作业

    2015年10月15日作业 中级学员---徐化栋 一.项目质量管理作业 1. 项目质量规划的方法/技术和工具,并简要描述: 1) 效益/成本分析 2) 基准比较 3) 流程图 4) 实验设计 5) 质 ...

  3. 高级学员:2015年10月24日作业

    高级学员:2015年10月24日作业 一.信息安全系统和安全体系 1.信息安全系统三维空间示意图中,X.Y.Z轴的名称,及它们各自包括的内容: Y轴是OSI网络参考模型,包括:物理层.链路层.网络层. ...

  4. 【机器学习】人工智能典型应用:班组工作日志转绩效类型

    应用背景: 通信运检一班绩效的机制是利用每天的工作日志,将工作内容按照<一线班组工作积分制考核实施方案(20190108修订)>中的工作基本额定标准库进行对应,就可以知道每天的工分,每月工 ...

  5. 工作日志之个人统计篇

    前面的工作日志分享篇中我们详细介绍了如何将开发人员的工作信息分享给自己的主管和团队中的其他人.一般来说,研发工作者了解他们的工作状况时,通常并不会过多的去关注每一个研发工作的细节,而往往更加需要关注的 ...

  6. 2015年10月15日项目经理中项作业(质量管理与人力资源管理)

    2015年10月15日作业(10.11章) 10章.质量管理: 1.项目质量规划的方法/技术和工具,并简要描述: 效益/成本分析 基准比较 流程图 实验设计 质量成本分析 质量功能展开(QFD) 过程 ...

  7. 2015年10月26日作业

    2015年10月26日作业 一.PMI权限(授权)管理基础设施 1.访问控制包括哪2个重要过程,及内容: 答:(1)通过"鉴别"来检验主体的合法身份:(2)过"授权&qu ...

  8. 计算机专业毕业设计工作日志,计算机科学技术系毕业设计工作日志

    计算机科学技术系毕业设计工作日志 (9页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 14.9 积分 .计算机科学技术系2012届毕业生毕业设计(论文)工 ...

  9. Python+Django毕业设计中小型企业工作日志管理系统APP(程序+LW+部署)

    项目运行 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclis ...

  10. 工作日志之误用篇 工作日志之目的

    原谅连接: 工作日志之误用篇 http://www.cloudtopo.com/rd/worklog_misunderstand.html 工作日志之目的 http://www.cnblogs.com ...

最新文章

  1. F-LOAM:基于激光雷达的快速里程计和建图
  2. Java异常简单介绍
  3. 我的学习之路_第十六章_xml
  4. OSPF的LSA类型 ——连载五自治系统外部的LSA
  5. Web开发的那点事--软件复用
  6. win10系统,在安装masm32的时候出现DELETE operation of EXE file has failed 解决方案
  7. MySQL工作笔记-解决导入外部sql中文乱码问题
  8. Haybale Guessing (POJ-3657)
  9. 安卓应用安全指南 4.9 使用`WebView`
  10. python是什么意思-python是什么意思
  11. tomcat部署安全证书文件(阿里云SSL证书)
  12. MyBatis入门程序案例
  13. 腾讯联手联通推出车联网“网卡”,打“内容”+“流量”的组合拳
  14. 批处理html转excel,批量Excel转TXT工具(Batch Excel to Text Converter)v2020.12.1118官方免费版...
  15. sun存储的串口连接管理_修改SUN设备管理IP的步骤
  16. AndroidCamera学习笔记二 基本流程及框架
  17. EI检索ISTP检索ICFMD 2011年制造与设计科学技术会议
  18. js每日一题(12)
  19. 盲打打字php,盲打26键打字口诀是什么
  20. aspx创建控件时出错,服务器标记的格式不正确

热门文章

  1. 【C/C++学习】之七、指向函数的指针
  2. 运用java 多线程模拟火车售票。。。。
  3. xpath-helper: 谷歌浏览器安装xpath helper 插件
  4. 3分钟学会SVN:SVN快速上手
  5. JavaScript服务器端开发技术(对象属性的枚举与查询)
  6. JSON数组分配输出每个li
  7. 二手房买卖砍价最新攻略 帮你花少钱买好房
  8. H3C交换机设置DHCP中继,配合Linux 服务器为多VLAN提供DHCP地址分配服务
  9. 正则表达式 学习笔记3.4
  10. 使用final修饰局部变量???