Java 代码ccflow 代码分析

news2024/11/27 3:13:23

流程属性

  • 目录
    • 概述
      • 需求:
    • 设计思路
    • 实现思路分析
      • 1。代码流程
  • 参考资料和推荐阅读

Survive by day and develop by night.
talk for import biz , show your perfect code,full busy,skip hardness,make a better result,wait for change,challenge Survive.
happy for hardess to solve denpendies.

目录

在这里插入图片描述

概述

流程属性

需求:

设计思路

实现思路分析

1。代码流程

流程编号规则与节点编号规则
流程编号是一个string类型的三位数的编号,编号从001开始,最大999, 也就是在整个cc流程系统中最多有999个流程,这个范围足够您使用,不必担心,流程编号全局唯一。
节点编号是流程编号转化成int类型加上两位数的序号,比如流程编号是001,节点编号就是101开始,一直到199。也就是说在一个流程里最多有99个节点。

如果流程编号是010,那么它的节点编号就是1001,1002, …. 1099。
节点编号是int类型,节点编号。在cc里面我们把string类型的主键习惯称为编号,把int类型主键习惯称呼为ID。比如:流程编号,节点ID。
流程信息存储在WF_Flow表里,节点信息存储在 WF_Node表里,每个字段的中文意思,在您安装系统之后就会有详尽的描述。

字段的详细信息。

类别:
流程类别就是对流程的归类,合理的归类能够让系统更加清晰,流程类别是一个树形结构

流程标记:
此属性可以为空,适合高级开发者,为流程设置一个好记的名称,须是字母数字下划线组合。

设置流程标记的意义在于,当流程的编号发生变化时,可以使用流程标记找到该流程。
比如我们做一个固定资产采购流程,这个流程的编号是005,我们需要把该流程应用到其他项目上去,但是到了其他系统上的时候该流程编号并非是005了,没有流程标记就会使用流程编号,就会导致业务逻辑写的太死。有了流程标记后,就可以使用流程标记替代流程编号编写业务逻辑。就类似于孩子有一个大名,还有一个小名,通过两个名字都可以对应到这个孩子,但是标记在一个系统中不允许重复。

在高级的开发中,调用CCBPM的api时,可以不使用编号而使用标记调用api。如果您使用流程事件实体来书写业务逻辑时,您必须为该流程设置一个标记。如何使用流程事件实体FEE来书写业务逻辑,请参考下一章节。

一个流程有一个固定编号,同时您也可以为它定义一个标识,此标识是在全局唯一的,也可以称之为助记码,在调用API时可以使用助记码来调用API。
实例
例如:创建一个流程此流程的编号为001,在新建时指定它的流程标识为ShengJuQingJia。在调用CCBPM的API时就可以使用如下语法。
创建一个工作:
BP.WF.Node_CreateBlankWork(‘ShengJuQingJia’,null,null,null,0);
删除一个流程:
BP.WF.Flow_DoDeleteFlowByReal(‘ShengJuQingJia’’,11111,false);
CCBPM有一个api是可以把流程标识转化成流程编号:
BP.WF.TurnFlowCodeToFlowNo(string flowCode)

流程事件实体

流程在运动过程中,操作流程的时候,由一些动作,我们把这些动作称为流程事件。

我们把在节点上发生的事件称为节点事件,比如:发送、退回、移交、撤销、转发、加签、删除子线程等等.

我们把在流程上发生的事件称为流程事件,比如:启动流程时,流程结束前,流程结束后,流程删除前,删除后。

对于简单的、常用的业务处理、共性的业务处理我们在节点属性,流程属性上完成设置。对于复杂的、个性化的操作我们需要使用代码完成。

事件的载体
我们把事件的载体分为,配置模式与代码模式。

所谓的事件载体就是承载业务逻辑代码表单的地方介质。

配置模式

通过界面化的设置完成。

比如:流程事件的设置如下图。

事件内容首先要写一个子类,从指定的基类上集成下来.

1.3 在子类里重写这些事件, 利用这些事件完成您的业务逻辑。

其次要执行检查,系统就会把改类的名称反射到改属性里.

如果抛出异常系统则停止执行发送动作,通常在这个事件里检查是否允许发送,设置阻塞发送的条件。

