第1章 工作流理论概述 1
1.1 工作流管理系统的组成 3
1.2 工作流的运行模式 3
1.3 工作流资源分配模式 6
1.4 WWF 7
1.5 范例“HelloWorld” 9
1.5.1 创建应用程序项目 10
1.5.2 运行结果 11
1.6 本章小结 12
1.7 思考题 12
第2章 控制流程类型活动 13
2.1 Code活动 13
2.1.1 创建工作流项目 13
2.1.2 运行结果 14
2.2 Sequence 14
2.2.1 创建工作流项目 15
2.2.2 运行结果 16
2.3 IfElse 16
2.3.1 创建工作流项目 16
2.3.2 运行结果 19
2.4 While 20
2.4.1 创建工作流项目 20
2.4.2 运行结果 23
2.5 Policy 23
2.5.1 创建工作流项目 23
2.5.2 设置逻辑判断规则 25
2.5.3 运行结果 27
2.6 ConditionedActivityGroup 28
2.6.1 创建工作流项目 28
2.6.2 创建应用程序项目 31
2.6.3 运行结果 32
2.6.4 修改范例结束条件 32
2.7 Replicator 32
2.7.1 创建工作流项目 33
2.7.2 创建应用程序项目 35
2.7.3 运行结果 36
2.8 SynchronizationScope 37
2.8.1 创建工作流项目 37
2.8.2 运行结果 40
2.9 本章小结 40
2.10 思考题 40
第3章 事件类型活动 41
3.1 HandleExternalEvent 42
3.1.1 创建接口项目 42
3.1.2 创建工作流项目 43
3.1.3 创建应用程序 44
3.1.4 运行结果 46
3.2 CallExternalMethod 46
3.2.1 创建接口项目 47
3.2.2 创建工作流项目 47
3.2.3 创建应用程序 40
3.2.4 运行结果 50
3.3 Listen 50
3.3.1 创建接口项目 50
3.3.2 创建工作流项目 51
3.3.3 创建应用程序项目 52
3.3.4 运行结果 55
3.4 Delay 56
3.4.1 创建接口项目 56
3.4.2 创建工作流项目 56
3.4.3 创建应用程序项目 57
3.4.4 运行结果 58
3.5 EventHandlingScope 59
3.5.1 定义接口项目 59
3.5.2 定义业务实体对象 60
3.5.3 创建工作流项目 61
3.5.4 创建应用程序项目 63
3.5.5 运行结果 65
3.6 Parallel 66
3.6.1 创建接口项目 66
3.6.2 创建工作流项目 66
3.6.3 创建应用程序项目 68
3.6.4 运行结果 69
3.7 本章小结 70
3.8 思考题 70
第4章 事务和异常处理类型活动 71
4.1 FaultHandler 71
4.1.1 创建工作流项目 71
4.1.2 运行结果 74
4.1.3 修改工作流项目 74
4.2 Throw 76
4.2.1 创建工作流项目 76
4.2.2 运行结果 77
4.2.3 修改Throw范例 78
4.3 Compensate 78
4.3.1 创建工作流项目 79
4.3.2 创建应用程序项目 83
4.3.3 运行结果 84
4.3.4 多补偿活动 84
4.3.5 多补偿活动运行结果 86
4.4 TransactionScope 87
4.4.1 创建数据库 87
4.4.2 项目架构 88
4.4.3 创建实体类 89
4.4.4 创建数据访问层 90
4.4.5 创建接口项目 92
4.4.6 创建业务逻辑层 92
4.4.7 创建工作流项目 94
4.4.8 创建应用程序项目 95
4.4.9 运行结果 96
4.4.10 注意事项 97
4.5 CompensatableTransactionScope 98
4.6 本章小结 99
4.7 思考题 99
第5章 WebService和与WF相关的活动 100
5.1 InvokeWorkflow 100
5.1.1 创建业务实体类 101
5.1.2 创建接口项目 101
5.1.3 创建子流程 102
5.1.4 创建主流程 102
5.1.5 运行结果 104
5.2 Terminate和Suspend活动 105
5.2.1 创建工作流项目 105
5.2.2 创建应用程序 107
5.2.3 运行结果 109
5.3 WebServiceInput&Output 110
5.3.1 创建接口项目 111
5.3.2 创建工作流项目 112
5.3.3 发布WebService 114
5.3.4 创建应用程序项目 115
5.3.5 运行结果 117
5.3.6 Input和Output控件其他功能 117
5.4 InvokeWebService 118
5.4.1 创建WebService项目 118
5.4.2 创建工作流项目 119
5.4.3 创建应用程序项目 121
5.4.4 运行结果 123
5.5 本章小结 124
5.6 思考题 124
第6章 WWF的持续化功能 125
6.1 创建SqlPersistenceService数据库 125
6.2 创建接口项目 126
6.3 创建工作流项目 127
6.4 创建应用程序项目 128
6.5 运行结果 130
6.6 本章小结 132
6.7 思考题 132
第7 章WWF的跟踪功能 133
7.1 WorkflowTrackingRecord 134
7.1.1 创建工作流项目 134
7.1.2 创建应用程序项目 136
7.1.3 运行结果 138
7.1.4 注意事项 139
7.2 ActivityTrackingRecord 139
7.2.1 创建工作流项目 140
7.2.2 创建应用程序项目 142
7.2.3 运行结果 143
7.3 UserTrackingRecord 143
7.3.1 创建工作流项目 143
7.3.2 创建应用程序项目 144
7.3.3 运行结果 145
7.4 TrackingRuleActionEvent 146
7.4.1 创建工作流项目 146
7.4.2 创建应用程序 146
7.4.3 运行结果 147
7.5 TrackingProfile 147
7.5.1 TrackingInfo 148
7.5.2 创建应用程序 149
7.5.3 TrackingService 151
7.5.4 TrackingProfile 152
7.5.5 TrackingChannel 155
7.5.6 创建工作流项目 157
7.5.7 运行结果 158
7.6 本章小结 159
7.7 思考题 159
第8章 状态机工作流 160
8.1 状态机工作流范例 160
8.1.1 创建接口程序 160
8.1.2 创建工作流程序 161
8.1.3 创建应用程序项目 163
8.1.4 运行结果 167
8.2 “StateInitialization”和“StateFinalization”活动 169
8.2.1 创建接口程序 169
8.2.2 创建工作流项目 170
8.2.3 创建应用程序项目 171
8.2.4 运行结果 172
8.3 本章小结 173
8.4 思考题 173
第9章 自定义工作流活动 174
9.1 自定义活动的类型 174
9.2 自定义活动的属性 176
9.3 自定义活动中事件类型的属性 180
9.4 自定义活动的验证方式 181
9.5 自定义活动的外观 185
9.6 自定义活动范例 186
9.6.1 创建自定义活动 186
9.6.2 创建工作流项目 190
9.6.3 创建应用程序项目 191
9.6.4 运行结果 191
9.7 本章小结 192
9.8 思考题 192
第10章 动态修改工作流 193
10.1 动态添加或移除活动 193
10.1.1 动态添加一个活动 193
10.1.2 动态移除一个活动 194
10.1.3 向容器中动态添加一个活动 196
10.1.4 从容器中动态移除一个活动 197
10.2 动态修改判断条件 199
10.2.1 创建工作流项目 200
10.2.2 创建应用程序项目 201
10.2.3 运行结果 204
10.3 动态添加StateActivity活动 205
10.3.1 创建接口项目 205
10.3.2 创建工作流项目 205
10.3.3 创建应用程序项目 207
10.3.4 运行结果 210
10.4 本章小结 211
10.5 思考题 211
第11章 WWF项目综合应用 212
11.1 顺序类型工作流项目 212
11.1.1 创建报销单信息实体 212
11.1.2 创建接口项目 214
11.1.3 项目架构分析 214
11.1.4 编写存储过程 216
11.1.5 创建数据访问层 220
11.1.6 创建业务逻辑层 222
11.1.7 创建工作流项目 223
11.1.8 创建应用程序 225
11.1.9 运行结果 231
11.2 状态机类型工作流项目 234
11.2.1 定义项目接口 234
11.2.2 创建业务逻辑和数据访问层 234
11.2.3 创建工作流项目 234
11.2.4 修改应用程序 237
11.2.5 运行结果 241
附录A 思考题答案 244
附录B 光盘内容 248
附录C 范例数据库的恢复 252