`

Activiti Modeler引入web项目

 
阅读更多
在使用Activiti Modeler时候先从Activiti获得你所要的,新版的是使用anguarjs写的,比原来好多了,操作也比较人性化。
spring的包不说了,我现在就讲maven依赖放入
 
 <dependency>
        	<groupId>org.activiti</groupId>
        	<artifactId>activiti-engine</artifactId>
        	<version>5.18.0</version>
        </dependency>
        <dependency>
        	<groupId>org.activiti</groupId>
        	<artifactId>activiti-spring</artifactId>
        	<version>5.18.0</version>
        	<exclusions>
        		<exclusion>
        			<artifactId>commons-dbcp</artifactId>
        			<groupId>commons-dbcp</groupId>
        		</exclusion>
        	</exclusions>
        </dependency>
        <dependency>
        	<groupId>org.activiti</groupId>
        	<artifactId>activiti-diagram-rest</artifactId>
        	<version>5.18.0</version>
        </dependency>
<dependency>
        	<groupId>org.activiti</groupId>
        	<artifactId>activiti-json-converter</artifactId>
        	<version>5.18.0</version>
        	<exclusions>
        		<exclusion>
        			<artifactId>commons-collections</artifactId>
        			<groupId>commons-collections</groupId>
        		</exclusion>
        	</exclusions>
        </dependency>


在SpringMVC中加载这些包,注意,SpringMvc需要为4.0以上的,这样才能比较好支持RestController的注解方式,否则,请用旧的方式来支持这种Rest URL访问。

<!--加入Spring Activiti-Modeler的运行配置-->
    <context:component-scan base-package="com.redxun.bpm.rest.diagram"/>
<context:component-scan base-package="com.redxun.bpm.rest.editor"/>


在web.xml中配置拦截这些访问路径

 
   <servlet-mapping>
    	<servlet-name>springMvc</servlet-name>
    	<url-pattern>/service/*</url-pattern>
</servlet-mapping>
 


修改process-editor下的一些配置文件,以支持我们的在线流程设计

A)去掉Activiti Afresco的logo标题栏,并且把样式上的空白栏去掉
修改modeler.html中的以下内容,注意不要把该文本删除,建议加style=”display:none”,删除后其会造成底层下的一些内容有40个像数的东西显示不出来。

<div class="navbar navbar-fixed-top navbar-inverse" role="navigation" id="main-header">
	    <div class="navbar-header">
            <a href="" ng-click="backToLanding()" class="navbar-brand"
               title="{{'GENERAL.MAIN-TITLE' | translate}}"><span
                    class="sr-only">{{'GENERAL.MAIN-TITLE' | translate}}</span></a>
        </div>
	</div>

B)在editor-app/css/style-common.css中,把以下样式的padding-top部分改为0px;


.wrapper.full {
    padding: 40px 0px 0px 0px;
    overflow: hidden;
    max-width: 100%;
    min-width: 100%;
}

在modeler.html中加上CloseWindow的函数


<script type="text/javascript">
		function CloseWindow(action) {
		    if (window.CloseOwnerWindow) return window.CloseOwnerWindow(action);
		    else window.close();            
		}
	</script>

目的是为了保存模型时,可以关闭当前的弹出的mini窗口,修改保存后弹出的窗口的保存及关闭动作,如下所示:
<script type="text/javascript">
		function CloseWindow(action) {
		    if (window.CloseOwnerWindow) return window.CloseOwnerWindow(action);
		    else window.close();            
		}
	</script>

目的是为了保存模型时,可以关闭当前的弹出的mini窗口,修改保存后弹出的窗口的保存及关闭动作,如下所示,把editor-app/configuration/toolbar-default-action.js的以下函数:


   $scope.saveAndClose = function () {
    	$scope.save(function() {
    		window.location.href = "./";
    	});
};

改成以下:

$scope.saveAndClose = function () {
    	$scope.save(function() {
    		CloseWindow('ok');
    	});
    };


修改editor-app编辑器的根目录,如app-cfg.js
ACTIVITI.CONFIG = {
		'contextRoot' : '/activiti-explorer/service',
};

改成自己的根目录:
ACTIVITI.CONFIG = {
	'contextRoot' : '/redxun_web/service',
};

在实际的项目中,可以把这些ContextRoot改成动态的获值方式


至此,重启你的应用后,可直接进入目录访问modeler.html页面。直接访问该页面时,框架会出现,但是没有出现你想要的内容。这是因为后台出错了,这个页面要能正常访问要求必须传入Activiti的设计Model的Id,即act_re_model表中的主键,访问路径如:
Myroot/process-editor/modeler.html?modelId=12312312。
但这个表的记录怎么产生,这里需要调用一下Acitiviti的API来创建,如下代码片段可以实现该功能。
String descp=request.getParameter("description");
            ObjectMapper objectMapper = new ObjectMapper();
            ObjectNode editorNode = objectMapper.createObjectNode();
            editorNode.put("id", "canvas");
            editorNode.put("resourceId", "canvas");
            ObjectNode stencilSetNode = objectMapper.createObjectNode();
            stencilSetNode.put("namespace", "http://b3mn.org/stencilset/bpmn2.0#");
            editorNode.set("stencilset", stencilSetNode);
            Model modelData = repositoryService.newModel();
            
            ObjectNode modelObjectNode = objectMapper.createObjectNode();
            modelObjectNode.put(MODEL_NAME, actReModel.getName());
            modelObjectNode.put(MODEL_REVISION, 1);
            //String description = null;
           
            modelObjectNode.put(MODEL_DESCRIPTION, descp);
            modelData.setMetaInfo(modelObjectNode.toString());
            modelData.setName(actReModel.getName());
            
            repositoryService.saveModel(modelData);
            repositoryService.addModelEditorSource(modelData.getId(), editorNode.toString().getBytes("utf-8"));

最后在保存时候tomcat下angular保存不了,由于不支持put的提交,所以将angular的$Http({})修改为POST就好了,jetty不存在put提交不了得情况。


分享到:
评论

相关推荐

    Activiti-modeler集成项目.zip

    在这个"Activiti-modeler集成项目.zip"中,我们将探讨如何将Activiti Modeler与Spring MVC框架集成,创建一个能够支持流程设计和执行的Web应用。 首先,集成Spring MVC和Activiti需要理解这两个组件的基本原理。...

    activiti-modeler工作流网页版设计器

    4. **集成项目**: 提供的集成项目包含所有必要的组件和资源,如jar包,使得开发者能够快速将Activiti-Modeler引入到现有的Java Web项目中。这通常涉及到配置服务器、数据库连接以及在Web应用中部署和调用模型设计器...

    activiti入门六(集成新版activitimodeler与rest服务).pdf

    4.最后,需要在自己的项目中添加Activiti Spring配置,用于配置Activiti Modeler的后台服务。 Activiti Modeler模块提供了模型相关的操作,包括创建、保存、转换JSON与XML格式等。Activiti-diagram-rest模块用来...

    Activiti-modeler集成项目

    3. **Activiti-modeler集成**:集成Activiti-modeler可能涉及将它嵌入到Web应用中,如Spring Boot或其它企业级应用框架。这通常需要配置相关依赖,设置启动参数,并提供用户界面供用户设计和管理流程。 4. **API...

    SpringBoot集成activiti modeler实现在线绘制流程图,完整代码demo

    Activiti Modeler则是一个Web应用,用于图形化设计流程模型,其设计成果可以通过XML导出,供Activiti引擎执行。 集成步骤如下: 1. 添加依赖:在SpringBoot的`pom.xml`文件中,引入Activiti和相关库的依赖,如`...

    springboot2.0.3+activiti.5.22.0+oracle在线流程设计器(Activiti-Modeler )整合

    Activiti Modeler 是Activiti提供的一个流程设计器,允许用户通过Web界面创建、编辑和管理流程模型,无需编写代码,极大地提升了流程设计的效率和可维护性。 Oracle是世界上最广泛使用的数据库系统之一,尤其在企业...

    activiti、spring mvc 基础web项目

    本项目是基于Java技术栈,结合Activiti工作流引擎和Spring MVC框架构建的一个基础Web应用。这个项目旨在帮助开发者理解如何在实际开发中整合这些技术,以实现高效的企业级业务流程管理。 首先,我们要了解**...

    springboot2+activiti 7 -- maven工程依赖配置和创建表结构

    2. **ArtifactId**: 项目ID,例如`activiti-springboot-sample`。 3. **Version**: 使用Spring Boot的最新稳定版本,如`2.x.x.RELEASE`。 4. **Packaging**: 选择`jar`,生成可执行的JAR文件。 5. **Java Version**:...

    activiti整合web

    - **配置Activiti**:首先,我们需要在Web项目的配置文件中引入Activiti的依赖,比如在`pom.xml`中添加相应的Maven依赖。 - **初始化流程引擎**:在Spring的配置文件中,创建一个流程引擎的bean,设置数据源、配置...

    activiti5.21ssm演示

    1. **添加依赖**:在项目的pom.xml文件中添加Activiti和SSM框架的依赖,确保所有必要的库文件能够被正确引入。 2. **配置Activiti**:在Spring的配置文件中设置Activiti的环境,包括数据源、事务管理器以及流程引擎...

    activiti 第4天 共4天 视频教程

    Activiti 是一个开源的工作流程引擎,它主要用于设计、部署和执行业务流程。这个"activiti 第4天 共4天 视频教程...通过这四天的系统学习,应能对Activiti有全面且深入的理解,并具备实际项目中应用Activiti的能力。

    activiti 第一篇:整合activiti 5.17.0 进项目

    2. **添加依赖**:在你的项目 pom.xml 文件中,你需要引入 Activiti 的依赖。查找并复制 Activiti 5.17.0 的 Maven 依赖坐标,将其粘贴到 pom.xml 文件的 `&lt;dependencies&gt;` 标签内,以便项目可以访问 Activiti 的库...

    activiti 5.14 中文开发文档

    ActivitiExplorer和ActivitiModeler是Activiti的图形化工具,其中ActivitiModeler用于编辑、导入模型,以及将模型部署到Activiti引擎中。 最后,REST API是Activiti提供的用于与流程引擎进行交互的Web服务接口。...

    activiti整合流程自定义设计

    总的来说,"activiti-modeler-springboot-master"项目为学习和研究流程自定义设计提供了一个完整的框架,结合了后端的强大处理能力、前端的交互体验以及流程设计的灵活性,是深入了解Activiti和相关技术的绝佳实践。

    整合activiti-5.21.0流程设计器

    首先,需要将activiti-explorer中的相关文件复制到项目的web工程-&gt;bpm目录下。这一步骤是为了确保所有必要的资源文件都已就位,便于后续的集成工作。 **2. 复制stencilset.json** 接着,将`stencilset.json`文件...

    activiti-6.0 官网

    `wars` 文件夹通常包含 Web 应用的归档文件(Web Application Archive),这些应用可能是用于管理 Activiti 实例的用户界面,如 Activiti Explorer 或 Activiti Modeler。这些应用可以帮助用户可视化地设计流程,...

    activiti6.rar

    Activiti支持服务任务,这使得它可以与外部系统集成,如数据库查询、调用Web服务等。你可以通过实现JavaDelegate接口自定义服务任务的行为。 6. **信号与事件**: Activiti中的事件允许流程在特定条件下响应,...

    activiti6_war+汉化.rar

    - Activiti Modeler:流程建模工具,用户可以设计和编辑流程图。 - Activiti REST:提供RESTful API,允许远程控制和集成。 6. **流程管理与工作流** Activiti 提供了丰富的API和工具来定义、启动、监控和管理...

    【26】2018年最新疯狂Activiti6视频教程疯狂工作流讲义Activiti6.x视频教程 .txt

    Activiti 6相对于之前的版本,在性能和易用性上都有显著提升,并引入了一些新的特性,比如更好的Web界面支持和更灵活的表单处理能力。 ### 视频教程内容概览 #### 流程建模 - **BPMN 2.0标准**: Activiti 6遵循...

    activiti6.0 最新jar

    在实际使用中,Activiti 提供了基于XML的流程定义,通过图形化工具(如Activiti Modeler)可以方便地绘制流程图。同时,它还支持动态流程,即在运行时根据需要修改流程。Activiti 内置了一个强大的任务服务,可以...

Global site tag (gtag.js) - Google Analytics