• 《Activiti6.0工作流引擎深度解析与实战》笔记


    1.1 课程导学

     --- 什么是工作流引擎?

    是用来驱动业务按照流程图逐步流转的核心框架。

    --- 为什么学习工作流引擎?

    早期:企业OA、CRM、流程审批

    现在:电商购物、金融出行、中台支撑

    --- Activiti6.0流程引擎配置

    --- 核心API

    --- 数据模型设计

    --- BPMN2.0规范

    --- BPMN2.0元素

    2.1 本章概述

    工作流入门:工作流介绍、工作流技术选型、Activiti6.0快速体验。

    2.2 工作流介绍

    工作流是什么?为什么学习工作流?如何去学习工作流?

    1、审批业务场景(如请假,有一系列步骤)

    2、审批流程模型化(抽象出一系列流程图模型)

    “开始节点”(开始StartEvent)->填写审批信息的“用户节点”->通过“流程判断”(排他网关Exclusive Gateway)可以流转到“主管审批”(任务UserTask)->...->“结束节点”(结束EndEvent)

    3、常见的网上购物流程

    4、购物工作流程模型化

    有3个参与者,“电商购物流程”是泳池Pool,“仓储物流”等是泳道Line,“检验库存”是服务任务ServiceTask(服务任务是指不是由人工操作,而是由系统自动完成实现的逻辑)。

    5、工作流是什么

    6、为什么需要工作流

    2.3 工作流引擎技术选型

    2.4 Activiti6.0快速体验--部署环境介绍

    默认的用户名和密码是:admin和test

    2.5 Activiti6.0快速体验--部署环境实操

    win10下打开Cygwin,进行如下操作:

    1、curl -s "http://get.sdkman.io" | bash

    报错:

    Looking for a previous installation of SDKMAN...
    Looking for unzip...
    Looking for zip...
    Not found.

    Please install zip on your system using your favourite package manager.

    参考:https://blog.csdn.net/IOIO_/article/details/84946257

    解决方法是重新点击cygwin的安装包,把zip的package安装一遍,重启cygwin,再输入一遍这个命令即可。

    补充:

    cygwin必须安装的package:
    (1)Net->curl
    (2)Archive->unzip
    (3)Web->wget
    (4)Editors->vim
    (5)Devel->binutils

    (6)zip

    2、source "$HOME/.sdkman/bin/sdkman-init.sh"

    3、sdk version

    4、sdk install java 8u161-oracle

    报错:

    Stop! java 8u161-oracle is not available. Possible causes:
     * 8u161-oracle is an invalid version
     * java binaries are incompatible with CYGWIN_NT-10.0
     * java has not been released yet

    输入sdk ls

    看到java可下载版本为11.0.2-open,对应的网站是zulu.org,访问后首页就提示:

    Free JDK 8 updates are ending. Keep Java supported and secure with Zulu Enterprise

    输入sdk ls java,可以看到现在可以下载的java版本,这里暂时还是选择oracle版本:

    sdk install java 8.0.201-oracle

    5、java -version

    6、echo $JAVA_HOME

    7、wget http://mirror.bit.edu.cn/apache/tomcat/tomcat-8/v8.5.37/bin/apache-tomcat-8.5.37.zip

    8、tar -zxvf apache-tomcat-8.5.37.zip

    报错:

    gzip: stdin has more than one entry--rest ignored
    tar: Child returned status 2
    tar: Error is not recoverable: exiting now

    由于这个是zip文件而不是tar.gz,所以用unzip命令:

    unzip apache-tomcat-8.5.37.zip

    9、./apache-tomcat-8.5.37/bin/startup.sh

    报错:-bash: ./apache-tomcat-8.5.37/bin/startup.sh: Permission denied

    参考:https://blog.csdn.net/u012273127/article/details/78608417

    改成:sh ./apache-tomcat-8.5.37/bin/startup.sh

    还是不行,参考:https://blog.csdn.net/u014520797/article/details/80382792

    chmod u+x ./apache-tomcat-8.5.37/bin/startup.sh

    ./apache-tomcat-8.5.37/bin/startup.sh

    报错:

    Cannot find ./apache-tomcat-8.5.37/bin/catalina.sh
    The file is absent or does not have execute permission
    This file is needed to run this program
    参考:https://blog.csdn.net/limm33/article/details/52698334/

    最终命令如下:

    cd apache-tomcat-8.5.37/bin

    chmod 777 *.sh

    ./startup.sh

    然后再回到之前的根目录:

    cd ~

    10、jps -mlv

    11、wget https://github.com/Activiti/Activiti/releases/download/activiti-6.0.0/activiti-6.0.0.zip

    12、tar -zxvf activiti-6.0.0.zip

    改成unzip activiti-6.0.0.zip

    13、cp activiti-6.0.0/wars/activiti-app.war apache-tomcat-8.5.37/webapps

    14、cp activiti-6.0.0/wars/activiti-admin.war apache-tomcat-8.5.37/webapps

    15、./apache-tomcat-8.5.37/bin/startup.sh

    16、open http://localhost:8080/activiti-app

    在浏览器打开http://localhost:8080/activiti-app

    输入用户名:admin,密码:test

    2.6 Activiti6.0快速体验--流程体验

    流程如下:

    流程参与者:

    流程整体如下:

    步骤如下:

    1、在http://localhost:8080/activiti-app首页的Identity management的User中create user(共3个,userdev,userhr,usertl,密码和用户名设成一样):

    2、创建流程:在首页的Kickstart App的Processes中Create Process

    然后画流程:

    在TL审批这一节点中,点击“Assignments”,弹出Assignment框,配置如下:

    保存:

    3、选择“Apps”,create:

    创建完成后,可以点击界面中的“Edit included models”查看详情,这里点击保存,勾选publish...:

    4、退出切换用户,用userdev登录,启动一个流程:

    然后在界面右侧会出现一个“Comments”,点“+”号,填写“申请出差”

    5、退出切换用户,用usertl登录,在Task里可以看到这个申请,先点“Claim”获取,然后点“Complete”通过。

    6、退出切换用户,用userhr登录,看到该任务,先点“Claim”获取,然后点“Complete”通过。这时候由于流程已经结束,所以无法再查看流程,只能通过另一个项目看到:localhost:8080/activiti-admin/

    用户名和密码都是admin

    3.1 本章概述(Activiti6.0源码初探)

    源码概述、基于源码运行activiti-app、Hello World之Activiti6.0。

    3.2 Activiti6.0源码初探--概览与获取

    GitHub工作方式:

    具体步骤:

    (0)先fork

    (1)

    git clone https://github.com/zyuxuan/Activiti.git

    cd Activiti

    git checkout -b study6 activiti-6.0.0

    (2)mvn clean test-compile

    报错:

    The project org.activiti:activiti-root:6.0.0 (D:CodeActivitipom.xml) has 1 error
    [ERROR]     Non-resolvable parent POM for org.activiti:activiti-root:6.0.0: Could not find artifact org.sonatype.oss:oss-parent:pom:7 in jboss-public-repository-group (http://repository.jboss.org/nexus/content/groups/public) and 'parent.relativePath' points at wrong local POM @ line 10, column 10 -> [Help 2]

    参考:https://blog.csdn.net/z69183787/article/details/22182855

    原因是这个jar包没有下载成功:orgsonatypeossoss-parent7

    猜测是因为maven的配置文件只配置了阿里云镜像,应该要再配一个jboss镜像,参考:https://www.cnblogs.com/manliu/p/4682003.html

    具体解决步骤如下:

    先进入http://repository.jboss.org/nexus/content/groups/public/org/sonatype/oss/oss-parent/

    发现这个仓库并没有对oss-parent分具体版本。

    再进入http://repository.jboss.org/nexus/content/groups/public-jboss/org/sonatype/oss/oss-parent/

    发现这个仓库有对oss-parent分具体版本,所以要在maven的配置文件添加这一仓库:

    <mirror>
            <id>jboss-public-repository-group2</id>
            <mirrorOf>central</mirrorOf>
            <name>JBoss Public Repository Group</name>
            <url>http://repository.jboss.org/nexus/content/groups/public-jboss</url>
        </mirror>

    配置完后,重新输入mvn clean test-compile即可。

    这时候大部分jar都能开始下载,直到下面这个错误:

    Failed to execute goal on project activiti-bpmn-layout: Could not resolve dependencies for project org.activiti:activiti-bpmn-layout:jar:6.0.0: The following artifacts could not be resolved: org.slf4j:slf4j-api:jar:1.7.6, org.slf4j:jcl-over-slf4j:jar:1.7.6: Could not find artifact org.slf4j:slf4j-api:jar:1.7.6 in jboss-public-repository-group2 (http://repository.jboss.org/nexus/content/groups/public-jboss) -> [Help 1]

    原因是在jboss这个镜像中找不到版本为1.7.6的org.slf4j.slf4j-api

    于是我在网上搜到了更齐全的maven镜像,参考:https://blog.csdn.net/qq_39949109/article/details/80590739

    http://repo1.maven.org/maven2/

    把maven配置文件最终设置镜像如下(其实用不到上面这个,改一下阿里云的镜像地址就搜得到了):

        <mirror>
            <id>alimaven</id>
            <mirrorOf>central</mirrorOf>
            <name>aliyun maven</name>
            <url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
        </mirror>
        <mirror>
            <id>nexus-aliyun</id>
            <mirrorOf>central</mirrorOf>
            <name>Nexus aliyun</name>
            <url>http://maven.aliyun.com/nexus/content/groups/public</url>
        </mirror>
        <!--<mirror>
            <id>alimaven</id>
            <name>aliyun maven</name>
            <url>http://maven.aliyun.com/mvn/view</url>
            <mirrorOf>central</mirrorOf>
        </mirror>-->
        <mirror>
            <id>jboss-public-repository-group2</id>
            <mirrorOf>central</mirrorOf>
            <name>JBoss Public Repository Group</name>
            <url>http://repository.jboss.org/nexus/content/groups/public-jboss</url>
        </mirror>
        <mirror>
            <id>jboss-public-repository-group</id>
            <mirrorOf>central</mirrorOf>
            <name>JBoss Public Repository Group</name>
            <url>http://repository.jboss.org/nexus/content/groups/public</url>
        </mirror>
        <mirror>
            <id>ibiblio</id>
            <mirrorOf>central</mirrorOf>
            <name>Human Readable Name for this Mirror.</name>
            <url>http://mirrors.ibiblio.org/pub/mirrors/maven2/</url>
        </mirror>
        <mirror>
            <id>central</id>
            <name>Maven Repository Switchboard</name>
            <url>http://repo1.maven.org/maven2/</url>
            <mirrorOf>central</mirrorOf>
        </mirror>
        <mirror>
            <id>repo2</id>
            <mirrorOf>central</mirrorOf>
            <name>Human Readable Name for this Mirror.</name>
            <url>http://repo2.maven.org/maven2/</url>
        </mirror>

    配置完后,重新输入mvn clean test-compile即可。

    3.3 Activiti6.0源码初探--engine

    3.4 Activiti6.0源码初探--模块介绍

    3.5 Activiti6.0源码初探--activiti-app运行

    由于这里是基于源码运行,所以进入我的本地目录然后进行上述操作:D:CodeActivitimodulesactiviti-uiactiviti-app

    完成上述操作后,剖析activiti-ui下的这几个工程:

    更多具体分析步骤参考视频。

    3.6 Activiti6.0源码初探--WebConfigurer

    更多具体分析参考视频。

    3.7 Activiti6.0源码初探--helloworld1

    3.8 Activiti6.0源码初探--helloworld2

    都是基于eclipse画流程图,设置流程节点详细信息(如form信息等)

    3.9 Activiti6.0源码初探--helloworld_idea-1

    3.10 Activiti6.0源码初探--helloworld_idea-2

     3.11 Activiti6.0源码初探--helloworld_idea-3

    ...

    8.1 本章概述(集成Spring Boot2.0)

    8.2 本章概述

    8.3 Spring Boot2.0入门实例2

    8.4 Spring Boot2.0启动依赖和自动装配-1

    8.5 Spring Boot2.0启动依赖和自动装配-2

    Activiti源码里有一个module:activiti-spring-boot  ->  spring-boot-starters  ->  activiti-spring-boot-starter-basic

    8.6 Activiti6.0与Spring Boot2.0集成-1

  • 相关阅读:
    Asp.Net基础 9.Web开发原则
    JavaScript – 1.事件 + 2.变量 + 3.判断变量初始化 + 4.函数的声明 + 5.匿名函数
    DOM – 3.window对象的属性
    Dom – 1.window对象事件 + 2.body、document对象的事件
    faint
    开会
    it's over
    so funny
    no topic
    震惊:有良医生揭无良献血内幕!
  • 原文地址:https://www.cnblogs.com/z-y-x/p/10311867.html
Copyright © 2020-2023  润新知