工作流入门这篇就够了!

2024-01-04 01:28
文章标签 工作 这篇 流入

本文主要是介绍工作流入门这篇就够了!,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

总概

定义:工作流是在计算机支持下业务流程的自动或半自动化,其通过对流程进行描述以及按一定规则执行以完成相应工作。

应用:随着计算机技术的发展以及工业生产、办公自动化等领域的需求不断提升,面向事务审批、材料提交、业务整合和数据统计等应用需求的图文工作流、业务工作流也不断涌现。利用科学工作流还可以用于研究(地理)模型的集成。

研究内容

研究工作流可从工作流模型、工作流的定义和表达、工作流引擎

1.工作流模型

1.1面向控制:通常业务工作流大多数都是面向控制的工作流,以最常见的公司请假流程为例,当请假天数小于阈值时能向主管请假,否则只能向经理审批。

1.2面向数据:通常面向数据是科学工作流处理的业务,以GIS水文分析为例,进行水文分析需要DEM数据,而且需要依次进行填挖、流向、汇流累积量等分析,通常前一步的输出结果常常为下一步的输入数据,此过程涉及到数据。因此,需选择面向数据的工作流模型。

2.工作流的定义和表达

2.1.BPMN(Business Process Modeling Notation,即业务流程建模符号):是一种流程建模的通用和标准语言,用来绘制业务流程图,以便更好地让各部门之间理解业务流程和相互关系。

学习BPMN可去官网下载BPMN2规范文档,当然文档为全英文,需要一定英语功底

BPMN官网:BPMN Specification - Business Process Model and Notation

2.1.1BPMN结构(以上述请假案例为例)

BPMN大致可以分为两部分,一部分为<process></process>标签内,对BPMN要素的描述,另一部分为<bpmndi></bpmndi>内包含其位置信息,保证个元素的相对位置与设计时一致。

