It is time for a change

After 8 years working on BizTalk and Windows Workflow Foundation I have decided it is time to work on testing a new product.  Starting yesterday I am now working on the Live Mesh team.  I really enjoyed helping answer questions and putting together samples to help people better understand Windows Workflow Foundation, and I hope to…

0

Are you getting a "The root activity type is invalid" error with the Custom Activity Designer sample?

Several peolple have gotten a “The root activity type is invalid” error when using the Custom Activity Designer sample that can be found at http://wf.netfx3.com/files/folders/activity_behavior/entry840.aspx.  I created an update project that should resolve the problem, which can be downloaded from the link below. FlowChart.zip

3

State machine workflow web service example

Being able to have a StateMachineWorkflow hold state across multiple different web service calls can be very useful.  This example will show you how to get start.  The first step is to create your interface.  For this example I will be using the following:   public interface IOrderService {     string CreateOrder(string id);     string…

0

How to use custom ActivityCondition or filter which ActivityConditions are available

If you have your own custom ActivityCondition you are only going to be able to use it with your custom activities, not out of the box activities like While or IfElseBranch.  First start by creating your custom ActivityCondition like the following:   [DisplayName(“Custom Activity Condition”)] public class CustomActivityCondition : ActivityCondition {     public override bool…

2

Switch activity

The Switch activity I created is based on the switch statement in C# or the Select Case statements in VB.  You have an expression and one or more case statements, one of which can be the default.  To model within workflow the case becomes a property that must be on the children of the Switch…

4

Basics of Working with Custom Types in Workflow

If you have used a custom type for an activity / workflow property you have probably ran into a few issues.  You might have had problems trying to get it serialized correctly or to be able to set the value in the property browser.  With this post I will try and shed some light on…

7

Do you want to invoke another workflow but you won’t know which one until runtime?

The InvokeWorkflowActivity that ships with WF requires you to set the type of the target workflow at design time.  If you won’t know which workflow to invoke until runtime you need to write a custom activity. To invoke a workflow need to use the IStartWorkflow service that you can get from the ActivityExecutionContext, like the…

7

Do you need to launch another process from your workflow?

When start another process from your workflow you can’t just not return from the Execute method until the process completes.  This would block the entire workflow from receiving any other events and would hold onto the thread.  Instead you need to use a queue to get notification when the process completes. ProcessActivity.EXE

1

How to set activity property from a custom input form

Sometime you might want to create an input form for your user to set properties on your custom activity.  Unfortunately when you set the properties directly on the activity from the input form the values don’t always get reflected on your activity.  To resolve this you need to set the value on the PropertyDescriptor for…

1

How to send data to a workflow

Sometimes you need to send data to a workflow from the host.  To do this you need create an interface that is decorated with the ExternalDataExchange attribute and contains an event delegate like the following:   [ExternalDataExchange] public interface IMyService {     event EventHandler<CompletedEventArgs> Completed; }   In your workflow add a HandleExternalEventActivity and set…

4