在我刚学习软件开发时,都会接触到程序流程图。在这里我们先复习一下程序流程图
处理框、判断框、起止框、连接点、流程线、注释框等构成,结合相应的算法,构成整个程序流程图。
任何复杂的算法。都可以由顺序结构、分子结构和循环结构这三种基本结构组成
- 顺序结构
顺序结构是简单的线性结构,各框按顺序执行。其流程图的基本形态如图所示,语句的执行顺序为
- 选择(分支)结构
这种结构是对某个给定条件进行判断,条件为真或假时分别执行不同的框的内容。其基本形状有两种
- 循环结构
循环结构有两种基本形态: while型循环和do - while型循环。a. while 型循环:其执行序列为:当条件为真时,反复执行A,一旦条件为假,跳出循环,执行循环紧后的语句。b. do-while型循环:执行序列为:首先执行A,再判断条件,条件为真时,一直循环执行A,一旦条件为假,结束循环,执行循环紧后的下一条语句
- 实例分析
计算长方形面积的问题:
可分为以下几个步骤:
(1)设置num1和num2两个变量,接收用户输入的长度和宽度,并存储到num1和num2两个变量;
(2)判断num1和num2是否大于0,如果大于0,继续下一个步骤,否则提示用户长度和宽度输入错误,算法结束;
(3)计算num1和num2的乘积,并将乘积结果存储到result变量;
(4)显示result变量的值到屏幕。
其计算流程图为:
代码如下:
我们总结下程序流程图,它包含一个开始节点,多个中间处理结点,多个结束节点。
上面的代码定义了逻辑,我们可以执行代码,根据输入变量(num1,num2)会得到不同的结果
讲了这么多程序流程图,他和工作流什么关系呢?我认为实际上,工作流是一种特殊的程序流程图。
下面是activiti工作流和程序结构流程图的对比
程序结构流程图元素activiti工作流元素说明Java的运行环境Jre流程引擎代码流程定义/流程模型/流程图代码执行流程执行实例启动事件启始框结束任务终止框用户活动等待用户输入(scanf)互斥网关判断(if/else)只有一个执行路径并行网关多线程多个执行路径子流程子函数(areaFunction)变量num1,num2变量在activiti中无需定义,可以在发起流程和用户活动处理时传入
上面关于activity工作流的介绍。实际上涵盖了我们实际工作中80%的业务情况。
下面我着重介绍一下用户活动。
在我们的工作流使用当中。接触最多的就是流程审批,而流程审批中,最重要的就是用户活动。
什么是用户活动呢?需要用户参与的活动,如果一个节点需要用户参与,我们需要
- 定义节点审批人
- 提供页面、按钮供审批人操作
- 根据审批人操作驱动流程执行
一.定义节点审批人方式
编号方式优缺点举例1具体人简单、容易理解;当人员变动时都需要修改流程定义,对业务人员要求比较高;流程带版本,修改流程后,执行中流程还会到原审批人总经理2单岗位单审批人简单、容易理解;当人员变动时无需修改流程定义,修改流程后,执行中流程还会到新审批人,是【1】中版本的优化,推荐总经理岗位3每个部门岗位类别单审批人部门助理4单岗位多审批人,需要签收,签收后任务认领到具体人副总裁5单岗位多审批人,会签,任意一人审批即可和【3】类似,但不需要签收6单岗位多审批人,会签,所有人都审批后进入下一节点7单岗位多审批人,会签,投票,比例审批人同意进入下一节点【5】,【6】是【7】的特殊情况8定义变量,通过外部程序传入流程最灵活,满足所有情况
二.提供页面、按钮供审批人操作。
编号方式优缺点举例1内置页面设计器业务人员可以自己设计、修改页面,适用于简单页面2外置页面程序员开发页面、灵活、工作量大3外置页面,提供页面设计功能兼具【1】,【2】优点,工作量大
Java Spring boot activiti前后端分离,流程审批,权限管理框架
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.bianchenghao6.com/java-jiao-cheng/17169.html