2015-8-10工作日志

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) and
          VERSION_ = (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_JOB
      where HANDLER_TYPE_ = ‘timer-start-event‘
      and HANDLER_CFG_ =  ‘process‘

-- ACT_RU_EVENT_SUBSCR
select *
    from ACT_RU_EVENT_SUBSCR
    where (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_SUBSCR
    where (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 set
      REV_ = 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这个部分,正在网上到处搜寻这个建模器的使用教程。

时间: 2024-11-11 14:23:03

2015-8-10工作日志的相关文章

2015年10月18日---工作报告

工作汇报 在刚刚的一个星期,我做了如下三项工作,现在对图像编码的学习正处于知识积累期,对视频编码有了一些了解.但是还有很多基础知识需要去看. 第一,   正在阅读您给我们的视频编码书籍.看到20多页,但在粗略的浏览后面的章节,我发现视频编码的数学要求很高,很多公式看不懂,估计需要多学习这方面的知识. 第二,   在阅读一篇<高效视频编码>的论文,由中科院大学的沈燕飞博士写的.准备细看,以备做报告时使用. 第三,   除了做以上的三件事之外,还在自学MatLab和泛函分析等基础知识.同时在学习选

工作日志2014-07-04

6:00起床 7:10坐上校车13.6元 8:15到公司 12:00煎饼果子5元 工作时间: 设置界面 工作日志2014-07-04,布布扣,bubuko.com

陈嘉 2015/07/10 个人文档

姓名 陈嘉 日期 2015/7/10 主要工作及心得 在其他部分的代码合并完成后,我们开始了调试工作.我和赵晓铮负责操作员的调试. 程序合并完成运行后,出现了很多问题.一开始,输入用户名和密码后,并没有反应.没有输入提示信息.我们根据控制台显示的错误信息一一进行修改. 同过修改我明白了前期每个模块质量的重要性.任何一个模块的一点小问题都会导致系统不能正常运行.比如数据结构,函数传参.我们找到问题后由编写相关代码的同学进行修改,最后可以成功实现功能. 遇到的问题 调试过程中遇到无法登录.点击提交没

张珺 2015/07/10 个人文档

姓名 张珺 日期 中蓝公寓蓝芳园D507,2015/07/10 主要工作及心得 今天,我参与了代码的合并工作,并和仁笑萱完成了对提供者的修改. 今天的调试,让我对程序的执行流程.数据库的连接等方面有了更深入的理解.同时,让我发现了一些之前编写时出现的错误. 遇到的问题 今天遇到的问题主要在提供者的修改方面: 无法连接数据库 点击按钮后无反应 返回信息不符合预期 解决方法 对于数据库的问题,我们通过上网查资料.询问其他同学等方式找到问题,原因是由于我们在另一台电脑上进行的对提供者进行的修改,但两台

工作日志2014-07-09

5:00起床 7:00到公司2.5元 12:00吃饭8元 19:30到家5元 今天支出:15.5元 工作时间: 1..ipa图片资源提取工具Extract http://blog.csdn.net/totogo2010/article/details/9061317 2.处理上拉加载效果异常(10:27未解决,不解决了) 工作日志2014-07-09,布布扣,bubuko.com

2015年10月26日作业

高级学员:2015年10月26日作业 一.PMI权限(授权)管理基础设施 1.访问控制包括哪2个重要过程,及内容: 访问控制包括两个重要过程: 1.认证过程,通过"鉴别"来验证主题的合法身份: 2.授权管理,通过"授权"来赋予用户对某项资源的访问权限: 2.简述PMI与PKI有何不同? 哪个是"你能做什么",哪个是"你是谁" PMI主要进行授权管理,证明这个用户有什么权限,能干什么,即"你能 做什么" PK

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

2015年10月15日作业(10.11章) 10章.质量管理: 1.项目质量规划的方法/技术和工具,并简要描述: 效益/成本分析 基准比较 流程图 实验设计 质量成本分析 质量功能展开(QFD) 过程决策程序图法(PDPC) 2.项目质量保证的方法/技术和工具,并简要描述: 项目质量管理通用方法(     ) 过程分析 项目质量审计 3.项目质量控制的方法/技术和工具,并简要描述: 测试 检查 统计抽样 6σ 因果图 流程图 直方图 检查表 散点图 排列图 控制图 相互关系图 亲和图 树状图 矩

中级学员:2015年10月26日作业

中级学员:2015年10月26日作业一.变更管理1.变更的工作程序:2.变更初审的4条内容:3.对进度变更控制,包括哪些主题.二.安全管理1.哪些技术来实现信息的保密性:2.哪些技术来实现信息的完整性:3.哪些技术来实现信息的可用性:4.可靠性的定义,及度量方法.5.应用系统常用保密技术有哪些?6.保障应用系统完整性的方法有哪些?7.机房供配电分为哪8种:8.紧急供电.稳压供电的内容:9.应用系统运行中,涉及4个层次的安全,这4个层次的安全,按粒度从粗到细进行排列:10.哪些属于系统级安全:11

将datagrid中数据导出到excel中 -------&lt;&lt;工作日志2014-6-6&gt;&gt;

1.下载log4j jar包,放入lib目录, 导入项目中   下载地址 http://logging.apache.org/ 2.创建log4j.properties 文件  目录 Src  下面是一个 log4j.properties的例子(注:来源于网上,非本人所写) ################################################################################ # 其语法:log4j.rootLogger = [ leve

linux运维实战练习-高级班-2015年10月18日-10月24日课程作业(练习)安排

一.作业(练习)内容: 1.阐述Linux HA Cluster的使用背景: 2.总结Linux HA Cluster的系统组成,HA Cluster的工作模型: 3.通过LAMP组合,基于heartbeat v2 crm实现HA:要求,部署wordpress,用于编辑的文章中的任何数据在节点切换后都能正常访问: 二.完成时间: 2015年10月24日之前. 三.提交方式: 请将作业的博文链接地址以评论本博客的形式提交. 格式如: 学员编号+姓名   http://mageedu.blog.51