如果发送前返回: @Info=xxxx@ToNodeID=xxxx@ToEmps=xxxx@IsStopFlow=0 的数据格式,系统就会解析这个格式,告诉流程该实例应该如何运行,返回的数据如果为null,或者空格,系统则不提示信息。
1.0 返回约定的格式为: @Info=xxxx@ToNodeID=xxxx@ToEmps=xxxx@IsStopFlow=0
1.1 实例1: @Info=检测到改纳税人已经注销了,不能在执行罚款操作了,流程停止了。@IsStopFlow=1
1.2 解析1:告诉引擎该流程需要停止,并且把信息提示给操作员.
1.3 实例2: @Info=检测到改客户正在执行付款,系统已经运行到财务核查节点@ToNodeID=109@ToEmps=zhangsan@IsStopFlow=0
1.4 解析2:告诉引擎,系统发送到109财务核查节点,发送给zhangsan财务执行人,提示给操作员“检测到改客户正在执行付款,系统已经运行到财务核查节点”

发送失败的时候的约定
如果发送失败,您可以使用这个事件来回滚数据.
发送失败有多种意外的因素,比如:不符合发送条件,网络,数据库,写入第三方数据问题.
驰骋工作流使用事件来完成了数据回滚,数据库事务,来保障数据的完整性。

参考资料和推荐阅读

  1. https://gitee.com/opencc/JFlow/wikis/%E6%B5%81%E7%A8%8B%E5%B1%9E%E6%80%A7/%E5%9F%BA%E6%9C%AC%E5%B1%9E%E6%80%A7/%E7%BC%96%E5%8F%B7

欢迎阅读,各位老铁,如果对你有帮助,点个赞加个关注呗!~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/180773.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux中详解编译原理每一步

引言: 时间过的飞快,可以看出我们已经开始学习Linux了,但是我们学习Linux过程中,依然会涉及到很多的以前的知识,比如编译原理,我们的代码如何从一个源文件逐步变成一个可执行文件,当初我记得我…

流批一体计算引擎-8-[Flink]的Table API连接器

参考官方文档Table API连接器 1 Table API连接器概述 Flink的Table API和SQL程序可以连接到其他外部系统,用于读取和写入批处理表和流式表。source表提供对存储在外部系统(如数据库、键值存储、消息队列或文件系统)中的数据的访问。sink表将…

Sentienl学习笔记

PS:本文为作者学习黑马程序员Springcould视频笔记实际技术参考价值不大,文章将持续更新。 文章目录一. 什么是Sentienl1. 介绍2. 与Hystrix对比3. 主要特性二. Sentienl安装配置1. 下载安装包2. 启动三. Sentienl的使用1. Sentienl的整合2. 簇点链路四. …

每日学术速递1.27

CV - 计算机视觉 | ML - 机器学习 | RL - 强化学习 前沿推介: ICLR 2023 ICLR 全称为国际学习表征会议(International Conference on Learning Representations),今年将举办的是第 11 届,预计将于 5 月 1 日至 5 …

Redis实现附近商铺 | 黑马点评

一、GEO数据结构 1、入门 GEO是Geolocation的缩写,代表地理坐标。redis3.2中加入对GEO的支持,允许存储地理坐标信息,帮助我们根据经纬度来检索数据。 常见命令: GEOADD:添加一个地理空间信息,包含&…

springcloud3 Sentinel的服务熔断操作

一 服务熔断 1.1 服务熔断 Sentinel熔断降级会在调用链路中某个资源出现不稳定状态时(调用超时或者异常比例升高),对这个资源的调用进行限制,让请求快速失败,避免影响到其他资源进而导致级联错误。 当资源被降级后&…

07_linux中断控制

裸机开发要点 通用中断控制器(GIC) 中断类型、硬件中断号、分发器和cpu接口单元 中断向量表 一级查表、二级查表 中断处理流程 进入irq模式、保护现场、获取硬件中断编号、执行中断处理函数、还原现场 设备树构造 分为 gic中断控制器设备树节点 其他外设中断控制器节点 需要…

大数据相关组件

一、 HDFSHDFS是hadoop的核心组件,HDFS上的文件被分成块进行存储,默认块的大小是64M,块是文件存储处理的逻辑单元。HDFS是Master和Slave的结构。分NameNode、SecondaryNameNode、DataNode这几个角色。NameNode:是Master节点&#…

springcloud3 Sentinel的搭建以及案例操作

