处理依赖关系 集成Activiti之前,必须搞清楚其中的依赖关系,才能在Gradle里进行配置. 依赖关系: 例如,其中activiti-engine依赖于activiti-bpmn-converter,而activiti-bpmn-converter又依赖于activiti-bpmn-model 那么这以下的引用都是要设置的,缺一不可,否则portlet会无法注入进OSGi容器 org.activiti:activiti-engine:jar:5.xx.0+- org.activiti:act…
开发顺序: 实战任务1,开发BPM管理后台(用于在Liferay管理中心管理Activiti模型上传) 一个熟悉Portlet操作的项目,为开发打好基础. http://www.cnblogs.com/starcrm/p/6184721.html 实战任务2,开发BPM管理后台:流程列表清单Portlet 万里长征第一步,非常关键. http://www.cnblogs.com/starcrm/p/6177844.html 实战任务3,开发BPM待办已办任务清单Portlet 实战任务4,开发B…
在实际的BPM集成开发过程中,Liferay和Activiti这两个异构的系统之间,用户.组的同步需求非常重要,用来实现签收组的概念,比如指定签收组.会签.抢签都需要用到. Activiti可以通过自定义实现SessionFactory,实现customUserManager和customRoleManager的方式集成第三方的用户关系. 这里我介绍一个方法,可以借助Liferay的实体监听器来做用户.组.用户-组成员关系的三种同步. 其实实现原理非常简单 用户组的同步,就是实现 BaseMod…
开发文件上传,部署流程模板. 首先,开发jsp页面,deploy.jsp <%@ include file="/init.jsp" %> <h3>${RETURN_MESSAGE}</h3> <h2><liferay-ui:message key="Deploy"/></h2> <portlet:actionURL var="uploadURL" name="…
首先增加两个Portlet,分别用于待办处理.流程启动.待办是别人发起的流程,流到自己这里的流程:流程启动用于发起新的流程. 程序文件放置于 在ACtivit中待办概念分两种,1是指派给你的,专门的指派流程节点:2是在候选组中,符合抢签权限的人.在代码中进行了合并: package com.lifiti.portlet; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputSt…
hook开发是Liferay客制扩展的一种方式,比插件灵活,即可以扩展liferay门户,也能对原有特性进行更改,Liferay有许多内置的服务,比如用hook甚至可以覆盖Liferay服务. 可作为系统服务挂钩(Liferay Service Hook),还有其他类型的hook... Liferay6.2 时的hook开发比较有限,而在Liferay7则大为不同,OSGi services的彻底改进至Liferay的底层模型框架,使得Liferay可以支持更多的定制扩展!OSGi plugin…
开发目的: 实现通用流程自动化处理(即实现不需要hardcode代码的bpm统一处理后台,仅需要写少量前端html form代码和拖拽设计BPM定义) 既可独立运行或可依托于Liferay或依托其它门户系统(使用portlet规范技术实现)运行: 先实现一个JSP + Servlet版的通用流程处理,将来迁移到Portlet 迁移工作将保留大量的前后端代码,仅需要改动少量的注解. 考虑到Liferay的客户端体系是bootstrap+jQuery(对移动端的支持非常好),JSP的实现也用了这两者…
Portlet 生命周期 init() =〉 render() =〉 processAction() =〉 processEvent() =〉 serveResource() =〉destroy() init() 在Liferay容器部署portlet时,启动portlet实例化 init有两个写法: public void init() throws PortletException public void init(PortletConfig config) throws PortletEx…
写到第12章才出现Liferay的内容,希望可以厚积薄发. 我们的目标是不使用不维护Activiti的用户组织架构,只维护Liferay的体系,这样的好处是非常明显的,即不用做组织架构的同步工作. 原理是继承实现org.activiti.engine.impl.interceptor.SessionFactory 首先继承用户实例,用liferay的用户模型 import org.activiti.engine.impl.persistence.entity.UserEntity; public…
流程的人员参与角色: Assignee :签收者(即待办人) Candidate:候选人 Owner:拥有者 Starter:启动者 participant:参与者,包含查阅 流程变量的类型: String Date Double Integer Long Null Short jpa-entity Boolean Bytes serializable(可序列化) 自定义type(根据你自身配置) CustomVariableType 1.控制台的主要功能 Tasks: 任务管理功能. 这里,如…