Keith Adler
Keith Adler

Reputation: 21178

Windows Workflow 4.0 FlowSwitch not working

I'm creating a FlowChart within a Windows Workflow 4.0 project in Visual Studio 2010. I've added a FlowSwitchwith an expression of a variable passed in as an In Argument to the Activity. I can debug and see the values are passed in correctly, however my FlowSwitch is not switching at all to a case that is defined as the value being passed in. I've defined the FlowSwitch going to the Activity as the numeric value that the In Argument should be equal to. Is there something I'm missing?

Upvotes: 0

Views: 1310

Answers (1)

Maurice
Maurice

Reputation: 27632

A FlowSwitch works with string values at the moment. Try converting the InArgument to a string.

Example XAML:

<p:Activity mc:Ignorable="" x:Class="WorkflowConsoleApplication2.Flowchart1" xmlns="http://schemas.microsoft.com/netfx/2009/xaml/activities/design" xmlns:__Flowchart1="clr-namespace:WorkflowConsoleApplication2;" xmlns:av="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:p="http://schemas.microsoft.com/netfx/2009/xaml/activities" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:sad="clr-namespace:System.Activities.Debugger;assembly=System.Activities" xmlns:scg="clr-namespace:System.Collections.Generic;assembly=mscorlib" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
  <p:Flowchart StartNode="{x:Reference __ReferenceID0}" sad:XamlDebuggerXmlReader.FileName="c:\temp\WorkflowConsoleApplication2\WorkflowConsoleApplication2\Flowchart1.xaml">
    <WorkflowViewStateService.ViewState>
      <scg:Dictionary x:TypeArguments="x:String, s:Object">
        <av:Point x:Key="ShapeLocation">275,10</av:Point>
        <av:Size x:Key="ShapeSize">50,50</av:Size>
        <av:PointCollection x:Key="ConnectorLocation">300,60 300,110</av:PointCollection>
      </scg:Dictionary>
    </WorkflowViewStateService.ViewState>
    <p:FlowSwitch x:Name="__ReferenceID0" Expression="[&quot;2&quot;]">
      <p:FlowSwitch.Default>
        <p:FlowStep x:Name="__ReferenceID1">
          <WorkflowViewStateService.ViewState>
            <scg:Dictionary x:TypeArguments="x:String, s:Object">
              <av:Point x:Key="ShapeLocation">235,293</av:Point>
              <av:Size x:Key="ShapeSize">200,34</av:Size>
            </scg:Dictionary>
          </WorkflowViewStateService.ViewState>
          <p:WriteLine>["Default"]</p:WriteLine>
        </p:FlowStep>
      </p:FlowSwitch.Default>
      <WorkflowViewStateService.ViewState>
        <scg:Dictionary x:TypeArguments="x:String, s:Object">
          <av:Point x:Key="ShapeLocation">270,110</av:Point>
          <av:Size x:Key="ShapeSize">60,60</av:Size>
          <av:PointCollection x:Key="Default">300,170 285,170 285,283 335,283 335,293</av:PointCollection>
          <av:PointCollection x:Key="1Connector">300,170 300,205 330,205</av:PointCollection>
          <av:PointCollection x:Key="2Connector">300,170 300,180 290,180 290,270 340,270</av:PointCollection>
        </scg:Dictionary>
      </WorkflowViewStateService.ViewState>
      <p:FlowStep x:Name="__ReferenceID2">
        <x:Key>
          <x:String>1</x:String>
        </x:Key>
        <WorkflowViewStateService.ViewState>
          <scg:Dictionary x:TypeArguments="x:String, s:Object">
            <av:Point x:Key="ShapeLocation">330,188</av:Point>
            <av:Size x:Key="ShapeSize">200,34</av:Size>
          </scg:Dictionary>
        </WorkflowViewStateService.ViewState>
        <p:WriteLine>["Its 1 "]</p:WriteLine>
      </p:FlowStep>
      <p:FlowStep x:Name="__ReferenceID3">
        <x:Key>
          <x:String>2</x:String>
        </x:Key>
        <WorkflowViewStateService.ViewState>
          <scg:Dictionary x:TypeArguments="x:String, s:Object">
            <av:Point x:Key="ShapeLocation">340,253</av:Point>
            <av:Size x:Key="ShapeSize">200,34</av:Size>
          </scg:Dictionary>
        </WorkflowViewStateService.ViewState>
        <p:WriteLine>["Its 2"]</p:WriteLine>
      </p:FlowStep>
    </p:FlowSwitch>
    <x:Reference>__ReferenceID2</x:Reference>
    <x:Reference>__ReferenceID3</x:Reference>
    <x:Reference>__ReferenceID1</x:Reference>
  </p:Flowchart>
</p:Activity>

Upvotes: 1

Related Questions