延边州建设局网站合肥 网站建设
2026/1/24 20:38:10 网站建设 项目流程
延边州建设局网站,合肥 网站建设,品牌推广网站设计,天津企业免费建站面向全场景的 Java 通用流程编排框架。同时兼容 java8 ~ java25#xff0c;是 OpenSolon 的重要组成部分。支持已知流程编排的各种场景#xff1a; 可用于计算#xff08;或任务#xff09;的编排场景可用于业务规则和决策处理型的编排场景可用于可中断、可恢复流程#…面向全场景的 Java 通用流程编排框架。同时兼容 java8 ~ java25是 OpenSolon 的重要组成部分。支持已知流程编排的各种场景可用于计算或任务的编排场景可用于业务规则和决策处理型的编排场景可用于可中断、可恢复流程结合自动前进停止再执行的编排场景可视化设计器https://solon.noear.org/flow/designer/第三方开源已组件化https://gitee.com/opensolon/solon-flow-bpmn-designer嵌入第三方框架SpringBoot、jFinal、Vert.X、Quarkus、Micronaut 等的示例https://gitee.com/solonlab/solon-flow-embedded-exampleshttps://gitcode.com/solonlab/solon-flow-embedded-exampleshttps://github.com/solonlab/solon-flow-embedded-examples一、最近更新了什么重要变化第六次预览取消“有状态”、“无状态”概念。solon-flow 回归通用流程引擎分离“有状态”的概念。新增 solon-flow-workflow 为工作流性质的封装未来可能会有 dataflow 等。具体更新插件solon-flow第六次预览新增solon-flow-workflow插件替代 FlowStatefulService添加solon-flowFlowContext:lastNode() 方法最后一个运行的节点添加solon-flowFlowContext:lastNodeId() 方法最后一个运行的节点Id添加solon-flowNode.getMetaAs, Link.getMetaAs 方法添加solon-flowNodeSpec:linkRemove 方法增强修改能力添加solon-flowGraph:create(id,title,consumer) 方法添加solon-flowGraph:copy(graph,consumer) 方法方便复制后修改添加solon-flowGraphSpec:getNode(id) 方法添加solon-flowGraphSpec:addLoop(id) 方法替代 addLooping后者标为弃用添加solon-flowFlowEngine:eval(Graph, …) 系列方法优化solon-flowFlowEngine:eval(Node startNode) 处理改为从 root 开始恢复到 start 再开始执行恢复过程中不会执行任务调整solon-flow移除 Activity 节点预览属性 “i m o d e 和 imode 和 imode和omode”调整solon-flowActivity 节点流出改为自由模式可以多线流出无条件直接流出有条件检测后流出调整solon-flowNode.getMeta 方法返回改为 Object 类型并新增 getMetaAs调整solon-flowEvaluation:runTest 改为 runCondition调整solon-flowFlowContext:incrAdd,incrGet 标为弃用上下文数据为型只能由输入侧决定调整solon-flowCondition 更名为 ConditionDesc调整solon-flowTask 更名为 ConditionDesc调整solon-flowGraphDecl 重命名改为 GraphSpecNodeDecl 重命名改为 NodeSpecLinkDecl 重命名改为 LinkSpec调整solon-flowGraphSpec.parseByText 重命名改为 fromTextparseByUri 重命名改为 fromUri调整solon-flowGraph.parseByText 重命名改为 fromTextparseByUri 重命名改为 fromUri兼容变化对照表旧名称新名称说明GraphDeclGraphSpec图定义GraphDecl.parseByXxxGraphSpec.fromXxx图定义加载Graph.parseByXxxGraph.fromXxx图加载LinkDeclLinkSpec连接定义NodeDeclNodeSpec节点定义ConditionConditionDesc条件描述TaskTaskDesc任务描述避免与 workflow 的概念冲突FlowStatefulServiceWorkflowService工作流服务StatefulTaskTask任务OperationTaskAction任动工作TaskTypeTaskState任务状态FlowStatefulService 到 WorkflowService 的接口变化对照表旧名称新名称说明postOperation(..)postTask(..)提交任务postOperationIfWaiting(..)postTaskIfWaiting(..)提交任务evel(..)/执行stepForward(..)/单步前进stepBack(..)/单步后退/getState(..)获取状态新特性预览Graph 硬编码方式及修改能力增强//硬编码GraphgraphGraph.create(demo1,示例,spec-{spec.addStart(start).title(开始).linkAdd(01);spec.addActivity(n1).task(AaMetaProcessCom).linkAdd(end);spec.addEnd(end).title(结束);});//修改GraphgraphNewGraph.copy(graph,spec-{spec.getNode(n1).linkRemove(end).linkAdd(n2);//移掉 n1 连接改为 n2 连接spec.addActivity(n2).linkAdd(end);});新特性预览FlowContext:lastNodeId 计算的中断与恢复。参考https://solon.noear.org/article/1246flowEngine.eval(graph,context.lastNodeId(),context);//...从上一个节点开始执行flowEngine.eval(graph,context.lastNodeId(),context);新特性预览WorkflowService替代 FlowStatefulServiceWorkflowServiceworkflowWorkflowService.of(engine,WorkflowDriver.builder().stateController(newActorStateController()).stateRepository(newInMemoryStateRepository()).build());//1. 取出任务Tasktaskworkflow.getTask(graph,context);//2. 提交任务workflow.postTask(task.getNode(),TaskAction.FORWARD,context);二、特色展示1、采用 yaml 或 json 偏平式编排格式偏平式编排没有深度结构所有节点平铺使用 link 描述连接关系。配置简洁关系清晰# c1.ymlid:c1layout:-{id:n1,type:start,link:n2}-{id:n2,type:activity,link:n3}-{id:n3,type:end}还支持简化模式能自动推断的都会自动处理具体参考相关说明# c1.ymlid:c1layout:-{type:start}-{task:}-{type:end}2、表达式与脚本自由# c2.ymlid:c2layout:-{type:start}-{when:order.getAmount() 100,task:order.setScore(0);}-{when:order.getAmount() 100 order.getAmount() 500,task:order.setScore(100);}-{when:order.getAmount() 500 order.getAmount() 1000,task:order.setScore(500);}-{type:end}3、元数据配置为扩展提供了无限空间元数据主要有两个作用1为任务运行提供配置支持2为视图编辑提供配置支持# c3.ymlid:c3layout:-{id:n1,type:start,link:n2}-{id:n2,type:activity,link:n3,task:MetaProcessCom,meta:{cc:demonoear.org}}-{id:n3,type:end}通过组件方式实现元数据的抄送配置效果Component(MetaProcessCom)publicclassMetaProcessComimplementsTaskComponent{Overridepublicvoidrun(FlowContextcontext,Nodenode)throwsThrowable{Stringccnode.getMeta(cc);if(Utils.isNotEmpty(cc)){//发送邮件...}}}4、事件广播与回调支持广播即只需要发送回调即发送后要求给答复id:f4layout:-task:|//发送事件 context.eventBus().send(demo.topic, hello); //支持泛型类型按需指定不指定时为 object-task:|//调用事件就是要给答复 String rst context.eventBus().String, Stringcall(demo.topic.get, hello).get(); System.out.println(rst);5、支持驱动定制就像 jdbc 的驱动机制通过驱动定制可方便实现工作流workflow 用于办公审批型有状态、人员参与的编排场景规则流ruleflow数据流dataflowAI流aiflow等…

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询