日志10.11Flowable基本操作

Flowable打印调用原生API查询接口的SQL日志 阅读详情

一、使用IDEA创建maven项目,配置Tomcat服务器并运行Application和Tomcat Server
注意创建maven要打勾选m-a-webapp
在这里插入图片描述
添加配置 DarchetypeCatalog=internal,添加原因:每次创建maven项目时, IDEA 要使用插件进行创建,这些插件当你创建新的项目时,它每次都会去中央仓库下载,这样使得创建比较慢。所以在创建maven项目时,应该让它找本地仓库中的插件进行项目的创建。
DarchetypeCatalog=internal
在这里插入图片描述

  1. maven项目的标准目录结构:
    src/main/java
    src/main/resources
    src/test/java
    src/test/resources
    关联
    src/main/java 关联为 Sources Root
    src/main/resources 关联为Resources Root
    src/test/java 关联为Test Sources Root
    src/test/resources 关联为 Test Resources Root
    在这里插入图片描述
    二、Flowable基本操作(成果展示)
    参考项目Flowable基本操作
    1.创建ProcessEngine:创建一个基本的maven工程,然后添加两个依赖

Flowable流程引擎。使我们可以创建一个ProcessEngine流程引擎对象,并访问Flowable API。
一个是MySQL的数据库驱动,我的电脑MySQL版本为5.注意配置
在这里插入图片描述
2.部署流程定义
3.启动流程实例
在这里插入图片描述
在这里插入图片描述
4.查看任务
5.完成任务
6.流程的删除
7.查看历史信息
三、解决出现的问题
1.解决页面favicon.ico文件不存在提示404问题:在HTML页面中的标签中添加入下代码:

<link rel="shortcut icon" href="#"/>
  1. idea中连接数据库并展示数据库表的信息,数据库
    .setJdbcUrl(“jdbc:mysql://172.0.0.1:3306/flowable-learn1?serverTimezone=UTC&nullCatalogMeansCurrent=true”)要写localhost

3.警告org.apache.jasper.servlet.TldScanner.scanJars 至少有一个JAR被扫描用于TLD但尚未包含TLD。 为此记录器启用调试日志记录,以获取已扫描但未在其中找到TLD的完整JAR列表。 在扫描期间跳过不需要的JAR可以缩短启动时间和JSP编译时间。解决方法:打开配置文件
找到 Tomcat 服务器安装目录下的 conf 文件夹下的catalina.properties文件。找到下面这一行
tomcat.util.scan.StandardJarScanFilter.jarsToSkip=/
将 / 改为 .jar
tomcat.util.scan.StandardJarScanFilter.jarsToSkip=
.jar
保存并重启服务器即可
4. Error:(-,-) java: non-static method XXX() cannot be referenced from a static context
的报错,原因:不能直接调用类方法,要在该方法前添加静态标志static

附源码(备份)
main.java

import org.flowable.engine.*;
import org.flowable.engine.history.HistoricActivityInstance;
import org.flowable.engine.impl.cfg.StandaloneProcessEngineConfiguration;
import org.flowable.engine.repository.Deployment;
import org.flowable.engine.repository.ProcessDefinition;
import org.flowable.engine.runtime.ProcessInstance;
import org.flowable.task.api.Task;
import org.junit.jupiter.api.Test;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class main {
    public static void main(String[] args) {
        ProcessEngineConfiguration cfg = new StandaloneProcessEngineConfiguration()
                .setJdbcUrl("jdbc:mysql://localhost:3306/flowable1?serverTimezone=UTC")
                .setJdbcUsername("root")
                .setJdbcPassword("123456")
                .setJdbcDriver("com.mysql.jdbc.Driver")
                .setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_TRUE);
        ProcessEngine processEngine = cfg.buildProcessEngine();
        System.out.println("正常");
        testDeploy();
        testDeployQuery();
        testRunProcess();
//        testQueryTask();

        //testDeleteProcess();
//        testQueryHistory();

    }


    /**
     * 部署流程
     */
    @Test
    public static void testDeploy() {
        // 配置数据库相关信息 获取 ProcessEngineConfiguration
        ProcessEngineConfiguration cfg = new StandaloneProcessEngineConfiguration()
                .setJdbcUrl("jdbc:mysql://localhost:3306/flowable1?serverTimezone=UTC")
                .setJdbcUsername("root")
                .setJdbcPassword("123456")
                .setJdbcDriver("com.mysql.jdbc.Driver")
                .setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_TRUE);
        // 获取流程引擎对象
        ProcessEngine processEngine = cfg.buildProcessEngine();
        // 部署流程 获取RepositoryService对象
        RepositoryService repositoryService = processEngine.getRepositoryService();
        Deployment deployment = repositoryService.createDeployment()// 创建Deployment对象
                .addClasspathResource("holiday-request.bpmn20.xml") // 添加流程部署文件
                .name("请求流程") // 设置部署流程的名称
                .deploy(); // 执行部署操作
        System.out.println("deployment.getId() = " + deployment.getId());
        System.out.println("deployment.getName() = " + deployment.getName());

    }

    /**
     * 查看流程定义
     */
    @Test
    public static void testDeployQuery() {
        // 配置数据库相关信息 获取 ProcessEngineConfiguration
        ProcessEngineConfiguration cfg = new StandaloneProcessEngineConfiguration()
                .setJdbcUrl("jdbc:mysql://localhost:3306/flowable1?serverTimezone=UTC")
                .setJdbcUsername("root")
                .setJdbcPassword("123456")
                .setJdbcDriver("com.mysql.jdbc.Driver")
                .setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_TRUE);
        // 获取流程引擎对象
        ProcessEngine processEngine = cfg.buildProcessEngine();
        // 部署流程 获取RepositoryService对象
        RepositoryService repositoryService = processEngine.getRepositoryService();
        // 获取流程定义对象
        ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery()
                .deploymentId("72501")
                .singleResult();
        System.out.println("processDefinition.getId() = " + processDefinition.getId());
        System.out.println("processDefinition.getName() = " + processDefinition.getName());
        System.out.println("processDefinition.getDeploymentId() = " + processDefinition.getDeploymentId());
        System.out.println("processDefinition.getDescription() = " + processDefinition.getDescription());

    }
    /**
     * 启动流程实例
     */
    @Test
    public static void testRunProcess(){
        // 配置数据库相关信息 获取 ProcessEngineConfiguration
        ProcessEngineConfiguration cfg = new StandaloneProcessEngineConfiguration()
                .setJdbcUrl("jdbc:mysql://localhost:3306/flowable1?serverTimezone=UTC&nullCatalogMeansCurrent=true")
                .setJdbcUsername("root")
                .setJdbcPassword("123456")
                .setJdbcDriver("com.mysql.jdbc.Driver")
                .setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_TRUE);
        // 获取流程引擎对象
        ProcessEngine processEngine = cfg.buildProcessEngine();
        // 启动流程实例通过 RuntimeService 对象
        RuntimeService runtimeService = processEngine.getRuntimeService();
        // 构建流程变量
        Map<String,Object> variables = new HashMap<>();
        variables.put("employee","张三") ;// 谁申请请假
        variables.put("nrOfHolidays",3); // 请几天假
        variables.put("description","工作累了,想出去玩玩"); // 请假的原因
        // 启动流程实例,第一个参数是流程定义的id
        ProcessInstance processInstance = runtimeService
                .startProcessInstanceByKey("holidayRequest", variables);// 启动流程实例
        // 输出相关的流程实例信息
        System.out.println("流程定义的ID:" + processInstance.getProcessDefinitionId());
        System.out.println("流程实例的ID:" + processInstance.getId());
        System.out.println("当前活动的ID:" + processInstance.getActivityId());
    }
    /**
     * 查看任务
     */
    @Test
    public static void testQueryTask(){
        // 配置数据库相关信息 获取 ProcessEngineConfiguration
        ProcessEngineConfiguration cfg = new StandaloneProcessEngineConfiguration()
                .setJdbcUrl("jdbc:mysql://localhost:3306/flowable1?serverTimezone=UTC&nullCatalogMeansCurrent=true")
                .setJdbcUsername("root")
                .setJdbcPassword("123456")
                .setJdbcDriver("com.mysql.jdbc.Driver")
                .setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_TRUE);
        // 获取流程引擎对象
        ProcessEngine processEngine = cfg.buildProcessEngine();
        TaskService taskService = processEngine.getTaskService();
        List<Task> list = taskService.createTaskQuery()
                .processDefinitionKey("holidayRequestNew")
                .taskAssignee("lisi")
                .list();
        for (org.flowable.task.api.Task task : list) {
            System.out.println("task.getProcessDefinitionId() = " + task.getProcessDefinitionId());
            System.out.println("task.getId() = " + task.getId());
            System.out.println("task.getAssignee() = " + task.getAssignee());
            System.out.println("task.getName() = " + task.getName());
        }
    }

    /**
     * 删除流程
     */
    @Test
    public static void testDeleteProcess(){
        // 配置数据库相关信息 获取 ProcessEngineConfiguration
        ProcessEngineConfiguration cfg = new StandaloneProcessEngineConfiguration()
                .setJdbcUrl("jdbc:mysql://localhost:3306/flowable1?serverTimezone=UTC&nullCatalogMeansCurrent=true")
                .setJdbcUsername("root")
                .setJdbcPassword("123456")
                .setJdbcDriver("com.mysql.jdbc.Driver")
                .setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_TRUE);
        // 获取流程引擎对象
        ProcessEngine processEngine = cfg.buildProcessEngine();
        RepositoryService repositoryService = processEngine.getRepositoryService();
        // 删除流程定义,如果该流程定义已经有了流程实例启动则删除时报错
        // repositoryService.deleteDeployment("1");
        // 设置为TRUE 级联删除流程定义,及时流程有实例启动,也可以删除,设置为false 非级联删除操作。
        repositoryService.deleteDeployment("2502",true);

    }
    /**
     * 查看历史
     */
    @Test
    public static void testQueryHistory(){
        // 配置数据库相关信息 获取 ProcessEngineConfiguration
        ProcessEngineConfiguration cfg = new StandaloneProcessEngineConfiguration()
                .setJdbcUrl("jdbc:mysql://localhost:3306/flowable1?serverTimezone=UTC&nullCatalogMeansCurrent=true")
                .setJdbcUsername("root")
                .setJdbcPassword("123456")
                .setJdbcDriver("com.mysql.jdbc.Driver")
                .setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_TRUE);
        // 获取流程引擎对象
        ProcessEngine processEngine = cfg.buildProcessEngine();
        HistoryService historyService = processEngine.getHistoryService();
        List<HistoricActivityInstance> list = historyService.createHistoricActivityInstanceQuery()
                .processDefinitionId("holidayRequestNew:1:10003")
                .finished()
                .orderByHistoricActivityInstanceEndTime().asc()
                .list();
        for (HistoricActivityInstance historicActivityInstance : list) {
            System.out.println(historicActivityInstance.getActivityId() + " took "
                    + historicActivityInstance.getDurationInMillis() + " milliseconds");
        }

    }
}