<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:activiti="http://activiti.org/bpmn" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:omgdc="http://www.omg.org/spec/DD/20100524/DC" xmlns:omgdi="http://www.omg.org/spec/DD/20100524/DI" typeLanguage="http://www.w3.org/2001/XMLSchema" expressionLanguage="http://www.w3.org/1999/XPath" targetNamespace="http://www.activiti.org/test"><process id="leaveProcess" name="简单请假流程" isExecutable="true"><startEvent id="startevent1" name="Start"></startEvent><userTask id="usertask1" name="请假申请"></userTask><sequenceFlow id="flow1" sourceRef="startevent1" targetRef="usertask1"></sequenceFlow><exclusiveGateway id="exclusivegateway1" name="Exclusive Gateway"></exclusiveGateway><sequenceFlow id="flow2" sourceRef="usertask1" targetRef="exclusivegateway1"></sequenceFlow><userTask id="usertask2" name="杰里奥审批"></userTask><sequenceFlow id="flow3" sourceRef="exclusivegateway1" targetRef="usertask2"><conditionExpression xsi:type="tFormalExpression"><![CDATA[${day>0&&day<=3}]]></conditionExpression></sequenceFlow><userTask id="usertask3" name="汤姆逊审批"></userTask><sequenceFlow id="flow4" sourceRef="exclusivegateway1" targetRef="usertask3"><conditionExpression xsi:type="tFormalExpression"><![CDATA[${day>3}]]></conditionExpression></sequenceFlow><endEvent id="endevent2" name="End"></endEvent><sequenceFlow id="flow6" sourceRef="usertask3" targetRef="endevent2"></sequenceFlow><sequenceFlow id="flow7" sourceRef="usertask2" targetRef="endevent2"></sequenceFlow></process><bpmndi:BPMNDiagram id="BPMNDiagram_leaveProcess"><bpmndi:BPMNPlane bpmnElement="leaveProcess" id="BPMNPlane_leaveProcess"><bpmndi:BPMNShape bpmnElement="startevent1" id="BPMNShape_startevent1"><omgdc:Bounds height="35.0" width="35.0" x="90.0" y="220.0"></omgdc:Bounds></bpmndi:BPMNShape><bpmndi:BPMNShape bpmnElement="usertask1" id="BPMNShape_usertask1"><omgdc:Bounds height="55.0" width="105.0" x="280.0" y="210.0"></omgdc:Bounds></bpmndi:BPMNShape><bpmndi:BPMNShape bpmnElement="exclusivegateway1" id="BPMNShape_exclusivegateway1"><omgdc:Bounds height="40.0" width="40.0" x="430.0" y="218.0"></omgdc:Bounds></bpmndi:BPMNShape><bpmndi:BPMNShape bpmnElement="usertask2" id="BPMNShape_usertask2"><omgdc:Bounds height="55.0" width="105.0" x="610.0" y="70.0"></omgdc:Bounds></bpmndi:BPMNShape><bpmndi:BPMNShape bpmnElement="usertask3" id="BPMNShape_usertask3"><omgdc:Bounds height="55.0" width="105.0" x="610.0" y="370.0"></omgdc:Bounds></bpmndi:BPMNShape><bpmndi:BPMNShape bpmnElement="endevent2" id="BPMNShape_endevent2"><omgdc:Bounds height="35.0" width="35.0" x="870.0" y="221.0"></omgdc:Bounds></bpmndi:BPMNShape><bpmndi:BPMNEdge bpmnElement="flow1" id="BPMNEdge_flow1"><omgdi:waypoint x="125.0" y="237.0"></omgdi:waypoint><omgdi:waypoint x="280.0" y="237.0"></omgdi:waypoint></bpmndi:BPMNEdge><bpmndi:BPMNEdge bpmnElement="flow2" id="BPMNEdge_flow2"><omgdi:waypoint x="385.0" y="237.0"></omgdi:waypoint><omgdi:waypoint x="430.0" y="238.0"></omgdi:waypoint></bpmndi:BPMNEdge><bpmndi:BPMNEdge bpmnElement="flow3" id="BPMNEdge_flow3"><omgdi:waypoint x="450.0" y="218.0"></omgdi:waypoint><omgdi:waypoint x="450.0" y="97.0"></omgdi:waypoint><omgdi:waypoint x="610.0" y="97.0"></omgdi:waypoint></bpmndi:BPMNEdge><bpmndi:BPMNEdge bpmnElement="flow4" id="BPMNEdge_flow4"><omgdi:waypoint x="450.0" y="258.0"></omgdi:waypoint><omgdi:waypoint x="451.0" y="397.0"></omgdi:waypoint><omgdi:waypoint x="610.0" y="397.0"></omgdi:waypoint></bpmndi:BPMNEdge><bpmndi:BPMNEdge bpmnElement="flow6" id="BPMNEdge_flow6"><omgdi:waypoint x="715.0" y="397.0"></omgdi:waypoint><omgdi:waypoint x="887.0" y="397.0"></omgdi:waypoint><omgdi:waypoint x="887.0" y="256.0"></omgdi:waypoint></bpmndi:BPMNEdge><bpmndi:BPMNEdge bpmnElement="flow7" id="BPMNEdge_flow7"><omgdi:waypoint x="715.0" y="97.0"></omgdi:waypoint><omgdi:waypoint x="887.0" y="97.0"></omgdi:waypoint><omgdi:waypoint x="887.0" y="221.0"></omgdi:waypoint></bpmndi:BPMNEdge></bpmndi:BPMNPlane></bpmndi:BPMNDiagram>
</definitions>

2.1.2 核心概念

2.1.3设计器推荐

processon:最常见的在线绘图软件,也可绘制BPMNProcessOn思维导图流程图-在线画思维导图流程图_在线作图实时协作

Camunda Modeler:Camunda工作流设计器,桌面端,支持Window和Linux系统,功能十分强大,工作流节点、任务和事件的属性非常丰富!!!

https://camunda.com/platform/modeler/

Bpmn.js:前端BPMN设计器,功能仅次于Camunda Modeler个人认为,但是需要不少前端知识没上较前两者较难。但由于是前端BPMN设计器,可以将其嵌入到自己的前后端项目中。

推荐学习教程:

官网:bpmn-js: BPMN 2.0 rendering toolkit and web modeler | Toolkits | bpmn.io

最全的BPMN.js中文教程:全网最详bpmn.js教材-基础篇 - 简书https://github.com/LinDaiDai/bpmn-chinese-document/blob/master/directory.md

项目:Bpmn.js+Vue,Gitee和Github都有不少项目

3.工作流引擎

   工作流设计器设计好的BPMN,可以直接导出BPMN文件或者XML文件,而怎样控制BPMN文件执行这就得靠工作流引擎控制(图3.1)。工作流引擎的工作大致可分为:流程解释、流程执行、管理监控和调用应用这四部分(图3.2)。

图3.1 工作流设计与工作流引擎关系 

图3.2工作流引擎作用 

3.1.Activiti

3.2 Camunda

3.3Flowable

这篇关于工作流入门这篇就够了!的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/567732

相关文章

工作常用指令与快捷键

Git提交代码 git fetch  git add .  git commit -m “desc”  git pull  git push Git查看当前分支 git symbolic-ref --short -q HEAD Git创建新的分支并切换 git checkout -b XXXXXXXXXXXXXX git push origin XXXXXXXXXXXXXX

