随笔分类 -  Workflow

工作流(Workflow)。
Workflow:采用坐标变换(移动和旋转)画箭头
摘要:背景流程设计器的连线部分需要画一个箭头代表连接的方向,下图是期望的效果:刚开始我准备采用三角函数(sin和cos)来计算三角的坐标,实现的过程真不爽(有兴趣的朋友可以试试),就在完工的时候,突然想到了很早之前看过一本书《flash动画编程》,一下子有所顿悟,当时书中好像讲到了坐标变换,下面贴出采用坐标变换后的实现。思路先画出下图中的第一个三角。旋转第一个三角的坐标得到第二个三角。移动第二个三角的坐标得到第三个三角。实现 1 /** 2 * 创建箭头坐标数组。 3 * 4 * @public 5 * @param {Object} end 顶点坐... 阅读全文

posted @ 2013-08-05 09:07 幸福框架 阅读(2159) 评论(6) 推荐(4) 编辑

自定义工作流 之 模型设计与实现
摘要:背景在上篇文章(Workflow:自定义工作流 之 模型选择)介绍了模型的选择,这篇文章就介绍一下模型的设计与实现。有些朋友会希望在这里看到:数据库、持久化或审批人角色处理等代码,我是领域驱动设计(DDD)的爱好者,因此很长一段时间内您是看不到这些代码的,我觉得这些不是模型的核心。模型设计概念模型模型规则如下1、系统有活动(方块或圆形)和路由(线条)组成,每种类型的活动支持不同的路由规则。2、方块代表人工活动,人工活动只能路由到一个目标节点,可以定义多个路由,但是只有一个路由会执行,这让模型支持:顺序和判定。顺序执行判定执行3、圆形代表并行活动,Split(分流)和Join(合流)必须成对出现 阅读全文

posted @ 2013-07-23 08:31 幸福框架 阅读(8875) 评论(4) 推荐(4) 编辑

Workflow:自定义工作流 之 模型选择
摘要:背景毕业5年,做了4个版本的工作流框架,工作流几乎是每个企业应用开发人员必须跨过的门槛(我还没有跨过去),下面简要说一下之前的4个版本,然后重点介绍第5个版本选择的模型。第一年模型:顺序流。设计器:不支持。路由规则:不支持。第二年模型:WF3.5(顺序、判定)。设计器:不支持。路由规则:支持。第三年模型:WF4.0(顺序、判定)。设计器:支持。路由规则:支持。第四年模型:状态机(顺序、判定)。设计器:支持。路由规则:支持。为什么我要第五个版本?第一个版本太简单了,不能满足产品或项目需求。WF3.5已经过时了。WF4.0过于重量级了,我只需要支持人工审批流程。经典的状态机不能支持并行节点。第五个 阅读全文

posted @ 2013-07-22 12:54 幸福框架 阅读(17309) 评论(61) 推荐(19) 编辑

NET:工作流中如何动态解析路由规则 之 T4 + 动态编译
摘要:背景在上篇文章中我介绍了如何用动态语言解释器执行路由规则,有很多朋友都给出了他们的选项,如下:集成解释器(Iron、Javascript等)。动态编译。解析为Lamda表达式。模板引擎。因为我觉得动态编译很有意思,结合T4可能会更舒服,这篇文章就用这个思路重新实现一下如何解析路由规则。思路T4 + 动态编译 = 无限可能如何使用动态编译解析这条规则(“LeaveDays>=5 && LeaveType=='病假'”)呢?思路有很多种,我立马想到的的有两种,将Leave的属性解析为某个方法的本地变量或方法所有类型的成员变量,下面就是动态编译后的方法:1 pu 阅读全文

posted @ 2013-05-10 09:03 幸福框架 阅读(2369) 评论(16) 推荐(5) 编辑

.NET:工作流中如何动态解析路由规则,你肯定用得着
摘要:背景做流程引擎最终避免不了一个问题:如何动态解析路由规则?几乎所有的审批流程都要求支持条件路由,比如:请假天数大于xx天时某个领导审批,否则其它人审批。常见的解决方法有:一、动态编译;二、解释执行。这篇文章就讲解如何使用Javascript引擎解释执行。思路静态语言集成动态语言解释器这种模式,在业界已经有很多惯例,如:很多C++开发者都用Lua在运行时修改配置。因为我对Javascript比较熟悉,所以准备搜索一下Javascript的解释器。在NuGet中用Javascript关键字进行搜索,搜索到了第2页就找到了一个解释器,安装一下,准备尝试吧。实现代码下载:http://yunpan.c 阅读全文

posted @ 2013-05-09 06:51 幸福框架 阅读(3217) 评论(26) 推荐(9) 编辑

导航

我要啦免费统计