自己动手DIY一套用户自定义工作流(源码包)

自定义工作流 需求: 综治子系统:统一受理平台和矛盾纠纷系统合二为一,因为流程一样,主要流程如下图 1、网格员上报到社区综治中心 2、社区综治中心可以选择上报到街镇综治中心或派遣给社区单位签收或派遣给具体的网格员进行处理 3、社区单位签收(派遣)具体的处理人员进行处理 4、街镇综治中心可以选择上报到区综治中心或派遣到街镇单位签收或下派到社区综治中心处理 5、街镇单位签收(派遣)具体的处理人员进行处理 6、区综治中心可以派遣到区具体的区处理单位进行处理或下派到具体的街镇综治中心 其中所有单位和具体处理人员可以进行退回操作 阅读详情


  这个压缩包里面的组件和模块是DIY一个自定义工作流的基本设计模块(包含实现自定义工作流的多种方法的其中的一种)

  其中有面向用户的自定义工作流设计器的代码包   都是第三方开发的   熟悉FLEX和JS的朋友可以用这些模块自己定制一个面向最终用户的设计器

  当实现了流程设计器之后,就需要把设计器产生的XML文件解析到数据库中去,这个过程需要参考JWFD开源工作流的文档说明,同时JWFD开源工作流的开发包里面也带有实现此类功能的代码,可以参考一下 JWFDV0.96.3二次开发包

  当在流程数据库中已经存储了工作流图之后,就需要调用JWFD的数据库SQL操作模块,然后利用ARC-流程自动运行控制器去运行一个流程,具体的说明  请参考  JWFDv0.96开源工作流系统二次开发与API简易说明  


  一个自定义工作流包含下面几个关键步骤,如果实现了这几个关键步骤,就可以很容易的实现自己的自定义工作流了

 1: 向用户提供一个不需要依赖任何开发平台(eclipse等)的流程设计器,且该流程设计器产生的XML文件可以保存在磁盘上

 2: 需要有一个能够把设计器产生的XML文件解析到后台数据库中的解析工具,数据库结构可以参考JWFDv0.96工作流引擎数据库结构说明(压缩包里面有JWFDv0.96的数据库定义SQL文件,自己可以修改,支持MYSQL数据库)

 3: 参考  JWFDv0.96开源工作流系统二次开发与API简易说明  中定义的对保存在数据库中的流程数据进行控制和操作的50多个SQL函数,调用或者重新开放一套自己产品的SQL语句集合

 4: 在实现全部的流程SQL操作语句函数的基础上,参考JWFDv0.96工作流引擎设计-自动运行控制器结构说明 这篇文档,实现一个简单的面向最终用户调用的流程自动运行控制器,程序员完成这个工作之后,在之后的工作中,就不需要因为新增加或者修改流程,而重新编写代码了

 5: 根据用户的需求,对上面的代码和模块进行优化,或者进行二次开发。。。。。。

 注意,我提供的模块和代码都需要大家动手修改,不是那种不需要写任何代码和不动脑筋就可以组合成一个完整的工作流系统的简单工程哦。。。。需要实现WEB方式的自定义工作流,需要用JS或者FLEX设计器模块,如果只需要一个C/S方式的自定义工作流,可以直接用

JWFD v0.96的开发包,在ECLIPSE里面进行二次开发,然后把JWFD打包,生成一个可执行的JAR文件,在用户机器上面安装MYSQL数据库之后,就可以直接交给用户使用了。。。。如果要开发用户的自定义表单和客户端,可以用其它的开源OA系统去修改。。这个工作我就不掺和了

 有问题给我发邮件  或者ITEYE站内信息   comsci@163.com   


http://files.cnblogs.com/comsci/DIY%E8%87%AA%E5%AE%9A%E4%B9%89%E5%B7%A5%E4%BD%9C%E6%B5%81%E8%B5%84%E6%BA%90%E5%8C%85.rar

搭建一个自定义的工作流管理平台(一) 在这个html里面,可以看到引用了放置在本地的bootstrap的js, CSS,以及jquery,feather库的js文件。其实Camunda也提供了WEB的应用来管理工作流,但是如果自己有一些额外的需求,要进行一些自定义的功能,那么最好是自己开发一个WEB应用,通过调用Camunda引擎提供的API接口来实现对工作流的管理。工作流的引擎我采用的是业界流行的Camunda,这个引擎基于BPMN/DMN的标准来实现工作流,可以很方便的进行工作流的编排,实现低代码运行,以及业务逻辑编排等功能。 阅读详情