Flowable 流程跟踪图片 文章目录1. DefaultProcessDiagramGenerator2. DefaultProcessDiagramCanvas3. 使用Flowable默认的流程图生成器4. 自定义流程图生成器4.1 扩展DefaultProcessDiagramCanvas4.2 扩展DefaultProcessDiagramGenerator4.3 或者自定义类实现ProcessDiagramGenerator4.4 使用自定义的流程图生成器生成流程图 1. DefaultProcessDiagramGener 阅读详情

相关推荐

Springboot +Flowable,查询已经执行过的流程信息

Springboot +Flowable,查询已经执行过的流程信息

weixin_40991408的博客 2274

Flowable流程引擎-基础篇【2022版】

学员收益    本套视频系统的给大家从零开始讲解Flowable,包括基础的环境搭建,流程的部署,启动,运行及涉及到的相关表结构和实现原理都会详细的给大家介绍。是一份学习Flowable必不可少的入门视频。全程手把手带领大家实际操作。 Flowable介绍   Flowable是基于Activiti6封装发展的更加适合企业开发的工作流引擎框架,相比于Activiti功能更加的强大,是当下国内企业在流程引擎方面的首选讲师   10余年架构和线上讲师工作经验。精通Java,微服务和云原生相关,致力于Java技术的分享,优快云官方认证技术专家,华为云技术专家,阿里云技术专家 

Flowable学习

目录 Flowable学习... 1 1.    什么是flowable?... 2 1.1 参考文档:... 2 1.2 Flowable介绍... 3 2.    Flowable与springBoot项目整合... 3 3.    flowable配置... 4 4.    Flowable数据库表(60张)... 4 5.    流程基本步骤... 5 5.1 流程部...

qq_41490843的博客 3071

flowable工作流开启sql日志输出方法

resources下面的配置文件application.yml下logging配置增加。

l2x1314258的博客 1818

Flowable 6.6.0 BPMN用户指南-(2)配置 - 2.16 日志

2.16 日志 All logging (flowable, spring, mybatis, …) is routed through SLF4J and allows for selecting the logging-implementation of your choice. 所有日志记录(flowable、spring、mybatis等)都通过SLF4J路由,允许您选择自己的日志实现(logging-implementation)。 By default no SFL4J-binding JAR

