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
第Ⅰ部分数据库体系结构第1章Oracle体系结构概述....31.1数据库和实例概述......41.1.1数据库.....41.1.2实例.....51.2Oracle逻辑存储结构......51.2.1表空间.....51.2.2块.....61.2.3盘区.....61.2.4段.....61.3Oracle逻辑数据库结构......71.3.1表.....71.3.2约束.....141.3.3索引.....161.3.4视图.....
2023/8/8 4:01:23 688KB oracle dba 11g 手册
1
很漂亮,很简约的登录页面,业务逻辑也写了一部分,代码可以完美的运行,截图参考https://blog.csdn.net/weixin_39641975/article/details/83551219
2023/8/7 18:39:39 13.37MB 登录页面
1
为了解决传统微波遥感辐射计使用FPGA实现多通道数字相关器时资源消耗量过大的问题,本文提出了一种二级相关实现方法。
二级相关算法将相关算法分成前后两级,并利用门时钟生成单元使系统保持流型工作状态。
前级相关器由基本逻辑资源构成,完成固定短点数的相关处理;
多个前级相关器分为一组,分时启动并复用后级长点数相关器。
二级相关算法能显著解决微波遥感辐射计中多通道数字相关器资源消耗量巨大的问题,提高数字相关器所容纳的相关通道数,同时优化了FPGA布局布线性能,能提高系统性能并降低成本。
1
武汉科技大学数字逻辑实验,DSN文件设计图,包含:74148,74138,12进制电路,24进制电路,电子钟,7448显示0~9,7448显示0~99,数据分配器,74HC138做数据分配器,触发器,寄存器74194七位数据并转换,8个流水灯等
2023/8/7 2:25:03 180KB 数字逻辑实验 DSN文件
1
SkinSharp简介SkinSharp是Windows环境下一款强大的通用换肤库。
SkinSharp作为通用换肤库,只需要在您的程序中添加一行代码,就能让您的界面焕然一新,并拥有多种主题风格和色调的动态切换功能以及Aero透明边框特效。
SkinSharp采用独特的软件界面开发技术,让原本复杂繁琐的界面编程变得轻松自如。
SkinSharp换肤库目前支持所有流行的开发工具。
SkinSharp可以在不修改客户程序的基础上,对在Windows上运行的任何程序进行随意换肤,完全实现了将程序界面与业务逻辑彻底分离,从而可以让您轻松地完成程序界面的完美升级。
SkinSharp优势SkinSharp与同类产品相比有如下优势:1.超轻量级换肤,SkinSharp不依赖于任何第三方类库或模板库(STL,MFC,ATL等),仅仅使用到系统最基本的核心动态链接库。
因此体积在同类产品上是最小的,仅不到200K,运行效率也是最高的,所有绘制和操作全部都是基于Win32API的,其他同类换肤库则十分臃肿。
2.SkinSharp在滚动条和菜单换肤上,和其他同类换肤库有着明显的优势。
在滚动条换肤上,SkinSharp做到了所有控件内置滚动条的换肤,并且不修改控件任何风格和属性,完美兼容各个控件。
在菜单换肤上,SkinSharp采用独特的技术对所有菜单实行换肤,没错,是所有的菜单,包括IE控件内部菜单,系统菜单,滚动条菜单等等,只要是菜单就能换肤!并且支持所有菜单的透明!3.SkinSharp采用先进的皮肤格式,完美兼容各种不同形状外观的皮肤制作。
SkinSharp皮肤采用超高压缩率,体积超小,最小的皮肤小于10K。
载入效率极高,无任何延迟!设计的先进性使得SkinSharp的皮肤有着很好的版本兼容性,即使今后增加了皮肤属性项,也依然能够保持版本的兼容性。
SkinSharp的皮肤同时支持加密功能,保护您自己设计的皮肤不被其他人恶意使用。
4.SkinSharp可以让你轻松拥有Aero透明边框以及阴影特效!SkinSharp仅用标准的GDIAPI就实现了Aero特效,并且效率极高!其他换肤库则没有此特性或者使用了GDI+,这样在Windows2000等系统中你就必须多带一个GDI+的动态链接库,并且效率会有所影响。
另外,SkinSharp还支持边缘阴影,还可以调整阴影参数,实现超炫效果!5.SkinSharp支持更改皮肤的色调,饱和度,亮度,窗体的透明度,菜单的透明度。
仅一款皮肤,您就可以拥有不同的色调主题!做出类似QQ色调主题是一件轻而易举的事情!6.SkinSharp并非COM组件,仅以标准的动态或静态链接库的形式存在,SkinSharp无需进行系统注册,直接使用!7.SkinSharp完全支持Unicode,提供多种编码格式,支持静态库链接,与客户程序可以进行无缝整合!支持绝大多数第三方控件的完美换肤!界面与业务逻辑彻底分离!更多优势特性等待您去发掘!
2023/8/6 22:49:48 2.76MB SkinSharp VB皮肤控件
1
数据是构建地质灾害信息系统的重要内容与基础。
本着数据来源真实可靠、数据标准、依据充分、数据组织层次清楚的设计思路,论述了数据的采集、整理、标准化、编码及数据库设计。
列举了所引用的数据标准,建立了数据项编码原则和系统,并进行了空间信息要素层的划分。
此外,还论述了地质灾害数据库结构设计、库表的组成及其逻辑关系。
2023/8/6 2:39:02 278KB 地质灾害
1
VerilogHDL是一种硬件描述语言(HDL:HardwareDescriptionLanguage),以文本形式来描述数字系统硬件的结构和行为的语言,用它可以表示逻辑电路图、逻辑表达式,还可以表示数字逻辑系统所完成的逻辑功能。
2023/8/6 1:10:48 1.22MB verilog fft
1
杭州电子科技大学《数字逻辑电路》历年期末考试试卷
2023/8/5 23:55:58 883KB 数字通信
1
React起源于Facebook的内部项目,因为该公司对市场上所有JavaScriptMVC框架,都不满意,就决定自己写一套,用来架设Instagram的网站。
做出来以后,发现这套东西很好用,就在2013年5月开源了。
由于React的设计思想极其独特,属于革命性创新,性能出众,代码逻辑却非常简单。
所以,越来越多的人开始关注和使用,认为它可能是将来Web开发的主流工具。
来自MuseFind的ScottDomes日前写了一篇文章,阐述了他们编写React组件的最佳实践。
ScottDomes是MuseFind的前端移动开发工程师。
经作者授权,InfoQ翻译并分享本文。
以下是正文:当我第一次开始写Re
1
共 1000 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