一 sentinel的概念 1.1 sentinel Sentinel是分布式系统流量控制的哨兵,阿里开源的一套服务容错的综合性解决方案。 主要用来处理: 服务降级 服务熔断 超时处理 流量控制 sentinel 的使用可以分为两个部分: 核心库(Java 客户端&#…

基于nodejs+vue的留学服务管理平台的设计与开发

目 录 摘 要 I Abstract I 第一章 绪论 1 1.1系统开发的背景 1 1.2系统开发的意义 1 1.3本文研究内容 2 第二章 系统开发技术 3 第三章 系统分析 6 3.1用户需求分析 6 3.1.1 老师用户 6 3.1.2 学生用户 6 3.1.3 管理员用户 6 3.2 系统…

6--总线

文章目录一.总线概述(一)总线特性(二)总线分类1.按功能分/按连接的部件分(1)片内总线/CPU内部总线(2)系统总线(3)通信总线/外部总线2.按数据传输格式分&#…

7、关系运算符与关系表达式

目录 一、关系运算符 二、关系表达式 三、优先级与结合性 一、关系运算符 关系运算符包括大于、大于等于、小于、小于等于、等于和不等于 注意&#xff1a;符号“>”&#xff08;大于等于&#xff09;与“<”&#xff08;小于等于&#xff09;的意思分别是大于或等于…

向QAbstractItemView子类如:QTreeView、QTableView等子项单元格插入窗体小部件的功能实现(第3种方法)

1.前言工作中经常会遇到这样的需求&#xff1a;向QAbstractItemView子类如QTreeView、QTableView单元格插入窗体小部件&#xff0c;如&#xff1a;进度条、按钮、单行编辑框等。下面链接的系列博文就是讲解如何实现该功能的。《向QAbstractItemView子类如:QTreeView、QTableVie…

Java 23种设计模式(9.结构型模式-外观模式)

结构型模式-外观模式 代码详解 类图 代码 public class SubOne {public void method1(){System.out.println("method1");} }public class SubTwo {public void method2(){System.out.println("method2");} }public class SubThree {public void method3(…

VSCode配置C/C++环境

(1).配置编译器 接下来配置编译器路径&#xff0c;按快捷键CtrlShiftP调出命令面板&#xff0c;输入C/C&#xff0c;选择“Edit Configurations(UI)”进入配置。这里配置两个选项&#xff1a; - 编译器路径&#xff1a;D:/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64…

3D创作元素将入住下一代Windows 10和HoloLens中

新 Windows 10 将会带来崭新的 3D 特性&#xff0c;任何用户都可以通过内置的工具来制作发布有关「3D、增强现实 AR 和混合现实 (mixed reality) 的游戏和素材」。 北京时间 10 月 26 号晚 10 点&#xff0c;微软在纽约召开的新品发布会如期而至。会上微软发布了大家期待已久的…

【Linux】进程的概念 | 进程控制块 PCB | task_struct

&#x1f923; 爆笑教程 &#x1f449; 《看表情包学Linux》&#x1f448; 猛戳订阅 &#x1f525; &#x1f4ad; 写在前面&#xff1a;本章我们将带着大家深入理解 "进程" 的概念&#xff0c;"进程" 这个概念其实使我们一直在接触的东西&#xff0c;只不…

浅谈操作系统

操作系统是一组主管并控制计算机操作、运用和运行硬件、软件资源和提供公共服务来组织用户交互的相互关联的系统软件程序。根据运行的环境&#xff0c;操作系统可以分为桌面操作系统&#xff0c;手机操作系统&#xff0c;服务器操作系统&#xff0c;嵌入式操作系统等。 通俗来…

Three.js坐标系与变换矩阵快速入门

很多东西汇集在一起构成一个美丽的 3D 场景&#xff0c;例如光照、材质、模型、纹理、相机设置、后期处理、粒子效果、交互性等等&#xff0c;但无论我们创建什么样的场景&#xff0c;没有比这更多的了 比组成它的乐曲的排列和运动更重要。 要创建建筑效果图&#xff0c;我们必…

CDH数仓项目(一) —— CDH安装部署搭建详细流程

0 说明 本文以CDH搭建数据仓库&#xff0c;基于三台阿里云服务器从零开始搭建CDH集群&#xff0c;节点配置信息如下&#xff1a; 节点内存安装服务角色chen10216Gcloudera-scm-serverchen1038Gcloudera-scm-agentchen1048Gcloudera-scm-agent 上传需要用到的安装包&#xff1…