Workflow Windows工作流-IfElse分支
我正在尝试使用Windows工作流,并且有一个与下面链接中的图像相似的模型:Workflow Windows工作流-IfElse分支,workflow,workflow-foundation,Workflow,Workflow Foundation,我正在尝试使用Windows工作流,并且有一个与下面链接中的图像相似的模型: 在每个发送活动(GetSomthing,GetSomthingElse,getsometorestuff)之后,将调用相同的自定义活动(logsomthingbad) 虽然在我的真实模型中,这张图片中的自定义活动可能没有那么糟糕,但它是一个SequenceActivty,有很多节点,当它重复3次时,开始使工作流看起来非常难看。 我想这样做: IfElse分支可以这样合并吗? 我是否应该改为使用状态机工作流(尚未解决
在每个发送活动(
GetSomthing
,GetSomthingElse
,getsometorestuff
)之后,将调用相同的自定义活动(logsomthingbad
)
虽然在我的真实模型中,这张图片中的自定义活动可能没有那么糟糕,但它是一个SequenceActivty,有很多节点,当它重复3次时,开始使工作流看起来非常难看。我想这样做:
IfElse
分支可以这样合并吗?我是否应该改为使用状态机工作流(尚未解决这些问题)?在工作流上使用FaultHandler并抛出处理程序将捕获的特定异常类型。不是最优雅的,但我认为它应该可以工作。在顺序工作流中,所有步骤都必须以特定的顺序出现,并且执行路径完全由控制结构(IF、WHILE)控制。
按照您描述的方式更改执行路径就像在命令式代码中使用GOTO语句一样,我们知道这会导致不必要的复杂性。
如果在工作流的不同阶段需要执行的SequenceActivity中包含的活动完全相同,则可以将它们嵌入到自定义活动中。这样管理它们就更容易了,因为它们包含在一个逻辑单元中。
在命令式代码中,这就像将一部分重复的代码重构成一个方法,然后在多个位置调用。另一种可行的方法是将您的日志SomthingBadOccessed活动放入自定义工作流中,并多次包含该活动。需要注意的几件事:执行子工作流时,如果LogSomThingBadOccessed活动需要来自主工作流的状态信息,那么将其复制到子工作流可能会很困难
我还没有尝试过这个,所以它甚至可能不起作用。我认为邦菲尔的答案指向了正确的方向 概括而言,我将问题定义为: 有没有办法定义一组将在工作流的多个位置执行的活动?
进一步的要求是: