随笔 - 173  文章 - 1 评论 - 2374 trackbacks - 136

SharePoint的原生工作流有两个问题:

1)无论是采用顺序模型还是状态机模型,流程逻辑的表达都是很繁琐的。

2)表单问题

  • infopath工作流表单不好用,如果是设计复杂的表单,会碰到各种各样的问题,而且有一个最大的缺点:任务表单是分散的,客户一般都会提出将审批表单和提交表单显示在一起的需求,但需要开发人员花费很多心力去实现。
  • 虽然其支持aspx的表单,但是只是提供了基本的借口,并没有一套完整的机制

第一点在QuickFlow1.0中已经得到了很好的解决,利用Flowchart模型,设计流程不再是一点痛苦的事情。

QuickFlow1.0只支持infopath表单,在最新发布的2.0版本中,终于支持aspx表单了。

QuickFlow2.0 提供了新的aspx表单机制--ListForm
ListForm提供了以下的控件来创建一个工作流表单:
1)按钮控件
StartWorkflowButton : 启动工作流
CommitTaskButton :提交工作流任务
TaskReassignButton: 重新分配任务
ActionsButton : 按照WF设计器中的Action自动呈现相应的审批按钮,如同意,打回。
2)表单控件
FormField : 列表字段
TaskField : 任务字段
这两个控件解决了SharePoint工作流长期困扰开发人员的问题---如何使提交页面和审批页面使用同一个页面?
3)任务跟踪控件:
TaskTraceList : 显示当前工作流的所有任务的处理情况(老版本)

WorkflowHistory: 显示当前工作流的所有任务的处理情况(新版本,支持多语言)

4)链接控件

TaskTraceLink:链接到任务历史列表

WorkflowChartLink:链接到可视化跟踪页面

下面我们先睹为快,看看QuickFlow+ListForm设计的SharePoint工作流是怎么样的:

1)直接通过列表新建按钮启动

image

2)提交页面

image

3)提交完成

image

4)到任务监控页面审批

image

5)如果是普通用户,通过首页的“用户任务”进入

image

用户任务即系统自带的那个用户任务webpart

6)审批页面

image

7)看看转发功能

image

8)退回后的提交人修改页面

image

9)完成的审批记录

image

这样一个单步可退回的流程,采用QuickFlow只要20分钟就实现了。

下面我们看看开发界面:

1)WF设计器

image

2)表单

image

提供了aspx表单支持后,QuickFlow终于可以用于WSS了,即使您没有MOSS,安装一个WSS就可以快速的实现客户的业务流程需求了。

示例项目下载:

http://cid-7f5a25cdf47d03e6.skydrive.live.com/self.aspx/QuickFlow/Examples/QuickFlowExample^_AspxForm.zip

这篇文章详细的讲述了示例项目的运行方法:http://www.cnblogs.com/jianyi0115/archive/2009/09/19/1569940.html

QuickFlow下一步计划撰写的文章:

1)QuickFlow ListForm的使用(包括:FormField的扩展,TaskField的扩展,数据校验等)

2)如何不使用ListForm,而是完全默认的aspx实现工作流表单

3)如何实现提交用infopath表单,而审批用ListForm?

4)QuickFlow如何实现Goto功能(管理员可以强制将流程重定向到任何步骤)

5)QuickFlow如何实现可视化的状态监控(QuickFlow的下一个版本将包含此功能,将设计时的流程图展现成页面)

如果有朋友对某部分特别感兴趣,我会提到前面来写。

6)QuickFlow的无代码设计器(普通用户可以设计流程了)(下一版本支持)

相关文章:

SharePoint工作流解决方案QuickFlow系列(1)--QuickFlow入门

SharePoint工作流解决方案QuickFlow系列(2)—Task

]SharePoint工作流解决方案QuickFlow系列(3)—Task ReAssign

SharePoint工作流解决方案QuickFlow系列(4)—Step Rounter(步骤路由)

SharePoint工作流解决方案QuickFlow系列(5)—会签(MultiTask and GroupTask)

SharePoint工作流解决方案QuickFlow系列(6)—事件总线(EventBus)

QuickFlow2.0 Aspx表单示例运行方法

posted on 2009-09-19 12:14 jianyi 阅读(...) 评论(...) 编辑 收藏