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
大学时候做的纯C语言汉诺塔图形动画演示,其中的exe是可以运行的,但不要放在含中文目录下。
还有论文,论文写得不好,就不放上来了。
2023/7/28 11:29:15 39KB C语言 汉诺塔 动画演示
1
主要功能:1、可以发送带附件的邮件,附件可以是多个,附件大小限制由发送方服务器而定,暂未测试具体为多少MB2、邮件内容和主题可以是空,但当有附件时,主题取第一个附件的文件名(不含扩展名)3、密码验证均为base64加密4、邮件正文和附件的数据传送方式,均为base645、自动解析发件箱的SMTP服务器压缩包文件简介:base.c:包含一些基本的函数,其中有一些在此程序中并未用到,只要使用了其中的base64加密算法mail.c:包含邮件发送、数据读取、编码转换、smtp服务器连接、ip解析等函数mailsend.c:包含main的c源文件,mail.exe则是根据mailsend.c、mail.c、base.c编译成的,具体编译方法可参考makefilelibbase.a:make之后生成的静态库moontalk.cfg:base.c用到的配置文件,可能没用,放在这里进攻阅读参考mail.cfg:自定义用户的配置文件,可用可不用,用作读代码的参考mail.exe:邮件发送的执行文件,仅有命令行模式完善了,逐步输入(直接双击)的方式还不完善b64.exe:base64加密解密的小工具,仅供参考,mail.cfg中用到密码的地方,可以使这个工具得到。
makefile:工程编译链接文件注意:在本地使用mingw环境开发,遵循ANSIC标准,本地有系统的工程库,但是上传的时候,把这些文件都放在一起了,可以先参考makefile进行工程调整,如果有任何问题,请发送到邮箱moontalk@yeah.net,技术交流,不胜感激。
2023/7/22 4:08:14 179KB C语言 邮件 附件 smtp
1
源代码是用纯C语言写的,直接复制到VS就可以运行了,该俄罗斯方块AI部分主要PierreDellacherie算法,源代码里有两个游戏主界面的函数,play()和play2(),其中play()是人自己玩,play2()是电脑玩。
不过该算法没去优化,有点粗糙,测试了一下,平均消了一万多行,给各位参考一下。
2023/7/21 11:41:19 24KB 俄罗斯方块 AI 源码
1
纯c语言实现bmp图像的双线性插值放大,最近邻插值放大,
1
纯C语言实现eig算法,通过C语言求解矩阵的特征值与特征向量,主要用到QR分解。
结果与matlab结果对比相同
2023/7/1 10:53:54 12KB eig 特征值 C语言特征向量
1
MD5/SHA1/SHA256纯C语言源码.支持增量计算.包括测试程序与官方文档.该代码我已按纯C语言基于接口编程方式封装,可以直接调用.有问题请联系我.
2023/6/13 19:38:56 364KB MD5 SHA1 SHA256 增量计算
1
使用C语言写的YModem通信程序,可以移植到各种嵌入式MCU中.
2023/6/11 12:26:37 8KB YModem
1
多边形布尔运算的库,纯c语言,最后更新时间是2004年的
2023/6/10 10:30:06 79KB 多边形布尔运算
1
这是个spring+springMVC残缺的java商城名目,下载就可装置运行。
一个极其不错的web商城名目,阻滞巨匠喜爱,在外面提掏出你所需要。
体系为纯Java语言开拓的企业级商城,付与当上游行的spring+springMVC结构,且方式底子都有代码评释,hibernate作数据耐久化,freemarker作动态化处置,shiro作权限管理,反对于收入宝,财付通,银联等收入接口,接口付与插件式方案,且具备用果美满的配景管理。
全部体系结构方案遵照OOP原则,松耦合,高类聚,具备很强的可扩展性,便捷二次开拓。
代码运行情景:eclipse+tomcat7+jdk7+mysql5
2023/4/17 1:55:51 279KB spring springmvc java 商城
1
共 48 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