当前位置:首页 » 网页前端 » 前端BPMN
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

前端BPMN

发布时间: 2022-05-19 04:09:55

‘壹’ SpringBoot启动activiti的流程,测试的时候如何发送这个url的post请求

  1. 自己用jquery+html5编写前端点击按钮触发

  2. 借助工具postman

  3. springboot项目引入swagger-ui框架,借助框架访问接口

‘贰’ 方正飞鸿BPM CS有哪些产品组件

方正飞鸿快速开发平台BPM CS是国内做开发平台最好的厂商,它有以下组件:
(1)FormDesigner
自主研发的UI设计器,完全兼容EXTJS、JQuery,支持数据域绑定与界面展现的图形化设计,支持HTML与JS组件图形化设计。
(2)WorkflowDesigner
自主研发的图形化流程设计器,支持所见即所得流程设计,全面支持BPMN2.0标准模型定义,支持泳道图流程设计。
(3)ModelDesigner
自主研发的数据建模工具,支持库操作,支持反库映射,支持库对象实现类代码生成。
(1)BizDesigner
自主研发的业务建模工具,对数据模型抽象化,描述业务关系,实现逻辑层,支持业务流程图形化设计,结合MVC框架,符合SOA构件标准。
(4)MVC
自主研发的业务实现框架,支持SOA标准,支持XML路由,内部与建模工具完全无缝对接,前端、中间层、后端多个MVC小框架整合成一个大的MVC架构体系。
(5)DAO
自主研发的数据持久层,支持XML配置实现,支持多数据源操作,具备高事务并发性能。
(6)Workflow
自主研发的工作流引擎,全面支持BPMN2.0标准模型定义,具备灵活的流转策略,高效性能。
(7)Authority
统一的权限认证体系,内部以行、列、URL为实现原则进行权限分配,对外提供丰富接口以便异构系统进行权限认证调用。
(8)3Platform
集业务流程平台、灵动业务平台、技术开发平台为一体的高端平台产品。

具体情况你可以访问方正飞鸿官网了解详情,提供免费试用的机会,也可拨打电话400电话进行咨询。

‘叁’ 请问低 代 码是什么 请指教

低代码开发平台最近好像挺热啊,听说微软、Google都入局了,国内资本如今也在热捧。网络指数了解了一下,关联度最高的那几个国内产品,不少是存在了好多年,更有甚者xx表差不多是上一个世纪的老产品了,也来蹭一下热度。

那么,低代码到底是什么玩意?是新鲜事物么?为啥上个世纪的老产品也凑一份热闹?我们一起去看看。

低代码平台,洋文称Low Code Development Platform,注意了,这个Low可不是你想的那个Low,不是低级的意思,而是少量、简易的DSL代码甚至是无代码的意思。