相关推荐

Snakemake 入门教程(创建一个简单的工作流)

写在前面 既然写了教程就需要具有普适性,能适合大多数人的胃口,我这部分的内容以及示例主要还是参考了官方教程,但是都是我一步一步跑过的流程,所以会更有印象,送给想学 Snkaemake 但是一直没有去学的朋友们,这些内容对于有生信基础的人来讲,上手会很快,因为很多的生信软件都使用过,写起来也就没有那么晦涩,下面开始~ Snakemake 定义 Snakemake 工作流管理系统是一种用于创建可重复和可扩展的数据分析的工具。 工作流是通过一种人类可读的、基于 Python 的语言来描述的。它们可以无缝扩展到服务

Xingze_Li 1万+

自定义简易工作流

如果你觉得使用activity工作流很繁琐,或者觉得接口对接很麻烦,那么你需要一套自定义的简易工作流,它能实现工作流已有的核心部分功能,自己数据库里面创建工作流表,可以横向扩展,你想审批就审批,想随时驳回就驳回,日志自己记录。一切自己动手,那么直接上代码:这里的代码是部分代码,里面缺失的部分自行处理,但关注的还是这个实现逻辑,只有了解的实现逻辑用起来才会更顺手。简单说明一下:枚举控制流程模板,然后自己建表实现工作流相关的功能;

weixin_45257919的博客 986

【JIRA 配置】教你如何自定义工作流方案

JIRA 的工作流是实现项目管理中很重要的一环,可以帮助我们灵活地管理项目过程中的各类issue的声明周期,本篇将会介绍如何创建和配置JIRA 工作流。

Nicolege678的博客 5683

一套完整自定义工作流的实现

概述: 本工作流以一套金融软件业务处理流程为例,实现功能包括:流程自定义、步骤自定义、步骤重复次数、步骤类型(顺序/并行)、定义排序功能,完全使用数据库实现,本文将详细分析业务流程、系统设计及实现细节。 术语: 工作流(Workflow)[1],是对工作流程及其各操作步骤之间业务规则的抽象、概括、描述。工作流建模,即将工作流程中的工作如何前后组织在一起的逻辑和规则在计算机中以恰当的模型进行表...

weixin_30294709的博客 4813

flowable工作流定制化修改

