7大服务介绍 服务名称 描述 RepositoryService Activiti 中每一个不同版本的业务流程的定义都需要使用一些定义文件,部署文件和支持数据 ( 例如 BPMN2.0 XML 文件,表单定义文件,流程定义图像文件等 ),这些文件都存储在 Activiti 内建的 Repository 中.Repository Service 提供了对 repository 的存取服务. RuntimeService 在 Activiti 中,每当一个流程定义被启动一次之后,都会生成一个相应的流…
工作流的概念: 工作流(Workflow),就是"业务过程的部分或整体在计算机应用环境下的自动化",它主要解决的是"使在多个参与者之间按照某种预定义的规则传递文档.信息或任务的过程自动进行,从而实现某个预期的业务目标,或者促使此目标的实现".通俗的说,流程就是多个人在一起合作完成某件事情的步骤,把步骤变成计算机能理解的形式就是工作流. 常见的工作流引擎有:OSWorkFlow.jbpm.activiti(对jbpm的升级) 如果在一个项目中我们需要引入工作流的话,首…
文/朱季谦 Activiti工作流引擎自带了一套数据库表,这里面有一个需要注意的地方: 低于5.6.4的MySQL版本不支持时间戳或毫秒级的日期.更糟糕的是,某些版本在尝试创建此类列时将引发异常,而其他版本则不会.执行自动创建/升级时,引擎将在执行DDL时更改它.使用DDL文件方法时,既可以使用常规版本也可以使用其中带有mysql55的特殊文件(这适用于低于5.6.4的任何版本).后一个文件将具有没有毫秒精度的列类型. 笔者曾经在5.6.0版本做过试验,发现是无法自动生成23张表的,但在5.6.…
1.工作流activiti.cfg.xml配置文件 <beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:xsi="http://…
sqlite数据库操作详细介绍 增删改查,游标     本文来源于www.ifyao.com禁止转载!www.ifyao.com Source code     package com.example.engine; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteDatabase.CursorFactory; i…
Activiti的后台是有数据库的支持,所有的表的表名都以ACT_开头,表名的第二部分是用来表示表的用途的两个字母标识. 用途也和服务的API对应. ACT_RE_*: 'RE'表示repository 仓库. 这个前缀的表包含了流程定义和流程静态资源 (图片,规则,等等). ACT_RU_*: 'RU'表示runtime 运行时. 这些运行时的表,包含流程实例,任务,变量,异步任务,等运行中的数据. Activiti只在流程实例执行过程中保存这些数据, 在流程结束时就会删除这些记录. 这样运行…
Activiti的后台是有数据库的支持,所有的表都以ACT_开头. 第二部分是表示表的用途的两个字母标识. 用途也和服务的API对应. ACT_RE_*: 'RE'表示repository. 这个前缀的表包含了流程定义和流程静态资源 (图片,规则,等等). ACT_RU_*: 'RU'表示runtime. 这些运行时的表,包含流程实例,任务,变量,异步任务,等运行中的数据. Activiti只在流程实例执行过程中保存这些数据, 在流程结束时就会删除这些记录. 这样运行时表可以一直很小速度很快.…
1  Activiti数据库表结构 1.1      数据库表名说明 Activiti工作流总共包含23张数据表,所有的表名默认以“ACT_”开头. 并且表名的第二部分用两个字母表明表的用例,而这个用例也基本上跟Service API匹配. u  ACT_GE_* : “GE”代表“General”(通用),用在各种情况下: u  ACT_HI_* : “HI”代表“History”(历史),这些表中保存的都是历史数据,比如执行过的流程实例.变量.任务,等等.Activit默认提供了4种历史级别…
Activiti工作流引擎数据库表结构 数据库表的命名 Acitiviti数据库中表的命名都是以ACT_开头的.第二部分是一个两个字符用例表的标识.此用例大体与服务API是匹配的. ACT_RE_*:’RE’表示repository.带此前缀的表包含的是静态信息,如,流程定义,流程的资源(图片,规则等). ACT_RU_*:’RU’表示runtime.这是运行时的表存储着流程变量,用户任务,变量,职责(job)等运行时的数据.Activiti只存储实例执行期间的运行时数据,当流程实例结束时,将删…
1.与流程定义相关的4张表: 2.与执行任务相关的5张表: 3.与流程变量相关的2张表…
--建立一张表 create table cat( catId int, catName varchar(40) ) --将下边的插入语句,多执行几次. insert into catvalues(1,'aa') select * from cat 通过查询语句将看到表中出现N个重复记录 --如何删除掉一张表重复记录 步骤如下: --1.把cat表的记录distinct后的结果,放到临时表中 select  distinct * into #temp from cat --2.把cat表的记录清…
--二进制数据表 SELECT * FROM act_ge_bytearray; --属性数据表存储整个流程引擎级别的数据,初始化表结构时,会默认插入三条记录, SELECT * FROM act_ge_property; --历史节点表 SELECT * FROM act_hi_actinst; --历史附件表 SELECT * FROM act_hi_attachment; --历史意见表 SELECT * FROM act_hi_comment; --历史流程人员表 SELECT * FR…
情景分析: 1)某查询必须要走全表扫描 2)该查询执行的频率相当高 3)对执行时间的要求也相当苛刻的话 4)数据库的IO比较吃紧 5)数据库的内存比较宽松 6)该表的大小没有大到离谱 以上情况下,可以使用“把整张表放到内存里”的方式进行优化 操作方法: --缓存abs_assetreturnschedule 表 alter table abs_assetreturnschedule storage(buffer_pool keep); --缓存索引 PK_ASSETIDRETURN alter…
1. 多个实体映射到一张表 Code First允许将多个实体映射到同一张表上,实体必须遵循如下规则: 实体必须是一对一关系 实体必须共享一个公共键 我们通常有这样的需求,如:同一基类派生出的不同数据模型,想方便管理便放到一张表中. 如下: AssayAction为基类 AddSampleAction 为派生类 DilutionAction 为派生类 最张生成到一张表中.   系统在默认情况下生成同一张表. 代码示例如下: //==================================…
1.背景说明 很多时候我们需要通过一张中间表的数据去更新另外一张表,而不仅仅是通过固定数值去更新,尤其是当数据量很大的时候,简单的复制粘贴就不大可行了. 2.MYSQL版本 SELECT VERSION() AS MYSQL版本; 如下图所示: 3.表示例 Student表: 中间表Temp: 我们需要用中间表的name.sex.age字段来更新Student表的对应字段 4.更新操作 UPDATE feifei.student s, feifei.temp t SET s.name = t.n…
在mysql中,通过一张表的列修改另一张关联表中的内容: 1:  修改1列 update student s, city c set s.city_name = c.name where s.city_code = c.code; 2:  修改多个列 update a, b set a.title=b.title, a.name=b.name where a.id=b.id 3: 采用子查询 update student s set city_name = (select name from c…
1.由于是先查再插所以不能使用insert into table1() values(), 要使用insert into table1() select * table2,不能使用values. 2.因为是多张表故查询和插入的时候需要指定是哪张表,否则会报错:指定列模糊. 3.三张表联查时可多次使用inner join等连接语法. 总结:在逻辑上SQL与Code实现基本一致,但是SQL的速度非常快,在具体实现上SQL需要非常强的逻辑性但是会省去很多写code的功夫. insert into SP…
知道是两张表进行更新,之前作过mysql的,直接就写了: update a,b set a.code = b.code wehre a.id = b.id 然后就报错了,上网查了下知道oracle不能这样子写 之后找到如下的办法: UPDATE a set a.code = (select b.code from b where a.id = b.id) 但是这条语句如果数据多的话会很慢,因为他要每条数据都要跟新 然后又找到了这条sql: MERGE INTO a USING b ON ( a.…
dede_addonarticle 附加文章表 aid int(11) 文章编号 typeid int(11) 分类栏目编号 body mediumtext 文章内容 dede_addonflash 附加Flash表 aid int(11) FLASH编号 typeid int(11) 分类栏目编号 filesize varchar(10) 文件大小 playtime varchar(10) 播放时长 flashtype varchar(10) 作品类型 flashrank smallint(6…
使用SELECT INTO 和 INSERT INTO SELECT 表复制语句了. 1.INSERT INTO SELECT语句 语句形式为:Insert into Table2(field1,field2,...) select value1,value2,... from Table1 [where column =value][]为可选内容要求目标表Table2必须在由于目标表Table2已经存在,所以我们除了插入源表Table1的字段外,还可以插入常量.示例如下: insert int…
1.两个表结构如下图 2.如何查询成如下图所示 3.SQL语句是: select id,name=stuff(( select ','+t2.name from a t1 join b t2 on charindex(),t2.id)+ where o1.id=t1.id ,,'') from a o1 3.其中charindex函数使用方法:http://www.cnblogs.com/beeone/p/3621743.html stuff函数使用方法:http://blog.sina.com…
with a as( select nsr.zgswj_dm, count(distinct nsr.djxh) cnt, 1 z from hx_fp.fp_ly fp, hx_dj.dj_nsrxx nsr where nsr.djxh = fp.djxh and nsr.nsrzt_dm = '03' and fp.lrrq >= date '2018-03-01' and fp.lrrq <= date '2018-04-01' AND nsr.ZGSWSKFJ_DM LIKE '13…
between 是>= and <=,即包含两个边界…
----创建存储过程 create or replace procedure inserttest as cursor cs is select id, name, cla, addr, phone, tel, x, y, shape, objectid from hotel_bak t2; begin for c in cs loop BEGIN insert into hotel (id, name, cla, addr, phone, tel, x, y, shape, objectid)…
update CDINFO.Dept_Dict tab1 set PART_FLAG = (select PART_FLAG from DICT.DEPARTMENT_DICT@zyhis4 tab2 where tab1.dept_code = tab2.dept_code) where exists (select 1 from DICT.DEPARTMENT_DICT@zyhis4 tab2 where tab1.dept_code = tab2.dept_code)…
select consumer_id,user_name,mobile,invite_code from csr_consumer where invite_count<(select count(1) from csr_invite_picture) select invite_picture_id,blank_file_store_id,logo_file_store_id from csr_invite_picture t1 where t1.invite_picture_id not i…
UPDATE channelcountry, appywproducts SET channelcountry.ChannelName = appywproducts.YWNameCN WHERE channelcountry.ChannelCode = appywproducts.YWCode; 或者 UPDATE channelcountry a SET ChannelName = ( SELECT YWNameCN FROM appywproducts b WHERE a.ChannelC…
工作流解决在多个参与者之间按照某种预定义的规则传递文档.信息或任务的过程自动进行,从而实现某个预期的业务目标,或者促使此目标的实现. 使用Eclipse开发,需要安排工作流插件,详情见下面. Name:Activiti BPMN 2.0 designer Location:http://activiti.org/designer/update/ New–Other Activiti Project 新建Project,Activiti的项目其实也是用maven管理的. Activiti Diag…
1.Activiti工作数据表 Activiti用来存放流程数据的表共使用23张表,表名都是以"ACT_"开头,底层操作默认使用mybatis操作 工作流Activiti的表是用来存储流程数据的,而业务的数据需要用户自己创建和维护 在使用Activiti时一定需要业务去关联流程. 以下以MySql数据库为例: 1)使用代码方式创建Activiti工作流需要的23张表 @Test public void createTable_1() { //创建流程引擎配置对象 ProcessEngi…
原创/朱季谦 我接触工作流引擎Activiti已有两年之久,但一直都只限于熟悉其各类API的使用,对底层的实现,则存在较大的盲区. Activiti这个开源框架在设计上,其实存在不少值得学习和思考的地方,例如,框架用到以命令模式.责任链模式.模板模式等优秀的设计模式来进行框架的设计. 故而,是值得好好研究下Activiti这个框架的底层实现. 我在工作当中现阶段用的比较多是Activiti6.0版本,本文就以这个版本来展开分析. 在使用Activiti工作流引擎过程中,让我比较好奇的一个地方,是…