为什么能够是更少量甚至是无代码呢?开发者们想想自己是怎么减少重复代码的就会明白了。 我拿自定义表单的场景作为例子,从演化的路径上来看,是这样的:

  • 一开始,在一个应用里实现了一个自定义表单的功能,做新应用的时候,也需要这个功能,我们会把原来的代码复制一份,然后简单改一些样式或变量,搞定。

  • 然后,越来越多的应用需要自定义表单的功能了,我们把那砣代码抽象成一个函数库,每次需要的时候只需要引用函数库,给不同的参数就好了,省了代码复制不说,一下子就提升了代码的可维护性,这时,代码就开始变少了。

  • 再后来,我们嫌引用函数库还麻烦了,我们把这个功能做成了一个独立应用或微服务,提供一系列常见的表单模板,使用的时候,在这个应用里面选一个模板,稍配置一下,然后复制一个链接到目标应用上粘贴一下就能用了。这个时候,自定义表单变成了一个Saas服务,目标应用中要实现自定义表单的功能已经不需要编写代码了。至此,这个自定义表单服务就是一个低代码应用了。

  • 所以,低代码的本质就是应用场景的极致抽象并且模板化的过程。实际上,我们以前看到的低代码产品多了去了,只是那个时候还没有低代码这个概念罢了。下面我给你说说:

  • 上面举的自定义表单例子,你可能有意无意间接触过了,例如金数据,就是对表单收集这个场景进行了极致的抽象,形成一套固定的表单设计套路,并且让表单的开发可以通过可视化配置来完成。顺带说一句,金数据的创始人现在就在二次创业,做的正是低代码开发平台。所以,你懂的了。

  • 早年的DreamWave、FrontPage,现在的RapidWeaver等可视化网页制作软件、大量的在线可视化网站拖拉拽建站应用,就是网页制作场景的低代码平发平台。

  • BAAS,Backend As A Service,后端服务平台,直接让开发者省掉了后端的开发工作,也是一种典型的低代码开发平台,例如微信小程序的云开发平台、知晓云、Lean Cloud等。

  • 众多的移动应用、小程序可视化制作平台,提供大量的场景模板,简单调整一下参数就可以得到一个自己的应用。

  • 以上这些应用场景的本质都是低代码或零代码,但为什么低代码平台的概念在这几年才兴起?我猜想,是应用的场景覆盖得更广、涉及开发的环节更完整导致了平台化的出现。

  • 应用的场景覆盖得更广了,之前的低代码应用,只能够满足相对窄的应用场景,如建站、表单、BAAS,但到了后面,抽象层次往下降一层,允许定义数据结构、定义界面和流程,能够解决更多通用的场景了,就自然而然有了平台的感觉。

  • 涉及开发的环节更完整了,以前的建站,纯粹是前端页面的拼凑,而BAAS,也只是解决后端的问题,而到了后来的小程序可视化制作时,就把前后端的开发都囊括进去了,几乎就不需要代码开发了,又自然而然有开发平台的即视感了。

  • 再看看微软和Google的低代码平台,都是解决相对通用场景、涵盖前后端开发环节的形态,就更加印证了我的猜想。

    不对呀,上面说到了通用场景,但同时也说了低代码的本质是场景的抽象并且模板化,通用和模板化不矛盾吗?这里就要说低代码平台的限制了,所谓的通用场景也只能是相对通用,可模板化的,于是就有了模板化的通用场景,即这个通用场景是受限的,不是完全的通用。所以,现在大多数的低代码平台都是面向企业,做企业应用的。因为企业应用,是一个可以模板化的垂直通用场景,例如钉钉宜搭、简道云、织信Informat等等,都是服务企业用户。

    最后,低代码并非零代码,尽管市面上有不少零代码的应用平台打着低代码的旗号吸引关注。代低码平台的底层逻辑还是一个开发平台,需要对个性化的需求开放实现途径,如何开放?开放接口?二次开发?还是开放DSL?不一而足。如果一个平台没有支持个性化需求的开发能力,那它不算是一个及格的低代码开发平台,充其量只是低代码应用罢了。

    好了,现在你已经知道什么是低代码了,往后,我会带大家一起实现一些低代码开发的场景,并对低代码的商业化进行深度的思考,例如谁会为低代码平台买单、低代码平台到底是专业平台还是小白应用等等。 合理并且有效地运用低代码,不仅可以让我们工作高效地运行,还能最大程度保证团队目标的达成。我推荐织信,它内置了100+的应用模板,覆盖OA、ERP、CRM、绩效、人事、企业服务、个人及组织等多个应用场景。

‘肆’ activiti可以在前端页面修改流程图吗

Activiti默认用的事H2数据库,要想让activiti使用独立运行的H2或者其他数据库,可以修改activiti explorer web应用的WEB-INF/CLASSES目录下的db.properties

‘伍’ activiti怎么调用接口启动子流程