自定义用户任务拦截器@Slf4j@Override@Override源码中...@Override......= null) {......= null) {......// 这边去定制化各种验证校验器简单检查流程是否存在开始、结束节点@OverrideaddError(errors, "流程必须存在开始或结束节点", mainProcess, "流程必须存在开始或结束节点");

youxiaxiaomage的博客 1999

装修行业万能DIY小程序源码系统 带完整的安装的代码包以及搭建教程

装修行业万能DIY小程序源码系统 带完整的安装的代码包以及搭建教程

简单工作流设计思想

参考资料 1,工作流定义 2,有限状态机 思路 工作流实际上可以用数据结构中的图表示,图的边代表从一个节点跳到另一个节点的动作,图的结点代表一个流程的其中一个状态,整个图的定义代表着一个工作流,因此,设计数据库的时候,只要能够将图表达出来,简单的工作流设计就很简单了。 简单实现 将会定义三张表,tb_node, tb_route, tb_history,其中tb_node是用来定义结点...

jack_shuai的博客 1989

OpenWRT二级路由DHCP客户端配置:实现IPv4 WAN自动获取与网段隔离

本文详细讲解了如何将OpenWRT配置为二级路由器,重点在于设置其WAN口为DHCP客户端以自动获取IPv4地址,并修改LAN口网段实现与上级网络的隔离。文章提供了从网络拓扑规划、具体配置步骤到防火墙设置的完整指南,并分享了常见问题排查与避坑经验,帮助用户构建稳定且功能独立的家庭网络环境。

weixin_29268267的博客 295

阿里中间件:RocketMQ生产部署架构如何设计?

推荐阅读: 这套Github上40K+star学习笔记,可以帮你搞定95%以上的Java面试 毫不夸张的说,这份SpringBoot学习指南能解决你遇到的98%的问题 给跪了!这套万人期待的 SQL 成神之路PDF,终于开源了 前言 今天我们就来聊一聊具体如何来设计一套高可用的生产部署架构。 在聊如何设计这套架构的同时,我们再补充一些之前没提到的知识。好了,那我们现在开始吧。 NameServ...

xingduan5153的博客 664

论文阅读:Visual Relationship Detection with Language Priors

Visual Relationship Detection with Language Priors(ECCV2016) 文章   尽管大多数的relationship并不常见,但是它们的object和predicate却更频繁地独立出现。paper用这个insight分别独立训练训练object和predicate的模型,然后再进行组合来预测relationship。Visual relatio...

Kivee的博客 2877

利用HFSS仿真优化圆极化微带天线的耦合馈电设计

本文深入探讨了利用HFSS仿真软件优化圆极化微带天线性能的关键方法。通过对比传统直接馈电与耦合馈电方式,详细阐述了耦合馈电在提升阻抗匹配、改善轴比带宽及增强设计鲁棒性方面的显著优势。文章结合FR4板材的实战案例,逐步演示了在HFSS中建立模型、进行参数扫描与圆极化性能优化的完整流程,为设计高性能、高纯度的圆极化天线提供了实用指南。

weixin_29233333的博客 547

工作流Activiti

1:设置流程变量的时候,针对当前活动的节点设置流程变量,如果一个流程中存在2个活动节点,对每个活动节点都设置流程变量,即使流程变量的名称相同,后一次的版本的值也不会替换前一次版本的值,它会使用不同的任务ID作为标识,存放2个流程变量值,而且可以看到TASK_ID的字段会存放任务ID的值。也就是说各个流程实例的流程变量是不相互影响的。3) 在开发中,可以将每一个任务的办理人规定好,例如张三的领导是李四,李四的领导是王五,这样张三提交任务,就可以查询出张三的领导是李四,通过类的方式设置下一个任务的办理人。

2401_83703893的博客 807

innovus中path group 的策略和应用(上)

在所有的后端工具里边,有三个重要的引擎:auto-place,CTS,auto-route三个。这里边的auto-place是决断了整个设计时序的基点。。当然,就算是到了CTS/route阶段后,也可以继续利用auto-place数据优化的功能,在数据库上做数据路径增量优化(optDesign -increment)。可以说,数据路径的优化手段,实际上是贯穿在整个后端流程上的。。看看这其中的奥妙和有趣的事情。ICer GO!

i_chip_backend的博客 4220

手把手教你如何玩转自定义工作流(一)

文章目录情景引入简介 情景引入 小白:起床起床起床起床了。。。。 我:我就想多睡会,996的工作很累的(最近这个好像很火~!),让我多休息会把。 小白:不行,不行,你都多久没更新文章了,你的心不痛么? 我:好像是的,最近太忙,没有时间来写了。 我:怎么了?小白,你是无事不登三宝殿,是不是又遇到什么麻烦事了呢? 小白:对呀对呀。。。好愁人 我:求知欲还挺强的嘛,那行,你说说看,看我能不能帮助你。 小...

Cs_hnu_scw的博客 1万+

基于DFT的scanshift sdc模板(DFT)

摘要:本文详细介绍了DFT测试模式下的SDC约束方法。

murphyrong的博客 890

期货分仓系统CTP协议/国内期货软件源码

期货分仓系统与CTP协议以及国内期货软件源码是期货交易技术领域的几个重要方面。

q2247238820的博客 963

ASP.NET 实现轻量级的工作流[审批流程]

如何通过最少的修改代码实现业务单据的灵活流转?修改代码太多系统不稳定,流程过于复杂不方便实施,流程过于简单不能符合公司的实际要求。做改造接口过于复杂不适合开发集成,所以需要平衡好各种实际问题的考验才能用得起来,加几行代码让自己的业务功能单据支持流程化流转。 以下组件也非常适合政府类各种单据的审批流转,我们先通过例子展示一下如何集成流程组件。 1: 首选需要定义审批流程,需要有...

weixin_30346033的博客 848

微信小程序 - 引入并使用 Fly.js 请求库(超级详细的教程及运行示例)提供 Fly.js 源码源文件下载,贴心的配置示例及注释,优雅快速的发起 http 网络请求