月满闲庭的博客 510

应急响应之windows日志分析工具logparser使用

windows日志分析工具logparser使用介绍

u013930899的博客 8124

Flowable 6.6.0 BPMN用户指南 - 17 高级用例 - 17.10 事件日志记录 17.11 禁用批量插入

17.10 事件日志记录(Event logging) An event logging mechanism has been introduced. The logging mechanism builds upon the general-purpose event mechanism of the Flowable engine and is disabled by default. The idea is that the events originating from the engine are

月满闲庭的博客 729

更新3ds时和用读卡器读取传输文件操作不当导致的tf卡损坏无法读取需要格式化时出现的问题以及不想丢失文件并且修复的详细解决方法

前言: 不小心按了同意更新而且tf/sd卡损坏导致了3ds打开后都是出现 Anerror has occurred:(红色的) Failed to apply 1 FIRM patch(es). Press any button to shotdown 这样的画面,按了任意键后就关机,我找了很多资料和大佬的回答解决了这些问题,现在记录一下。 一.不小心按了更新导致上述的画面 原因:是因为系统升级了,但是里面的Luma3DS还没有更新,属于是更新了但没有完全更新的状态。 **修复方法** 1.首先请按

give_me_fish的博客 1万+

Flowable工作流引擎

Flowable是BPMN的一个基于java的软件实现,不过Flowable不仅仅包括BPMN,还有DMN决策表和CMMN Case管理引擎,并且有自己的用户管理、微服务API等一系列功能,是一个服务平台。

JJJJJJJJJAVA的博客 3376

手把手教你用CubeMX给GD32F103点灯、调串口(附完整工程)

本文详细介绍了如何使用CubeMX为GD32F103开发板配置GPIO点灯和串口通信,包含完整的工程创建、代码构建和测试流程。特别强调了GD32与STM32的差异点及常见避坑技巧,帮助开发者快速上手GD32开发。

weixin_42566424的博客 313

实现自动打包py及替换pyinstaller --add-data参数的方法

实现自动打包py及替换pyinstaller --add-data参数的方法

isS_MK_GmbH的博客 3468

RuoYi-Flowable-Plus搭建(若依)

项目简介、业务功能、拉取代码、建库建表、修改配置、后端启动、前端启动、项目访问、测试SQL

tongxin_tongmeng的博客 9462

基于任务的后勤智能体:三段构建与演进设计探究

这是系统智能化的核心难点。例如,对于一个“加强连级滩头阵地防御”子任务,系统会根据防御时长、预期敌军攻击强度、地形等因素,计算出所需的弹药(不同弹种的具体数量)、构筑工事的器材、人员的给养和饮水量、以及医疗救护的药品和血包数量。首先进行分词、词性标注等基础处理,然后利用在军事语料库上训练的命名实体识别(NER)模型,提取出关键实体,如任务类型(“夺控作战”)、作战对象(“Y岛”)、时间约束(“D日H时”、“24小时内”)、成功标准(“建立稳固滩头阵地”)、保障重点(“弹药充足”、“及时救治”)等。

weixin_49042442的博客 1088

flowable38张表含义说明以及一些操作指南

flowable38张表含义说明以及一些操作指南

宁波阿成的博客 3294

SAP-ABAP:SAP中如何查看系统表之间的关联关系?

在业务逻辑开发或者ALV开发过程中,我们通常要从系统中找出几个标准表之间的关联关系,有的是head与item,通过外键进行关联的关系。那么怎么去找到呢?以上就是具体如何产看系统表之间的关联关系的步骤,对于不同代码的业务顾问,也是必须要掌握的。

LinkStar的博客 2430

Seurat-SCTransform与harmony整合学习

源于R tips:Seurat之SCTransform方法原理 (qq.com)Seurat对象在经过SCTransform处理后会增加一个SCT的Assay,里面的scaled.data就是经过scale之后的pearson residual值,这个值是用于后续降维聚类分析使用的。

hx2024的博客 2330

创建一个Flowable流程引擎

在这个初步教程中,将构建一个简单的例子,以展示如何创建一个Flowable流程引擎,介绍一些核心概念,并展示如何使用API。我们使用Maven获取Flowable依赖及管理构建,但是类似的任何其它方法也都可以使用(Gradle,Ivy,等等)。,确保在JDBC参数连接的数据库中,数据库表结构不存在时,会创建相应的表结构。本例中为H2,因为Flowable引擎在运行流程实例时,需要使用数据库来存储执行与历史数据。如果使用其他数据库(例如PostgreSQL,MySQL等),需要添加对应的数据库驱动依赖。

