OSWorkflow是opensymphony组织开发的一个工作流引擎,目前的版本是2.8。
OSWorkflow用纯Java语言编写,并且开放源代码。
它最大的特点就是极其的灵活。
它面向的人群是具有技术背景的软件开发人员。
OSWorkflow不提倡用可视化工具定义流程。
用户可以根据自己的实际需求,来设计出完全符合自身业务逻辑的系统,而并不需要使用复杂的代码去实现。
换句话说OSWorkflow让我们真正解放了,使得我们从底层的代码堆中爬了出来,轻松地用一套通用的引擎机制去实现各种业务流程。
OSWorkflow提供我们所有工作流OSWorkflow开发指南Version1.0October15,2007Somanyopensourceprojects.WhynotOpenyourDocuments?中可能用到的元素例如:步骤(step)、条件(conditions)、循环(loops)、分支(spilts)、合并(joins)、角色(roles)、函数(function)等等。
首先我们来谈谈步骤:步骤是工作流中很重要的概念。
如果我们把工作流比喻成一条从起点站驶向终点站的公共汽车路线,那么步骤就相当于汽车站台。
而汽车有的正在排队等候进站,有的还没有进站,有的刚出站,这样就形成了所谓的“已完成”、“正在处理”、“已添加至处理队列”、“未处理”等状态。
另外一个重要的概念就是动作,动作就是工作流中每一步骤中"需要处理的事情",每一个动作执行完毕以后都有一个结果。
公共汽车停站下客就好比一个动作,动作完成以后,开向下一站,或者加油,或者返程等等就是一个结果。
当然,实际上的工作流远比这辆汽车来的复杂,它涉及到的结果还包括原地踏步停留在同一步骤,或者是流转到另外的步骤中去,或者是流转到一个分支中去,或者汇集到一个合并中等。
如果动作被设置成为auto,那么只要触发器满足条件或者有来自外部的事件工作流便可自动执行。
在许多流程中,如果遇到并行处理某些事情,这就是分支。
分支一般是指并行处理多件事情而没有先后顺序。
若有一条分支进行了回退处理,整个流程都将回退。
与之相对的,合并就是把几条符合条件的分支聚合起来,使得事情变成"殊途同归"。
这也是非常常见的流程,同时也是最复杂的一种流程。
在步骤、动作和结果中都提供了函数功能,函数按执行的先后时机可分为pre-functions和post-functions。
顾名思义,pre-functions就是在事情发生之前执行的,而post-functions就是在事情发生以后执行的。
验证器是用来验证用户输入的数据是否合法的。
它也可以被应用在步骤,动作或结果中。
动作的执行结果可以是有条件的(conditional)也可以是无条件的(unconditional)。
对于有条件结果,可以允许有多个条件。
引擎将首先检查是否有满足的条件,它会逐一进行检查,直到符合的条件被找到才能执行。
如果没有一个条件被满足,那么最终引擎将产生无条件结果。
在每个步骤中调用工作流的人被称之为调用者(caller),而每个步骤都也会有一个所有者(owner),以代表在当前步骤中负责执行动作的角色或用户。
当前用户在执行当前步骤的时候,这些步骤被保留在当前表中(current),而一旦步骤被执行完毕,引擎会马上将这个当前步骤从当前表中移到历史表中(history)。
5OSWorkfow的高级特性有发送邮件,注册器功能,通用动作和全局动作,触发器和定时器等等,以下会一一讲解。
2023/8/8 23:12:50 624KB OSWorkflow-开发指南
1
数字图像处理中常用到图片集,适合数字图像开发人员使用,比较全
2023/8/8 19:49:48 11.56MB 数字图像处理 经典图
1
开发一个在线相册系统,完成相片上传、浏览、发表留言等功能,可以从多方面为用户提供便利,能够很好地管理用户相片。
为了实现上述功能,基于XML的在线相册系统采用了XML+JSP技术。
XML作为全球通用的标记语言越来越受到人们的关注,成为异构平台数据交换的标准。
JSP继承了Java语言的特点,能使Web开发人员轻易地搭建网络平台,建立起功能强大的Web站点。
两者的结合,保证了在线相册系统可以顺利运行在不同的平台之上。
2023/8/5 9:40:13 1.27MB JSP 在线相册系统
1
首先支持和/WebSockets,并支持。
关于rpc-websockets库使开发人员可以轻松实现其业务逻辑,包括用户,计算机或任何设备之间的消息传递。
它提供了通过WebSocket通信协议发送和接收JSON数据的可能性,以支持双向通知推送,运行RPC方法并触发任何类型的事件信令。
目前,只有客户端可以调用RPC方法,反之亦然。
前端(基于HTML/JS)和后端(基于Node.js)开发环境均受支持。
rpc-websockets基于Node.js构建,并支持LTS和当前版本。
使用免费的OSS版本以实施和管理您自己的WebSocket服务器实例,或订阅我们的并让我们管理您的实例,并在易于使用的Web管理上为您提供方法,事件和通知的管理门户。
快速开始在您的项目中安装我们的OSS库:npminstallrpc-websockets使用rpc-websockets编写源代码:varWebSocket=require('rpc-websockets').ClientvarWebSocketServer=require('rpc
2023/7/31 19:18:34 1.38MB nodejs chat iot aws
1
移动开发人员、程序员
2023/7/29 12:13:16 1KB 移动开发 android
1
本书通过85个实例全面讲述了应用MFC进行VisualC++编程的思想。
每个实例均以编写一个应用程序要走的步骤编写。
全书共分四部分进行介绍,第一部分是基础知识,第二部分讲述用户界面的实例,第三部分讲述MFC内部处理方面的实例,第四部分讲述打包实例。
全书基本上面向实例进行阐述,讲解透彻、易于掌握。
本书既可作为初学者和大专院校师生的自学参考书,也可作为计算机软件开发人员的技术参考书。
2023/7/29 10:18:06 12.96MB MFC VC++
1
由于电信行业it技术开发中用到的常用词,通讯开发人员必备手册
2023/7/27 12:33:39 2.67MB 电信术语
1
御剑后台扫描珍藏版t00ls大牛的作品,方便查找用户后台登陆地址,同时也为程序开发人员增加了难度,尽量独特的后台目录结构。
附带很强大的字典。
功能简介:1.扫描线程自定义:用户可根据自身电脑的配置来设置调节扫描线程2.集合DIR扫描ASPASPXPHPJSPMDB数据库包含所有网站脚本路径扫描3.默认探测200(也就是扫描的网站真实存在的路径文件)使用方法非常简单只需要在郁闷框输入你要扫描的域名即可然后点击扫描
2023/7/26 5:41:45 2.42MB 后台扫描工具
1
适合androidstuido,想要调用研究ffmpeg音视频的开发人员使用
2023/7/26 0:05:22 7.84MB android ffmpeg so
1
从2.2.0版开始,Room现在支持使用现成的预打包数据库由于有限的内置Room支持,这里是一个支持迁移以及保留指定列(例如包含用户数据)的库。
房间资产一个Android助手类,用于使用应用程序的原始资产文件来管理数据库创建和版本管理。
该库为开发人员提供了一种简单的方法,可将其Android应用程序与现有SQLite数据库(可能已预先填充数据)一起发货,并管理其初始创建以及后续版本发布所需的任何升级。
它被实现为Room的扩展,提供了一种将Room与现有SQLite数据库一起使用的简便方法。
Gradle依赖相依性添加到您的模块build.gradle文件(请确保版本的最后一个匹配):将其添加到存储库末尾的rootbuild.gradle中:allprojects{ repositories{ ... maven{url"https://jitpack.io"} }}添加依赖项dependencies{//...otherdependenciesimplementation'com.gi
2023/7/25 20:42:01 539KB android kotlin java room
1
共 684 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