工作流编程循序渐进(2:IfElseActivity活动)

一、引言本文中,我们来学习另一个简单活动--IfElseActivity。关于此活动,首先需要说明一下:

借助于IfElseActivity活动,你可以创建工作流中的分支结构,每一个分支对应于一个IfElseBranehActivity分支。

IfElseActivitv活动可以有条件地选择执行多个IfElseBranchActivity分支中的一个。也就是说,对每个IfElseBranchActivity活动的执行,都必须被一个条件所激发。

对于IfElseBranchActivity活动的执行条件,如果该条件的计算结果为True,则会执行该IfElseBranchActivity活动中所包含的其他活动;如果计算结果为False,则会对一个IfElseBranehActivity条件进行计算,依此类推。

IfElseActivity活动的最后一个IfElseBranchActivity活动分支,会被视为Else分支,该分支不需要任何条件来进行激发。

可通过IfElseBranchActivity活动的Condition属性,来为该活动设置条件,共有“代码条件“和“声明性规则条件”两个选项。

你可以使用条件来控制工作流的行为。工作流引擎会判断条件,并依据判断的结果来决定之后的行为。在工作流中有两种表达条件的方式:

你可以编写一个处理方法并返回一个布尔值。

你可以在工作流中定义一个规则。

你可以在工作流的运行期间动态更新条件规则,来改变工作流的行为。

你也可以通过创建一个策略类型的活动,来使用条件行为。

条件规则只能是工作流类中定义任何公共成员——变量或者方法。而条件代码可以是任何公共或私有的成员。

下面,我们来构建一个简单的示例。

二、创建控制台顺序工作流示例程序框架

请遵循如下步骤创建一个控制台顺序工作流示例程序:

1.启动VS2008,单击菜单”文件“|”新建“|”项目“,创建一个名字为IfElseActivity的控制台顺序工作流示例程序,见下图。


2.之后,系统自动打开工作流设计器界面,如图所示。

时间: 2024-11-13 03:47:14

工作流编程循序渐进(2:IfElseActivity活动)的相关文章

工作流编程循序渐进(4:InvokeWorkflowActivity活动)

一.简介 使用InvokeWorkflowActivity 活动可以从一个工作流中异步方式启动另一个工作流. 在已启动的工作流开始执行且工作流分支中的下一个活动执行之前,InvokeWorkflowActivity 活动即告完成. 注意: * WF不支持递归工作流.如果工作流A能够启动工作流B,则工作流B既不能直接启动工作流A,也不能启动任何直接或间接调用工作流A的工作流. * InvokeWorkflowActivity活动要求工作流运行时使用当前附加到该运行时的计划程序服务创建新工作流. *

工作流编程循序渐进(3:While活动)

一.引言本文中,我们来学习另一个简单活动--While活动.While活动将会持续循环的执行,直至指定判断为假. 下面,我们来构建一个简单的示例.本示例的目的是,想主要使用While活动实现显示一个九九乘法表. 二.创建控制台顺序工作流示例程序框架 请遵循如下步骤创建一个控制台顺序工作流示例程序: 1.启动VS2008,单击菜单"文件"|"新建"|"项目",创建一个名字为WhileActivity的控制台顺序工作流示例程序. 2.之后,系统自动打

工作流编程循序渐进(1:代码活动与时间延迟活动)

创建控制台顺序工作流示例程序框架 请遵循如下步骤创建一个控制台顺序工作流示例程序: 1.启动VS2008,单击菜单"文件"|"新建"|"项目",创建一个名字为CodeAndDelay的控制台顺序工作流示例程序,见下图. 2.之后,系统自动打开工作流设计器界面,如图所示. 3.从工具箱中依次拖动Code,Delay,Code三个活动到图中右侧的汉字提示处,得到如图所示的情形. 此时,图中的三个活动相关参数都没有经过设置,下面将设置有关参数.

工作流编程循序渐进(5:状态机工作流)