张锋的博客 885

MAC-电脑中的user文件夹在哪?

MAC-电脑中的user文件夹在哪?

兴趣是最好的老师 1万+

flowable兼容达梦数据库

迁移项操作要点JDBC 驱动,注意 JDK 版本选择连接 URL验证查询Oracle 模式用Flowable 方言(通过配置类编程设置)达梦设置必须开启 Oracle 兼容模式连接池Druid 配置中Flowable 通过切换 SQL 方言这一设计,使得非原生支持的数据库也能通过"方言兼容"的方式平滑迁移。达梦8 的 Oracle 兼容模式在语法覆盖上做得相当成熟,Flowable 在迁移过程中几乎没有遇到 SQL 不兼容的问题——核心工作量只是替换驱动 + 配置数据源 + 声明数据库类型。

weixin_74298838的博客 598

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

37、Springboot集成Flowable

阅读文本大概需要3分钟。工作流是OA系统不可或缺的一部分,今天介绍一款新的工作流引擎flowable。flowable 是著名 Java 工作流引擎 Activiti 的...

天行健,君子以自强不息;地势坤,君子以厚德载物。 4318

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

SpringBoot集成Flowable UI

一、引入Flowable UI相关依赖及springboot、mybatis <properties> <java.version>1.8</java.version> <flowable.version>6.4.0</flowable.version> <mybatis-spring-boot>1.3.1</mybatis-spring-boot> </pro

feiqinbushizheng的博客 2万+

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

flowable目录

1. 简介1.1. 协议1.2. 下载1.3. 源码1.4. 必要的软件1.4.1. JDK 8+1.4.2. IDE1.5. 反馈问题1.6. 实验性功能1.7. 内部实现类1.8. 版本策略1.9. 翻译说明2. 开始2.1. Flowable是什么?2.2. Flowable与Activiti2.3. 构建命令行程序2.3.1. 创建流程引擎2.3.2. 部署流程定义2.3.3. 启动流程实...

吴灵辉的博客 833

Flowable流程图数据封装

Flowable流程图数据封装 写这个的业务场景是需要呈现流程实例的 流程图同时要在环节节点呈现对应的处理日志以及表单信息。(应用于flowable远程服务,非嵌入式开发,其主要思路也只是把官方服务的相关数据进行二次封装) 先看下最终封装后的流程图对象,只封装了节点,不包含流线。若需要可根据后续介绍自行封装 [ { “id”:“startEvent1”, “name”:“派单”, “current”:false, “completed”:true, “incomingElements”:[ ],

qq_39362377的博客 2720

FLOWABLE打印底层sql

建议在 Spring Boot 的 application.properties 中添加如下配置,开启flowablelogging:level:root: info# 增加flowable 底层打印sql这个配置表示开启 flowable 的日志,开启日志的好处是可以看到底层的 SQL语句。version:{};看下控制台打印的 SQL:可以看到,就是去流程定义表 ACT_RE_PROCDEF 去查看所有。version:{};

Zdeshijie的博客 2555

SpringBoot3-Flowable7初体验

Flowable是一个轻量级Java业务流程引擎,用于管理和自动化业务流程。本文介绍了Flowable的基本配置和使用方法,包括环境准备(JDK17、MySQL8.0)、Flowable-ui的Docker部署,以及如何创建采购订单审批流程图。流程设计中实现了金额大于1000需经理审批的分支条件,并通过绑定任务处理类和参数配置完成流程定义。代码部分展示了项目依赖配置、数据库连接设置以及流程图渲染的中文显示解决方案。控制器通过Flowable API实现了流程部署、启动、任务查询和审批等功能,为业务流程自动化

愤怒的苹果ext的博客 2384

flowable数据表详解

网络爬虫的是一个非常常见的需求。普通数据,各种情况都使用的数据。表分类 表名 描述运行实例表(10)运行实例表ACT_RU_DEADLETTER_JOB 正在运行的任务表ACT_RU_EVENT_SUBSCR 运行时事件运行时流程执行实例ACT_RU_HISTORY_JOB 历史作业表ACT_RU_IDENTITYLINK 运行时用户关系信息ACT_RU_JOB 运行时作业表。

专注Java(全栈)应用开发,求知若渴,虚心若愚,talk is cheap, show me the code. 5790
上一篇: 日志10.10BPMN业务流程建模符号
下一篇: 日志10.12FlowableUI应用
Answer_G
博客等级 码龄7年 170粉丝 56原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值