我们正在尝试改变我们的业务流程,以便通过 WF4 实现它。我们的业务流程是这样的:
- 有许多处理程序。
- 每个处理程序都有许多输出状态。
- 处理程序被实现为活动
- 设计人员将支持这些活动的输出状态,以便
- 我们可以很容易地看到哪些状态会导致接下来的活动
- 我们可以在编译时验证每个活动的所有状态都与其他活动相关联。
我们如何在 WF4 中实现这一点?
我们正在尝试改变我们的业务流程,以便通过 WF4 实现它。我们的业务流程是这样的:
我们如何在 WF4 中实现这一点?
也许您可以在处理程序活动中定义所需的属性(转换活动)。然后在处理程序的CacheMetadata覆盖中,您可以验证是否提供了它们。在处理程序活动的Execute方法结束时,您可以使用工作流运行时安排分配的转换活动。类似于以下内容:
public sealed class MyHandlerActivity : NativeActivity
{
public MyHandlerActivity NextHandler
{
get;
set;
}
protected override void CacheMetadata(NativeActivityMetadata metadata)
{
// Ensure next handler is supplied.
if (this.NextHandler == null)
{
metadata.AddValidationError("Next handler is not assigned.");
return;
}
// Let the workflow runtime that this activity could schedule another activity (the handler activity).
metadata.AddChild(this.NextHandler);
}
protected override void Execute(NativeActivityContext context)
{
// TODO: Handler should do something here.
// Schedule the next handler.
context.ScheduleActivity(this.NextHandler);
}
}