1. Activiti REST模块介绍
关于Rest的介绍就免除了,主要介绍一下Activiti Rest模块的功能以及如何使用。
1.1 使用REST的好处
简单化 :利用现有模块(activiti-rest.war)代替直接API调用
标准化 :各个系统根据rest模块的接口规范访问REST资源,统一处理;对于工作流平台来说此特性尤为突出
扩展性 :如果官方提供的REST接口还不能满足可以继续在其基础上进行扩展以满足业务系统(平台)的需求
1.2 不适合使用REST的场景
业务数据与流程数据分离: 就像kft-activiti-demo中 普通表单 的演示一样,业务数据保存在一张单独设计的表中,而不是把表单数据保存在引擎的变量表中,所以对于这样的场景中需要联合事务管理的就不能使用REST了,例如:启动流程、任务完成、业务与流程数据联合查询。
1.3 部署Rest模块
从 5.11 版本开始不再使用ant脚本的方式启动demo,并且把activiti-explorer和activiti-rest分离并分别提供一个war包,在 wars 目录可以找到它。
把activiti-rest.war解压到Web服务器的应用部署目录(例如tomcat的webapps),根据实际需求修改activiti-rest/WEB-INF/classes/db.properties里面的数据库配置后启动应用。
可以通过REST工具测试是否部署成功可以正常的提供服务,例如Chrome的插件REST Console ,或者通过Spring MVC提供的RestTemplate。
2. 访问REST资源
对于REST模块提供的接口可以参考用户手册的 REST API 章节,有着详细的介绍(包括URL和参数含义)。
2.1 身份认证
REST接口的大部分功能都需要验证,默认使用 Basic Access Authentication(基本连接认证) ,所以在访问资源时要在header中添加验证信息,当然为了安全期间把用户名和密码进行base 64位加密。
可以在用户登陆之后把用户名和密码进行加密并设置到session中,这样在前端就可以直接通过Ajax方式获取资源了:
import jodd.util.Base64;
String base64Code = "Basic " + Base64.encodeToString(user.getId() + ":" + user.getPassword());
session.setAttribute("BASE_64_CODE", base64Code);

2.2 通过Ajax方式读取资源
下面通过kft-activiti-demo中的代码片段介绍:
$.ajax({
type: "get",
url: REST_URL + 'process-definition/' + processDefinitionId + '/form',
beforeSend: function(xhr) {
xhr.setRequestHeader('Authorization', BASE_64_CODE);
},
dataType: 'html',
success: function(form) {
// 获取的form是字符行,html格式直接显示在对话框内就可以了,然后用form包裹起来
$(dialog).html(form).wrap("
"); var $form = $('.formkey-form'); // 设置表单action $form.attr('action', ctx + '/form/formkey/start-process/' + processDefinitionId); } });
在第5行处设置了ajax请求的header信息,这样REST模块就可以通过header的信息进行身份认证,通过之后就可以执行资源请求并返回处理结果。
2.3 通过Java方式读取资源
3. Ajax跨域问题解决办法
把REST模块和应用部署在同一个Web服务器中(废话……)
等待官方提供JSONP的支持,JIRA Issue: ACT-1534
利用后台代理方式,把请求的URL发送给后台代理服务器,获取数据之后再把结果返回给前台
4. kft-activiti-demo的REST演示
我在github上创建了一个REST分支: https://github.com/henryyan/kft-activiti-demo/tree/rest
在 外置表单 模块中把 读取表单 和 签收任务 通过调用activiti-rest模块实现,思想和设计方式和本文介绍的一致。
目前还未支持跨域的问题,所以运行demo的时候要把kft-activiti-demo和activiti-rest模块部署在一个tomcat里面,如果tomcat的端口不是8080则需要修改application.properties 文件的:
activiti.rest.service.url=http://localhost:8080/activiti-rest/service/

‘陆’ 如何使用Activiti Rest模块

1. Activiti REST模块介绍

关于Rest的介绍就免除了,主要介绍一下Activiti Rest模块的功能以及如何使用。

1.1 使用REST的好处

简单化:利用现有模块(activiti-rest.war)代替直接API调用
标准化:各个系统根据rest模块的接口规范访问REST资源,统一处理;对于工作流平台来说此特性尤为突出
扩展性:如果官方提供的REST接口还不能满足可以继续在其基础上进行扩展以满足业务系统(平台)的需求

1.2 不适合使用REST的场景

业务数据与流程数据分离:就像kft-activiti-demo中普通表单的演示一样,业务数据保存在一张单独设计的表中,而不是把表单数据保存在引擎的变量表中,所以对于这样的场景中需要联合事务管理的就不能使用REST了,例如:启动流程、任务完成、业务与流程数据联合查询。

1.3 部署Rest模块

从5.11版本开始不再使用ant脚本的方式启动demo,并且把activiti-explorer和activiti-rest分离并分别提供一个war包,在wars目录可以找到它。

把activiti-rest.war解压到Web服务器的应用部署目录(例如tomcat的webapps),根据实际需求修改activiti-rest/WEB-INF/classes/db.properties里面的数据库配置后启动应用。

可以通过REST工具测试是否部署成功可以正常的提供服务,例如Chrome的插件REST
Console,或者通过Spring MVC提供的RestTemplate。