• home > OMD > UML >

    FSM/BPMN/Workflow/RPA从入坑(使用BPMN编排RPA)到放弃

    Author:zhoulujun Date:

    低代码平台想实现代码逻辑 流程 可视化改造,具体如何做?IF-ELSE大法肯定不行。ProcessMaker很多小团队在玩,但是个人还是首推Activiti

    低代码平台想实现代码逻辑/流程 可视化改造,具体如何做?

    产品肯定希望前端通过业务流程图的方式展示整个流程的逻辑:图中的各个节点可通过点击进行数据的配置,每个节点就是一个模块,配置完成后,这些模块的逻辑还可以灵活复用。这样整个流程由原来通过表单按步骤配置,转化成可视化的业务编排流程,使得整个系统的用户体验得到提升。

    那么代码层面具体如何实现呢?

    起步阶段IF-ELSE大法

    ‘if -else-if’ ladder statements

    这方面无需多讲……

    有限状态机FSM

    有限状态机 (Finite State Machine)缩写为 FSM是一种经典的设计模式,简称为状态机。

    状态机有 3 个组成部分:状态(State)、事件(Event)、动作(Action)。其中,事件也称为转移条件(Transition Condition)。事件触发状态的转移及动作的执行。动作也不是必须的,也可能只转移状态,不执行任何动作。典型的状态机有正则表达式引擎、订单工单处理流程等场景。

    FSM有限状态机-状态图画法

    这是一种好的解决方式,但是不是本文重点。

    BPMM

    BPMM概念浅析

    BPM

    BPM(Business Process Management)业务流程管理,工单订单系统都是典型的BPM系统。

    BPM基本内容是管理既定工作的流程,通过服务编排,统一调控各个业务流程,以确保工作在正确的时间被正确的人执行,达到优化整体业务过程的目的。 BPM概念的贯彻执行,需要有标准化的流程定义语言来支撑,使用统一的语言遵循一致的标准描述具体业务过程,这些流程定义描述由专有引擎去驱动执行。这个 引擎就是工作流引擎,它作为BPM的核心发动机,为各个业务流程定义提供解释、执行和编排,驱动流程“动“起来,让大家的工作“流”起来,为BPM的应用 提供基本、核心的动力来源。

    BPM目前最新的协议是BPM2.0,逐渐成为业内标准(该标准已经成为了ISO标准之一)。 BPMN 2.0(Business Process Model and Notation),具体参看:

    BPMN

    BPMN由业务流程管理倡议组织BPMI(The Business Process Management Initiative)开发的一套标准的业务流程建模符号规范。

    其目的是为用户提供一套容易理解的标准符号,这些符号作为BPMN的基础元素,将业务流程建模简单化、图形化,将复杂的建模过程视觉化,让业务建模者、业务实施人员、管理监督人员对BPMN描述的业务流程都有一个更加清晰明了的了解。

    BPMN三大要素

    • Activities(活动):在工作流中所有具备生命周期状态的都可以称之为“活动”,如原子级的任务(Task)、流向(Sequence Flow),以及子流程(Sub-Process)等

    • Gateways(网关):顾名思义,所谓“网关”就是用来决定流程流转指向的,可能会被用作条件分支或聚合,也可以被用作并行执行或基于事件的排它性条件判断

    • Events(事件):在BPMN2.0执行语义中也是一个非常重要的概念,像启动、结束、边界条件以及每个活动的创建、开始、流转等都是流程事件,利用事件机制,可以通过事件控制器为系统增加辅助功能,如其它业务系统集成、活动预警等

    BPMN有四类基本元素
    • 流对象(Flow Objects):包括事件、活动、网关,是BPMN中的核心元素。

    • 连接对象(Connecting Objects):包括顺序流、消息流、关联。

    • 泳道(Swimlanes):包括池和道两种类型。

    • 人工信息(Artifacts):包括数据对象、组、注释。

    • 在这里插入图片描述

    BPMN前端实现:

    https://bpmn.io/toolkit/bpmn-js/ 就是基于BPMN标准实现的一套渲染工具包和web建模器,它既可以是web查看器也可以是web建模器,使用查看器将BPMN2.0流程图嵌入到应用中,使用建模器在应用内部创建BPMN2.0流程图;

    BPMN与流程图有很大区别,BPMN是一种规范。

    • bpmn-js就是基于BPMN标准实现的一套渲染工具包和web建模器。 可视试用下:https://demo.bpmn.io/bpmn

    • React Flow、G6更多的是偏向于流程图,

    • X6、LogicFlow涉及简单的bpmn,而bpmn-js根据规范实现了真正的业务流程标准。

    bpmn-js画板和形状都是通过tiny-svg的npm工具库进行svg相关的图形操作;X6、logicFlow、reactFlow也是用的svg,G6用的canvas。

    在这里插入图片描述

    BPMN后台方案:

    一般基于二开,个人竞品分析如下:

    • Activiti:是一个轻量级的工作流和业务流程管理 (BPM) 平台,它针对业务人员、开发人员和系统管理员设计。

    • Flowable:它是 Activiti 的一个分支,专注于性能和可扩展性。

    • jBPM:java平台,个人首推。相比Camunda BPM 更加灵活嵌入(可以整花活),拿来即用,推Camunda BPM 

    • ProcessMaker:小团队,还是用这个比较合适(PHP语言)。

    上叙只有ProcessMaker是PHP开发,AGPL-3.0 协议。其它基本基本都是Apache License 2.0 协议,Java 语言开发(Activiti/jBPM/Camunda BPM)

    个人首推activiti (玩的人多)。


    RPA

    RPA,即Robotic Process Automation(机器人流程自动化),旨在模拟人类在计算机上执行的重复性任务。

    通过使用RPA,企业可以创建软件机器人(或简称“机器人”),这些机器人能够学习、模仿并然后自动执行业务流程中的规则性工作。

    RPA的目的是提高效率、减少错误并释放人力资源去处理更有价值的工作。

    RPA的关键特点包括:

    1. 用户界面交互:RPA机器人通常通过与应用程序的用户界面(UI)交互来执行任务,就像人类用户一样。它们可以登录系统、输入数据、计算、处理事务并执行其他各种任务。

    2. 规则基础:RPA最适合于那些高度规则化、重复性强的任务。机器人可以遵循明确的规则来执行流程。

    3. 非侵入性:RPA技术是非侵入性的,意味着它可以在现有的IT架构上实施,而不需要对现有系统进行大规模的更改或集成。

    4. 可扩展性:企业可以根据需要部署任意数量的RPA机器人,以处理不同的任务或应对工作量的波动。

    5. 快速实施:与传统的IT项目相比,RPA解决方案通常可以更快地部署和实施,因为它们不需要深入的系统集成或复杂的编码工作。

    6. 成本效益:通过自动化手动和重复性的任务,RPA可以帮助企业节省时间和成本,同时提高准确性和一致性。

    阿里这玩意卖了很久了:https://www.aliyun.com/product/codestore

    通过模拟人的界面操作,自动完成跨系统、跨平台重复有规律的工作流任务,成倍提升人工效率。目前已在零售、政务、制造、银行、保险、医疗、能源、教育等领域得到了广泛应用,累计执行次数已突破200亿次。

    以下是这5个开源框架在低代码、可读性、跨平台、开发语言、以及开源协议等方面的对比。


    最终我还是直接 那OpenRPA 搞,彻底放弃深入了解的不良企图(巨坑,个人搞不定)!



    转载本站文章《FSM/BPMN/Workflow/RPA从入坑(使用BPMN编排RPA)到放弃》,
    请注明出处:https://www.zhoulujun.cn/html/Operation/UML/2024_0327_9091.html