一.状态机工作流简介 状态机工作流由一组状态组成.一个状态被指示为初始状态.每个状态都可以接收一组特定事件.视事件而定,可以转换到另一个状态.状态机工作流可以有最终状态.当转换到最终状态时,工作流将完成. [一]状态机设计器视图 状态机设计器是一种自由形式的设计器,这意味着可以在设计图面上自由移动活动. 状态机设计器有两个视图: (1)"状态"视图 (2)"事件驱动"视图 状态视图显示状态活动和可包含在状态活动内的事件驱动的活动.在此视图中,从一个状态到另一个状态的

Symbian编程总结-基础篇-活动对象正解(4)-异步函数的同步调用

在上一节里我们深入了解了活动对象.活动调度器及异步函数服务器的工作原理及运行机制,想必大家对活动对象的机制及体系结构的运用已经了如指掌.但是大家有没有觉得异步函数使用起来比较麻烦呢?难道非要使用活动对象,非得以"异步"的方式调用异步函数吗?这一节将为大家解决这个问题:异步函数的同步使用. 一.使用CActiveSchedulerWait类 在以前的文章"Symbian编程总结-界面篇-打开jpeg/gif/png图像"里我们已经看到了CActiveScheduler

Symbian编程总结-基础篇-活动对象正解(3)-活动对象的工作原理

在上一节里我们已经知道如何创建和使用活动对象,大家对活动对象的创建.使用都有了一定的了解.在这一节里我将深入活动对象机制,分为"活动对象的工作流程"."信号迷失错误"两个部分,为大家剖析活动对象的工作原理. 一.活动对象工作流程 首先我们用时序图来说明一下应用程序.活动对象.活动调度器及异步函数服务器之间创建及调用的流程: 下面我们针对每一个步骤结合代码(点击此处下载代码)进行说明: 1.创建并安装活动调度器: CActiveScheduler* scheduler

Symbian编程总结-基础篇-活动对象正解(2)-使用活动对象

在上一节里我们已经大致了解了活动对象的基本概念,要使用活动对象机制,需要用到活动对象.活动调度器.异步函数.我们想使用异步函数,要按照应用程序->活动对象->活动调度器->异步函数的流程来使用.接下来我们开始进入实战,使用活动对象. 一.创建活动调度器 我们知道,活动调度器是应用程序和异步函数之间的桥梁,应用程序使用活动对象通过活动调度器去截获异步函数的返回"完成"消息,并以事件的方式通知应用程序. 使用Carbide C++ 1.3,通过模板向导生成的控制台程序自动

Symbian编程总结-基础篇-活动对象正解(1)-理解活动对象

Symbian OS中的活动对象的使用无疑是最基础的.最频繁的.最重要的.什么是活动对象呢? 大家学习一个新的事物时,总是会将这个新的事物与自己认知的事物相比较,从而达到快速学习的目的.我开始学习Symbian的时候,我查看很多Symbian书籍.网上很多Symbian教程都将活动对象与多线程联系到一起,我也总是会把活动对象想象成一个线程.然而,经过了更深入的接触,我发现并不像我想象的那样. 现在,我在此向你保证:活动对象和多线程没有任何关系!不要拿平时做多线程的思想去理解活动对象! 活动对象可

使用Spring来创建一个简单的工作流引擎_Java编程

文章来源:matrix 作者:Steve Dodge 摘要 spring是支持控制反转编程机制的一个相对新的框架.本文把spring作为简单工作流引擎,将它用在了更加通用的地方.在对工作流简单介绍之后,将要介绍在基本工作流场景中基于Spring的工作流API的使用. 许多J2EE应用程序要求在一个和主机分离的上下文中执行处理过程.在许多情况下,这些后台的进程执行多个任务,一些任务依赖于以前任务的状态.由于这些处理任务之间存在相互依赖的关系,使用一套基于过程的方法调用常常不能满足要求.开发人员能够