嵌入式方向的毕业生,找工作很迷茫

一个应届硕士生的问题: 虽然我明白想成为技术大牛需要日积月累的磨练,但我总感觉自己学习方法或者哪些方面有问题,时间一天天过去,自己也每天不停学习,但总感觉自己没有想象中那样进步,总感觉找不到一个很清晰的学习规划……眼看 9 月份就要参加秋招了,我想毕业了去大城市磨练几年,涨涨见识,拓开眼界多学点东西。但是感觉自己的实力还是很不够,内心慌得不行,总怕浪费了这人生唯一的校招机会,当然我也明白,毕业

husky 工具配置代码检查工作流:提交代码至仓库前做代码检查

提示:这篇博客以我前两篇博客作为先修知识,请大家先去看看我前两篇博客 博客指路:前端 ESlint 代码规范及修复代码规范错误-CSDN博客前端 Vue3 项目开发—— ESLint & prettier 配置代码风格-CSDN博客 husky 工具配置代码检查工作流的作用 在工作中,我们经常需要将写好的代码提交至代码仓库 但是由于程序员疏忽而将不规范的代码提交至仓库,显然是不合理的 所

未来工作趋势:零工小程序在共享经济中的作用

经济在不断发展的同时,科技也在飞速发展。零工经济作为一种新兴的工作模式,正在全球范围内迅速崛起。特别是在中国,随着数字经济的蓬勃发展和共享经济模式的深入推广,零工小程序在促进就业、提升资源利用效率方面显示出了巨大的潜力和价值。 一、零工经济的定义及现状 零工经济是指通过临时性、自由职业或项目制的工作形式,利用互联网平台快速匹配供需双方的新型经济模式。这种模式打破了传统全职工作的界限,为劳动

Smarty模板引擎工作机制(一)

深入浅出Smarty模板引擎工作机制,我们将对比使用smarty模板引擎和没使用smarty模板引擎的两种开发方式的区别,并动手开发一个自己的模板引擎,以便加深对smarty模板引擎工作机制的理解。 在没有使用Smarty模板引擎的情况下,我们都是将PHP程序和网页模板合在一起编辑的,好比下面的源代码: <?php$title="深处浅出之Smarty模板引擎工作机制";$content=

3.比 HTTP 更安全的 HTTPS(工作原理理解、非对称加密理解、证书理解)

所谓的协议 协议只是一种规则,你不按规则来就无法和目标方进行你的工作 协议说白了只是人定的规则,任何人都可以定协议 我们不需要太了解细节,这些制定和完善协议的人去做的,我们只需要知道协议的一个大概 HTTPS 协议 1、概述 HTTPS(Hypertext Transfer Protocol Secure)是一种安全的超文本传输协议,主要用于在客户端和服务器之间安全地传输数据

以太网交换机工作原理学习笔记

在网络中传输数据时需要遵循一些标准,以太网协议定义了数据帧在以太网上的传输标准,了解以太网协议是充分理解数据链路层通信的基础。以太网交换机是实现数据链路层通信的主要设备,了解以太网交换机的工作原理也是十分必要的。 1、以太网协议介绍 1.1以太网协议 以太网是当今现有局域网(Local Area Network, LAN)采用的最通用的通信协议标准,该标准定义了在局域网中采用的电缆类型和信号

JVM工作过程

将JVM工作过程粗略分为5个阶段,包括加载阶段、链接阶段、初始化阶段、执行阶段、回收阶段 其中, (1)加载阶段、链接阶段的解析部分主要由类加载器完成 (2)初始化阶段是由JVM的类加载机制在类加载过程的最后阶段自动触发的。 (3)执行阶段主要由执行引擎负责 (4)回收阶段主要是垃圾收集器(Garbage Collector)负责。 所以,在Java虚拟机(JVM)中,读取字节码文件、解析字节码

平时工作学习重要注意的问题

总体原则:抓住重点,条理清晰,可回溯,过程都清楚。 1 要有问题跟踪表,有什么问题,怎么解决的,解决方案。 2 要有常用操作的手册,比如怎么连sqlplus,一些常用的信息,保存好,备查。

Struts 2的工作流程

基本简要流程如下:1、客户端浏览器发出HTTP请求。2、根据web.xml配置,该请求被 FilterDispatcher接收。3、根据struts.xml配置,找到需要调用的Action类和方法, 并通过IoC方式,将值注入给Aciton。4、Action调用业务逻辑组件处理业务逻辑,这一步包含表单验证。5、Action执行完毕,根据 struts.xml中的配置找到对应的返回结果result