fly.js请求库官方教程文档,微信小程序封装fly.js请求,在小程序/mpvue中使用flyio发起网络请求的方法,微信小程序中如何使用flyio封装网络请求,微信小程序中如何使用flyio封装网络请求,最好的教程,fly最好的文档教程,微信小程序使用fly接口请求框架,引入fly.js报错,微信小程序中如何使用flyio封装网络请求,微信小程序引入Fly.js请求库,如何在fly中配置请求/响应拦截器,如何在微信小程序中优雅地发送异步请求,请求/响应拦截器,微信小程序-引入并使用F

🏆 前端领域优质创作者 5610

Dify v0.6.9将自定义工作流作为工具

可以在 Dify v0.6.9中发布人工智能工作流程作为可复用的工具(在Agent或Workflow中使用)。这使得它可以与新的agents和其它workflows集成,从而消除重复的工作。

NLP工程化 1万+

懒人必备!Coze一键制作火柴人心理学视频,新号45天涨了2.6w粉!(附超详细实战教程)

其实,只需要借助扣子(https://www.coze.cn/),采用的是 AI 智能体工作流模式,这种模式能够一站式搞定上述所有环节,一条四五十秒的视频,短短一两分钟就能轻松搞定!让制作效率提升了整整百倍!在这篇教程里,我将毫无保留地为大家分享,如何使用扣子 Coze 批量制作 “火柴人风格的心理学视频” 的超详细步骤。

李同学Lino的博客 3859

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

roadflow asp.net工作流自定义表单

在roadflow表单设计器不能满足很复杂的业务需求的时候,可以采用自定义表单(即表单页面自己做)。 自定义表单就是自己写一个页面,包含控制器视图,然后将这个页面挂到流程上进行审批。 自定义表单分为以下几步: 1、自己写页面 示例: 控制器: 自定义表单的表单和数据保存代码都是自己写的,注意页面一定要有一个form,并且设定action(保存表单数据的地址)。 如...

dhhr27821的博客 657

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

搭建一个自定义的工作流管理平台(三)

在这个页面的第85-87行定义了一个容器,用于放置这个工作流的图形。第111-137行定义了一个modal,modal里面包含一个datatable,用于显示某个进程的变量的详细信息。当在definitions页面点击某一个工作流ID的链接的时候,将跳转到这个页面,查看这个工作流的对应的进程。在前面的工作中,我们已经搭建好了工作流编辑和查看的页面,现在我们再增加一个功能,就是当启动一个工作流进程之后,查看进程的运行结果。

560

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

独辟蹊径:我是如何用Java自创一套工作流引擎的(上)

这篇文章介绍了本人开发的轻量级工作流引擎的设计和实现,从流程类别和表结构开始讲解审批流程的设计及其关系,展示了提交申请、审批和查看记录等功能的核心代码。

c18213590220的博客 5718

什么是自定义表单和工作流?看完这篇文章就懂了

在很多中大型企业中,低代码技术平台的应用价值是较高的,也深得广大用户朋友的青睐和喜爱。其中的自定义表单和工作流是该平台的主要功能

Gzlcxxjs的博客 337

论文(水搞)

摘要 工作流是由英文 Work flow 而来的。Work 表示工作或者任务,Flow 表示流程。在企业的生产组织与经营管理中,Flow 有着重要的含义,如表示物料传输过程的物料流,表示资金流动的资金流,反映信息传递和处理的信息流,同样还有价值流,决策流,控制流等概念。用活动及活动之间的变化过程表示的业务流程就是工作流。 工作流的概念起源于生产组织和办公自动化领域。它是针对日常工作中具有固定时...

weixin_30881367的博客 966

工作流java代码_一个用数据库实现的工作流-JSP教程,Java技巧及代码

package com.highcom.workflow.dao.jdbc;import org.springframework.dao.*;import org.springframework.jdbc.core.*;import org.springframework.jdbc.core.support.*;import java.sql.*;import java.util.*;import...

weixin_42548829的博客 411
上一篇: 用智能工作流和3D打印系统建设快速生产系统(RPS)的构想
下一篇: JWFDv0.96开源工作流系统流程图提交BUG修正补丁
comsci
博客等级 码龄22年 412粉丝 397原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值