前面我们介绍了在泛微E10二开平台上开发接口、操作数据库等,本文我们再介绍一个非常重要的操作就是基于泛微E10二开平台做流程引擎的自定义代码action开发。在泛微E10二开低代码平台上他自带的有流程引擎,那么在流程引擎里面每一个node节点他要执行的动作是怎么样的,就是这个action来定义的。所以总体来说,在泛微E10低代码二开平台上做流程引擎的时候,只需要通过E10平台的画布功能做相关的流程定义,每个流程中每个node节点需要做哪些操作的话,我们可以自定义action来写这一部分的代码即可。下面来演示一下。
一、创建action的服务类
这里我们做个简单的演示即可,比如这个action做一个日志打印及参数的传递功能,那么我们编写的自定义代码是:
package com.weaver.seconddev.demo.action; import com.alibaba.fastjson.JSON; import com.weaver.common.base.entity.result.WeaResult; import com.weaver.esb.api.rpc.EsbServerlessRpcRemoteInterface; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import java.util.Map; @Slf4j @Service("testDemoAction") public class DemoAction implements EsbServerlessRpcRemoteInterface { @Override public WeaResult<Map<String, Object>> execute(Map<String, Object> params) { log.info("进入到泛微E10二开DemoAction执行代码,获取到的参数是:{}", JSON.toJSONString( params)); //随便添加两个值 params.put("foo", "bar"); return WeaResult.success(params); } }
备注:
1、这里每一个action必须要实现EsbServerlessRpcRemoteInterface这个接口,并且实现这里面的excute方法。
2、这里传入进来的params是我们在流程画布上自定义的输入参数
3、每一个action需要手写@Service,并且自定义好对应的Action名称,比如我这里自定义的TestDemoAction。
二、打包上传且配置dubbo文件
接下来我们还是按照以前的方法,使用gradle对二开代码进行打包,上传到泛微E10平台上去
此时上传成功之后,千万不要马上重启,而是需要进入上面的配置文件编辑的界面进行编辑
由于整个泛微E10平台主要使用dubbo协议进行服务调用的,所以我们需要把前面的action服务配置注册到dubbo上去,这里我们填写的内容是:
<dubbo:service ref="testDemoAction" interface="com.weaver.esb.api.rpc.EsbServerlessRpcRemoteInterface" group="testDemoActionGroup" />
一般按照这个模板进行配置即可,相关说明如下:
1、ref主要填写我们在类里面自定义的@service的名称
2、interface这块不要动他,保持固定的com.weaver.esb.api.rpc.EsbServerlessRpcRemoteInterface
3、group的话直接使用ref的名称后面添加一个Group即可
三、重启项目
这里直接去泛微E10运维平台重启这个二开服务即可
然后等待他进行重启即可。
四、使用流程
接下来我们就演示如何使用这个流程,使用web浏览器访问/workflow/workflow_setting/pathdef/list/company这个路径,会出现如下的界面
在这里我们新建一个工作流即可,首先填写基本信息,这里随便填写,大部分都选择默认的即可,如下图:
然后点击保存并进入下一步,会进入到表单设计界面,这里我峨嵋你随便拖入一块当行文本进去即可(这里仅是演示,所以暂时不做复杂的设计)
继续点击保存并进入下一步,会进入到流程设置里面
这里默认是个审批流程,如下图:
然后我们继续点击保存并进入下一步,设置相关的权限,这里保持默认即可,如下图
点击完成,在主list页面就可以看到我们刚才创建的工作流了。
然后我们点击进去看详情,之后,点击这里的流转设置
选择一个节点,比如我们选择1级审批这个节点,点击后面的节点附加操作
然后把tab切换到动作流的设置界面上
首先选择动作流类型为:自定义动作
然后选择动作流的时候,选择新建动作流
会进入到一个全新的画布界面
我们在流程出发和终止中间的线上,点击加号(鼠标悬停到这个线上,就会自动显示这个加号了)
点击这个加号,会提示添加哪些动作,如下图:
这里我们点击全部操作
就会显示所有可供的操作
然后我们选择其他->代码->serverless/Action
他会自动创建一个自定义的action,如下图:
然后结合我们刚才编写的action及配置的dubbo信息,
把这里的group信息给添加进去,填写的内容如下:
然后我们点击输入参数,随便选择下,如下图:
保存后点击输出参数,这里也随便填写下,目的是把刚才执行的execute的结果给输出出去
然后我们在终止的界面上进行如下的操作,让他报错直接返回错误信息,不要让流程往后走,首先配置失败的情况:
再配置成功的情况
然后点击右上角的保存并启用按钮
会要求保存动作流的信息,随便填写即可
直接点击添加节点附加操作即可
他就会在下方把刚才创建的动作流给添加进去
直接点击保存即可。
五、测试工作流
这里我们测试下刚才的工作流,看是否会触发我们编写的testdemoaction,这里暂时没配置日志,所以这里我们把代码修改下,不要返回success,而是返回faild,
然后再上传一遍上去,然后进入到这个test流程详情,
点击这里的流程设计
进入到这个流程设计界面,然后我们双击每一个流程,添加相关的人员(这里每个流程都要添加人员,在测试执行的时候会报错)
点击这里的+号就可以添加人员了
切记这里每个节点都要添加,切记每个节点都要添加,切记每个节点都要添加,添加完成之后进行保存即可。
然后我们回到流程的详情界面,点击这里的更多
会看到有流程测试按钮,点击进去
然后添加一个审批发起人:
然后在这里,一定要勾选这个触发节点/出口附加操作,把这个开关打开,保持字段赋值和动作流被勾选中,如下图:(这一步非常重要,这一步非常重要,这一步非常重要,我在测试的时候没有勾选这个,结果二开的action代码死活不执行,)
然后点击开始测试就跳转到表单提交界面了
输入内容,然后点击右上角的提交按钮就会进入测试阶段,这里我们默认让他报错,所以在执行的过程中,他会直接报错:
以上就是完整的在泛微E10二开低代码平台上进行工作流action的二开完整教程,这里和泛微提供的培训视频及官方文档有一些出入的地方导致踩了一些坑,大家在使用的时候,一定要注意我每一步是怎么操作的。
还没有评论,来说两句吧...