CN116450246A - 一种基于状态机的事件流转可配置方法 - Google Patents
一种基于状态机的事件流转可配置方法 Download PDFInfo
- Publication number
- CN116450246A CN116450246A CN202211262808.8A CN202211262808A CN116450246A CN 116450246 A CN116450246 A CN 116450246A CN 202211262808 A CN202211262808 A CN 202211262808A CN 116450246 A CN116450246 A CN 116450246A
- Authority
- CN
- China
- Prior art keywords
- flow
- state
- state machine
- service
- parameter
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 72
- 230000008569 process Effects 0.000 claims abstract description 49
- 230000009471 action Effects 0.000 claims description 13
- 238000012986 modification Methods 0.000 claims description 10
- 230000004048 modification Effects 0.000 claims description 10
- 238000010586 diagram Methods 0.000 claims description 9
- 230000006870 function Effects 0.000 claims description 9
- 238000013508 migration Methods 0.000 claims description 8
- 230000005012 migration Effects 0.000 claims description 6
- 238000004806 packaging method and process Methods 0.000 claims description 4
- 238000004321 preservation Methods 0.000 claims description 4
- 238000002347 injection Methods 0.000 claims description 3
- 239000007924 injection Substances 0.000 claims description 3
- 230000003068 static effect Effects 0.000 claims description 3
- 238000012217 deletion Methods 0.000 claims description 2
- 230000037430 deletion Effects 0.000 claims description 2
- 238000005553 drilling Methods 0.000 claims description 2
- 238000005538 encapsulation Methods 0.000 claims description 2
- 238000012163 sequencing technique Methods 0.000 claims description 2
- 238000012546 transfer Methods 0.000 claims description 2
- 230000008878 coupling Effects 0.000 abstract 1
- 238000010168 coupling process Methods 0.000 abstract 1
- 238000005859 coupling reaction Methods 0.000 abstract 1
- 230000010354 integration Effects 0.000 abstract 1
- 238000013461 design Methods 0.000 description 10
- 238000012423 maintenance Methods 0.000 description 6
- 239000000243 solution Substances 0.000 description 6
- 238000012545 processing Methods 0.000 description 4
- 230000000007 visual effect Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 230000007704 transition Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4498—Finite state machines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/34—Graphical or visual programming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Computer Security & Cryptography (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明属于web系统数据技术领域,涉及一种业务工作流的状态流转可配置的方法。包括如下步骤:S1.软件安装部署;S2.业务状态参数预定义;S3.业务流程编排新增;S4.业务流程编排设计器;S5.业务流程编排保存;S6.业务决策模型配置;S7.业务流程编排发布;S8.事件流转调用。本发明通过web页面快速且便捷的配置一套事件状态流转关系,提高了配置的可读性和可维护性;相较于市面上的开源状态机性能更好,本发明与调用方低耦合,方便集成使用。
Description
技术领域
本发明属于web系统数据技术领域,涉及一种业务工作流的状态流转可配置的方法。
背景技术
工作流作为每一个需要进行流程审批的软件系统的核心功能,工作人员提交流程审批,需要根据预定的流程配置提交到下一个审批环节,其中也涉及到多个业务属性和参数的状态流转,背后支撑业务流程审批的技术解决方案也是多样,如基于BPMN的工作流引擎,基于有限状态机的状态机引擎。可是以上两类解决方案的现有实现在技术领域中都各自有不足之处,拿市面上现有的工作流引擎来说,它有修改流程繁琐、处于活动当中的流程实例版本迁移困难、批量审批效率低下等问题;拿市面上现有的状态机引擎来说,开源状态机太复杂,大多数场景下的项目研发不需要状态嵌套、状态的并行、子状态机等高级玩法,学习成本较高、市面上的状态机性能差,因为它们都是有状态的,状态机实例就不是线程安全的,在分布式多线程的场景下,每次状态机请求都会build一个新的状态机实例、开源状态机的使用方式是在程序代码中使用枚举定义状态,再进行状态流转配置,采用的是硬编码方式灵活性较低,遇到配置修改需要重新部署发版,不方便维护。
发明内容
为了克服上述现有技术中存在的问题,本发明的目的是提供一种基于状态机的事件流转可配置方法,解决了现有技术中存在的问题。
一种基于状态机的事件流转可配置方法,包括如下步骤为:
S1、软件安装部署
对于后端服务在java运行环境中,通过编译工具,将后端程序打包成jar,部署到服务器进行java命令方式的启动;对于前端应用程序采用npm方式进行打包,并上传到web服务器中进行静态资源部署;
S2、业务状态参数预定义
进入前端应用进行新增参数、编辑参数、删除参数、禁用参数、搜索、重置;根据业务流程需求,在数据字典中配置流程有关的业务参数类别,在页面上选择一个参数类别页签,再新增参数,填写参数编码、参数名称、参数描述、排序值,点击保存增加相应业务参数类别的具体参数;
S3、业务流程编排新增
根据流程编排信息列表,页面包含元素有新增、关键字搜索、重置、流程编排、发布日志、编辑、删除、禁用8个操作功能,其中新增操作需要填写流程名称、流程编码、流程描述信息,流程编码是业务服务调用状态机引擎的关键标识,标识使用者需要调用哪个事件流转配置;
S4、流程编排设计器
在S3步骤的基础上,流程编排进入流程编排设计器,基于业务决策模型的流程编排,流程设计器包括开始、结束、流程节点、判定、连线,通过拖拽在画布上定制流程,其中规则如下,1.开始和结束节点必须有;2.开始节点只能有一个下行线连接;3.流程节点只能有多个上行线、只能由一个下行线;4.网关只能由一个上行线、可以有多个下行线;5.结束节点只能有一个上行线,无下行线;
S5、业务流程编排保存
基于S4步骤,将编辑好的流程图进行保存,保存成功业务流程编排列表会增加一条数据,该数据会进入‘未发布’初始状态,整个状态包括‘未发布’、‘待发布’、‘发布中’、‘已发布’、‘发布失败’五个状态,此时的保存只是针对流程编排的数据结构进行新增/更新存储入库,并未将流转配置数据转化为状态机数据;
S6、业务决策模型配置
基于S5步骤,点击某个流程节点,选择下钻,如果此时编辑后未保存会提示‘流程图改动后未保存,无法下钻’;进入业务决策模型包含‘保存’、‘返回’、‘译码’三个操作,以及主要配置页面表格;
S7、业务流程编排发布
以上所有步骤完成后,填写发布人、发布版本号,点击确定按钮,提交发布任务,发布任务将会执行流转配置数据转换为状态机数据结构的逻辑处理,并将转换后的数据进行相应的存储此时流程编排状态会从‘未发布’进入到‘已发布‘状态’,代表发布成功;
对应S3步骤所述,可以在流程编排列表页面,查看对应流程编排的发布日志。如果发布失败,状态会从‘未发布’进入到‘发布失败’,并展示发布失败原因;
进一步的如果发布状态是‘已发布’,此时在流程编辑器继续编辑修改保存,此时的状态会从‘已发布’进入到‘待发布’,代表编辑器重新编辑保存,但是未发布新版本。
S8、事件流转调用
在S7步骤完成后,事件流转配置提供调用;
状态机引擎对外提供两种服务调用方式:一种是直接通过http请求方式调用服务接口;另一种通过引用SDK方式,使用者通过SDK封装的触发方法进行调用;http方式调用,请求参数包括S6步骤中配置的输入状态、状态机编码、handle动作的传入参数,返回参数包括迁移后的状态、所要执行的handle动作名称;使用者通过依赖注入的方式引入状态机的sdk,直接调用stateMachineCoreSdk的fire方法,方法的入参和返回值跟http方式一致,如果配置了handle则会执行handle动作。
复杂设计的解决方案,它的优点是功能很完备,缺点也是功能很完备,本发明目的是避开流程审批的过度设计,在合适的地方使用合适的解决方案。基于这样的思想,本发明目的是在以下四个场景下找到替换工作流引擎的解决方案:
场景一,仅仅需要控制流程节点的流转方向,不涉及流程会签、并行流程、子流程等复杂业务操作。如果采用工作流引擎实现,简单的流程业务,会使工作流引擎显得笨重。
场景二,除了需要控制流程节点的流转方向之外,还涉及到许多其他业务属性的状态变化。比如业务上需要从一个现有的业务状态遇到事件条件后,迁移到另一个新业务状态;或者从多个现有业务状态迁移到多个其他新业务状态。这些业务状态的变化关系,不采用硬编码方式,而是一种可视化的配置,希望增强代码可理解性,配置方便直观。
场景三,流程节点的流转方向随着业务的发展,需要频繁变更,且需要快速修改配置,并发布上线。希望增加或修改一条规则的时候,不需要重复部署发布代码。
场景四,流程的批量审批业务较多,且每次批量审批的数目较多,对于审批的性能要求较高,要求提高流程的审批效率。
采用本发明技术方案的实现方式,提升了流程配置修改的便捷性、实时性,解决流程修改后流程实例适应新流程版本困难的问题;本发明较工作流更加轻量,能提升批量审批业务中的性能。
对于现有的状态机技术实现来说,本发明采用了无状态设计,提升了状态机请求性能;将流程状态配置界面化,替代了现有技术的配置硬编码方式,提升了状态流转配置的灵活性和可维护性。
附图说明
图 1为状态机无状态设计方案示意图;
图2为基于状态机的事件流转实施步骤图;
图 3为业务状态参数预定义示意图;
图4为业务流程编排新增示意图;
图5为流程编排-流程设计器示意图;
图6为业务决策模型状态机示意图;
图7为领域驱动模型示意图。
具体实施方式
名词解释
本发明是基于springBoot技术框架的整合web项目,分为前端应用和后端应用,前端用于运维或开发人员进行状态流转的页面可视化配置,后端提供对应的请求数据处理和返回对应的结果数据,采用前后端分离技术,将前端项目和后端服务单独部署,形成一套完整的状态机引擎。本发明基于有限状态机设计模式,其内部实现是基于camunda的DMN决策引擎,通过适配器模式和数据处理将其转为状态机的实现标准。
本发明可以在前端进行事件流转配置,配置的数据存储到对应的数据库中,存储过程中涉及到页面流转配置数据转换为状态机的数据结构如附图1所示结构,并将转换后的数据进行相应的存储;在业务服务调用状态机接口的时候,状态机引擎会通过适配器模式利用dmn引擎提供的功能,触发状态机的状态匹配逻辑得到状态迁移后的状态,并输出给业务调用方。状态机引擎对外提供两种服务调用方式:一种是直接通过http请求方式调用服务接口;另一种通过引用SDK方式,使用者通过SDK封装的触发方法进行调用。
本发明是基于无状态的设计,对于开源状态机都是有状态的,每个事件流转都基于一个状态机实例,在遇到分布式多线程的场景下,多线程操作同一个状态机实例就会出现线程安全问题,所以开源状态机解决方案就是必须重新创建一个新的状态机实例来应对每次的用户请求。对于本发明的无状态设计来说,设计逻辑如附图1所示,图中初始请求会根据请求的状态机编码生成一个状态机配置实例,该实例全局唯一,所有的请求都会由单独的处理线程来读取状态机配置实例数据,根据配置来匹配现有状态和事件条件,得出迁移后的新状态,并返回给请求者。由于多个线程都公用同一个状态机配置实例,且只是读取数据,不涉及线程安全问题,而且不用每次请求都创建一个新的状态机实例,高并发场景下能提升请求性能。
本发明是一种基于状态机的事件流转可配置方法,实施步骤如附图2包括如下实施步骤:
S1、软件安装部署
对于后端服务来说,需要在java运行环境中,通过编译工具,将后端程序打包成jar,部署到服务器进行java命令方式的启动;对于前端应用程序来说,采用npm方式进行打包,并上传到web服务器中进行静态资源部署。
S2、业务状态参数预定义
进入前端页面,选择业务参数定义菜单。如附图3所示,界面包括新增参数、编辑参数、删除参数、禁用参数、搜索、重置,6个操作功能,功能参数说明如下表1所示,定义业务参数的目的是方便后续流程编排和业务决策模型的配置,能够在页面中以下拉框的方式进行流程相关的参数选择。首先根据业务流程需求分析,在数据字典中配置流程有关的业务参数类别,在页面上选择一个参数类别页签,再点击新增参数,填写参数编码、参数名称、参数描述、排序值,点击保存即可增加相应业务参数类别的具体参数。
表1 业务参数预定义功能点说明
S3、业务流程编排新增
选择业务流程编排菜单,如上附图所示,进入流程编排信息列表,页面包含元素有新增、关键字搜索、重置、流程编排、发布日志、编辑、删除、禁用8个操作功能,功能参数说明如下表2所示,其中新增操作需要填写流程名称、流程编码、流程描述信息,这些信息是流程编排的基本信息,流程编码最为关键,是业务服务调用状态机引擎的关键唯一标识,标识使用者需要调用哪个事件流转配置。
S4、流程编排设计器
在S3步骤的基础上,点击流程编排按钮进入流程编排设计器页面,如附图5所示,基于业务决策模型(状态机)的流程编排,管理员通过拖拽的形式,方便运维人员进行事件流转的可视化配置,可以与业务决策模型(状态机)进行关联。流程设计器包括开始、结束、流程节点、判定、连线,5种流程设计器元素,通过拖拽在画布上定制流程,其中绘制规则如下,1.开始和结束节点必须有、2.开始节点只能有一个下行线连接、3.流程节点只能有多个上行线、只能由一个下行线、4.网关只能由一个上行线、可以有多个下行线、5.结束节点只能有一个上行线,无下行线。
如图所示的流程节点用例部分,点击流程节点元素,页面右侧弹框,其中值来源包括业务参数定义和自定义,选择业务参数定义,下拉框值来源于S2步骤中配置的流程节点参数;选择自定义,由运维人员自行输入节点名称和节点编码,最后点击保存生效。如图所示的网关下行线用例部分,网关下行线作用是用来连接下一个流程节点,线上可以配置条件判断,用于判断传入参数是true/false, 如果判断结果是true,则决定事件流转的下一个节点。该条件包括三个下拉框选择,第一个下拉框则是S2步骤中提到的业务参数类别;第二个下拉框使判断逻辑,包括等于、大于、小于、大于等于、小于等于这几个选项;第三个是判断条件,也是S2步骤中具体新增的业务状态参数,用于选择具体的比较值。配置完成后点击确定即可生效。
S5、业务流程编排保存
基于S4步骤,如附图所示的保存用例,将编辑好的流程图进行保存,保存成功业务流程编排列表会增加一条数据,该数据会进入‘未发布’初始状态,整个状态包括‘未发布’、‘待发布’、‘发布中’、‘已发布’、‘发布失败’五个状态。此时的保存只是针对流程编排的数据结构进行新增/更新存储入库,并未将流转配置数据转化为状态机数据,数据结构如附图所示,但他却是作为流程节点下钻操作(与业务决策模型关联)的前提。
S6、业务决策模型配置
基于S5步骤,鼠标右键点击某个流程节点,选择下钻按钮,如果此时编辑后未保存会提示‘流程图改动后未保存,无法下钻’。进入业务决策模型(状态机)如附图所示用例,包含‘保存’、‘返回’、‘译码’三个操作按钮,以及主要配置页面表格。
保存是将编辑好的状态机数据进行保存入库;返回是返回到流程编排设计器页面;译码是将状态机的状态值由业务参数定义的编码转换为中文,方便运维人员查看阅读。
该配置页面最主要的是如附图所示的编辑用例,编辑页面以表格方式呈现,分为表头(状态key)和表内容(状态value)两块,其中表头如附图所示,表头分为‘输入表头’、‘输出表头’、‘注释’三块,根据有限状态机的定义,输入表头可以定义现有状态、事件条件,输出表头可以定义迁移后的状态、动作。点击表头的按钮可以新增表头、删除表头,新增表头配置如图右侧展示,选择步骤S2生成的业务参数定义类别,点击确定配置生效。表头下方点击表格空白处,可以编辑具体的状态值,下拉选择该表头对应参数类别的具体参数码值,点击确定配置生效。可以在输出表头定义一列自定义码值为‘handle’的输出表头,在对应的表头下定义系统所要执行的动作(java代码,该代码需要实现handle抽象接口),根据有限状态机的定义,该动作不是必须执行,所以此列也不是必须定义。所示最后一列是‘注释’,只是针对该条配置的一次文字说明。
进一步的运维人员根据业务流转需求,将该流程节点下所涉及到的所有状态流转关系配置完成后,点击保存配置生效,即将业务决策模型和业务流程编排关联上,系统将所有配置信息入库保存,数据结构如附图所示。
、业务流程编排发布
以上所有步骤完成后,如附图所示发布用例,页面上点击发布按钮弹出表单填写页,填写发布人、发布版本号,点击确定按钮,提交发布任务,发布任务将会执行流转配置数据转换为状态机数据结构的逻辑处理,并将转换后的数据进行相应的存储,存储结构如附图所示,此时流程编排状态会从‘未发布’进入到‘已发布‘状态’,代表发布成功。
对应S3步骤所述,可以在流程编排列表页面,查看对应流程编排的发布日志。如果发布失败,状态会从‘未发布’进入到‘发布失败’,并展示发布失败原因。
进一步的如果发布状态是‘已发布’,此时在流程编辑器继续编辑修改保存,此时的状态会从‘已发布’进入到‘待发布’,代表编辑器重新编辑保存,但是未发布新版本。
、事件流转调用
在S7步骤完成后,事件流转配置可对外提供调用,本发明的状态机引擎是无状态的,即不保持每次事件调用的当前状态和迁移后的状态,每次调用使用的是同一个状态机实例。
状态机引擎对外提供两种服务调用方式:一种是直接通过http请求方式调用服务接口;另一种通过引用SDK方式,使用者通过SDK封装的触发方法进行调用(最终也是通过http方式调用)。如附图所示,http方式调用,请求参数包括S6步骤中配置的输入状态、状态机编码、handle动作的传入参数,返回参数包括迁移后的状态、所要执行的handle动作名称;如图所示,使用者通过依赖注入的方式引入状态机的sdk,直接调用stateMachineCoreSdk的fire方法,方法的入参和返回值跟http方式一致,如果配置了handle则会执行handle动作。
有益效果及对比:本发明是一种基于状态机的事件流转可配置方法,对比市面上的解决方面有以下有益效果,相对于bpmn的工作流引擎来说,本发明更加轻量级,在批量审批场景下性能更优,在需要频繁修改流程转向的场景下更加便捷有效;相对于市面上的状态机引擎来说,本发明是无状态设计,在并发场景下性能更优,在配置方面更加直观方便。
对比工作流引擎:
1.比较批量业务审批
实现方案 | 测试集(条) | 时间(s) |
工作流引擎 | 1000 | 439 |
本发明 | 1000 | 245 |
2.比较流程配置和修改
实现方案 | 配置方式 | 流程修改 |
工作流引擎 | 有流程图配置,但只涉及到流程转向和流程节点配置,事件审批相关的其他状态只能通过枚举或者HashMap硬编码方式配置。 | 流程图修改并发布后,新启动的流程实例按照新流程图流转,老的流程实例只能按照之前流程图版本流转。 |
本发明 | 有流程图配置,也有跟事件审批相关的其他状态流转配置,且能通过web页面进行配置。可以从多个当前状态转换到多个迁移后的状态,当前状态和迁移后状态可以是多对多关系。 | 基于无状态设计,流程版本更新发布后,所有业务事件按照新版本流转。 |
3.对比市面上的状态机引擎:
实现方案 | 配置方式 | 执行性能 |
开源状态机 | 通过代码中的Enum和map结合的硬编码方式配置状态机领域模型。 | 开源状态机都是有状态的,它会维持初始状态和当前状态,为了保证线程安全,每一次状态机请求,都需要build一个新的状态机实例,造成性能开销。 |
本发明 | 有流程图配置,也有跟事件审批相关的其他状态流转配置,且能通过web页面进行配置。可以从多个当前状态转换到多个迁移后的状态,当前状态和迁移后状态可以是多对多关系。 | 无状态设计,不会维持初始状态和当前状态,一个状态机只有一个实例,状态维持直接交给业务系统更新存储。在本发明的特定领域语言下,仅仅是接受一下输入状态,检查一下输入事件, 执行一下动作,然后返回输出状态,全程操作无状态。 |
Claims (2)
1.一种基于状态机的事件流转可配置方法,其特征在于包括如下步骤为:
S1、软件安装部署
对于后端服务在java运行环境中,通过编译工具,将后端程序打包成jar,部署到服务器进行java命令方式的启动;对于前端应用程序采用npm方式进行打包,并上传到web服务器中进行静态资源部署;
S2、业务状态参数预定义
进入前端应用进行新增参数、编辑参数、删除参数、禁用参数、搜索、重置;根据业务流程需求,在数据字典中配置流程有关的业务参数类别,在页面上选择一个参数类别页签,再新增参数,填写参数编码、参数名称、参数描述、排序值,点击保存增加相应业务参数类别的具体参数;
S3、业务流程编排新增
根据流程编排信息列表,页面包含元素有新增、关键字搜索、重置、流程编排、发布日志、编辑、删除、禁用8个操作功能,其中新增操作需要填写流程名称、流程编码、流程描述信息,流程编码是业务服务调用状态机引擎的关键标识,标识使用者需要调用哪个事件流转配置;
S4、流程编排设计器
在S3步骤的基础上,流程编排进入流程编排设计器,基于业务决策模型的流程编排,流程设计器包括开始、结束、流程节点、判定、连线,通过拖拽在画布上定制流程,其中规则如下,1.开始和结束节点必须有;2.开始节点只能有一个下行线连接;3.流程节点只能有多个上行线、只能由一个下行线;4.网关只能由一个上行线、可以有多个下行线;5.结束节点只能有一个上行线,无下行线;
S5、业务流程编排保存
基于S4步骤,将编辑好的流程图进行保存,保存成功业务流程编排列表会增加一条数据,该数据会进入‘未发布’初始状态,整个状态包括‘未发布’、‘待发布’、‘发布中’、‘已发布’、‘发布失败’五个状态,此时的保存只是针对流程编排的数据结构进行新增/更新存储入库,并未将流转配置数据转化为状态机数据;
S6、业务决策模型配置
基于S5步骤,点击某个流程节点,选择下钻,如果此时编辑后未保存会提示‘流程图改动后未保存,无法下钻’;进入业务决策模型包含‘保存’、‘返回’、‘译码’三个操作,以及主要配置页面表格;
S7、业务流程编排发布
以上所有步骤完成后,填写发布人、发布版本号,点击确定按钮,提交发布任务,发布任务将会执行流转配置数据转换为状态机数据结构的逻辑处理,并将转换后的数据进行相应的存储此时流程编排状态会从‘未发布’进入到‘已发布‘状态’,代表发布成功;
对应S3步骤所述,在流程编排列表页面,查看对应流程编排的发布日志;如果发布失败,状态会从‘未发布’进入到‘发布失败’,并展示发布失败原因;如果发布状态是‘已发布’,此时在流程编辑器继续编辑修改保存,此时的状态会从‘已发布’进入到‘待发布’,代表编辑器重新编辑保存,但是未发布新版本。
2.根据权利要求1所述的一种基于状态机的事件流转可配置方法,其特征在于还包括为:S8、事件流转调用
在S7步骤完成后,事件流转配置提供调用;
状态机引擎对外提供两种服务调用方式:一种是直接通过http请求方式调用服务接口;另一种通过引用SDK方式,使用者通过SDK封装的触发方法进行调用;http方式调用,请求参数包括S6步骤中配置的输入状态、状态机编码、handle动作的传入参数,返回参数包括迁移后的状态、所要执行的handle动作名称;使用者通过依赖注入的方式引入状态机的sdk,直接调用stateMachineCoreSdk的fire方法,方法的入参和返回值跟http方式一致,如果配置了handle则会执行handle动作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211262808.8A CN116450246A (zh) | 2022-10-15 | 2022-10-15 | 一种基于状态机的事件流转可配置方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211262808.8A CN116450246A (zh) | 2022-10-15 | 2022-10-15 | 一种基于状态机的事件流转可配置方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116450246A true CN116450246A (zh) | 2023-07-18 |
Family
ID=87130830
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211262808.8A Pending CN116450246A (zh) | 2022-10-15 | 2022-10-15 | 一种基于状态机的事件流转可配置方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116450246A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116974654A (zh) * | 2023-09-21 | 2023-10-31 | 浙江大华技术股份有限公司 | 一种图像数据的处理方法、装置、电子设备及存储介质 |
-
2022
- 2022-10-15 CN CN202211262808.8A patent/CN116450246A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116974654A (zh) * | 2023-09-21 | 2023-10-31 | 浙江大华技术股份有限公司 | 一种图像数据的处理方法、装置、电子设备及存储介质 |
CN116974654B (zh) * | 2023-09-21 | 2023-12-19 | 浙江大华技术股份有限公司 | 一种图像数据的处理方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109101652B (zh) | 一种标签创建和管理系统 | |
CN104133772B (zh) | 一种自动生成测试数据的方法 | |
KR101013233B1 (ko) | 의미적 그리고 기능적 관계에 따라 포털 페이지상의포틀릿의 자동적 배치를 위한 시스템 | |
CN115617327A (zh) | 低代码页面搭建系统、方法及计算机可读存储介质 | |
CN106293664A (zh) | 代码生成方法及装置 | |
CN112579625A (zh) | 多源异构数据治理方法及装置 | |
CN106407170A (zh) | 数据报表快速生成方法及系统 | |
US20070067714A1 (en) | Modularized web page editing system and method thereof | |
CN110543303A (zh) | 一种可视化业务平台 | |
CN113298503A (zh) | 一种面向政务的工作流管理系统及其分库分表方法 | |
CN110825371B (zh) | 基于React的按钮组控件的创建、渲染和交互的方法 | |
WO2020223997A1 (zh) | 一种存算显全局可配置的数据分析软件架构设计方法 | |
CN101776999A (zh) | 软件系统开发实施平台 | |
CN117519698B (zh) | 一种基于分布式架构的在线生成表单方法及系统 | |
CN101887410A (zh) | 文件转换装置、文件转换方法以及文件转换程序 | |
CN101122915A (zh) | 基于参数的搜索引擎 | |
CN108228762B (zh) | 用于配置主数据库通用模板的方法和系统 | |
CN110750553A (zh) | 一种在业务管理系统中对数据进行自定义导出的方法 | |
CN104573053A (zh) | 一种基于xml的配置项模板动态定制方法 | |
CN113962597A (zh) | 一种数据分析方法、装置、电子设备及存储介质 | |
CN111782213A (zh) | 基于dom的动态控制页面生成系统 | |
CN116450246A (zh) | 一种基于状态机的事件流转可配置方法 | |
Qu et al. | Design and implementation of system generator based on rule engine | |
JPH09212353A (ja) | 再利用設計支援方法および設計支援装置 | |
CN113655996B (zh) | 一种基于需求模型的企业级系统生成方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |